var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }

function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }

(function () {
    var root = typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
    root.Glacier2 = root.Glacier2 || {};
    var Slice = Ice.Slice;

    (function () {
        // **********************************************************************
        //
        // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        //
        // This copy of Ice is licensed to you under the terms described in the
        // ICE_LICENSE file included in this distribution.
        //
        // **********************************************************************
        //
        // Ice version 3.7.0
        //
        // <auto-generated>
        //
        // Generated from file `Metrics.ice'
        //
        // Warning: do not edit this file.
        //
        // </auto-generated>
        //


        var iceC_IceMX_SessionMetrics_ids = ["::Ice::Object", "::IceMX::Metrics", "::IceMX::SessionMetrics"];

        /**
         * Provides information on Glacier2 sessions.
         *
         **/
        IceMX.SessionMetrics = function (_IceMX$Metrics) {
            _inherits(_class, _IceMX$Metrics);

            function _class(id, total, current, totalLifetime, failures) {
                var forwardedClient = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;
                var forwardedServer = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : 0;
                var routingTableSize = arguments.length > 7 && arguments[7] !== undefined ? arguments[7] : 0;
                var queuedClient = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : 0;
                var queuedServer = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : 0;
                var overriddenClient = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : 0;
                var overriddenServer = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : 0;

                _classCallCheck(this, _class);

                var _this = _possibleConstructorReturn(this, (_class.__proto__ || Object.getPrototypeOf(_class)).call(this, id, total, current, totalLifetime, failures));

                _this.forwardedClient = forwardedClient;
                _this.forwardedServer = forwardedServer;
                _this.routingTableSize = routingTableSize;
                _this.queuedClient = queuedClient;
                _this.queuedServer = queuedServer;
                _this.overriddenClient = overriddenClient;
                _this.overriddenServer = overriddenServer;
                return _this;
            }

            _createClass(_class, [{
                key: "_iceWriteMemberImpl",
                value: function _iceWriteMemberImpl(ostr) {
                    ostr.writeInt(this.forwardedClient);
                    ostr.writeInt(this.forwardedServer);
                    ostr.writeInt(this.routingTableSize);
                    ostr.writeInt(this.queuedClient);
                    ostr.writeInt(this.queuedServer);
                    ostr.writeInt(this.overriddenClient);
                    ostr.writeInt(this.overriddenServer);
                }
            }, {
                key: "_iceReadMemberImpl",
                value: function _iceReadMemberImpl(istr) {
                    this.forwardedClient = istr.readInt();
                    this.forwardedServer = istr.readInt();
                    this.routingTableSize = istr.readInt();
                    this.queuedClient = istr.readInt();
                    this.queuedServer = istr.readInt();
                    this.overriddenClient = istr.readInt();
                    this.overriddenServer = istr.readInt();
                }
            }]);

            return _class;
        }(IceMX.Metrics);

        Slice.defineValue(IceMX.SessionMetrics, iceC_IceMX_SessionMetrics_ids[2], false);

        /**
         * Provides information on Glacier2 sessions.
         *
         **/
        IceMX.SessionMetricsDisp = function (_IceMX$MetricsDisp) {
            _inherits(_class2, _IceMX$MetricsDisp);

            function _class2() {
                _classCallCheck(this, _class2);

                return _possibleConstructorReturn(this, (_class2.__proto__ || Object.getPrototypeOf(_class2)).apply(this, arguments));
            }

            return _class2;
        }(IceMX.MetricsDisp);

        Slice.defineOperations(IceMX.SessionMetricsDisp, undefined, iceC_IceMX_SessionMetrics_ids, 2);
    })();

    (function () {
        // **********************************************************************
        //
        // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        //
        // This copy of Ice is licensed to you under the terms described in the
        // ICE_LICENSE file included in this distribution.
        //
        // **********************************************************************
        //
        // Ice version 3.7.0
        //
        // <auto-generated>
        //
        // Generated from file `SSLInfo.ice'
        //
        // Warning: do not edit this file.
        //
        // </auto-generated>
        //


        /**
         * Information taken from an SSL connection used for permissions
         * verification.
         *
         * @see PermissionsVerifier
         *
         **/
        Glacier2.SSLInfo = function () {
            function _class3() {
                var remoteHost = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";
                var remotePort = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
                var localHost = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "";
                var localPort = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;
                var cipher = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "";
                var certs = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;

                _classCallCheck(this, _class3);

                this.remoteHost = remoteHost;
                this.remotePort = remotePort;
                this.localHost = localHost;
                this.localPort = localPort;
                this.cipher = cipher;
                this.certs = certs;
            }

            _createClass(_class3, [{
                key: "_write",
                value: function _write(ostr) {
                    ostr.writeString(this.remoteHost);
                    ostr.writeInt(this.remotePort);
                    ostr.writeString(this.localHost);
                    ostr.writeInt(this.localPort);
                    ostr.writeString(this.cipher);
                    Ice.StringSeqHelper.write(ostr, this.certs);
                }
            }, {
                key: "_read",
                value: function _read(istr) {
                    this.remoteHost = istr.readString();
                    this.remotePort = istr.readInt();
                    this.localHost = istr.readString();
                    this.localPort = istr.readInt();
                    this.cipher = istr.readString();
                    this.certs = Ice.StringSeqHelper.read(istr);
                }
            }], [{
                key: "minWireSize",
                get: function get() {
                    return 12;
                }
            }]);

            return _class3;
        }();

        Slice.defineStruct(Glacier2.SSLInfo, true, true);
    })();

    (function () {
        // **********************************************************************
        //
        // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        //
        // This copy of Ice is licensed to you under the terms described in the
        // ICE_LICENSE file included in this distribution.
        //
        // **********************************************************************
        //
        // Ice version 3.7.0
        //
        // <auto-generated>
        //
        // Generated from file `PermissionsVerifierF.ice'
        //
        // Warning: do not edit this file.
        //
        // </auto-generated>
        //


    })();

    (function () {
        // **********************************************************************
        //
        // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        //
        // This copy of Ice is licensed to you under the terms described in the
        // ICE_LICENSE file included in this distribution.
        //
        // **********************************************************************
        //
        // Ice version 3.7.0
        //
        // <auto-generated>
        //
        // Generated from file `Session.ice'
        //
        // Warning: do not edit this file.
        //
        // </auto-generated>
        //


        /**
         * This exception is raised if an attempt to create a new session failed.
         *
         **/
        Glacier2.CannotCreateSessionException = function (_Ice$UserException) {
            _inherits(_class4, _Ice$UserException);

            function _class4() {
                var reason = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";

                var _cause = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";

                _classCallCheck(this, _class4);

                var _this3 = _possibleConstructorReturn(this, (_class4.__proto__ || Object.getPrototypeOf(_class4)).call(this, _cause));

                _this3.reason = reason;
                return _this3;
            }

            _createClass(_class4, [{
                key: "_mostDerivedType",
                value: function _mostDerivedType() {
                    return Glacier2.CannotCreateSessionException;
                }
            }, {
                key: "_writeMemberImpl",
                value: function _writeMemberImpl(ostr) {
                    ostr.writeString(this.reason);
                }
            }, {
                key: "_readMemberImpl",
                value: function _readMemberImpl(istr) {
                    this.reason = istr.readString();
                }
            }], [{
                key: "_parent",
                get: function get() {
                    return Ice.UserException;
                }
            }, {
                key: "_id",
                get: function get() {
                    return "::Glacier2::CannotCreateSessionException";
                }
            }]);

            return _class4;
        }(Ice.UserException);

        Slice.PreservedUserException(Glacier2.CannotCreateSessionException);

        var iceC_Glacier2_Session_ids = ["::Glacier2::Session", "::Ice::Object"];

        /**
         * A client-visible session object, which is tied to the lifecycle of a {@link Router}.
         *
         * @see Router
         * @see SessionManager
         *
         **/
        Glacier2.Session = function (_Ice$Object) {
            _inherits(_class5, _Ice$Object);

            function _class5() {
                _classCallCheck(this, _class5);

                return _possibleConstructorReturn(this, (_class5.__proto__ || Object.getPrototypeOf(_class5)).apply(this, arguments));
            }

            return _class5;
        }(Ice.Object);

        Glacier2.SessionPrx = function (_Ice$ObjectPrx) {
            _inherits(_class6, _Ice$ObjectPrx);

            function _class6() {
                _classCallCheck(this, _class6);

                return _possibleConstructorReturn(this, (_class6.__proto__ || Object.getPrototypeOf(_class6)).apply(this, arguments));
            }

            return _class6;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.Session, Glacier2.SessionPrx, iceC_Glacier2_Session_ids, 0, {
            "destroy": [,,,,,,,,,]
        });

        var iceC_Glacier2_StringSet_ids = ["::Glacier2::StringSet", "::Ice::Object"];

        /**
         * An object for managing the set of identity constraints for specific
         * parts of object identity on a
         * {@link Session}.
         *
         * @see Session
         * @see SessionControl
         *
         **/
        Glacier2.StringSet = function (_Ice$Object2) {
            _inherits(_class7, _Ice$Object2);

            function _class7() {
                _classCallCheck(this, _class7);

                return _possibleConstructorReturn(this, (_class7.__proto__ || Object.getPrototypeOf(_class7)).apply(this, arguments));
            }

            return _class7;
        }(Ice.Object);

        Glacier2.StringSetPrx = function (_Ice$ObjectPrx2) {
            _inherits(_class8, _Ice$ObjectPrx2);

            function _class8() {
                _classCallCheck(this, _class8);

                return _possibleConstructorReturn(this, (_class8.__proto__ || Object.getPrototypeOf(_class8)).apply(this, arguments));
            }

            return _class8;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.StringSet, Glacier2.StringSetPrx, iceC_Glacier2_StringSet_ids, 0, {
            "add": [, 2, 2,,, [["Ice.StringSeqHelper"]],,,,],
            "remove": [, 2, 2,,, [["Ice.StringSeqHelper"]],,,,],
            "get": [, 2, 2,, ["Ice.StringSeqHelper"],,,,,]
        });

        var iceC_Glacier2_IdentitySet_ids = ["::Glacier2::IdentitySet", "::Ice::Object"];

        /**
         * An object for managing the set of object identity constraints on a
         * {@link Session}.
         *
         * @see Session
         * @see SessionControl
         *
         **/
        Glacier2.IdentitySet = function (_Ice$Object3) {
            _inherits(_class9, _Ice$Object3);

            function _class9() {
                _classCallCheck(this, _class9);

                return _possibleConstructorReturn(this, (_class9.__proto__ || Object.getPrototypeOf(_class9)).apply(this, arguments));
            }

            return _class9;
        }(Ice.Object);

        Glacier2.IdentitySetPrx = function (_Ice$ObjectPrx3) {
            _inherits(_class10, _Ice$ObjectPrx3);

            function _class10() {
                _classCallCheck(this, _class10);

                return _possibleConstructorReturn(this, (_class10.__proto__ || Object.getPrototypeOf(_class10)).apply(this, arguments));
            }

            return _class10;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.IdentitySet, Glacier2.IdentitySetPrx, iceC_Glacier2_IdentitySet_ids, 0, {
            "add": [, 2, 2,,, [["Ice.IdentitySeqHelper"]],,,,],
            "remove": [, 2, 2,,, [["Ice.IdentitySeqHelper"]],,,,],
            "get": [, 2, 2,, ["Ice.IdentitySeqHelper"],,,,,]
        });

        var iceC_Glacier2_SessionControl_ids = ["::Glacier2::SessionControl", "::Ice::Object"];

        /**
         * An administrative session control object, which is tied to the
         * lifecycle of a {@link Session}.
         *
         * @see Session
         *
         **/
        Glacier2.SessionControl = function (_Ice$Object4) {
            _inherits(_class11, _Ice$Object4);

            function _class11() {
                _classCallCheck(this, _class11);

                return _possibleConstructorReturn(this, (_class11.__proto__ || Object.getPrototypeOf(_class11)).apply(this, arguments));
            }

            return _class11;
        }(Ice.Object);

        Glacier2.SessionControlPrx = function (_Ice$ObjectPrx4) {
            _inherits(_class12, _Ice$ObjectPrx4);

            function _class12() {
                _classCallCheck(this, _class12);

                return _possibleConstructorReturn(this, (_class12.__proto__ || Object.getPrototypeOf(_class12)).apply(this, arguments));
            }

            return _class12;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.SessionControl, Glacier2.SessionControlPrx, iceC_Glacier2_SessionControl_ids, 0, {
            "categories": [,,,, ["Glacier2.StringSetPrx"],,,,,],
            "adapterIds": [,,,, ["Glacier2.StringSetPrx"],,,,,],
            "identities": [,,,, ["Glacier2.IdentitySetPrx"],,,,,],
            "getSessionTimeout": [, 2, 2,, [3],,,,,],
            "destroy": [,,,,,,,,,]
        });

        var iceC_Glacier2_SessionManager_ids = ["::Glacier2::SessionManager", "::Ice::Object"];

        /**
         * The session manager for username/password authenticated users that
         * is responsible for managing {@link Session} objects. New session objects
         * are created by the {@link Router} object calling on an application-provided
         * session manager. If no session manager is provided by the application,
         * no client-visible sessions are passed to the client.
         *
         * @see Router
         * @see Session
         *
         **/
        Glacier2.SessionManager = function (_Ice$Object5) {
            _inherits(_class13, _Ice$Object5);

            function _class13() {
                _classCallCheck(this, _class13);

                return _possibleConstructorReturn(this, (_class13.__proto__ || Object.getPrototypeOf(_class13)).apply(this, arguments));
            }

            return _class13;
        }(Ice.Object);

        Glacier2.SessionManagerPrx = function (_Ice$ObjectPrx5) {
            _inherits(_class14, _Ice$ObjectPrx5);

            function _class14() {
                _classCallCheck(this, _class14);

                return _possibleConstructorReturn(this, (_class14.__proto__ || Object.getPrototypeOf(_class14)).apply(this, arguments));
            }

            return _class14;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.SessionManager, Glacier2.SessionManagerPrx, iceC_Glacier2_SessionManager_ids, 0, {
            "create": [,,, 2, ["Glacier2.SessionPrx"], [[7], ["Glacier2.SessionControlPrx"]],, [Glacier2.CannotCreateSessionException],,]
        });

        var iceC_Glacier2_SSLSessionManager_ids = ["::Glacier2::SSLSessionManager", "::Ice::Object"];

        /**
         * The session manager for SSL authenticated users that is
         * responsible for managing {@link Session} objects. New session objects are
         * created by the {@link Router} object calling on an application-provided
         * session manager. If no session manager is provided by the
         * application, no client-visible sessions are passed to the client.
         *
         * @see Router
         * @see Session
         *
         **/
        Glacier2.SSLSessionManager = function (_Ice$Object6) {
            _inherits(_class15, _Ice$Object6);

            function _class15() {
                _classCallCheck(this, _class15);

                return _possibleConstructorReturn(this, (_class15.__proto__ || Object.getPrototypeOf(_class15)).apply(this, arguments));
            }

            return _class15;
        }(Ice.Object);

        Glacier2.SSLSessionManagerPrx = function (_Ice$ObjectPrx6) {
            _inherits(_class16, _Ice$ObjectPrx6);

            function _class16() {
                _classCallCheck(this, _class16);

                return _possibleConstructorReturn(this, (_class16.__proto__ || Object.getPrototypeOf(_class16)).apply(this, arguments));
            }

            return _class16;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.SSLSessionManager, Glacier2.SSLSessionManagerPrx, iceC_Glacier2_SSLSessionManager_ids, 0, {
            "create": [,,, 2, ["Glacier2.SessionPrx"], [[Glacier2.SSLInfo], ["Glacier2.SessionControlPrx"]],, [Glacier2.CannotCreateSessionException],,]
        });
    })();

    (function () {
        // **********************************************************************
        //
        // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        //
        // This copy of Ice is licensed to you under the terms described in the
        // ICE_LICENSE file included in this distribution.
        //
        // **********************************************************************
        //
        // Ice version 3.7.0
        //
        // <auto-generated>
        //
        // Generated from file `RouterF.ice'
        //
        // Warning: do not edit this file.
        //
        // </auto-generated>
        //


    })();

    (function () {
        // **********************************************************************
        //
        // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        //
        // This copy of Ice is licensed to you under the terms described in the
        // ICE_LICENSE file included in this distribution.
        //
        // **********************************************************************
        //
        // Ice version 3.7.0
        //
        // <auto-generated>
        //
        // Generated from file `PermissionsVerifier.ice'
        //
        // Warning: do not edit this file.
        //
        // </auto-generated>
        //


        /**
         * This exception is raised if a client is denied the ability to create
         * a session with the router.
         *
         **/
        Glacier2.PermissionDeniedException = function (_Ice$UserException2) {
            _inherits(_class17, _Ice$UserException2);

            function _class17() {
                var reason = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";

                var _cause = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";

                _classCallCheck(this, _class17);

                var _this16 = _possibleConstructorReturn(this, (_class17.__proto__ || Object.getPrototypeOf(_class17)).call(this, _cause));

                _this16.reason = reason;
                return _this16;
            }

            _createClass(_class17, [{
                key: "_mostDerivedType",
                value: function _mostDerivedType() {
                    return Glacier2.PermissionDeniedException;
                }
            }, {
                key: "_writeMemberImpl",
                value: function _writeMemberImpl(ostr) {
                    ostr.writeString(this.reason);
                }
            }, {
                key: "_readMemberImpl",
                value: function _readMemberImpl(istr) {
                    this.reason = istr.readString();
                }
            }], [{
                key: "_parent",
                get: function get() {
                    return Ice.UserException;
                }
            }, {
                key: "_id",
                get: function get() {
                    return "::Glacier2::PermissionDeniedException";
                }
            }]);

            return _class17;
        }(Ice.UserException);

        Slice.PreservedUserException(Glacier2.PermissionDeniedException);

        var iceC_Glacier2_PermissionsVerifier_ids = ["::Glacier2::PermissionsVerifier", "::Ice::Object"];

        /**
         * The Glacier2 permissions verifier. This is called through the
         * process of establishing a session.
         *
         * @see Router
         *
         **/
        Glacier2.PermissionsVerifier = function (_Ice$Object7) {
            _inherits(_class18, _Ice$Object7);

            function _class18() {
                _classCallCheck(this, _class18);

                return _possibleConstructorReturn(this, (_class18.__proto__ || Object.getPrototypeOf(_class18)).apply(this, arguments));
            }

            return _class18;
        }(Ice.Object);

        Glacier2.PermissionsVerifierPrx = function (_Ice$ObjectPrx7) {
            _inherits(_class19, _Ice$ObjectPrx7);

            function _class19() {
                _classCallCheck(this, _class19);

                return _possibleConstructorReturn(this, (_class19.__proto__ || Object.getPrototypeOf(_class19)).apply(this, arguments));
            }

            return _class19;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.PermissionsVerifier, Glacier2.PermissionsVerifierPrx, iceC_Glacier2_PermissionsVerifier_ids, 0, {
            "checkPermissions": [, 2, 1, 2, [1], [[7], [7]], [[7]], [Glacier2.PermissionDeniedException],,]
        });

        var iceC_Glacier2_SSLPermissionsVerifier_ids = ["::Glacier2::SSLPermissionsVerifier", "::Ice::Object"];

        /**
         * The SSL Glacier2 permissions verifier. This is called through the
         * process of establishing a session.
         *
         * @see Router
         *
         **/
        Glacier2.SSLPermissionsVerifier = function (_Ice$Object8) {
            _inherits(_class20, _Ice$Object8);

            function _class20() {
                _classCallCheck(this, _class20);

                return _possibleConstructorReturn(this, (_class20.__proto__ || Object.getPrototypeOf(_class20)).apply(this, arguments));
            }

            return _class20;
        }(Ice.Object);

        Glacier2.SSLPermissionsVerifierPrx = function (_Ice$ObjectPrx8) {
            _inherits(_class21, _Ice$ObjectPrx8);

            function _class21() {
                _classCallCheck(this, _class21);

                return _possibleConstructorReturn(this, (_class21.__proto__ || Object.getPrototypeOf(_class21)).apply(this, arguments));
            }

            return _class21;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.SSLPermissionsVerifier, Glacier2.SSLPermissionsVerifierPrx, iceC_Glacier2_SSLPermissionsVerifier_ids, 0, {
            "authorize": [, 2, 1, 2, [1], [[Glacier2.SSLInfo]], [[7]], [Glacier2.PermissionDeniedException],,]
        });
    })();

    (function () {
        // **********************************************************************
        //
        // Copyright (c) 2003-2017 ZeroC, Inc. All rights reserved.
        //
        // This copy of Ice is licensed to you under the terms described in the
        // ICE_LICENSE file included in this distribution.
        //
        // **********************************************************************
        //
        // Ice version 3.7.0
        //
        // <auto-generated>
        //
        // Generated from file `Router.ice'
        //
        // Warning: do not edit this file.
        //
        // </auto-generated>
        //


        /**
         * This exception is raised if a client tries to destroy a session
         * with a router, but no session exists for the client.
         *
         * @see Router#destroySession
         *
         **/
        Glacier2.SessionNotExistException = function (_Ice$UserException3) {
            _inherits(_class22, _Ice$UserException3);

            function _class22() {
                var _cause = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "";

                _classCallCheck(this, _class22);

                return _possibleConstructorReturn(this, (_class22.__proto__ || Object.getPrototypeOf(_class22)).call(this, _cause));
            }

            _createClass(_class22, [{
                key: "_mostDerivedType",
                value: function _mostDerivedType() {
                    return Glacier2.SessionNotExistException;
                }
            }], [{
                key: "_parent",
                get: function get() {
                    return Ice.UserException;
                }
            }, {
                key: "_id",
                get: function get() {
                    return "::Glacier2::SessionNotExistException";
                }
            }]);

            return _class22;
        }(Ice.UserException);

        var iceC_Glacier2_Router_ids = ["::Glacier2::Router", "::Ice::Object", "::Ice::Router"];

        /**
         * The Glacier2 specialization of the <tt>Ice::Router</tt> interface.
         *
         **/
        Glacier2.Router = function (_Ice$Object9) {
            _inherits(_class23, _Ice$Object9);

            function _class23() {
                _classCallCheck(this, _class23);

                return _possibleConstructorReturn(this, (_class23.__proto__ || Object.getPrototypeOf(_class23)).apply(this, arguments));
            }

            _createClass(_class23, null, [{
                key: "_iceImplements",
                get: function get() {
                    return [Ice.Router];
                }
            }]);

            return _class23;
        }(Ice.Object);

        Glacier2.RouterPrx = function (_Ice$ObjectPrx9) {
            _inherits(_class24, _Ice$ObjectPrx9);

            function _class24() {
                _classCallCheck(this, _class24);

                return _possibleConstructorReturn(this, (_class24.__proto__ || Object.getPrototypeOf(_class24)).apply(this, arguments));
            }

            _createClass(_class24, null, [{
                key: "_implements",
                get: function get() {
                    return [Ice.RouterPrx];
                }
            }]);

            return _class24;
        }(Ice.ObjectPrx);

        Slice.defineOperations(Glacier2.Router, Glacier2.RouterPrx, iceC_Glacier2_Router_ids, 0, {
            "getCategoryForClient": [, 2, 1,, [7],,,,,],
            "createSession": [,,, 2, ["Glacier2.SessionPrx"], [[7], [7]],, [Glacier2.CannotCreateSessionException, Glacier2.PermissionDeniedException],,],
            "createSessionFromSecureConnection": [,,, 2, ["Glacier2.SessionPrx"],,, [Glacier2.CannotCreateSessionException, Glacier2.PermissionDeniedException],,],
            "refreshSession": [,,,,,,, [Glacier2.SessionNotExistException],,],
            "destroySession": [,,,,,,, [Glacier2.SessionNotExistException],,],
            "getSessionTimeout": [, 2, 1,, [4],,,,,],
            "getACMTimeout": [, 2, 1,, [3],,,,,]
        });
    })();

    root.Glacier2 = Glacier2;
})();
//# sourceMappingURL=Glacier2.js.map
