New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@minadmin/oidc

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@minadmin/oidc - npm Package Compare versions

Comparing version 0.0.2 to 0.0.3

2

bundles/minadmin-oidc.umd.min.js

@@ -1,2 +0,2 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("ngx-logger"),require("@angular/common/http"),require("base64-js"),require("@angular/router"),require("node-jose")):"function"==typeof define&&define.amd?define("@minadmin/oidc",["exports","@angular/core","rxjs","rxjs/operators","ngx-logger","@angular/common/http","base64-js","@angular/router","node-jose"],t):t((e.minadmin=e.minadmin||{},e.minadmin.oidc={}),e.ng.core,e.rxjs,e.rxjs.operators,e.ngxLogger,e.ng.common.http,e.base64,e.ng.router,e.nodeJose)}(this,function(e,r,g,h,n,i,t,o,s){"use strict";var a=function(e,t){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)};function c(e,t){function o(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}var u=function(){return(u=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++)for(var n in t=arguments[o])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)};function p(t,s,a,c){return new(a||(a=Promise))(function(e,o){function r(e){try{i(c.next(e))}catch(t){o(t)}}function n(e){try{i(c["throw"](e))}catch(t){o(t)}}function i(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(r,n)}i((c=c.apply(t,s||[])).next())})}function f(r,n){var i,s,a,e,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return e={next:t(0),"throw":t(1),"return":t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function o(e){if(i)throw new TypeError("Generator is already executing.");for(;c;)try{if(i=1,s&&(a=2&e[0]?s["return"]:e[0]?s["throw"]||((a=s["return"])&&a.call(s),0):s.next)&&!(a=a.call(s,e[1])).done)return a;switch(s=0,a&&(e=[2&e[0],a.value]),e[0]){case 0:case 1:a=e;break;case 4:return c.label++,{value:e[1],done:!1};case 5:c.label++,s=e[1],e=[0];continue;case 7:e=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){c=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){c.label=e[1];break}if(6===e[0]&&c.label<a[1]){c.label=a[1],a=e;break}if(a&&c.label<a[2]){c.label=a[2],c.ops.push(e);break}a[2]&&c.ops.pop(),c.trys.pop();continue}e=n.call(r,c)}catch(t){e=[6,t],s=0}finally{i=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([t,e])}}}function d(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var r,n,i=o.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(r=i.next()).done;)s.push(r.value)}catch(a){n={error:a}}finally{try{r&&!r.done&&(o=i["return"])&&o.call(i)}finally{if(n)throw n.error}}return s}function l(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(d(arguments[t]));return e}var _="none",y="memory",v="localStorage",m="sessionStorage",k="cookie",w="sessionCookie",T=function X(){},I={INITIAL:"initial",UPDATE_CONFIG:"updateConfig",GET_OIDC_CONFIGURATION:"getOIDCConfiguration",READ_STORAGE:"readStorage",CHECK_AUTHORIZED:"checkAuthorized",WAITING:"waiting",REQUEST_AUTHORIZATION:"requestAuthorization",REQUEST_REFRESH_TOKEN:"requestRefreshToken",DONE:"done"},C=function(){function e(e,t,o){this._next=e,this._onEnterCBs=t,this._onLeaveCBs=o}return Object.defineProperty(e.prototype,"next",{get:function(){return this._next},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onEnterCBs",{get:function(){return this._onEnterCBs||(this._onEnterCBs=Array()),this._onEnterCBs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLeaveCBs",{get:function(){return this._onLeaveCBs||(this._onLeaveCBs=Array()),this._onLeaveCBs},enumerable:!0,configurable:!0}),e}(),b=function(n){function e(e,t,o){var r=n.call(this,e,t,o)||this;return r._next=e,r._onEnterCBs=t,r._onLeaveCBs=o,r}return c(e,n),e}(C),N=function(){function e(e,t){void 0===t&&(t="initial"),this._states=e,this._initial=t,this._currentState=this._initial,this._subject=new g.BehaviorSubject(this._initial)}return Object.defineProperty(e.prototype,"subject$",{get:function(){return this._subject},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentState",{get:function(){return this._currentState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"states",{get:function(){return this._states},enumerable:!0,configurable:!0}),e.prototype.onEnter=function(e,t){this._states[e].onEnterCBs.push(t)},e.prototype.onLeave=function(e,t){this._states[e].onLeaveCBs.push(t)},e.prototype.transitTo$=function(e){for(var t=this,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];var n=Array();return n.push(g.of(1).pipe(h.mergeMap(function(){return t._currentState===e?g.of():t.can(e)?g.empty():g.throwError(new Error("State does not exists or can't go from \""+t._currentState+'" to "'+e+'"'))}))),this.currentState!==this._initial&&this._states[e].onLeaveCBs&&n.push(g.forkJoin(this._states[e].onLeaveCBs.map(function(e){return e.apply(void 0,l(o))}))),n.push(g.of(1).pipe(h.tap(function(){t._currentState=e}))),this._states[e].onEnterCBs&&n.push(g.forkJoin(this._states[e].onEnterCBs.map(function(e){return e.apply(void 0,l(o))}))),n.push(g.of(1).pipe(h.tap(function(){t._subject.next(e)}))),g.from(n).pipe(h.concatAll(),h.map(function(){return undefined}))},e.prototype.can=function(e){return!(!this._states[e]||!this._states[this._currentState].next.includes(e))},e.prototype.transitions=function(e){return this._states[e].next},e.prototype.transitToNext$=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this.transitTo$(this._states[this._currentState].next[0])},e}(),E=function(e){function t(){return e.call(this,{initial:new b([I.GET_OIDC_CONFIGURATION,I.UPDATE_CONFIG]),updateConfig:new b([I.INITIAL]),getOIDCConfiguration:new b([I.READ_STORAGE,I.INITIAL]),readStorage:new b([I.CHECK_AUTHORIZED,I.DONE,I.INITIAL]),checkAuthorized:new b([I.WAITING,I.REQUEST_REFRESH_TOKEN]),waiting:new b([I.REQUEST_AUTHORIZATION,I.INITIAL]),requestAuthorization:new b([I.REQUEST_REFRESH_TOKEN,I.DONE,I.INITIAL]),requestRefreshToken:new b([I.DONE,I.INITIAL]),done:new b([I.INITIAL])},I.INITIAL)||this}return c(t,e),t.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=r.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(N),A=new r.InjectionToken("config.options"),S={TOKEN:"storageTokenName",OIDCCONFIG:"storageOIDCConfigName",OIDCJWKs:"storageOIDCJWKsName",NONCE:"storageNonceName",PARSED_ID_TOKEN:"storageParsedIDTokenName",A_REQUEST_STATE:"storageARequestStateName"},O=function(){function e(e,t){this._flow=t,this.options={redirectUri:window.location.origin+"/",scope:["openid"],prompt:"consent",refresh_token:!0,debug:!1,autoLogon:!1,authHeader:"Authorization",authToken:"Bearer",storageKeyPrefix:"mindadmin-auth",storageKeySeperator:"_",storageTokenName:"token",storageOIDCConfigName:"oidcconfig",storageOIDCJWKsName:"oidcjwks",storageNonceName:"nonce",storageParsedIDTokenName:"parsed-id-token",storageARequestStateName:"a-request-state",requireHttps:"remoteonly",strictDiscoveryDocumentValidation:!0,sessionChecksEnabled:!1,skipIssuerCheck:!1,nonceSize:32,disableAtHashCheck:!0,storageType:v},this.applyConfig(e,!0)}return e.prototype.applyConfig=function(e,t){void 0===t&&(t=!1),this.options=u({},this.options,e),this.options.opendIDConnectURL=this.options.opendIDConnectURL||"",this.options.opendIDConnectURL.endsWith("/")||(this.options.opendIDConnectURL+="/"),this._flow.currentState!==I.INITIAL&&this._flow.transitTo$(I.INITIAL).subscribe(),t||this._flow.transitTo$(I.UPDATE_CONFIG).subscribe()},e.prototype.getStorageKey=function(e){return this.options.storageKeyPrefix?[this.options.storageKeyPrefix,this.options[e]].join(this.options.storageKeySeperator):this.options[e]},e.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:undefined,decorators:[{type:r.Inject,args:[A]}]},{type:N}]},e.ngInjectableDef=r.defineInjectable({factory:function(){return new e(r.inject(A),r.inject(N))},token:e,providedIn:"root"}),e}(),D=function(){function e(e){this.accessToken=e.access_token,this.tokenType=e.token_type||"bearer",this.expiresIn=e.expires_in,this.refreshToken=e.refresh_token,this.scope=e.scope,this.idToken=e.id_token,this.issuedAt=e.issued_at||Math.round((new Date).getTime()/1e3)}return e.prototype.toJson=function(){return{access_token:this.accessToken,id_token:this.idToken,refresh_token:this.refreshToken,scope:this.scope,token_type:this.tokenType,issued_at:this.issuedAt,expires_in:this.expiresIn}},e}();function j(e){var t=e.replace(/\-/g,"+").replace(/\_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}var R=function Y(){},U=function(){function e(){}return e.prototype.validateAtHash=function(a){return p(this,void 0,void 0,function(){var t,o,r,n,i,s;return f(this,function(e){switch(e.label){case 0:return t=this.inferHashAlgorithm(a.idTokenHeader),[4,this.calcHash(a.accessToken,t)];case 1:return o=e.sent(),r=o.substr(0,o.length/2),n=btoa(unescape(encodeURIComponent(r))),i=n.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),s=a.idTokenClaims.at_hash.replace(/=/g,""),i!==s&&(console.error("exptected at_hash: "+i),console.error("actual at_hash: "+s)),[2,i===s]}})})},e.prototype.inferHashAlgorithm=function(e){var t=e.alg;if(!t.match(/^.S[0-9]{3}$/))throw new Error("Algorithm not supported: "+t);return"SHA-"+t.substr(2)},e}(),P=function(){function e(e,t,o){var r=this;this._customLogger=e,this._config=t,this._flow=o,this._debug=!1,this._logger=this._customLogger.create({level:n.NgxLoggerLevel.INFO}),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(h.tap(function(){r._config.options.debug&&!r._debug&&(r._logger.updateConfig({level:n.NgxLoggerLevel.DEBUG}),r._debug=!0)}))})}return e.prototype.trace=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).trace.apply(t,l([e],o))},e.prototype.debug=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).debug.apply(t,l([e],o))},e.prototype.info=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).info.apply(t,l([e],o))},e.prototype.log=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).log.apply(t,l([e],o))},e.prototype.warn=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).warn.apply(t,l([e],o))},e.prototype.error=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).error.apply(t,l([e],o))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:n.CustomNGXLoggerService},{type:O},{type:N}]},e}(),x=function(){function e(e,t,o,r,n){var i=this;this._http=e,this._config=t,this._storage=o,this._logger=r,this._flow=n,this.updateConfig(),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(h.tap(function(){i.updateConfig()}))}),this._flow.onEnter(I.GET_OIDC_CONFIGURATION,function(){return g.of(1).pipe(h.mergeMap(function(){return i.discovery$.pipe(h.mergeMap(function(e){return i._flow.transitToNext$(e)}),h.map(function(){return undefined}))}))})}return e.prototype.updateConfig=function(){var e=this._config.options.opendIDConnectURL+".well-known/openid-configuration";this._discoveryURI!==e&&(this.storageOIDCConfigName&&this._storage.remove(this.storageOIDCConfigName),this.storageOIDCJWKsName&&this._storage.remove(this.storageOIDCJWKsName)),this.storageOIDCConfigName=this._config.getStorageKey(S.OIDCCONFIG),this.storageOIDCJWKsName=this._config.getStorageKey(S.OIDCJWKs),this._discoveryURI=e},Object.defineProperty(e.prototype,"discoveryURI",{get:function(){return this._discoveryURI},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"discovery$",{get:function(){var t=this,e=JSON.parse(this._storage.get(this.storageOIDCConfigName));return e?g.of(e):this._http.get(this._discoveryURI).pipe(h.tap(function(e){if(!t.validateDiscoveryDocument(e))throw new Error("Failed to validate the discovery Document");t._logger.debug("Validated the OIDC Document"),t._storage.set(t.storageOIDCConfigName,JSON.stringify(e),new Date((new Date).getTime()+36e5).toUTCString())}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"jwks$",{get:function(){var o=this,e=JSON.parse(this._storage.get(this.storageOIDCJWKsName));return e?g.of(e):this.discovery$.pipe(h.mergeMap(function(t){return t.jwks_uri?o._http.get(t.jwks_uri).pipe(h.tap(function(e){},function(e){throw o._logger.error("error loading jwks",e),new Error('error loading JWKs from "'+t.jwks_uri+'"')})):g.throwError(new Error('No jwks_uri given in "'+o._discoveryURI+'"'))}),h.tap(function(e){o._storage.set(o.storageOIDCJWKsName,JSON.stringify(e),new Date((new Date).getTime()+36e5).toUTCString())}))},enumerable:!0,configurable:!0}),e.prototype.validateDiscoveryDocument=function(e){var t;return this._config.options.skipIssuerCheck||e.issuer===this._config.options.opendIDConnectURL?0<(t=this.validateUrlFromDiscoveryDocument(e.authorization_endpoint)).length?(this._logger.error("error validating authorization_endpoint in discovery document",t),!1):0<(t=this.validateUrlFromDiscoveryDocument(e.end_session_endpoint)).length?(this._logger.error("error validating end_session_endpoint in discovery document",t),!1):(0<(t=this.validateUrlFromDiscoveryDocument(e.token_endpoint)).length&&this._logger.error("error validating token_endpoint in discovery document",t),0<(t=this.validateUrlFromDiscoveryDocument(e.userinfo_endpoint)).length?(this._logger.error("error validating userinfo_endpoint in discovery document",t),!1):0<(t=this.validateUrlFromDiscoveryDocument(e.jwks_uri)).length?(this._logger.error("error validating jwks_uri in discovery document",t),!1):(this._config.options.sessionChecksEnabled&&!e.check_session_iframe&&this._logger.warn("sessionChecksEnabled is activated but discovery document does not contain a check_session_iframe field"),!0)):(this._logger.error("invalid issuer in discovery document","expected: "+this._config.options.opendIDConnectURL,"current: "+e.issuer),!1)},e.prototype.validateUrlFromDiscoveryDocument=function(e){var t=[],o=this.validateUrlForHttps(e),r=this.validateUrlAgainstIssuer(e);return o||t.push("https for all urls required. Also for urls received by discovery."),r||t.push("Every url in discovery document has to start with the issuer url.Also see property strictDiscoveryDocumentValidation."),t},e.prototype.validateUrlForHttps=function(e){if(!e)return!0;var t=e.toLowerCase();return!1===this._config.options.requireHttps||(!(!t.match(/^http:\/\/localhost($|[:\/])/)&&!t.match(/^http:\/\/localhost($|[:\/])/)||"remoteOnly"!==this._config.options.requireHttps)||t.startsWith("https://"))},e.prototype.validateUrlAgainstIssuer=function(e){return!this._config.options.strictDiscoveryDocumentValidation||(!e||e.toLowerCase().startsWith(this._config.options.opendIDConnectURL.toLowerCase()))},e.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:O},{type:T},{type:P},{type:N}]},e.ngInjectableDef=r.defineInjectable({factory:function(){return new e(r.inject(i.HttpClient),r.inject(O),r.inject(T),r.inject(P),r.inject(N))},token:e,providedIn:"root"}),e}();function L(e){return t.fromByteArray(new Uint8Array(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var H=function ee(){},K=function(t){function e(){var e=t.call(this)||this;return e._crypto=window.crypto,e}return c(e,t),e.prototype.generateRandom=function(e){var t=new Uint8Array(e);return this._crypto.getRandomValues(t),g.of(L(t))},e.prototype.deriveChallenge=function(e){var t=this._crypto.createHash("sha256").update(e).digest();return g.of(L(new Uint8Array(t.buffer)))},e}(H),q=function(){function e(e,t,o,r,n,i,s){var a=this;this._storage=e,this._config=t,this._logger=o,this._oidc=r,this._crypto=n,this._flow=i,this._tokenValidationHandler=s,this.updateConfig(),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(h.tap(function(){a.updateConfig()}))}),this._flow.onEnter(I.READ_STORAGE,function(){return a.getToken()?a._flow.transitTo$(I.DONE):a._flow.transitTo$(I.CHECK_AUTHORIZED)})}return e.prototype.updateConfig=function(){this.storageTokenName=this._config.getStorageKey(S.TOKEN),this.storageParseIDTokenName=this._config.getStorageKey(S.PARSED_ID_TOKEN),this.storageNonceName=this._config.getStorageKey(S.NONCE)},Object.defineProperty(e.prototype,"parsedIdToken",{get:function(){if(this._parsedIdToken)return this._parsedIdToken;var e=JSON.parse(this._storage.get(this.storageParseIDTokenName));return e||void 0},enumerable:!0,configurable:!0}),e.prototype.getToken=function(){if(this._token)return this._token;var e=JSON.parse(this._storage.get(this.storageTokenName));return e?this._token=new D(e):void 0},e.prototype.setToken=function(r){var n=this;r&&this.processIdToken(r).subscribe(function(e){var t=r.toJson(),o=new Date(e.idTokenExpiresAt+6e5).toUTCString();n._storage.set(n.storageTokenName,JSON.stringify(t),o),n._parsedIdToken=e,n._storage.set(n.storageParseIDTokenName,JSON.stringify(e),o),n._token=r},function(e){n._logger.error(e)})},e.prototype.removeToken=function(){this._storage.remove(this.storageTokenName)},e.prototype.createAndSaveNonce=function(){var t=this;return this._crypto.generateRandom(this._config.options.nonceSize).pipe(h.tap(function(e){t._storage.updateStorageType(m),t._storage.set(t.storageNonceName,e,""),t._storage.updateStorageType(t._config.options.storageType)}))},e.prototype.processIdToken=function(o){var r=this;void 0===o&&(o=this.getToken());var e=o.idToken.split("."),t=j(this.padBase64(e[0])),n=JSON.parse(t),i=j(this.padBase64(e[1])),s=JSON.parse(i);this._storage.updateStorageType(m);var a=this._storage.get(this.storageNonceName);if(this._storage.updateStorageType(this._config.options.storageType),Array.isArray(s.aud)){if(s.aud.every(function(e){return e!==r._config.options.clientID})){var c="Wrong audience: "+s.aud.join(",");return this._logger.warn(c),g.throwError(c)}}else if(s.aud!==this._config.options.clientID){c="Wrong audience: "+s.aud;return this._logger.warn(c),g.throwError(c)}if(!s.sub){c="No sub claim in id_token";return this._logger.warn(c),g.throwError(c)}if(!s.iat){c="No iat claim in id_token";return this._logger.warn(c),g.throwError(c)}if(s.iss!==this._config.options.opendIDConnectURL){c="Wrong issuer: "+s.iss;return this._logger.warn(c),g.throwError(c)}if(s.nonce!==a){c="Wrong nonce: "+s.nonce;return this._logger.warn(c),g.throwError(c)}if(!this._config.options.disableAtHashCheck&&o.accessToken&&!s.at_hash){c="An at_hash is needed!";return this._logger.warn(c),g.throwError(c)}var u=Date.now(),p=1e3*s.iat,h=1e3*s.exp;if(u<=p-6e5||h+6e5<=u){c="Token has expired";return this._logger.error(c),this._logger.error({now:u,issuedAtMSec:p,expiresAtMSec:h}),g.throwError(c)}var f={accessToken:o.accessToken,idToken:o.idToken,jwks:{},idTokenClaims:s,idTokenHeader:n,loadKeys:function(){return r._oidc.jwks$.toPromise()}};g.from(this.checkAtHash(f).then(function(e){if(o.accessToken&&!e){var t="Wrong at_hash";return r._logger.warn(t),Promise.reject(t)}}));return g.from(this.checkSignature(f).then(function(e){return{idToken:o.idToken,idTokenClaims:s,idTokenClaimsJson:i,idTokenHeader:n,idTokenHeaderJson:t,idTokenExpiresAt:h}}))},e.prototype.isAuthenticated=function(e){return void 0===e&&(e=this.getToken()),!!e},e.prototype.logout=function(){var e=this;return g.of(1).pipe(h.tap(function(){e._storage.remove(e.storageTokenName)}))},e.prototype.setStorageType=function(e){return this._storage.updateStorageType(e)},e.prototype.checkAtHash=function(t){return p(this,void 0,void 0,function(){return f(this,function(e){return this._config.options.disableAtHashCheck?[2,Promise.resolve(!0)]:this._tokenValidationHandler?[2,this._tokenValidationHandler.validateAtHash(t)]:(this._logger.warn("No tokenValidationHandler configured. Cannot check at_hash."),[2,!0])})})},e.prototype.padBase64=function(e){for(;e.length%4!=0;)e+="=";return e},e.prototype.checkSignature=function(e){return this._tokenValidationHandler?this._tokenValidationHandler.validateSignature(e):(this._logger.warn("No tokenValidationHandler configured. Cannot check signature."),Promise.resolve(null))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:T},{type:O},{type:P},{type:x},{type:H},{type:N},{type:R,decorators:[{type:r.Optional}]}]},e}(),F=["redirect_uri","client_id","response_type","state","scope"],$="code",J=function(){function e(e,t,o,r,n){this._config=e,this._route=t,this._logger=o,this._configuration=r,this._http=n}return e.prototype.buildRequestUrl=function(e,t,o,r,n){var i=new URLSearchParams;if(i.append("redirect_uri",this._config.options.redirectUri),i.append("client_id",this._config.options.clientID),i.append("response_type",e),i.append("state",o),i.append("scope",t),i.append("nonce",n),r)for(var s in r)r.hasOwnProperty(s)&&F.indexOf(s)<0&&i.append(s,r[s]);var a=i.toString();return this._configuration.discovery$.pipe(h.map(function(e){return e.authorization_endpoint+"?"+a}))},e.prototype.isTokenResponse=function(e){return e.error===undefined},e.prototype.performTokenRequest$=function(o){var r=this;return this._configuration.discovery$.pipe(h.map(function(e){return e.token_endpoint}),h.mergeMap(function(e){var t=new FormData;return t.set("grant_type",o.grant_type),o.code&&t.set("code",o.code),o.refresh_token&&t.set("refresh_token",o.refresh_token),t.set("redirect_uri",r._config.options.redirectUri),t.set("client_id",r._config.options.clientID),o.extras&&t.set("extras",o.extras.toString()),r._http.post(e,t)}),h.map(function(e){if(r.isTokenResponse(e))return new D(e);throw e}))},e}(),G=function(p){function e(e,t,o,r,n,i,s,a,c){var u=p.call(this,e,t,o,r,n)||this;return u._token=i,u._flow=s,u._crypto=a,u._storage=c,u.updateConfig(),u._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(h.tap(function(){u.updateConfig()}))}),u}return c(e,p),e.prototype.updateConfig=function(){this.storageARequestStateName=this._config.getStorageKey(S.A_REQUEST_STATE)},e.prototype.performAuthorizationRequest=function(n){var i=this;void 0===n&&(n=$),this._crypto.generateRandom(10).pipe(h.tap(function(t){i._storage.set(i.storageARequestStateName,t,"");var o=i._config.options.scope.join(" ");!0===i._config.options.refresh_token&&(o+=" offline");var r={prompt:i._config.options.prompt};i._token.createAndSaveNonce().subscribe(function(e){i.buildRequestUrl(n,o,t,r,e).subscribe(function(e){i._logger.debug("Making a request to ",e),window.location.href=e})})})).subscribe(function(){})},e.prototype.completeAuthorizationRequest=function(){var e=this._storage.get(this.storageARequestStateName);this._storage.remove(this.storageARequestStateName);var t=this._route.snapshot.queryParams,o=t.state,r=t.code,n=t.error;if(!o||!r)return Promise.reject("Not Authorized");if(this._logger.debug("Potential authorization request"),!(o===e)){var i="Mismatched request (state and request_uri) dont match.";return this._logger.warn(i),Promise.reject(i)}if(n){var s=t.error_uri,a={error:n,error_description:t.error_description,error_uri:s,state:o};return Promise.reject(a)}this._logger.debug("Delivering authorization response");var c={code:r,state:o};return Promise.resolve(c)},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:O,decorators:[{type:r.Inject,args:[O]}]},{type:o.ActivatedRoute,decorators:[{type:r.Inject,args:[o.ActivatedRoute]}]},{type:P,decorators:[{type:r.Inject,args:[P]}]},{type:x,decorators:[{type:r.Inject,args:[x]}]},{type:i.HttpClient,decorators:[{type:r.Inject,args:[i.HttpClient]}]},{type:q},{type:N},{type:H},{type:T}]},e}(J),W=function(){function e(e,t,o,r,n){var i=this;this._token=e,this._logger=t,this._config=o,this._flow=r,this._requestor=n,this.updateConfig(),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.from([i._flow.transitTo$(I.INITIAL),i._flow.transitToNext$()]).pipe(h.concatAll(),h.tap(function(){i.updateConfig()}))}),this._flow.onEnter(I.CHECK_AUTHORIZED,function(){return g.of(1).pipe(h.tap(function(){i._logger.debug("Checking to see if there is an authorization response to be delivered.")}),h.mergeMap(function(){return g.from(i._requestor.completeAuthorizationRequest()).pipe(h.catchError(function(e){return g.of(e)}))}),h.mergeMap(function(e){return"string"==typeof e?(i._logger.debug("No result is available yet."),i._flow.transitToNext$()):i._flow.transitTo$(I.REQUEST_REFRESH_TOKEN,e)}))}),this._flow.onEnter(I.REQUEST_AUTHORIZATION,function(){return g.of(1).pipe(h.tap(function(){i._requestor.performAuthorizationRequest()}))}),this._flow.onEnter(I.REQUEST_REFRESH_TOKEN,function(e){return i._requestor.performTokenRequest$({grant_type:"authorization_code",code:e.code,redirect_uri:"",client_id:""}).pipe(h.tap(function(e){i._token.setToken(e),i._flow.transitToNext$()}))})}return e.prototype.updateConfig=function(){var t=this;this._flowDebugListener===undefined&&this._config.options.debug&&(this._flowDebugListener=this._flow.subject$.subscribe({next:function(e){t._logger.debug("Flow entered state: "+e)}})),this._autoLogonListener!==undefined&&(this._autoLogonListener(),this._autoLogonListener=undefined),this._config.options.autoLogon&&(this._autoLogonListener=this._flow.onEnter(I.WAITING,function(){return g.of(1).pipe(h.mergeMap(function(){return t._flow.transitToNext$()}))}))},e.prototype.applyConfig=function(e){this._config.applyConfig(e)},e.prototype.isAuthenticated=function(){return this._token.isAuthenticated()},e.prototype.signIn=function(e){return this.isAuthenticated()?Promise.resolve(null):this._flow.currentState!==I.WAITING?(this._logger.error("Not ready yet?"),Promise.reject("Not ready yet?")):this._flow.transitToNext$().toPromise()},e.prototype.signOut=function(){var e=this;this.isAuthenticated()&&(this._token.getToken().refreshToken?this._token.logout().subscribe(function(){window.location.href=e._config.options.opendIDConnectURL+"oauth2/auth/sessions/login/revoke"}):this._logger.warn("No refreshtoken in signOut()"))},Object.defineProperty(e.prototype,"token",{get:function(){return this._token.getToken()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parsedIdToken",{get:function(){return this._token.parsedIdToken},enumerable:!0,configurable:!0}),e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:q},{type:P},{type:O},{type:N},{type:J}]},e}(),B=function te(){},M=function(){function e(){}return e.prototype.handleError=function(e){return g.throwError(e)},e}(),z=function(o){function e(e){var t=o.call(this)||this;return t._config=e,t.store={},t._storageType=y,t.updateStorageType(t._config.options.storageType)||console.warn(t._config.options.storageType+" is not available."),t}return c(e,o),e.prototype.updateStorageType=function(e){return!!this.checkIsStorageAvailable(e)&&(this._storageType=e,!0)},e.prototype.get=function(e){switch(this._storageType){case k:case w:return this.getCookie(e);case v:case m:return window[this._storageType].getItem(e);case y:return this.store[e];case _:default:return null}},e.prototype.set=function(e,t,o){switch(this._storageType){case k:case w:this.setCookie(e,t,this._storageType===k?o:"");break;case v:case m:window[this._storageType].setItem(e,t);break;case y:this.store[e]=t}},e.prototype.remove=function(e){switch(this._storageType){case k:case w:this.removeCookie(e);break;case v:case m:window[this._storageType].removeItem(e);break;case y:delete this.store[e]}},e.prototype.checkIsStorageAvailable=function(e){switch(e){case k:case w:return this.isCookieStorageAvailable();case v:case m:return this.isWindowStorageAvailable(e);case _:case y:return!0;default:return!1}},e.prototype.isWindowStorageAvailable=function(e){try{var t=window&&e in window&&null!==window[e];if(t){var o=Math.random().toString(36).substring(7);window[e].setItem(o,""),window[e].removeItem(o)}return t}catch(r){return!1}},e.prototype.isCookieStorageAvailable=function(){try{if(document&&"cookie"in document){var e=Math.random().toString(36).substring(7);this.setCookie(e,"test",new Date(Date.now()+6e4).toUTCString());var t=this.getCookie(e);return this.removeCookie(e),"test"===t}return!1}catch(o){return!1}},e.prototype.setCookie=function(e,t,o,r){void 0===o&&(o=""),void 0===r&&(r="/"),document.cookie=e+"="+t+(o?"; expires="+o:"")+"; path="+r},e.prototype.removeCookie=function(e,t){void 0===t&&(t="/"),this.setCookie(e,"",new Date(0).toUTCString(),t)},e.prototype.getCookie=function(e){return document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)"+e+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1")},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:O}]},e}(T),V=function(){function e(e,t,o,r){this._token=e,this._errorHandler=t,this._config=o,this._logger=r}return e.prototype.checkUrl=function(t){return!!this._config.options.resourceServer.allowedUrls.find(function(e){return t.startsWith(e)})},e.prototype.intercept=function(e,t){var o,r=this,n=e.url.toLowerCase();if(!this._config)return this._logger.debug('Not adding a access_token to "'+n+'"'),t.handle(e);if(!this._config.options.resourceServer)return this._logger.debug('Not adding a access_token to "'+n+'"'),t.handle(e);if(this._config.options.resourceServer.allowedUrls&&!this.checkUrl(n))return this._logger.debug('Not adding a access_token to "'+n+'", checkUrl failed, allowedUrls is: '+this._config.options.resourceServer.allowedUrls),t.handle(e);if(this._config.options.resourceServer.sendAccessToken&&this._token.isAuthenticated()&&this._token.getToken().accessToken){var i=this._token.getToken().accessToken,s=this._config.options,a=s.authHeader,c=s.authToken;e=e.headers.has(a)?e:e.clone({setHeaders:(o={},o[a]=c+" "+i,o)})}else this._logger.debug('Not adding a access_token to "'+n+'"');return t.handle(e).pipe(h.catchError(function(e){return r._errorHandler.handleError(e)}))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:q},{type:B},{type:O},{type:P}]},e}(),Q=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.cyptoObj=window.crypto||window.msCrypto,e.textEncoder=new window.TextEncoder,e}return c(e,t),e.prototype.validateSignature=function(o,r){return void 0===r&&(r=!0),p(this,void 0,void 0,function(){var t=this;return f(this,function(e){if(!o.idToken)throw new Error("Parameter idToken expected!");if(!o.idTokenHeader)throw new Error("Parameter idTokenHandler expected.");if(!o.jwks)throw new Error("Parameter jwks expected!");if(r&&o.loadKeys&&(!o.jwks.keys||!Array.isArray(o.jwks.keys)))return[2,o.loadKeys().then(function(e){return o.jwks=e}).then(function(e){return t.validateSignature(o,!1)})];if(!(r||o.jwks.keys&&Array.isArray(o.jwks.keys)&&0!==o.jwks.keys.length))throw new Error("Array keys in jwks missing!");return[2,s.JWK.asKeyStore(o.jwks.keys).then(function(e){return s.JWS.createVerify(e).verify(o.idToken).then(function(e){return e})})]})})},e.prototype.calcHash=function(r,n){return p(this,void 0,void 0,function(){var t,o;return f(this,function(e){switch(e.label){case 0:return t=this.textEncoder.encode(r),[4,this.cyptoObj.subtle.digest(n,t)];case 1:return o=e.sent(),[2,String.fromCharCode.apply(null,new Uint16Array(o))]}})})},e}(U),Z=function(){function o(e){if(e)throw new Error("OIDCModule is already loaded. Import it in the AppModule only")}return o.forRoot=function(e,t){return void 0===t&&(t=!0),{ngModule:o,providers:l(e?[{provide:A,useValue:e}]:[],[{provide:N,useClass:E},{provide:O,useClass:O},{provide:P,useClass:P},{provide:T,useClass:z,deps:[O]},{provide:x,useClass:x},{provide:H,useClass:K},{provide:R,useClass:Q},{provide:q,useClass:q},{provide:J,useClass:G},{provide:B,useClass:M},{provide:W,useClass:W},{provide:i.HTTP_INTERCEPTORS,useClass:V,multi:!0}])}},o.decorators=[{type:r.NgModule,args:[{imports:[i.HttpClientModule,n.LoggerModule.forRoot({level:n.NgxLoggerLevel.DEBUG})],declarations:[],exports:[]}]}],o.ctorParameters=function(){return[{type:o,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]},o}();e.CONFIG_OPTIONS=A,e.OIDCConfigStorageKeyNames=S,e.OIDCConfigService=O,e.OIDCService=W,e.OIDCModule=Z,e.OIDCFlows=I,e.OIDCAbstractFlow=C,e.OIDCFlow=b,e.OIDCFlowService=N,e.OIDCDefaultFlowService=E,e.ɵk=z,e.ɵe=H,e.ɵf=K,e.ɵo=V,e.ɵn=M,e.ɵm=B,e.ɵc=P,e.ɵd=x,e.ɵb=T,e.ɵj=G,e.ɵi=J,e.ɵl=Q,e.ɵh=U,e.ɵg=R,e.ɵa=q,Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("rxjs"),require("rxjs/operators"),require("ngx-logger"),require("@angular/common/http"),require("base64-js"),require("@angular/router"),require("node-jose")):"function"==typeof define&&define.amd?define("@minadmin/oidc",["exports","@angular/core","rxjs","rxjs/operators","ngx-logger","@angular/common/http","base64-js","@angular/router","node-jose"],t):t((e.minadmin=e.minadmin||{},e.minadmin.oidc={}),e.ng.core,e.rxjs,e.rxjs.operators,e.ngxLogger,e.ng.common.http,e.base64,e.ng.router,e.nodeJose)}(this,function(e,r,g,f,n,i,t,o,s){"use strict";var a=function(e,t){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o])})(e,t)};function c(e,t){function o(){this.constructor=e}a(e,t),e.prototype=null===t?Object.create(t):(o.prototype=t.prototype,new o)}var u=function(){return(u=Object.assign||function(e){for(var t,o=1,r=arguments.length;o<r;o++)for(var n in t=arguments[o])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e}).apply(this,arguments)};function p(t,s,a,c){return new(a||(a=Promise))(function(e,o){function r(e){try{i(c.next(e))}catch(t){o(t)}}function n(e){try{i(c["throw"](e))}catch(t){o(t)}}function i(t){t.done?e(t.value):new a(function(e){e(t.value)}).then(r,n)}i((c=c.apply(t,s||[])).next())})}function h(r,n){var i,s,a,e,c={label:0,sent:function(){if(1&a[0])throw a[1];return a[1]},trys:[],ops:[]};return e={next:t(0),"throw":t(1),"return":t(2)},"function"==typeof Symbol&&(e[Symbol.iterator]=function(){return this}),e;function t(t){return function(e){return function o(e){if(i)throw new TypeError("Generator is already executing.");for(;c;)try{if(i=1,s&&(a=2&e[0]?s["return"]:e[0]?s["throw"]||((a=s["return"])&&a.call(s),0):s.next)&&!(a=a.call(s,e[1])).done)return a;switch(s=0,a&&(e=[2&e[0],a.value]),e[0]){case 0:case 1:a=e;break;case 4:return c.label++,{value:e[1],done:!1};case 5:c.label++,s=e[1],e=[0];continue;case 7:e=c.ops.pop(),c.trys.pop();continue;default:if(!(a=0<(a=c.trys).length&&a[a.length-1])&&(6===e[0]||2===e[0])){c=0;continue}if(3===e[0]&&(!a||e[1]>a[0]&&e[1]<a[3])){c.label=e[1];break}if(6===e[0]&&c.label<a[1]){c.label=a[1],a=e;break}if(a&&c.label<a[2]){c.label=a[2],c.ops.push(e);break}a[2]&&c.ops.pop(),c.trys.pop();continue}e=n.call(r,c)}catch(t){e=[6,t],s=0}finally{i=a=0}if(5&e[0])throw e[1];return{value:e[0]?e[1]:void 0,done:!0}}([t,e])}}}function d(e,t){var o="function"==typeof Symbol&&e[Symbol.iterator];if(!o)return e;var r,n,i=o.call(e),s=[];try{for(;(void 0===t||0<t--)&&!(r=i.next()).done;)s.push(r.value)}catch(a){n={error:a}}finally{try{r&&!r.done&&(o=i["return"])&&o.call(i)}finally{if(n)throw n.error}}return s}function l(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(d(arguments[t]));return e}var _="none",y="memory",v="localStorage",m="sessionStorage",k="cookie",w="sessionCookie",T=function X(){},I={INITIAL:"initial",UPDATE_CONFIG:"updateConfig",GET_OIDC_CONFIGURATION:"getOIDCConfiguration",READ_STORAGE:"readStorage",CHECK_AUTHORIZED:"checkAuthorized",WAITING:"waiting",REQUEST_AUTHORIZATION:"requestAuthorization",REQUEST_REFRESH_TOKEN:"requestRefreshToken",DONE:"done"},C=function(){function e(e,t,o){this._next=e,this._onEnterCBs=t,this._onLeaveCBs=o}return Object.defineProperty(e.prototype,"next",{get:function(){return this._next},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onEnterCBs",{get:function(){return this._onEnterCBs||(this._onEnterCBs=Array()),this._onEnterCBs},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onLeaveCBs",{get:function(){return this._onLeaveCBs||(this._onLeaveCBs=Array()),this._onLeaveCBs},enumerable:!0,configurable:!0}),e}(),b=function(n){function e(e,t,o){var r=n.call(this,e,t,o)||this;return r._next=e,r._onEnterCBs=t,r._onLeaveCBs=o,r}return c(e,n),e}(C),N=function(){function e(e,t){void 0===t&&(t="initial"),this._states=e,this._initial=t,this._currentState=this._initial,this._subject=new g.BehaviorSubject(this._initial)}return Object.defineProperty(e.prototype,"subject$",{get:function(){return this._subject},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"currentState",{get:function(){return this._currentState},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"states",{get:function(){return this._states},enumerable:!0,configurable:!0}),e.prototype.onEnter=function(e,t){this._states[e].onEnterCBs.push(t)},e.prototype.onLeave=function(e,t){this._states[e].onLeaveCBs.push(t)},e.prototype.transitTo$=function(e){for(var t=this,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];var n=Array();return n.push(g.of(1).pipe(f.mergeMap(function(){return t._currentState===e?g.of():t.can(e)?g.empty():g.throwError(new Error("State does not exists or can't go from \""+t._currentState+'" to "'+e+'"'))}))),this.currentState!==this._initial&&this._states[e].onLeaveCBs&&n.push(g.forkJoin(this._states[e].onLeaveCBs.map(function(e){return e.apply(void 0,l(o))}))),n.push(g.of(1).pipe(f.tap(function(){t._currentState=e}),f.tap(function(){t._subject.next(e)}))),this._states[e].onEnterCBs&&n.push(g.forkJoin(this._states[e].onEnterCBs.map(function(e){return e.apply(void 0,l(o))}))),g.from(n).pipe(f.concatAll(),f.map(function(){return undefined}))},e.prototype.can=function(e){return!(!this._states[e]||!this._states[this._currentState].next.includes(e))},e.prototype.transitions=function(e){return this._states[e].next},e.prototype.transitToNext$=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return this.transitTo$(this._states[this._currentState].next[0])},e}(),E=function(e){function t(){return e.call(this,{initial:new b([I.GET_OIDC_CONFIGURATION,I.UPDATE_CONFIG]),updateConfig:new b([I.INITIAL]),getOIDCConfiguration:new b([I.READ_STORAGE,I.INITIAL]),readStorage:new b([I.CHECK_AUTHORIZED,I.DONE,I.INITIAL]),checkAuthorized:new b([I.WAITING,I.REQUEST_REFRESH_TOKEN]),waiting:new b([I.REQUEST_AUTHORIZATION,I.INITIAL]),requestAuthorization:new b([I.REQUEST_REFRESH_TOKEN,I.DONE,I.INITIAL]),requestRefreshToken:new b([I.DONE,I.INITIAL]),done:new b([I.INITIAL])},I.INITIAL)||this}return c(t,e),t.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],t.ctorParameters=function(){return[]},t.ngInjectableDef=r.defineInjectable({factory:function(){return new t},token:t,providedIn:"root"}),t}(N),A=new r.InjectionToken("config.options"),O={TOKEN:"storageTokenName",OIDCCONFIG:"storageOIDCConfigName",OIDCJWKs:"storageOIDCJWKsName",NONCE:"storageNonceName",PARSED_ID_TOKEN:"storageParsedIDTokenName",A_REQUEST_STATE:"storageARequestStateName"},S=function(){function e(e,t){this._flow=t,this.options={redirectUri:window.location.origin+"/",scope:["openid"],prompt:"consent",refresh_token:!0,debug:!1,autoLogon:!1,authHeader:"Authorization",authToken:"Bearer",storageKeyPrefix:"mindadmin-auth",storageKeySeperator:"_",storageTokenName:"token",storageOIDCConfigName:"oidcconfig",storageOIDCJWKsName:"oidcjwks",storageNonceName:"nonce",storageParsedIDTokenName:"parsed-id-token",storageARequestStateName:"a-request-state",requireHttps:"remoteonly",strictDiscoveryDocumentValidation:!0,sessionChecksEnabled:!1,skipIssuerCheck:!1,nonceSize:32,disableAtHashCheck:!0,storageType:v},this.applyConfig(e,!0).subscribe()}return e.prototype.applyConfig=function(e,t){var o=this;return void 0===t&&(t=!1),g.of(1).pipe(f.tap(function(){o.options=u({},o.options,e),o.options.opendIDConnectURL=o.options.opendIDConnectURL||"",o.options.opendIDConnectURL.endsWith("/")||(o.options.opendIDConnectURL+="/")}),f.mergeMap(function(){if(t)return g.empty();var e=Array();return o._flow.currentState!==I.INITIAL&&e.push(o._flow.transitTo$(I.INITIAL)),e.push(o._flow.transitTo$(I.UPDATE_CONFIG)),e.push(o._flow.transitTo$(I.INITIAL)),g.from(e).pipe(f.concatAll())}))},e.prototype.getStorageKey=function(e){return this.options.storageKeyPrefix?[this.options.storageKeyPrefix,this.options[e]].join(this.options.storageKeySeperator):this.options[e]},e.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:undefined,decorators:[{type:r.Inject,args:[A]}]},{type:N}]},e.ngInjectableDef=r.defineInjectable({factory:function(){return new e(r.inject(A),r.inject(N))},token:e,providedIn:"root"}),e}(),D=function(){function e(e){this.accessToken=e.access_token,this.tokenType=e.token_type||"bearer",this.expiresIn=e.expires_in,this.refreshToken=e.refresh_token,this.scope=e.scope,this.idToken=e.id_token,this.issuedAt=e.issued_at||Math.round((new Date).getTime()/1e3)}return e.prototype.toJson=function(){return{access_token:this.accessToken,id_token:this.idToken,refresh_token:this.refreshToken,scope:this.scope,token_type:this.tokenType,issued_at:this.issuedAt,expires_in:this.expiresIn}},e}();function j(e){var t=e.replace(/\-/g,"+").replace(/\_/g,"/");return decodeURIComponent(atob(t).split("").map(function(e){return"%"+("00"+e.charCodeAt(0).toString(16)).slice(-2)}).join(""))}var R=function Y(){},U=function(){function e(){}return e.prototype.validateAtHash=function(a){return p(this,void 0,void 0,function(){var t,o,r,n,i,s;return h(this,function(e){switch(e.label){case 0:return t=this.inferHashAlgorithm(a.idTokenHeader),[4,this.calcHash(a.accessToken,t)];case 1:return o=e.sent(),r=o.substr(0,o.length/2),n=btoa(unescape(encodeURIComponent(r))),i=n.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,""),s=a.idTokenClaims.at_hash.replace(/=/g,""),i!==s&&(console.error("exptected at_hash: "+i),console.error("actual at_hash: "+s)),[2,i===s]}})})},e.prototype.inferHashAlgorithm=function(e){var t=e.alg;if(!t.match(/^.S[0-9]{3}$/))throw new Error("Algorithm not supported: "+t);return"SHA-"+t.substr(2)},e}(),P=function(){function e(e,t,o){var r=this;this._customLogger=e,this._config=t,this._flow=o,this._debug=!1,this._logger=this._customLogger.create({level:n.NgxLoggerLevel.INFO}),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(f.tap(function(){r._config.options.debug&&!r._debug&&(r._logger.updateConfig({level:n.NgxLoggerLevel.DEBUG}),r._debug=!0)}))})}return e.prototype.trace=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).trace.apply(t,l([e],o))},e.prototype.debug=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).debug.apply(t,l([e],o))},e.prototype.info=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).info.apply(t,l([e],o))},e.prototype.log=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).log.apply(t,l([e],o))},e.prototype.warn=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).warn.apply(t,l([e],o))},e.prototype.error=function(e){for(var t,o=[],r=1;r<arguments.length;r++)o[r-1]=arguments[r];(t=this._logger).error.apply(t,l([e],o))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:n.CustomNGXLoggerService},{type:S},{type:N}]},e}(),x=function(){function e(e,t,o,r,n){var i=this;this._http=e,this._config=t,this._storage=o,this._logger=r,this._flow=n,this.updateConfig(),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(f.tap(function(){i.updateConfig()}))}),this._flow.onEnter(I.GET_OIDC_CONFIGURATION,function(){return g.of(1).pipe(f.mergeMap(function(){return i.discovery$.pipe(f.mergeMap(function(e){return i._flow.transitToNext$(e)}),f.map(function(){return undefined}))}))})}return e.prototype.updateConfig=function(){var e=this._config.options.opendIDConnectURL+".well-known/openid-configuration";this._discoveryURI!==e&&(this.storageOIDCConfigName&&this._storage.remove(this.storageOIDCConfigName),this.storageOIDCJWKsName&&this._storage.remove(this.storageOIDCJWKsName)),this.storageOIDCConfigName=this._config.getStorageKey(O.OIDCCONFIG),this.storageOIDCJWKsName=this._config.getStorageKey(O.OIDCJWKs),this._discoveryURI=e},Object.defineProperty(e.prototype,"discoveryURI",{get:function(){return this._discoveryURI},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"discovery$",{get:function(){var t=this,e=JSON.parse(this._storage.get(this.storageOIDCConfigName));return e?g.of(e):this._http.get(this._discoveryURI).pipe(f.tap(function(e){if(!t.validateDiscoveryDocument(e))throw new Error("Failed to validate the discovery Document");t._logger.debug("Validated the OIDC Document"),t._storage.set(t.storageOIDCConfigName,JSON.stringify(e),new Date((new Date).getTime()+36e5).toUTCString())}))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"jwks$",{get:function(){var o=this,e=JSON.parse(this._storage.get(this.storageOIDCJWKsName));return e?g.of(e):this.discovery$.pipe(f.mergeMap(function(t){return t.jwks_uri?o._http.get(t.jwks_uri).pipe(f.tap(function(e){},function(e){throw o._logger.error("error loading jwks",e),new Error('error loading JWKs from "'+t.jwks_uri+'"')})):g.throwError(new Error('No jwks_uri given in "'+o._discoveryURI+'"'))}),f.tap(function(e){o._storage.set(o.storageOIDCJWKsName,JSON.stringify(e),new Date((new Date).getTime()+36e5).toUTCString())}))},enumerable:!0,configurable:!0}),e.prototype.validateDiscoveryDocument=function(e){var t;return this._config.options.skipIssuerCheck||e.issuer===this._config.options.opendIDConnectURL?0<(t=this.validateUrlFromDiscoveryDocument(e.authorization_endpoint)).length?(this._logger.error("error validating authorization_endpoint in discovery document",t),!1):0<(t=this.validateUrlFromDiscoveryDocument(e.end_session_endpoint)).length?(this._logger.error("error validating end_session_endpoint in discovery document",t),!1):(0<(t=this.validateUrlFromDiscoveryDocument(e.token_endpoint)).length&&this._logger.error("error validating token_endpoint in discovery document",t),0<(t=this.validateUrlFromDiscoveryDocument(e.userinfo_endpoint)).length?(this._logger.error("error validating userinfo_endpoint in discovery document",t),!1):0<(t=this.validateUrlFromDiscoveryDocument(e.jwks_uri)).length?(this._logger.error("error validating jwks_uri in discovery document",t),!1):(this._config.options.sessionChecksEnabled&&!e.check_session_iframe&&this._logger.warn("sessionChecksEnabled is activated but discovery document does not contain a check_session_iframe field"),!0)):(this._logger.error("invalid issuer in discovery document","expected: "+this._config.options.opendIDConnectURL,"current: "+e.issuer),!1)},e.prototype.validateUrlFromDiscoveryDocument=function(e){var t=[],o=this.validateUrlForHttps(e),r=this.validateUrlAgainstIssuer(e);return o||t.push("https for all urls required. Also for urls received by discovery."),r||t.push("Every url in discovery document has to start with the issuer url.Also see property strictDiscoveryDocumentValidation."),t},e.prototype.validateUrlForHttps=function(e){if(!e)return!0;var t=e.toLowerCase();return!1===this._config.options.requireHttps||(!(!t.match(/^http:\/\/localhost($|[:\/])/)&&!t.match(/^http:\/\/localhost($|[:\/])/)||"remoteOnly"!==this._config.options.requireHttps)||t.startsWith("https://"))},e.prototype.validateUrlAgainstIssuer=function(e){return!this._config.options.strictDiscoveryDocumentValidation||(!e||e.toLowerCase().startsWith(this._config.options.opendIDConnectURL.toLowerCase()))},e.decorators=[{type:r.Injectable,args:[{providedIn:"root"}]}],e.ctorParameters=function(){return[{type:i.HttpClient},{type:S},{type:T},{type:P},{type:N}]},e.ngInjectableDef=r.defineInjectable({factory:function(){return new e(r.inject(i.HttpClient),r.inject(S),r.inject(T),r.inject(P),r.inject(N))},token:e,providedIn:"root"}),e}();function L(e){return t.fromByteArray(new Uint8Array(e)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var H=function ee(){},K=function(t){function e(){var e=t.call(this)||this;return e._crypto=window.crypto,e}return c(e,t),e.prototype.generateRandom=function(e){var t=new Uint8Array(e);return this._crypto.getRandomValues(t),g.of(L(t))},e.prototype.deriveChallenge=function(e){var t=this._crypto.createHash("sha256").update(e).digest();return g.of(L(new Uint8Array(t.buffer)))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[]},e}(H),q=function(){function e(e,t,o,r,n,i,s){var a=this;this._storage=e,this._config=t,this._logger=o,this._oidc=r,this._crypto=n,this._flow=i,this._tokenValidationHandler=s,this.updateConfig(),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(f.tap(function(){a.updateConfig()}))}),this._flow.onEnter(I.READ_STORAGE,function(){return a.getToken()?a._flow.transitTo$(I.DONE):a._flow.transitTo$(I.CHECK_AUTHORIZED)})}return e.prototype.updateConfig=function(){this.storageTokenName=this._config.getStorageKey(O.TOKEN),this.storageParseIDTokenName=this._config.getStorageKey(O.PARSED_ID_TOKEN),this.storageNonceName=this._config.getStorageKey(O.NONCE)},Object.defineProperty(e.prototype,"parsedIdToken",{get:function(){if(this._parsedIdToken)return this._parsedIdToken;var e=JSON.parse(this._storage.get(this.storageParseIDTokenName));return e||void 0},enumerable:!0,configurable:!0}),e.prototype.getToken=function(){if(this._token)return this._token;var e=JSON.parse(this._storage.get(this.storageTokenName));return e?this._token=new D(e):void 0},e.prototype.setToken=function(r){var n=this;r&&this.processIdToken(r).subscribe(function(e){var t=r.toJson(),o=new Date(e.idTokenExpiresAt+6e5).toUTCString();n._storage.set(n.storageTokenName,JSON.stringify(t),o),n._parsedIdToken=e,n._storage.set(n.storageParseIDTokenName,JSON.stringify(e),o),n._token=r},function(e){n._logger.error(e)})},e.prototype.removeToken=function(){this._storage.remove(this.storageTokenName)},e.prototype.createAndSaveNonce=function(){var t=this;return this._crypto.generateRandom(this._config.options.nonceSize).pipe(f.tap(function(e){t._storage.updateStorageType(m),t._storage.set(t.storageNonceName,e,""),t._storage.updateStorageType(t._config.options.storageType)}))},e.prototype.processIdToken=function(o){var r=this;void 0===o&&(o=this.getToken());var e=o.idToken.split("."),t=j(this.padBase64(e[0])),n=JSON.parse(t),i=j(this.padBase64(e[1])),s=JSON.parse(i);this._storage.updateStorageType(m);var a=this._storage.get(this.storageNonceName);if(this._storage.updateStorageType(this._config.options.storageType),Array.isArray(s.aud)){if(s.aud.every(function(e){return e!==r._config.options.clientID})){var c="Wrong audience: "+s.aud.join(",");return this._logger.warn(c),g.throwError(c)}}else if(s.aud!==this._config.options.clientID){c="Wrong audience: "+s.aud;return this._logger.warn(c),g.throwError(c)}if(!s.sub){c="No sub claim in id_token";return this._logger.warn(c),g.throwError(c)}if(!s.iat){c="No iat claim in id_token";return this._logger.warn(c),g.throwError(c)}if(s.iss!==this._config.options.opendIDConnectURL){c="Wrong issuer: "+s.iss;return this._logger.warn(c),g.throwError(c)}if(s.nonce!==a){c="Wrong nonce: "+s.nonce;return this._logger.warn(c),g.throwError(c)}if(!this._config.options.disableAtHashCheck&&o.accessToken&&!s.at_hash){c="An at_hash is needed!";return this._logger.warn(c),g.throwError(c)}var u=Date.now(),p=1e3*s.iat,f=1e3*s.exp;if(u<=p-6e5||f+6e5<=u){c="Token has expired";return this._logger.error(c),this._logger.error({now:u,issuedAtMSec:p,expiresAtMSec:f}),g.throwError(c)}var h={accessToken:o.accessToken,idToken:o.idToken,jwks:{},idTokenClaims:s,idTokenHeader:n,loadKeys:function(){return r._oidc.jwks$.toPromise()}};g.from(this.checkAtHash(h).then(function(e){if(o.accessToken&&!e){var t="Wrong at_hash";return r._logger.warn(t),Promise.reject(t)}}));return g.from(this.checkSignature(h).then(function(e){return{idToken:o.idToken,idTokenClaims:s,idTokenClaimsJson:i,idTokenHeader:n,idTokenHeaderJson:t,idTokenExpiresAt:f}}))},e.prototype.isAuthenticated=function(e){return void 0===e&&(e=this.getToken()),!!e},e.prototype.logout=function(){var e=this;return g.of(1).pipe(f.tap(function(){e._storage.remove(e.storageTokenName)}))},e.prototype.setStorageType=function(e){return this._storage.updateStorageType(e)},e.prototype.checkAtHash=function(t){return p(this,void 0,void 0,function(){return h(this,function(e){return this._config.options.disableAtHashCheck?[2,Promise.resolve(!0)]:this._tokenValidationHandler?[2,this._tokenValidationHandler.validateAtHash(t)]:(this._logger.warn("No tokenValidationHandler configured. Cannot check at_hash."),[2,!0])})})},e.prototype.padBase64=function(e){for(;e.length%4!=0;)e+="=";return e},e.prototype.checkSignature=function(e){return this._tokenValidationHandler?this._tokenValidationHandler.validateSignature(e):(this._logger.warn("No tokenValidationHandler configured. Cannot check signature."),Promise.resolve(null))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:T},{type:S},{type:P},{type:x},{type:H},{type:N},{type:R,decorators:[{type:r.Optional}]}]},e}(),F=["redirect_uri","client_id","response_type","state","scope"],$="code",J=function(){function e(e,t,o,r,n){this._config=e,this._route=t,this._logger=o,this._configuration=r,this._http=n}return e.prototype.buildRequestUrl=function(e,t,o,r,n){var i=new URLSearchParams;if(i.append("redirect_uri",this._config.options.redirectUri),i.append("client_id",this._config.options.clientID),i.append("response_type",e),i.append("state",o),i.append("scope",t),i.append("nonce",n),r)for(var s in r)r.hasOwnProperty(s)&&F.indexOf(s)<0&&i.append(s,r[s]);var a=i.toString();return this._configuration.discovery$.pipe(f.map(function(e){return e.authorization_endpoint+"?"+a}))},e.prototype.isTokenResponse=function(e){return e.error===undefined},e.prototype.performTokenRequest$=function(o){var r=this;return this._configuration.discovery$.pipe(f.map(function(e){return e.token_endpoint}),f.mergeMap(function(e){var t=new FormData;return t.set("grant_type",o.grant_type),o.code&&t.set("code",o.code),o.refresh_token&&t.set("refresh_token",o.refresh_token),t.set("redirect_uri",r._config.options.redirectUri),t.set("client_id",r._config.options.clientID),o.extras&&t.set("extras",o.extras.toString()),r._http.post(e,t)}),f.map(function(e){if(r.isTokenResponse(e))return new D(e);throw e}))},e}(),G=function(p){function e(e,t,o,r,n,i,s,a,c){var u=p.call(this,e,t,o,r,n)||this;return u._token=i,u._flow=s,u._crypto=a,u._storage=c,u.updateConfig(),u._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(f.tap(function(){u.updateConfig()}))}),u}return c(e,p),e.prototype.updateConfig=function(){this.storageARequestStateName=this._config.getStorageKey(O.A_REQUEST_STATE)},e.prototype.performAuthorizationRequest=function(r){var n=this;void 0===r&&(r=$),this._crypto.generateRandom(10).pipe(f.mergeMap(function(t){return n._token.createAndSaveNonce().pipe(f.map(function(e){return[t,e]}))}),f.mergeMap(function(e){n._storage.set(n.storageARequestStateName,e[0],"");var t=n._config.options.scope.join(" ");!0===n._config.options.refresh_token&&(t+=" offline");var o={prompt:n._config.options.prompt};return n.buildRequestUrl(r,t,e[0],o,e[1])}),f.tap(function(e){n._logger.debug("Making a request to ",e),window.location.href=e})).subscribe(function(){})},e.prototype.completeAuthorizationRequest=function(){var e=this._storage.get(this.storageARequestStateName);this._storage.remove(this.storageARequestStateName);var t=this._route.snapshot.queryParams,o=t.state,r=t.code,n=t.error;if(!o||!r)return Promise.reject("Not Authorized");if(this._logger.debug("Potential authorization request"),!(o===e)){var i="Mismatched request (state and request_uri) dont match.";return this._logger.warn(i),Promise.reject(i)}if(n){var s=t.error_uri,a={error:n,error_description:t.error_description,error_uri:s,state:o};return Promise.reject(a)}this._logger.debug("Delivering authorization response");var c={code:r,state:o};return Promise.resolve(c)},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:S,decorators:[{type:r.Inject,args:[S]}]},{type:o.ActivatedRoute,decorators:[{type:r.Inject,args:[o.ActivatedRoute]}]},{type:P,decorators:[{type:r.Inject,args:[P]}]},{type:x,decorators:[{type:r.Inject,args:[x]}]},{type:i.HttpClient,decorators:[{type:r.Inject,args:[i.HttpClient]}]},{type:q},{type:N},{type:H},{type:T}]},e}(J),W=function(){function e(e,t,o,r,n){var i=this;this._token=e,this._logger=t,this._config=o,this._flow=r,this._requestor=n,this.updateConfig(),this._flow.onEnter(I.UPDATE_CONFIG,function(){return g.of(1).pipe(f.tap(function(){return i.updateConfig()}))}),this._flow.onEnter(I.CHECK_AUTHORIZED,function(){return g.of(1).pipe(f.tap(function(){i._logger.debug("Checking to see if there is an authorization response to be delivered.")}),f.mergeMap(function(){return g.from(i._requestor.completeAuthorizationRequest()).pipe(f.catchError(function(e){return g.of(e)}))}),f.mergeMap(function(e){return"string"==typeof e?(i._logger.debug("No result is available yet."),i._flow.transitToNext$()):i._flow.transitTo$(I.REQUEST_REFRESH_TOKEN,e)}))}),this._flow.onEnter(I.REQUEST_AUTHORIZATION,function(){return g.of(1).pipe(f.tap(function(){i._requestor.performAuthorizationRequest()}))}),this._flow.onEnter(I.REQUEST_REFRESH_TOKEN,function(e){return i._requestor.performTokenRequest$({grant_type:"authorization_code",code:e.code,redirect_uri:"",client_id:""}).pipe(f.tap(function(e){i._token.setToken(e),i._flow.transitToNext$()}))})}return e.prototype.ngOnInit=function(){},e.prototype.updateConfig=function(){var t=this;this._flowDebugListener===undefined&&this._config.options.debug&&(this._flowDebugListener=this._flow.subject$.subscribe({next:function(e){t._logger.debug("Flow entered state: "+e)}})),this._autoLogonListener!==undefined&&(this._autoLogonListener(),this._autoLogonListener=undefined),this._config.options.autoLogon&&(this._autoLogonListener=this._flow.onEnter(I.WAITING,function(){return g.of(1).pipe(f.mergeMap(function(){return t._flow.transitToNext$()}))}))},e.prototype.run$=function(e){return e?g.from([this._config.applyConfig(e),this._flow.transitToNext$()]).pipe(f.concatAll()):this._flow.transitToNext$()},e.prototype.isAuthenticated=function(){return this._token.isAuthenticated()},e.prototype.signIn=function(e){return this.isAuthenticated()?Promise.resolve(null):this._flow.currentState!==I.WAITING?(this._logger.error("Not ready yet?"),Promise.reject("Not ready yet?")):this._flow.transitToNext$().toPromise()},e.prototype.signOut=function(){var e=this;this.isAuthenticated()&&(this._token.getToken().refreshToken?this._token.logout().subscribe(function(){window.location.href=e._config.options.opendIDConnectURL+"oauth2/auth/sessions/login/revoke"}):this._logger.warn("No refreshtoken in signOut()"))},Object.defineProperty(e.prototype,"token",{get:function(){return this._token.getToken()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"parsedIdToken",{get:function(){return this._token.parsedIdToken},enumerable:!0,configurable:!0}),e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:q},{type:P},{type:S},{type:N},{type:J}]},e}(),B=function te(){},M=function(){function e(){}return e.prototype.handleError=function(e){return g.throwError(e)},e}(),z=function(o){function e(e){var t=o.call(this)||this;return t._config=e,t.store={},t._storageType=y,t.updateStorageType(t._config.options.storageType)||console.warn(t._config.options.storageType+" is not available."),t}return c(e,o),e.prototype.updateStorageType=function(e){return!!this.checkIsStorageAvailable(e)&&(this._storageType=e,!0)},e.prototype.get=function(e){switch(this._storageType){case k:case w:return this.getCookie(e);case v:case m:return window[this._storageType].getItem(e);case y:return this.store[e];case _:default:return null}},e.prototype.set=function(e,t,o){switch(this._storageType){case k:case w:this.setCookie(e,t,this._storageType===k?o:"");break;case v:case m:window[this._storageType].setItem(e,t);break;case y:this.store[e]=t}},e.prototype.remove=function(e){switch(this._storageType){case k:case w:this.removeCookie(e);break;case v:case m:window[this._storageType].removeItem(e);break;case y:delete this.store[e]}},e.prototype.checkIsStorageAvailable=function(e){switch(e){case k:case w:return this.isCookieStorageAvailable();case v:case m:return this.isWindowStorageAvailable(e);case _:case y:return!0;default:return!1}},e.prototype.isWindowStorageAvailable=function(e){try{var t=window&&e in window&&null!==window[e];if(t){var o=Math.random().toString(36).substring(7);window[e].setItem(o,""),window[e].removeItem(o)}return t}catch(r){return!1}},e.prototype.isCookieStorageAvailable=function(){try{if(document&&"cookie"in document){var e=Math.random().toString(36).substring(7);this.setCookie(e,"test",new Date(Date.now()+6e4).toUTCString());var t=this.getCookie(e);return this.removeCookie(e),"test"===t}return!1}catch(o){return!1}},e.prototype.setCookie=function(e,t,o,r){void 0===o&&(o=""),void 0===r&&(r="/"),document.cookie=e+"="+t+(o?"; expires="+o:"")+"; path="+r},e.prototype.removeCookie=function(e,t){void 0===t&&(t="/"),this.setCookie(e,"",new Date(0).toUTCString(),t)},e.prototype.getCookie=function(e){return document.cookie.replace(new RegExp("(?:(?:^|.*;\\s*)"+e+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1")},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:S}]},e}(T),V=function(){function e(e,t,o,r){this._token=e,this._errorHandler=t,this._config=o,this._logger=r}return e.prototype.checkUrl=function(t){return!!this._config.options.resourceServer.allowedUrls.find(function(e){return t.startsWith(e)})},e.prototype.intercept=function(e,t){var o,r=this,n=e.url.toLowerCase();if(!this._config)return this._logger.debug('Not adding a access_token to "'+n+'"'),t.handle(e);if(!this._config.options.resourceServer)return this._logger.debug('Not adding a access_token to "'+n+'"'),t.handle(e);if(this._config.options.resourceServer.allowedUrls&&!this.checkUrl(n))return this._logger.debug('Not adding a access_token to "'+n+'", checkUrl failed, allowedUrls is: '+this._config.options.resourceServer.allowedUrls),t.handle(e);if(this._config.options.resourceServer.sendAccessToken&&this._token.isAuthenticated()&&this._token.getToken().accessToken){var i=this._token.getToken().accessToken,s=this._config.options,a=s.authHeader,c=s.authToken;e=e.headers.has(a)?e:e.clone({setHeaders:(o={},o[a]=c+" "+i,o)})}else this._logger.debug('Not adding a access_token to "'+n+'"');return t.handle(e).pipe(f.catchError(function(e){return r._errorHandler.handleError(e)}))},e.decorators=[{type:r.Injectable}],e.ctorParameters=function(){return[{type:q},{type:B},{type:S},{type:P}]},e}(),Q=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.cyptoObj=window.crypto||window.msCrypto,e.textEncoder=new window.TextEncoder,e}return c(e,t),e.prototype.validateSignature=function(o,r){return void 0===r&&(r=!0),p(this,void 0,void 0,function(){var t=this;return h(this,function(e){if(!o.idToken)throw new Error("Parameter idToken expected!");if(!o.idTokenHeader)throw new Error("Parameter idTokenHandler expected.");if(!o.jwks)throw new Error("Parameter jwks expected!");if(r&&o.loadKeys&&(!o.jwks.keys||!Array.isArray(o.jwks.keys)))return[2,o.loadKeys().then(function(e){return o.jwks=e}).then(function(e){return t.validateSignature(o,!1)})];if(!(r||o.jwks.keys&&Array.isArray(o.jwks.keys)&&0!==o.jwks.keys.length))throw new Error("Array keys in jwks missing!");return[2,s.JWK.asKeyStore(o.jwks.keys).then(function(e){return s.JWS.createVerify(e).verify(o.idToken).then(function(e){return e})})]})})},e.prototype.calcHash=function(r,n){return p(this,void 0,void 0,function(){var t,o;return h(this,function(e){switch(e.label){case 0:return t=this.textEncoder.encode(r),[4,this.cyptoObj.subtle.digest(n,t)];case 1:return o=e.sent(),[2,String.fromCharCode.apply(null,new Uint16Array(o))]}})})},e}(U),Z=function(){function o(e){if(e)throw new Error("OIDCModule is already loaded. Import it in the AppModule only")}return o.forRoot=function(e,t){return void 0===t&&(t=!0),{ngModule:o,providers:l(e?[{provide:A,useValue:e}]:[],[{provide:N,useClass:E},{provide:S,useClass:S},{provide:P,useClass:P},{provide:T,useClass:z,deps:[S]},{provide:x,useClass:x},{provide:H,useClass:K},{provide:R,useClass:Q},{provide:q,useClass:q},{provide:J,useClass:G},{provide:B,useClass:M},{provide:W,useClass:W},{provide:i.HTTP_INTERCEPTORS,useClass:V,multi:!0}])}},o.decorators=[{type:r.NgModule,args:[{imports:[i.HttpClientModule,n.LoggerModule.forRoot({level:n.NgxLoggerLevel.DEBUG})],declarations:[],exports:[]}]}],o.ctorParameters=function(){return[{type:o,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]},o}();e.CONFIG_OPTIONS=A,e.OIDCConfigStorageKeyNames=O,e.OIDCConfigService=S,e.OIDCService=W,e.OIDCModule=Z,e.OIDCFlows=I,e.OIDCAbstractFlow=C,e.OIDCFlow=b,e.OIDCFlowService=N,e.OIDCDefaultFlowService=E,e.ɵk=z,e.ɵe=H,e.ɵf=K,e.ɵo=V,e.ɵn=M,e.ɵm=B,e.ɵc=P,e.ɵd=x,e.ɵb=T,e.ɵj=G,e.ɵi=J,e.ɵl=Q,e.ɵh=U,e.ɵg=R,e.ɵa=q,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=minadmin-oidc.umd.min.js.map

@@ -8,2 +8,4 @@ /**

import { OIDCFlowService, OIDCFlows } from './flow.service';
import { of, empty, from } from 'rxjs';
import { tap, mergeMap, concatAll } from 'rxjs/operators';
import * as i0 from "@angular/core";

@@ -56,3 +58,3 @@ import * as i1 from "./flow.service";

}));
this.applyConfig(options, true);
this.applyConfig(options, true).subscribe();
}

@@ -65,13 +67,21 @@ /**

applyConfig(options, noTransition = false) {
this.options = Object.assign({}, ((/** @type {?} */ (this.options))), options);
this.options.opendIDConnectURL = this.options.opendIDConnectURL || '';
if (!this.options.opendIDConnectURL.endsWith('/')) {
this.options.opendIDConnectURL += '/';
}
if (this._flow.currentState !== OIDCFlows.INITIAL) {
this._flow.transitTo$(OIDCFlows.INITIAL).subscribe();
}
if (!noTransition) {
this._flow.transitTo$(OIDCFlows.UPDATE_CONFIG).subscribe();
}
return of(1).pipe(tap(() => {
this.options = Object.assign({}, ((/** @type {?} */ (this.options))), options);
this.options.opendIDConnectURL = this.options.opendIDConnectURL || '';
if (!this.options.opendIDConnectURL.endsWith('/')) {
this.options.opendIDConnectURL += '/';
}
}), mergeMap(() => {
if (noTransition) {
return empty();
}
/** @type {?} */
let transitions = Array();
if (this._flow.currentState !== OIDCFlows.INITIAL) {
transitions.push(this._flow.transitTo$(OIDCFlows.INITIAL));
}
transitions.push(this._flow.transitTo$(OIDCFlows.UPDATE_CONFIG));
transitions.push(this._flow.transitTo$(OIDCFlows.INITIAL));
return from(transitions).pipe(concatAll());
}));
}

@@ -104,2 +114,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRTVELE1BQU0sT0FBTyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQU0sZ0JBQWdCLENBQUM7OztJQUdyRSxPQUFRLGtCQUFrQjtJQUMxQixZQUFhLHVCQUF1QjtJQUNwQyxVQUFXLHFCQUFxQjtJQUNoQyxPQUFRLGtCQUFrQjtJQUMxQixpQkFBa0IsMEJBQTBCO0lBQzVDLGlCQUFrQiwwQkFBMEI7OztBQU05QyxNQUFNOzs7OztJQW9DSixZQUMwQixPQUFvQixFQUNwQyxLQUFzQjtRQUF0QixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQXJDekIsWUFBTyxHQUFHLG1CQUFBO1lBQ2YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUc7O1lBR3pDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUNqQixNQUFNLEVBQUUsU0FBUztZQUNqQixhQUFhLEVBQUUsSUFBSTtZQUVuQixLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxLQUFLO1lBRWhCLFVBQVUsRUFBRSxlQUFlO1lBQzNCLFNBQVMsRUFBRSxRQUFRO1lBRW5CLGdCQUFnQixFQUFFLGdCQUFnQjtZQUNsQyxtQkFBbUIsRUFBRSxHQUFHO1lBQ3hCLGdCQUFnQixFQUFFLE9BQU87WUFDekIscUJBQXFCLEVBQUUsWUFBWTtZQUNuQyxtQkFBbUIsRUFBRSxVQUFVO1lBQy9CLGdCQUFnQixFQUFFLE9BQU87WUFDekIsd0JBQXdCLEVBQUUsaUJBQWlCO1lBQzNDLHdCQUF3QixFQUFFLGlCQUFpQjtZQUUzQyxZQUFZLEVBQUUsWUFBWTtZQUMxQixpQ0FBaUMsRUFBRSxJQUFJO1lBQ3ZDLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsZUFBZSxFQUFFLEtBQUs7WUFFdEIsU0FBUyxFQUFFLEVBQUU7WUFFYixrQkFBa0IsRUFBRSxJQUFJO1lBRXhCLFdBQVcsRUFBRSxXQUFXLENBQUMsYUFBYTtTQUN2QyxFQUFlLENBQUM7UUFNZixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7Ozs7SUFFTSxXQUFXLENBQUMsT0FBb0IsRUFBRSxZQUFZLEdBQUcsS0FBSztRQUMzRCxJQUFJLENBQUMsT0FBTyxxQkFBUSxDQUFDLG1CQUFBLElBQUksQ0FBQyxPQUFPLEVBQWUsQ0FBQyxFQUFLLE9BQU8sQ0FBRSxDQUFDO1FBRWhFLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLElBQUksR0FBRyxDQUFDO1NBQ3ZDO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsT0FBTyxFQUFFO1lBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUN0RDtRQUVELElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzVEO0lBQ0gsQ0FBQzs7Ozs7SUFFTSxhQUFhLENBQUMsT0FBa0M7UUFDckQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtZQUNsQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3pELElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQ2pDO1lBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsQ0FBQzs7O1lBckVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7OzRDQXNDSSxNQUFNLFNBQUMsY0FBYztZQXJEakIsZUFBZTs7Ozs7SUFpQnRCLG9DQWlDaUI7O0lBSWYsa0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJT0lEQ0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3RvcmFnZVR5cGUgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPSURDRmxvd1NlcnZpY2UsIE9JRENGbG93cyB9IGZyb20gJy4vZmxvdy5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IENPTkZJR19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ2NvbmZpZy5vcHRpb25zJyk7XG5cbmV4cG9ydCBlbnVtIE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXMge1xuICBUT0tFTiA9ICdzdG9yYWdlVG9rZW5OYW1lJyxcbiAgT0lEQ0NPTkZJRyA9ICdzdG9yYWdlT0lEQ0NvbmZpZ05hbWUnLFxuICBPSURDSldLcyA9ICdzdG9yYWdlT0lEQ0pXS3NOYW1lJyxcbiAgTk9OQ0UgPSAnc3RvcmFnZU5vbmNlTmFtZScsXG4gIFBBUlNFRF9JRF9UT0tFTiA9ICdzdG9yYWdlUGFyc2VkSURUb2tlbk5hbWUnLFxuICBBX1JFUVVFU1RfU1RBVEUgPSAnc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lJ1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPSURDQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyBvcHRpb25zID0ge1xuICAgIHJlZGlyZWN0VXJpOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy8nLFxuICAgIC8vIGNsaWVudElEOiBcIm5vdCBwcm92aWRlZCBoZXJlXCIsIC8vIGRpc2FibGVzIGF1dG9Mb2dpbiB1bnRpbCB5b3UgcHJvdmlkZSBpdC5cblxuICAgIHNjb3BlOiBbJ29wZW5pZCddLFxuICAgIHByb21wdDogJ2NvbnNlbnQnLFxuICAgIHJlZnJlc2hfdG9rZW46IHRydWUsXG5cbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgYXV0b0xvZ29uOiBmYWxzZSxcblxuICAgIGF1dGhIZWFkZXI6ICdBdXRob3JpemF0aW9uJyxcbiAgICBhdXRoVG9rZW46ICdCZWFyZXInLFxuXG4gICAgc3RvcmFnZUtleVByZWZpeDogJ21pbmRhZG1pbi1hdXRoJyxcbiAgICBzdG9yYWdlS2V5U2VwZXJhdG9yOiAnXycsXG4gICAgc3RvcmFnZVRva2VuTmFtZTogJ3Rva2VuJyxcbiAgICBzdG9yYWdlT0lEQ0NvbmZpZ05hbWU6ICdvaWRjY29uZmlnJyxcbiAgICBzdG9yYWdlT0lEQ0pXS3NOYW1lOiAnb2lkY2p3a3MnLFxuICAgIHN0b3JhZ2VOb25jZU5hbWU6ICdub25jZScsXG4gICAgc3RvcmFnZVBhcnNlZElEVG9rZW5OYW1lOiAncGFyc2VkLWlkLXRva2VuJyxcbiAgICBzdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWU6ICdhLXJlcXVlc3Qtc3RhdGUnLFxuXG4gICAgcmVxdWlyZUh0dHBzOiAncmVtb3Rlb25seScsXG4gICAgc3RyaWN0RGlzY292ZXJ5RG9jdW1lbnRWYWxpZGF0aW9uOiB0cnVlLFxuICAgIHNlc3Npb25DaGVja3NFbmFibGVkOiBmYWxzZSxcbiAgICBza2lwSXNzdWVyQ2hlY2s6IGZhbHNlLFxuXG4gICAgbm9uY2VTaXplOiAzMixcblxuICAgIGRpc2FibGVBdEhhc2hDaGVjazogdHJ1ZSxcblxuICAgIHN0b3JhZ2VUeXBlOiBTdG9yYWdlVHlwZS5MT0NBTF9TVE9SQUdFXG4gIH0gYXMgSU9JRENDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDT05GSUdfT1BUSU9OUykgb3B0aW9uczogSU9JRENDb25maWcsXG4gICAgcHJpdmF0ZSBfZmxvdzogT0lEQ0Zsb3dTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLmFwcGx5Q29uZmlnKG9wdGlvbnMsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5Q29uZmlnKG9wdGlvbnM6IElPSURDQ29uZmlnLCBub1RyYW5zaXRpb24gPSBmYWxzZSkge1xuICAgIHRoaXMub3B0aW9ucyA9IHsgLi4uKHRoaXMub3B0aW9ucyBhcyBJT0lEQ0NvbmZpZyksIC4uLm9wdGlvbnMgfTtcblxuICAgIHRoaXMub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTCA9IHRoaXMub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTCB8fCAnJztcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICB0aGlzLm9wdGlvbnMub3BlbmRJRENvbm5lY3RVUkwgKz0gJy8nO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9mbG93LmN1cnJlbnRTdGF0ZSAhPT0gT0lEQ0Zsb3dzLklOSVRJQUwpIHtcbiAgICAgIHRoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuSU5JVElBTCkuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKCFub1RyYW5zaXRpb24pIHtcbiAgICAgIHRoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuVVBEQVRFX0NPTkZJRykuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0b3JhZ2VLZXkoa2V5TmFtZTogT0lEQ0NvbmZpZ1N0b3JhZ2VLZXlOYW1lcykge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc3RvcmFnZUtleVByZWZpeFxuICAgICAgPyBbdGhpcy5vcHRpb25zLnN0b3JhZ2VLZXlQcmVmaXgsIHRoaXMub3B0aW9uc1trZXlOYW1lXV0uam9pbihcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuc3RvcmFnZUtleVNlcGVyYXRvclxuICAgICAgICApXG4gICAgICA6IHRoaXMub3B0aW9uc1trZXlOYW1lXTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixjQUFjLEVBQ2QsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBYyxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBTyxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUUvRCxNQUFNLE9BQU8sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFNLGdCQUFnQixDQUFDOzs7SUFHckUsT0FBUSxrQkFBa0I7SUFDMUIsWUFBYSx1QkFBdUI7SUFDcEMsVUFBVyxxQkFBcUI7SUFDaEMsT0FBUSxrQkFBa0I7SUFDMUIsaUJBQWtCLDBCQUEwQjtJQUM1QyxpQkFBa0IsMEJBQTBCOzs7QUFNOUMsTUFBTTs7Ozs7SUFvQ0osWUFDMEIsT0FBb0IsRUFDcEMsS0FBc0I7UUFBdEIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFyQ3pCLFlBQU8sR0FBRyxtQkFBQTtZQUNmLFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxHQUFHOztZQUd6QyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUM7WUFDakIsTUFBTSxFQUFFLFNBQVM7WUFDakIsYUFBYSxFQUFFLElBQUk7WUFFbkIsS0FBSyxFQUFFLEtBQUs7WUFDWixTQUFTLEVBQUUsS0FBSztZQUVoQixVQUFVLEVBQUUsZUFBZTtZQUMzQixTQUFTLEVBQUUsUUFBUTtZQUVuQixn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YmxlLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5qZWN0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElPSURDQ29uZmlnIH0gZnJvbSAnLi9jb25maWctaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBTdG9yYWdlVHlwZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENGbG93U2VydmljZSwgT0lEQ0Zsb3dzIH0gZnJvbSAnLi9mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIGVtcHR5LCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YXAsIG1lcmdlTWFwLCBtYXAsIGNvbmNhdEFsbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IENPTkZJR19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPGFueT4oJ2NvbmZpZy5vcHRpb25zJyk7XG5cbmV4cG9ydCBlbnVtIE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXMge1xuICBUT0tFTiA9ICdzdG9yYWdlVG9rZW5OYW1lJyxcbiAgT0lEQ0NPTkZJRyA9ICdzdG9yYWdlT0lEQ0NvbmZpZ05hbWUnLFxuICBPSURDSldLcyA9ICdzdG9yYWdlT0lEQ0pXS3NOYW1lJyxcbiAgTk9OQ0UgPSAnc3RvcmFnZU5vbmNlTmFtZScsXG4gIFBBUlNFRF9JRF9UT0tFTiA9ICdzdG9yYWdlUGFyc2VkSURUb2tlbk5hbWUnLFxuICBBX1JFUVVFU1RfU1RBVEUgPSAnc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lJ1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPSURDQ29uZmlnU2VydmljZSB7XG4gIHB1YmxpYyBvcHRpb25zID0ge1xuICAgIHJlZGlyZWN0VXJpOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgJy8nLFxuICAgIC8vIGNsaWVudElEOiBcIm5vdCBwcm92aWRlZCBoZXJlXCIsIC8vIGRpc2FibGVzIGF1dG9Mb2dpbiB1bnRpbCB5b3UgcHJvdmlkZSBpdC5cblxuICAgIHNjb3BlOiBbJ29wZW5pZCddLFxuICAgIHByb21wdDogJ2NvbnNlbnQnLFxuICAgIHJlZnJlc2hfdG9rZW46IHRydWUsXG5cbiAgICBkZWJ1ZzogZmFsc2UsXG4gICAgYXV0b0xvZ29uOiBmYWxzZSxcblxuICAgIGF1dGhIZWFkZXI6ICdBdXRob3JpemF0aW9uJyxcbiAgICBhdXRoVG9rZW46ICdCZWFyZXInLFxuXG4gICAgc3RvcmFnZUtleVByZWZpeDogJ21pbmRhZG1pbi1hdXRoJyxcbiAgICBzdG9yYWdlS2V5U2VwZXJhdG9yOiAnXycsXG4gICAgc3RvcmFnZVRva2VuTmFtZTogJ3Rva2VuJyxcbiAgICBzdG9yYWdlT0lEQ0NvbmZpZ05hbWU6ICdvaWRjY29uZmlnJyxcbiAgICBzdG9yYWdlT0lEQ0pXS3NOYW1lOiAnb2lkY2p3a3MnLFxuICAgIHN0b3JhZ2VOb25jZU5hbWU6ICdub25jZScsXG4gICAgc3RvcmFnZVBhcnNlZElEVG9rZW5OYW1lOiAncGFyc2VkLWlkLXRva2VuJyxcbiAgICBzdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWU6ICdhLXJlcXVlc3Qtc3RhdGUnLFxuXG4gICAgcmVxdWlyZUh0dHBzOiAncmVtb3Rlb25seScsXG4gICAgc3RyaWN0RGlzY292ZXJ5RG9jdW1lbnRWYWxpZGF0aW9uOiB0cnVlLFxuICAgIHNlc3Npb25DaGVja3NFbmFibGVkOiBmYWxzZSxcbiAgICBza2lwSXNzdWVyQ2hlY2s6IGZhbHNlLFxuXG4gICAgbm9uY2VTaXplOiAzMixcblxuICAgIGRpc2FibGVBdEhhc2hDaGVjazogdHJ1ZSxcblxuICAgIHN0b3JhZ2VUeXBlOiBTdG9yYWdlVHlwZS5MT0NBTF9TVE9SQUdFXG4gIH0gYXMgSU9JRENDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDT05GSUdfT1BUSU9OUykgb3B0aW9uczogSU9JRENDb25maWcsXG4gICAgcHJpdmF0ZSBfZmxvdzogT0lEQ0Zsb3dTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLmFwcGx5Q29uZmlnKG9wdGlvbnMsIHRydWUpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5Q29uZmlnKG9wdGlvbnM6IElPSURDQ29uZmlnLCBub1RyYW5zaXRpb24gPSBmYWxzZSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG9mKDEpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLih0aGlzLm9wdGlvbnMgYXMgSU9JRENDb25maWcpLCAuLi5vcHRpb25zIH07XG5cbiAgICAgICAgdGhpcy5vcHRpb25zLm9wZW5kSURDb25uZWN0VVJMID0gdGhpcy5vcHRpb25zLm9wZW5kSURDb25uZWN0VVJMIHx8ICcnO1xuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTC5lbmRzV2l0aCgnLycpKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLm9wZW5kSURDb25uZWN0VVJMICs9ICcvJztcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIGlmIChub1RyYW5zaXRpb24pIHtcbiAgICAgICAgICByZXR1cm4gZW1wdHkoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCB0cmFuc2l0aW9ucyA9IEFycmF5PE9ic2VydmFibGU8YW55Pj4oKTtcbiAgICAgICAgaWYgKHRoaXMuX2Zsb3cuY3VycmVudFN0YXRlICE9PSBPSURDRmxvd3MuSU5JVElBTCkge1xuICAgICAgICAgIHRyYW5zaXRpb25zLnB1c2godGhpcy5fZmxvdy50cmFuc2l0VG8kKE9JRENGbG93cy5JTklUSUFMKSk7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFuc2l0aW9ucy5wdXNoKHRoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuVVBEQVRFX0NPTkZJRykpO1xuXG4gICAgICAgIHRyYW5zaXRpb25zLnB1c2godGhpcy5fZmxvdy50cmFuc2l0VG8kKE9JRENGbG93cy5JTklUSUFMKSk7XG5cbiAgICAgICAgcmV0dXJuIGZyb20odHJhbnNpdGlvbnMpLnBpcGUoY29uY2F0QWxsKCkpO1xuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGdldFN0b3JhZ2VLZXkoa2V5TmFtZTogT0lEQ0NvbmZpZ1N0b3JhZ2VLZXlOYW1lcykge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc3RvcmFnZUtleVByZWZpeFxuICAgICAgPyBbdGhpcy5vcHRpb25zLnN0b3JhZ2VLZXlQcmVmaXgsIHRoaXMub3B0aW9uc1trZXlOYW1lXV0uam9pbihcbiAgICAgICAgICB0aGlzLm9wdGlvbnMuc3RvcmFnZUtleVNlcGVyYXRvclxuICAgICAgICApXG4gICAgICA6IHRoaXMub3B0aW9uc1trZXlOYW1lXTtcbiAgfVxufVxuIl19

@@ -7,2 +7,3 @@ /**

import * as base64 from 'base64-js';
import { Injectable } from '@angular/core';
/**

@@ -67,2 +68,6 @@ * @param {?} buffer

}
WindowCryptoService.decorators = [
{ type: Injectable }
];
WindowCryptoService.ctorParameters = () => [];
if (false) {

@@ -72,2 +77,2 @@ /** @type {?} */

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jcnlwdG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLFdBQVcsQ0FBQzs7Ozs7QUFFcEMsTUFBTSxrQkFBa0IsTUFBa0I7O1VBQ2xDLE9BQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELE9BQU8sT0FBTztTQUNYLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkIsQ0FBQzs7OztBQUVELE1BQU07Q0FJTDs7Ozs7OztJQUhDLDZEQUEwRDs7Ozs7O0lBRTFELDhEQUEyRDs7QUFHN0QsTUFBTSwwQkFBMkIsU0FBUSxhQUFhO0lBR3BEO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFIRixZQUFPLEdBQVEsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUlyQyxDQUFDOzs7OztJQUVELGNBQWMsQ0FBQyxJQUFZOztjQUNuQixNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRUQsZUFBZSxDQUFDLElBQVk7O2NBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTzthQUN0QixVQUFVLENBQUMsUUFBUSxDQUFDO2FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDWixNQUFNLEVBQUU7UUFDWCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7OztJQW5CQyxzQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgYmFzZTY0IGZyb20gJ2Jhc2U2NC1qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxTYWZlKGJ1ZmZlcjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGNvbnN0IGVuY29kZWQgPSBiYXNlNjQuZnJvbUJ5dGVBcnJheShuZXcgVWludDhBcnJheShidWZmZXIpKTtcbiAgcmV0dXJuIGVuY29kZWRcbiAgICAucmVwbGFjZSgvXFwrL2csICctJylcbiAgICAucmVwbGFjZSgvXFwvL2csICdfJylcbiAgICAucmVwbGFjZSgvPS9nLCAnJyk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDcnlwdG9TZXJ2aWNlIHtcbiAgYWJzdHJhY3QgZ2VuZXJhdGVSYW5kb20oc2l6ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGFic3RyYWN0IGRlcml2ZUNoYWxsZW5nZShjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dDcnlwdG9TZXJ2aWNlIGV4dGVuZHMgQ3J5cHRvU2VydmljZSB7XG4gIHByaXZhdGUgX2NyeXB0bzogYW55ID0gd2luZG93LmNyeXB0bztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2VuZXJhdGVSYW5kb20oc2l6ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICB0aGlzLl9jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ1ZmZlcik7XG4gICAgcmV0dXJuIG9mKHVybFNhZmUoYnVmZmVyKSk7XG4gIH1cblxuICBkZXJpdmVDaGFsbGVuZ2UoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5fY3J5cHRvXG4gICAgICAuY3JlYXRlSGFzaCgnc2hhMjU2JylcbiAgICAgIC51cGRhdGUoY29kZSlcbiAgICAgIC5kaWdlc3QoKTtcbiAgICByZXR1cm4gb2YodXJsU2FmZShuZXcgVWludDhBcnJheShoYXNoLmJ1ZmZlcikpKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jcnlwdG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUUzQyxNQUFNLGtCQUFrQixNQUFrQjs7VUFDbEMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDNUQsT0FBTyxPQUFPO1NBQ1gsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7U0FDbkIsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUM7U0FDbkIsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN2QixDQUFDOzs7O0FBRUQsTUFBTTtDQUlMOzs7Ozs7O0lBSEMsNkRBQTBEOzs7Ozs7SUFFMUQsOERBQTJEOztBQUk3RCxNQUFNLDBCQUEyQixTQUFRLGFBQWE7SUFHcEQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUhGLFlBQU8sR0FBUSxNQUFNLENBQUMsTUFBTSxDQUFDO0lBSXJDLENBQUM7Ozs7O0lBRUQsY0FBYyxDQUFDLElBQVk7O2NBQ25CLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFRCxlQUFlLENBQUMsSUFBWTs7Y0FDcEIsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ3RCLFVBQVUsQ0FBQyxRQUFRLENBQUM7YUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQzthQUNaLE1BQU0sRUFBRTtRQUNYLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7OztZQXBCRixVQUFVOzs7OztJQUVULHNDQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBiYXNlNjQgZnJvbSAnYmFzZTY0LWpzJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHVybFNhZmUoYnVmZmVyOiBVaW50OEFycmF5KTogc3RyaW5nIHtcbiAgY29uc3QgZW5jb2RlZCA9IGJhc2U2NC5mcm9tQnl0ZUFycmF5KG5ldyBVaW50OEFycmF5KGJ1ZmZlcikpO1xuICByZXR1cm4gZW5jb2RlZFxuICAgIC5yZXBsYWNlKC9cXCsvZywgJy0nKVxuICAgIC5yZXBsYWNlKC9cXC8vZywgJ18nKVxuICAgIC5yZXBsYWNlKC89L2csICcnKTtcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENyeXB0b1NlcnZpY2Uge1xuICBhYnN0cmFjdCBnZW5lcmF0ZVJhbmRvbShzaXplOiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZz47XG5cbiAgYWJzdHJhY3QgZGVyaXZlQ2hhbGxlbmdlKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpbmRvd0NyeXB0b1NlcnZpY2UgZXh0ZW5kcyBDcnlwdG9TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfY3J5cHRvOiBhbnkgPSB3aW5kb3cuY3J5cHRvO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBnZW5lcmF0ZVJhbmRvbShzaXplOiBudW1iZXIpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IGJ1ZmZlciA9IG5ldyBVaW50OEFycmF5KHNpemUpO1xuICAgIHRoaXMuX2NyeXB0by5nZXRSYW5kb21WYWx1ZXMoYnVmZmVyKTtcbiAgICByZXR1cm4gb2YodXJsU2FmZShidWZmZXIpKTtcbiAgfVxuXG4gIGRlcml2ZUNoYWxsZW5nZShjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIGNvbnN0IGhhc2ggPSB0aGlzLl9jcnlwdG9cbiAgICAgIC5jcmVhdGVIYXNoKCdzaGEyNTYnKVxuICAgICAgLnVwZGF0ZShjb2RlKVxuICAgICAgLmRpZ2VzdCgpO1xuICAgIHJldHVybiBvZih1cmxTYWZlKG5ldyBVaW50OEFycmF5KGhhc2guYnVmZmVyKSkpO1xuICB9XG59XG4iXX0=

@@ -163,3 +163,3 @@ /**

// Add set current state in between
observables$.push(of(1).pipe(tap(() => { this._currentState = state; })));
observables$.push(of(1).pipe(tap(() => { this._currentState = state; }), tap(() => { this._subject.next(state); })));
// Now add enter CBs

@@ -169,3 +169,2 @@ if (this._states[state].onEnterCBs) {

}
observables$.push(of(1).pipe(tap(() => { this._subject.next(state); })));
return from(observables$).pipe(concatAll(), map(() => undefined));

@@ -231,2 +230,2 @@ }

/** @nocollapse */ OIDCDefaultFlowService.ngInjectableDef = i0.defineInjectable({ factory: function OIDCDefaultFlowService_Factory() { return new OIDCDefaultFlowService(); }, token: OIDCDefaultFlowService, providedIn: "root" });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQVEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7SUFHbkUsU0FBVSxTQUFTO0lBQ25CLGVBQWdCLGNBQWM7SUFDOUIsd0JBQXlCLHNCQUFzQjtJQUMvQyxjQUFlLGFBQWE7SUFDNUIsa0JBQW1CLGlCQUFpQjtJQUVwQyxTQUFVLFNBQVM7SUFFbkIsdUJBQXdCLHNCQUFzQjtJQUM5Qyx1QkFBd0IscUJBQXFCO0lBRTdDLE1BQU8sTUFBTTs7Ozs7O0FBR2YsTUFBTTs7Ozs7O0lBQ0osWUFDWSxLQUFvQixFQUNwQixXQUE2RCxFQUM3RCxXQUE2RDtRQUY3RCxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFrRDtRQUM3RCxnQkFBVyxHQUFYLFdBQVcsQ0FBa0Q7SUFFekUsQ0FBQzs7OztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7O0lBRUQsSUFBVyxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUE0QyxDQUFDO1NBQ3RFO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCxJQUFXLFVBQVU7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FB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LEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFHLHFCQUFxQixFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEUsTUFBTSxFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFDLEVBQ0QsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7OztZQW5CRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yLCBmb3JrSm9pbiwgZW1wdHksIGZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgdGFwLCBtYXAsIG1lcmdlTWFwLCBsYXN0LCBjb25jYXRBbGwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIE9JRENGbG93cyB7XG4gIElOSVRJQUwgPSAnaW5pdGlhbCcsXG4gIFVQREFURV9DT05GSUcgPSAndXBkYXRlQ29uZmlnJyxcbiAgR0VUX09JRENfQ09ORklHVVJBVElPTiA9ICdnZXRPSURDQ29uZmlndXJhdGlvbicsXG4gIFJFQURfU1RPUkFHRSA9ICdyZWFkU3RvcmFnZScsXG4gIENIRUNLX0FVVEhPUklaRUQgPSAnY2hlY2tBdXRob3JpemVkJyxcblxuICBXQUlUSU5HID0gJ3dhaXRpbmcnLFxuXG4gIFJFUVVFU1RfQVVUSE9SSVpBVElPTiA9ICdyZXF1ZXN0QXV0aG9yaXphdGlvbicsXG4gIFJFUVVFU1RfUkVGUkVTSF9UT0tFTiA9ICdyZXF1ZXN0UmVmcmVzaFRva2VuJyxcblxuICBET05FID0gJ2RvbmUnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT0lEQ0Fic3RyYWN0RmxvdyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfbmV4dDogQXJyYXk8c3RyaW5nPixcbiAgICBwcm90ZWN0ZWQgX29uRW50ZXJDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgICBwcm90ZWN0ZWQgX29uTGVhdmVDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5leHQoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX25leHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9uRW50ZXJDQnMoKTogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGlmICghdGhpcy5fb25FbnRlckNCcykge1xuICAgICAgdGhpcy5fb25FbnRlckNCcyA9IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX29uRW50ZXJDQnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9uTGVhdmVDQnMoKTogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGlmICghdGhpcy5fb25MZWF2ZUNCcykge1xuICAgICAgdGhpcy5fb25MZWF2ZUNCcyA9IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX29uTGVhdmVDQnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9JRENGbG93IGV4dGVuZHMgT0lEQ0Fic3RyYWN0RmxvdyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfbmV4dDogQXJyYXk8c3RyaW5nPixcbiAgICBwcm90ZWN0ZWQgX29uRW50ZXJDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgICBwcm90ZWN0ZWQgX29uTGVhdmVDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgKSB7XG4gICAgc3VwZXIoX25leHQsIF9vbkVudGVyQ0JzLCBfb25MZWF2ZUNCcyk7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9JRENGbG93U2VydmljZSB7XG4gIHByb3RlY3RlZCBfc3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz47XG5cbiAgcHVibGljIGdldCBzdWJqZWN0JCgpOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YmplY3Q7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBfY3VycmVudFN0YXRlOiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBjdXJyZW50U3RhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFN0YXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZXMoKTogeyBba2V5OiBzdHJpbmddOiBPSURDQWJzdHJhY3RGbG93IH0ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZXM7XG4gIH1cblxuICBwdWJsaWMgb25FbnRlcihzdGF0ZTogc3RyaW5nLCBjYjogKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pikge1xuICAgIHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25FbnRlckNCcy5wdXNoKGNiKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkxlYXZlKHN0YXRlOiBzdHJpbmcsIGNiOiAoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgdGhpcy5fc3RhdGVzW3N0YXRlXS5vbkxlYXZlQ0JzLnB1c2goY2IpO1xuICB9XG5cbiAgdHJhbnNpdFRvJChzdGF0ZTogc3RyaW5nLCAuLi5hcmdzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBMaXN0IG9mIE9ic2VydmFibGVzIGZyb20gdGhlIGNhbGxiYWNrc1xuICAgIGxldCBvYnNlcnZhYmxlcyQgPSBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XG5cbiAgICAvLyBBZGQgY2hlY2sgY2FsbGJhY2tzXG4gICAgb2JzZXJ2YWJsZXMkLnB1c2gob2YoMSkucGlwZShcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRTdGF0ZSA9PT0gc3RhdGUpIHtcbiAgICAgICAgICByZXR1cm4gb2Y8dm9pZD4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlZSBpZiB3ZSBjYW4gZ28gdG8gdGhhdCBzdGF0ZS5cbiAgICAgICAgaWYgKCF0aGlzLmNhbihzdGF0ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihuZXcgRXJyb3IoYFN0YXRlIGRvZXMgbm90IGV4aXN0cyBvciBjYW4ndCBnbyBmcm9tIFwiJHt0aGlzLl9jdXJyZW50U3RhdGV9XCIgdG8gXCIke3N0YXRlfVwiYCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgICB9KSxcbiAgICApKTtcblxuICAgIC8vIEFkZCBsZWF2ZSBjYWxsYmFja3NcbiAgICBpZiAodGhpcy5jdXJyZW50U3RhdGUgIT09IHRoaXMuX2luaXRpYWwgJiYgdGhpcy5fc3RhdGVzW3N0YXRlXS5vbkxlYXZlQ0JzKSB7XG4gICAgICBvYnNlcnZhYmxlcyQucHVzaChmb3JrSm9pbih0aGlzLl9zdGF0ZXNbc3RhdGVdLm9uTGVhdmVDQnMubWFwKGNiID0+IGNiKC4uLmFyZ3MpKSkpO1xuICAgIH1cblxuICAgIC8vIEFkZCBzZXQgY3VycmVudCBzdGF0ZSBpbiBiZXR3ZWVuXG4gICAgb2JzZXJ2YWJsZXMkLnB1c2gob2YoMSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7IHRoaXMuX2N1cnJlbnRTdGF0ZSA9IHN0YXRlOyB9KSxcbiAgICApKTtcblxuICAgIC8vIE5vdyBhZGQgZW50ZXIgQ0JzXG4gICAgaWYgKHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25FbnRlckNCcykge1xuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goZm9ya0pvaW4odGhpcy5fc3RhdGVzW3N0YXRlXS5vbkVudGVyQ0JzLm1hcChjYiA9PiBjYiguLi5hcmdzKSkpKTtcbiAgICB9XG5cbiAgICBvYnNlcnZhYmxlcyQucHVzaChvZigxKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHsgdGhpcy5fc3ViamVjdC5uZXh0KHN0YXRlKTsgfSksXG4gICAgKSk7XG5cblxuICAgIHJldHVybiBmcm9tKG9ic2VydmFibGVzJCkucGlwZShcbiAgICAgIGNvbmNhdEFsbCgpLFxuICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgKTtcbiAgfVxuXG4gIGNhbihzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9zdGF0ZXNbc3RhdGVdIHx8ICF0aGlzLl9zdGF0ZXNbdGhpcy5fY3VycmVudFN0YXRlXS5uZXh0LmluY2x1ZGVzKHN0YXRlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJhbnNpdGlvbnMoc3RhdGU6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZXNbc3RhdGVdLm5leHQ7XG4gIH1cblxuICB0cmFuc2l0VG9OZXh0JCguLi5hcmdzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2l0VG8kKHRoaXMuX3N0YXRlc1t0aGlzLl9jdXJyZW50U3RhdGVdLm5leHRbMF0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9zdGF0ZXM6IHsgW2tleTogc3RyaW5nXTogT0lEQ0Fic3RyYWN0RmxvdyB9LFxuICAgIHByb3RlY3RlZCBfaW5pdGlhbCA9ICdpbml0aWFsJyxcbiAgKSB7XG4gICAgdGhpcy5fY3VycmVudFN0YXRlID0gdGhpcy5faW5pdGlhbDtcbiAgICB0aGlzLl9zdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHRoaXMuX2luaXRpYWwpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9JRENEZWZhdWx0Rmxvd1NlcnZpY2UgZXh0ZW5kcyBPSURDRmxvd1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgIHtcbiAgICAgICAgLy8gbmFtZTogbmV3IE9JRENGbG93KFs8bmV4dC1ob3A+LCA8b3RoZXItcG9zc2libGUtaG9wcz5dKSxcbiAgICAgICAgJ2luaXRpYWwnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5HRVRfT0lEQ19DT05GSUdVUkFUSU9OLCBPSURDRmxvd3MuVVBEQVRFX0NPTkZJR10pLFxuICAgICAgICAndXBkYXRlQ29uZmlnJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAnZ2V0T0lEQ0NvbmZpZ3VyYXRpb24nOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5SRUFEX1NUT1JBR0UsIE9JRENGbG93cy5JTklUSUFMXSksXG4gICAgICAgICdyZWFkU3RvcmFnZSc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLkNIRUNLX0FVVEhPUklaRUQsIE9JRENGbG93cy5ET05FLCBPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAnY2hlY2tBdXRob3JpemVkJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuV0FJVElORywgT0lEQ0Zsb3dzLlJFUVVFU1RfUkVGUkVTSF9UT0tFTl0pLFxuICAgICAgICAnd2FpdGluZyc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLlJFUVVFU1RfQVVUSE9SSVpBVElPTiwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ3JlcXVlc3RBdXRob3JpemF0aW9uJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuUkVRVUVTVF9SRUZSRVNIX1RPS0VOLCBPSURDRmxvd3MuRE9ORSwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ3JlcXVlc3RSZWZyZXNoVG9rZW4nOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5ET05FLCBPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAnZG9uZSc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgIH0sXG4gICAgICBPSURDRmxvd3MuSU5JVElBTCk7XG4gIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxRixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQVEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7SUFHbkUsU0FBVSxTQUFTO0lBQ25CLGVBQWdCLGNBQWM7SUFDOUIsd0JBQXlCLHNCQUFzQjtJQUMvQyxjQUFlLGFBQWE7SUFDNUIsa0JBQW1CLGlCQUFpQjtJQUVwQyxTQUFVLFNBQVM7SUFFbkIsdUJBQXdCLHNCQUFzQjtJQUM5Qyx1QkFBd0IscUJBQXFCO0lBRTdDLE1BQU8sTUFBTTs7Ozs7O0FBR2YsTUFBTTs7Ozs7O0lBQ0osWUFDWSxLQUFvQixFQUNwQixXQUE2RCxFQUM3RCxXQUE2RDtRQUY3RCxVQUFLLEdBQUwsS0FBSyxDQUFlO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFrRDtRQUM3RCxnQkFBVyxHQUFYLFdBQVcsQ0FBa0Q7SUFFekUsQ0FBQzs7OztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzs7O0lBRUQsSUFBVyxVQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUE0QyxDQUFDO1NBQ3RFO1FBRUQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7Ozs7SUFFRCxJQUFXLFVBQVU7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FB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QVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3hFLE1BQU0sRUFBRSxJQUFJLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQyxFQUNELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixDQUFDOzs7WUFuQkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciwgZm9ya0pvaW4sIGVtcHR5LCBmcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHRhcCwgbWFwLCBtZXJnZU1hcCwgbGFzdCwgY29uY2F0QWxsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZW51bSBPSURDRmxvd3Mge1xuICBJTklUSUFMID0gJ2luaXRpYWwnLFxuICBVUERBVEVfQ09ORklHID0gJ3VwZGF0ZUNvbmZpZycsXG4gIEdFVF9PSURDX0NPTkZJR1VSQVRJT04gPSAnZ2V0T0lEQ0NvbmZpZ3VyYXRpb24nLFxuICBSRUFEX1NUT1JBR0UgPSAncmVhZFN0b3JhZ2UnLFxuICBDSEVDS19BVVRIT1JJWkVEID0gJ2NoZWNrQXV0aG9yaXplZCcsXG5cbiAgV0FJVElORyA9ICd3YWl0aW5nJyxcblxuICBSRVFVRVNUX0FVVEhPUklaQVRJT04gPSAncmVxdWVzdEF1dGhvcml6YXRpb24nLFxuICBSRVFVRVNUX1JFRlJFU0hfVE9LRU4gPSAncmVxdWVzdFJlZnJlc2hUb2tlbicsXG5cbiAgRE9ORSA9ICdkb25lJyxcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9JRENBYnN0cmFjdEZsb3cge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX25leHQ6IEFycmF5PHN0cmluZz4sXG4gICAgcHJvdGVjdGVkIF9vbkVudGVyQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICAgcHJvdGVjdGVkIF9vbkxlYXZlQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICkge1xuICB9XG5cbiAgcHVibGljIGdldCBuZXh0KCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9uZXh0O1xuICB9XG5cbiAgcHVibGljIGdldCBvbkVudGVyQ0JzKCk6IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+IHtcbiAgICBpZiAoIXRoaXMuX29uRW50ZXJDQnMpIHtcbiAgICAgIHRoaXMuX29uRW50ZXJDQnMgPSBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9vbkVudGVyQ0JzO1xuICB9XG5cbiAgcHVibGljIGdldCBvbkxlYXZlQ0JzKCk6IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+IHtcbiAgICBpZiAoIXRoaXMuX29uTGVhdmVDQnMpIHtcbiAgICAgIHRoaXMuX29uTGVhdmVDQnMgPSBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9vbkxlYXZlQ0JzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPSURDRmxvdyBleHRlbmRzIE9JRENBYnN0cmFjdEZsb3cge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX25leHQ6IEFycmF5PHN0cmluZz4sXG4gICAgcHJvdGVjdGVkIF9vbkVudGVyQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICAgcHJvdGVjdGVkIF9vbkxlYXZlQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICkge1xuICAgIHN1cGVyKF9uZXh0LCBfb25FbnRlckNCcywgX29uTGVhdmVDQnMpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPSURDRmxvd1NlcnZpY2Uge1xuICBwcm90ZWN0ZWQgX3N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+O1xuXG4gIHB1YmxpYyBnZXQgc3ViamVjdCQoKTogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9zdWJqZWN0O1xuICB9XG5cblxuICBwcm90ZWN0ZWQgX2N1cnJlbnRTdGF0ZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudFN0YXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVzKCk6IHsgW2tleTogc3RyaW5nXTogT0lEQ0Fic3RyYWN0RmxvdyB9IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVzO1xuICB9XG5cbiAgcHVibGljIG9uRW50ZXIoc3RhdGU6IHN0cmluZywgY2I6ICguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICB0aGlzLl9zdGF0ZXNbc3RhdGVdLm9uRW50ZXJDQnMucHVzaChjYik7XG4gIH1cblxuICBwdWJsaWMgb25MZWF2ZShzdGF0ZTogc3RyaW5nLCBjYjogKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pikge1xuICAgIHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25MZWF2ZUNCcy5wdXNoKGNiKTtcbiAgfVxuXG4gIHRyYW5zaXRUbyQoc3RhdGU6IHN0cmluZywgLi4uYXJnczogQXJyYXk8YW55Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gTGlzdCBvZiBPYnNlcnZhYmxlcyBmcm9tIHRoZSBjYWxsYmFja3NcbiAgICBsZXQgb2JzZXJ2YWJsZXMkID0gQXJyYXk8T2JzZXJ2YWJsZTxhbnk+PigpO1xuXG4gICAgLy8gQWRkIGNoZWNrIGNhbGxiYWNrc1xuICAgIG9ic2VydmFibGVzJC5wdXNoKG9mKDEpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50U3RhdGUgPT09IHN0YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIG9mPHZvaWQ+KCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWUgaWYgd2UgY2FuIGdvIHRvIHRoYXQgc3RhdGUuXG4gICAgICAgIGlmICghdGhpcy5jYW4oc3RhdGUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKGBTdGF0ZSBkb2VzIG5vdCBleGlzdHMgb3IgY2FuJ3QgZ28gZnJvbSBcIiR7dGhpcy5fY3VycmVudFN0YXRlfVwiIHRvIFwiJHtzdGF0ZX1cImApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgfSksXG4gICAgKSk7XG5cbiAgICAvLyBBZGQgbGVhdmUgY2FsbGJhY2tzXG4gICAgaWYgKHRoaXMuY3VycmVudFN0YXRlICE9PSB0aGlzLl9pbml0aWFsICYmIHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25MZWF2ZUNCcykge1xuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goZm9ya0pvaW4odGhpcy5fc3RhdGVzW3N0YXRlXS5vbkxlYXZlQ0JzLm1hcChjYiA9PiBjYiguLi5hcmdzKSkpKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgc2V0IGN1cnJlbnQgc3RhdGUgaW4gYmV0d2VlblxuICAgIG9ic2VydmFibGVzJC5wdXNoKG9mKDEpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4geyB0aGlzLl9jdXJyZW50U3RhdGUgPSBzdGF0ZTsgfSksXG4gICAgICB0YXAoKCkgPT4geyB0aGlzLl9zdWJqZWN0Lm5leHQoc3RhdGUpOyB9KSxcbiAgICApKTtcblxuICAgIC8vIE5vdyBhZGQgZW50ZXIgQ0JzXG4gICAgaWYgKHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25FbnRlckNCcykge1xuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goZm9ya0pvaW4odGhpcy5fc3RhdGVzW3N0YXRlXS5vbkVudGVyQ0JzLm1hcChjYiA9PiBjYiguLi5hcmdzKSkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbShvYnNlcnZhYmxlcyQpLnBpcGUoXG4gICAgICBjb25jYXRBbGwoKSxcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICk7XG4gIH1cblxuICBjYW4oc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fc3RhdGVzW3N0YXRlXSB8fCAhdGhpcy5fc3RhdGVzW3RoaXMuX2N1cnJlbnRTdGF0ZV0ubmV4dC5pbmNsdWRlcyhzdGF0ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRyYW5zaXRpb25zKHN0YXRlOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVzW3N0YXRlXS5uZXh0O1xuICB9XG5cbiAgdHJhbnNpdFRvTmV4dCQoLi4uYXJnczogQXJyYXk8YW55Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNpdFRvJCh0aGlzLl9zdGF0ZXNbdGhpcy5fY3VycmVudFN0YXRlXS5uZXh0WzBdKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfc3RhdGVzOiB7IFtrZXk6IHN0cmluZ106IE9JRENBYnN0cmFjdEZsb3cgfSxcbiAgICBwcm90ZWN0ZWQgX2luaXRpYWwgPSAnaW5pdGlhbCcsXG4gICkge1xuICAgIHRoaXMuX2N1cnJlbnRTdGF0ZSA9IHRoaXMuX2luaXRpYWw7XG4gICAgdGhpcy5fc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih0aGlzLl9pbml0aWFsKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPSURDRGVmYXVsdEZsb3dTZXJ2aWNlIGV4dGVuZHMgT0lEQ0Zsb3dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXG4gICAgICB7XG4gICAgICAgIC8vIG5hbWU6IG5ldyBPSURDRmxvdyhbPG5leHQtaG9wPiwgPG90aGVyLXBvc3NpYmxlLWhvcHM+XSksXG4gICAgICAgICdpbml0aWFsJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuR0VUX09JRENfQ09ORklHVVJBVElPTiwgT0lEQ0Zsb3dzLlVQREFURV9DT05GSUddKSxcbiAgICAgICAgJ3VwZGF0ZUNvbmZpZyc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ2dldE9JRENDb25maWd1cmF0aW9uJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuUkVBRF9TVE9SQUdFLCBPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAncmVhZFN0b3JhZ2UnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5DSEVDS19BVVRIT1JJWkVELCBPSURDRmxvd3MuRE9ORSwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ2NoZWNrQXV0aG9yaXplZCc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLldBSVRJTkcsIE9JRENGbG93cy5SRVFVRVNUX1JFRlJFU0hfVE9LRU5dKSxcbiAgICAgICAgJ3dhaXRpbmcnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5SRVFVRVNUX0FVVEhPUklaQVRJT04sIE9JRENGbG93cy5JTklUSUFMXSksXG4gICAgICAgICdyZXF1ZXN0QXV0aG9yaXphdGlvbic6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLlJFUVVFU1RfUkVGUkVTSF9UT0tFTiwgT0lEQ0Zsb3dzLkRPTkUsIE9JRENGbG93cy5JTklUSUFMXSksXG4gICAgICAgICdyZXF1ZXN0UmVmcmVzaFRva2VuJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuRE9ORSwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ2RvbmUnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5JTklUSUFMXSksXG4gICAgICB9LFxuICAgICAgT0lEQ0Zsb3dzLklOSVRJQUwpO1xuICB9XG59Il19

@@ -30,3 +30,3 @@ /**

this._flow.onEnter(OIDCFlows.UPDATE_CONFIG, () => {
return from([this._flow.transitTo$(OIDCFlows.INITIAL), this._flow.transitToNext$()]).pipe(concatAll(), tap(() => { this.updateConfig(); }));
return of(1).pipe(tap(() => this.updateConfig()));
});

@@ -66,2 +66,7 @@ this._flow.onEnter(OIDCFlows.CHECK_AUTHORIZED, () => {

*/
ngOnInit() {
}
/**
* @return {?}
*/
updateConfig() {

@@ -86,7 +91,10 @@ if (this._flowDebugListener === undefined && this._config.options.debug) {

/**
* @param {?} options
* @param {?=} options
* @return {?}
*/
applyConfig(options) {
this._config.applyConfig(options);
run$(options) {
if (options) {
return from([this._config.applyConfig(options), this._flow.transitToNext$()]).pipe(concatAll());
}
return this._flow.transitToNext$();
}

@@ -170,2 +178,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvb2lkYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBbUMsTUFBTSxTQUFTLENBQUM7QUFFekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBWSxHQUFHLEVBQU8sU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3JGLE1BQU07Ozs7Ozs7O0lBSUosWUFDVSxNQUFvQixFQUNwQixPQUEwQixFQUMxQixPQUEwQixFQUMxQixLQUFzQixFQUN0QixVQUFxQztRQUpyQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQTJCO1FBRTdDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtZQUMvQyxPQUFPLElB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QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUN6QztRQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNqRCxDQUFDOzs7O0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDM0IsT0FBTztTQUNSO1FBRUQsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLFlBQVksRUFBRTtZQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSTtvQkFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCO3dCQUN0QyxtQ0FBbUMsQ0FBQztZQUN4QyxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzs7OztJQUVELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzs7O0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUM7SUFDbkMsQ0FBQzs7O1lBN0hGLFVBQVU7OztZQVRGLFlBQVk7WUFLWixpQkFBaUI7WUFSakIsaUJBQWlCO1lBTWpCLGVBQWU7WUFDZix5QkFBeUI7Ozs7SUFPaEMseUNBQWdDOztJQUNoQyx5Q0FBZ0M7O0lBRzlCLDZCQUE0Qjs7SUFDNUIsOEJBQWtDOztJQUNsQyw4QkFBa0M7O0lBQ2xDLDRCQUE4Qjs7SUFDOUIsaUNBQTZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT0lEQ0NvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEdSQU5UX1RZUEVfQVVUSE9SSVpBVElPTl9DT0RFLCBUb2tlblJlcXVlc3RKc29uLCBUb2tlblJlc3BvbnNlIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XG5pbXBvcnQgeyBJT0lEQ0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgUGFyc2VkSWRUb2tlbiwgQXV0aG9yaXphdGlvbkVycm9ySnNvbiwgQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgT0lEQ0Zsb3dTZXJ2aWNlLCBPSURDRmxvd3MgfSBmcm9tICcuL2Zsb3cuc2VydmljZSc7XG5pbXBvcnQgeyBPSURDVG9rZW5SZXF1ZXN0b3JTZXJ2aWNlIH0gZnJvbSAnLi90b2tlbi1yZXF1ZXN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBPSURDTG9nZ2VyU2VydmljZSB9IGZyb20gJy4vbG9nZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1lcmdlTWFwLCBtZXJnZUFsbCwgdGFwLCBtYXAsIGNvbmNhdEFsbCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9JRENTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfZmxvd0RlYnVnTGlzdGVuZXI6IGFueTtcbiAgcHJpdmF0ZSBfYXV0b0xvZ29uTGlzdGVuZXI6IGFueTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF90b2tlbjogVG9rZW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX2xvZ2dlcjogT0lEQ0xvZ2dlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY29uZmlnOiBPSURDQ29uZmlnU2VydmljZSxcbiAgICBwcml2YXRlIF9mbG93OiBPSURDRmxvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfcmVxdWVzdG9yOiBPSURDVG9rZW5SZXF1ZXN0b3JTZXJ2aWNlLFxuICApIHtcbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xuICAgIHRoaXMuX2Zsb3cub25FbnRlcihPSURDRmxvd3MuVVBEQVRFX0NPTkZJRywgKCkgPT4ge1xuICAgICAgcmV0dXJuIGZyb20oW3RoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuSU5JVElBTCksIHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKV0pLnBpcGUoXG4gICAgICAgIGNvbmNhdEFsbCgpLFxuICAgICAgICB0YXAoKCkgPT4geyB0aGlzLnVwZGF0ZUNvbmZpZygpIH0pLFxuICAgICAgKVxuICAgIH0pO1xuXG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5DSEVDS19BVVRIT1JJWkVELCAoKSA9PiB7XG4gICAgICByZXR1cm4gb2YoMSkucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAvLyBjYWxsIGNvbXBsZXRlIGF1dGhvcml6YXRpb24gaWYgcG9zc2libGUgdG8gc2VlIHRoZXJlIG1pZ2h0XG4gICAgICAgICAgLy8gYmUgYSByZXNwb25zZSB0aGF0IG5lZWRzIHRvIGJlIGRlbGl2ZXJlZC5cbiAgICAgICAgICB0aGlzLl9sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgQ2hlY2tpbmcgdG8gc2VlIGlmIHRoZXJlIGlzIGFuIGF1dGhvcml6YXRpb24gcmVzcG9uc2UgdG8gYmUgZGVsaXZlcmVkLmBcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gZnJvbSh0aGlzLl9yZXF1ZXN0b3IuY29tcGxldGVBdXRob3JpemF0aW9uUmVxdWVzdCgpKS5waXBlKGNhdGNoRXJyb3IodmFsID0+IG9mKHZhbCkpKSksXG4gICAgICAgIG1lcmdlTWFwKChyZXN1bHQ6IEF1dGhvcml6YXRpb25SZXNwb25zZUpzb258RXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhgTm8gcmVzdWx0IGlzIGF2YWlsYWJsZSB5ZXQuYCk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuUkVRVUVTVF9SRUZSRVNIX1RPS0VOLCByZXN1bHQpXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5SRVFVRVNUX0FVVEhPUklaQVRJT04sICgpID0+IHtcbiAgICAgIHJldHVybiBvZigxKS5waXBlKHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlcXVlc3Rvci5wZXJmb3JtQXV0aG9yaXphdGlvblJlcXVlc3QoKTtcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zsb3cub25FbnRlcihPSURDRmxvd3MuUkVRVUVTVF9SRUZSRVNIX1RPS0VOLCAocmVzcG9uc2U6IEF1dGhvcml6YXRpb25SZXNwb25zZUpzb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0b3IucGVyZm9ybVRva2VuUmVxdWVzdCQoe1xuICAgICAgICBncmFudF90eXBlOiBHUkFOVF9UWVBFX0FVVEhPUklaQVRJT05fQ09ERSxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSxcbiAgICAgICAgcmVkaXJlY3RfdXJpOiBcIlwiLFxuICAgICAgICBjbGllbnRfaWQ6IFwiXCIsXG4gICAgICB9IGFzIFRva2VuUmVxdWVzdEpzb24pLnBpcGUoXG4gICAgICAgIHRhcCgocmVzdWx0OiBUb2tlblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdG9rZW4uc2V0VG9rZW4ocmVzdWx0KTtcbiAgICAgICAgICB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKCk7XG4gICAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29uZmlnKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9mbG93RGVidWdMaXN0ZW5lciA9PT0gdW5kZWZpbmVkICYmIHRoaXMuX2NvbmZpZy5vcHRpb25zLmRlYnVnKSB7XG4gICAgICB0aGlzLl9mbG93RGVidWdMaXN0ZW5lciA9IHRoaXMuX2Zsb3cuc3ViamVjdCQuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHYpID0+IHtcbiAgICAgICAgICB0aGlzLl9sb2dnZXIuZGVidWcoYEZsb3cgZW50ZXJlZCBzdGF0ZTogJHt2fWApO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2F1dG9Mb2dvbkxpc3RlbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2F1dG9Mb2dvbkxpc3RlbmVyKCk7XG4gICAgICB0aGlzLl9hdXRvTG9nb25MaXN0ZW5lciA9IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fY29uZmlnLm9wdGlvbnMuYXV0b0xvZ29uKSB7XG4gICAgICB0aGlzLl9hdXRvTG9nb25MaXN0ZW5lciA9IHRoaXMuX2Zsb3cub25FbnRlcihPSURDRmxvd3MuV0FJVElORywgKCkgPT4ge1xuICAgICAgICByZXR1cm4gb2YoMSkucGlwZShtZXJnZU1hcCgoKSA9PiB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKCkpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhcHBseUNvbmZpZyhvcHRpb25zOiBJT0lEQ0NvbmZpZykge1xuICAgIHRoaXMuX2NvbmZpZy5hcHBseUNvbmZpZyhvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLmlzQXV0aGVudGljYXRlZCgpO1xuICB9XG5cbiAgcHVibGljIHNpZ25Jbih1c2VybmFtZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2Zsb3cuY3VycmVudFN0YXRlICE9PSBPSURDRmxvd3MuV0FJVElORykge1xuICAgICAgdGhpcy5fbG9nZ2VyLmVycm9yKFwiTm90IHJlYWR5IHlldD9cIik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXCJOb3QgcmVhZHkgeWV0P1wiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZmxvdy50cmFuc2l0VG9OZXh0JCgpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIHNpZ25PdXQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Rva2VuLmdldFRva2VuKCkucmVmcmVzaFRva2VuKSB7XG4gICAgICB0aGlzLl90b2tlbi5sb2dvdXQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9XG4gICAgICAgICAgdGhpcy5fY29uZmlnLm9wdGlvbnMub3BlbmRJRENvbm5lY3RVUkwgK1xuICAgICAgICAgICdvYXV0aDIvYXV0aC9zZXNzaW9ucy9sb2dpbi9yZXZva2UnO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xvZ2dlci53YXJuKCdObyByZWZyZXNodG9rZW4gaW4gc2lnbk91dCgpJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB0b2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4uZ2V0VG9rZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFyc2VkSWRUb2tlbigpOiBQYXJzZWRJZFRva2VuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4ucGFyc2VkSWRUb2tlbjtcbiAgfVxuXG4gIC8vIHBlcmZvcm1XaXRoRnJlc2hUb2tlbnMoKTogT2JzZXJ2YWJsZTxUb2tlblJlc3BvbnNlPiB7XG4gIC8vICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG9wZXJhdG9yID0+IHtcbiAgLy8gICAgIHRoaXMuY29uZmlndXJlZCQuc3Vic2NyaWJlKGNvbmZpZyA9PiB7XG4gIC8vICAgICAgIGlmICh0aGlzLnRva2VuLnJlZnJlc2hUb2tlbikge1xuICAvLyAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJ01pc3NpbmcgcmVmcmVzaFRva2VuLicpO1xuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgLy8gSXMgdG9rZW4gZXhwaXJlZC4uLlxuICAvLyAgICAgICAvLyBpZiAodGhpcy50b2tlbi5pc1ZhbGlkKCkpIHtcbiAgLy8gICAgICAgLy8gICAvLyBkbyBub3RoaW5nXG4gIC8vICAgICAgIC8vICAgb3BlcmF0b3IuY29tcGxldGUodGhpcy50b2tlbik7XG4gIC8vICAgICAgIC8vICAgcmV0dXJuO1xuICAvLyAgICAgICAvLyB9XG5cbiAgLy8gICAgICAgY29uc3QgcmVxSlNPTjogVG9rZW5SZXF1ZXN0SnNvbiA9IHtcbiAgLy8gICAgICAgICBncmFudF90eXBlOiBHUkFOVF9UWVBFX1JFRlJFU0hfVE9LRU4sXG4gIC8vICAgICAgICAgY2xpZW50X2lkOiB0aGlzLl9jb25maWcub3B0aW9ucy5jbGllbnRJRCxcbiAgLy8gICAgICAgICByZWRpcmVjdF91cmk6IHRoaXMuX2NvbmZpZy5vcHRpb25zLnJlZGlyZWN0VXJpLFxuICAvLyAgICAgICAgIHJlZnJlc2hfdG9rZW46IHRoaXMucmVmcmVzaFRva2VuXG4gIC8vICAgICAgIH07XG5cbiAgLy8gICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBUb2tlblJlcXVlc3QocmVxSlNPTik7XG5cbiAgLy8gICAgICAgdGhpcy50b2tlbkhhbmRsZXJcbiAgLy8gICAgICAgICAucGVyZm9ybVRva2VuUmVxdWVzdChjb25maWcsIHJlcXVlc3QpXG4gIC8vICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAvLyAgICAgICAgICAgb3BlcmF0b3IuY29tcGxldGUocmVzcG9uc2UpO1xuICAvLyAgICAgICAgIH0pO1xuICAvLyAgICAgfSk7XG4gIC8vICAgfSk7XG4gIC8vIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvb2lkYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBbUMsTUFBTSxTQUFTLENBQUM7QUFFekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3RFLE1BQU07Ozs7Ozs7O0lBSUosWUFDVSxNQUFvQixFQUNwQixPQUEwQixFQUMxQixPQUEwQixFQUMxQixLQUFzQixFQUN0QixVQUFxQztRQUpyQyxXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQzFCLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBQ3RCLGVBQVUsR0FBVixVQUFVLENBQTJCO1FBRTdDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEdBQUcsRUFBRTtZQUMvQyxPQUFPLEVB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bmplY3RhYmxlLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9JRENDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBHUkFOVF9UWVBFX0FVVEhPUklaQVRJT05fQ09ERSwgVG9rZW5SZXF1ZXN0SnNvbiwgVG9rZW5SZXNwb25zZSB9IGZyb20gJy4vdG9rZW4nO1xuXG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgSU9JRENDb25maWcgfSBmcm9tICcuL2NvbmZpZy1pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhcnNlZElkVG9rZW4sIEF1dGhvcml6YXRpb25FcnJvckpzb24sIEF1dGhvcml6YXRpb25SZXNwb25zZUpzb24gfSBmcm9tICcuL3Rva2VuJztcbmltcG9ydCB7IE9JRENGbG93U2VydmljZSwgT0lEQ0Zsb3dzIH0gZnJvbSAnLi9mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ1Rva2VuUmVxdWVzdG9yU2VydmljZSB9IGZyb20gJy4vdG9rZW4tcmVxdWVzdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb20sIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtZXJnZU1hcCwgdGFwLCBjb25jYXRBbGwsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPSURDU2VydmljZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2Zsb3dEZWJ1Z0xpc3RlbmVyOiBhbnk7XG4gIHByaXZhdGUgX2F1dG9Mb2dvbkxpc3RlbmVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdG9rZW46IFRva2VuU2VydmljZSxcbiAgICBwcml2YXRlIF9sb2dnZXI6IE9JRENMb2dnZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NvbmZpZzogT0lEQ0NvbmZpZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZmxvdzogT0lEQ0Zsb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgX3JlcXVlc3RvcjogT0lEQ1Rva2VuUmVxdWVzdG9yU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy51cGRhdGVDb25maWcoKTtcbiAgICB0aGlzLl9mbG93Lm9uRW50ZXIoT0lEQ0Zsb3dzLlVQREFURV9DT05GSUcsICgpID0+IHtcbiAgICAgIHJldHVybiBvZigxKS5waXBlKHRhcCgoKSA9PiB0aGlzLnVwZGF0ZUNvbmZpZygpKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9mbG93Lm9uRW50ZXIoT0lEQ0Zsb3dzLkNIRUNLX0FVVEhPUklaRUQsICgpID0+IHtcbiAgICAgIHJldHVybiBvZigxKS5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIC8vIGNhbGwgY29tcGxldGUgYXV0aG9yaXphdGlvbiBpZiBwb3NzaWJsZSB0byBzZWUgdGhlcmUgbWlnaHRcbiAgICAgICAgICAvLyBiZSBhIHJlc3BvbnNlIHRoYXQgbmVlZHMgdG8gYmUgZGVsaXZlcmVkLlxuICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBDaGVja2luZyB0byBzZWUgaWYgdGhlcmUgaXMgYW4gYXV0aG9yaXphdGlvbiByZXNwb25zZSB0byBiZSBkZWxpdmVyZWQuYFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiBmcm9tKHRoaXMuX3JlcXVlc3Rvci5jb21wbGV0ZUF1dGhvcml6YXRpb25SZXF1ZXN0KCkpLnBpcGUoY2F0Y2hFcnJvcih2YWwgPT4gb2YodmFsKSkpKSxcbiAgICAgICAgbWVyZ2VNYXAoKHJlc3VsdDogQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbnxFcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKGBObyByZXN1bHQgaXMgYXZhaWxhYmxlIHlldC5gKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmxvdy50cmFuc2l0VG8kKE9JRENGbG93cy5SRVFVRVNUX1JFRlJFU0hfVE9LRU4sIHJlc3VsdClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9mbG93Lm9uRW50ZXIoT0lEQ0Zsb3dzLlJFUVVFU1RfQVVUSE9SSVpBVElPTiwgKCkgPT4ge1xuICAgICAgcmV0dXJuIG9mKDEpLnBpcGUodGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVxdWVzdG9yLnBlcmZvcm1BdXRob3JpemF0aW9uUmVxdWVzdCgpO1xuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5SRVFVRVNUX1JFRlJFU0hfVE9LRU4sIChyZXNwb25zZTogQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3Rvci5wZXJmb3JtVG9rZW5SZXF1ZXN0JCh7XG4gICAgICAgIGdyYW50X3R5cGU6IEdSQU5UX1RZUEVfQVVUSE9SSVpBVElPTl9DT0RFLFxuICAgICAgICBjb2RlOiByZXNwb25zZS5jb2RlLFxuICAgICAgICByZWRpcmVjdF91cmk6IFwiXCIsXG4gICAgICAgIGNsaWVudF9pZDogXCJcIixcbiAgICAgIH0gYXMgVG9rZW5SZXF1ZXN0SnNvbikucGlwZShcbiAgICAgICAgdGFwKChyZXN1bHQ6IFRva2VuUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl90b2tlbi5zZXRUb2tlbihyZXN1bHQpO1xuICAgICAgICAgIHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKTtcbiAgICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbmZpZygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZmxvd0RlYnVnTGlzdGVuZXIgPT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb25maWcub3B0aW9ucy5kZWJ1Zykge1xuICAgICAgdGhpcy5fZmxvd0RlYnVnTGlzdGVuZXIgPSB0aGlzLl9mbG93LnN1YmplY3QkLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKGBGbG93IGVudGVyZWQgc3RhdGU6ICR7dn1gKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9hdXRvTG9nb25MaXN0ZW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLl9hdXRvTG9nb25MaXN0ZW5lcigpO1xuICAgICAgdGhpcy5fYXV0b0xvZ29uTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2NvbmZpZy5vcHRpb25zLmF1dG9Mb2dvbikge1xuICAgICAgdGhpcy5fYXV0b0xvZ29uTGlzdGVuZXIgPSB0aGlzLl9mbG93Lm9uRW50ZXIoT0lEQ0Zsb3dzLldBSVRJTkcsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG9mKDEpLnBpcGUobWVyZ2VNYXAoKCkgPT4gdGhpcy5fZmxvdy50cmFuc2l0VG9OZXh0JCgpKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcnVuJChvcHRpb25zPzogSU9JRENDb25maWcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICByZXR1cm4gZnJvbShbdGhpcy5fY29uZmlnLmFwcGx5Q29uZmlnKG9wdGlvbnMpLCB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKCldKS5waXBlKFxuICAgICAgICBjb25jYXRBbGwoKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLmlzQXV0aGVudGljYXRlZCgpO1xuICB9XG5cbiAgcHVibGljIHNpZ25Jbih1c2VybmFtZT86IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gICAgaWYgKHRoaXMuaXNBdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2Zsb3cuY3VycmVudFN0YXRlICE9PSBPSURDRmxvd3MuV0FJVElORykge1xuICAgICAgdGhpcy5fbG9nZ2VyLmVycm9yKFwiTm90IHJlYWR5IHlldD9cIik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXCJOb3QgcmVhZHkgeWV0P1wiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZmxvdy50cmFuc2l0VG9OZXh0JCgpLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgcHVibGljIHNpZ25PdXQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Rva2VuLmdldFRva2VuKCkucmVmcmVzaFRva2VuKSB7XG4gICAgICB0aGlzLl90b2tlbi5sb2dvdXQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9XG4gICAgICAgICAgdGhpcy5fY29uZmlnLm9wdGlvbnMub3BlbmRJRENvbm5lY3RVUkwgK1xuICAgICAgICAgICdvYXV0aDIvYXV0aC9zZXNzaW9ucy9sb2dpbi9yZXZva2UnO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2xvZ2dlci53YXJuKCdObyByZWZyZXNodG9rZW4gaW4gc2lnbk91dCgpJyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCB0b2tlbigpIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4uZ2V0VG9rZW4oKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFyc2VkSWRUb2tlbigpOiBQYXJzZWRJZFRva2VuIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4ucGFyc2VkSWRUb2tlbjtcbiAgfVxuXG4gIC8vIHBlcmZvcm1XaXRoRnJlc2hUb2tlbnMoKTogT2JzZXJ2YWJsZTxUb2tlblJlc3BvbnNlPiB7XG4gIC8vICAgcmV0dXJuIE9ic2VydmFibGUuY3JlYXRlKG9wZXJhdG9yID0+IHtcbiAgLy8gICAgIHRoaXMuY29uZmlndXJlZCQuc3Vic2NyaWJlKGNvbmZpZyA9PiB7XG4gIC8vICAgICAgIGlmICh0aGlzLnRva2VuLnJlZnJlc2hUb2tlbikge1xuICAvLyAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoJ01pc3NpbmcgcmVmcmVzaFRva2VuLicpO1xuICAvLyAgICAgICB9XG5cbiAgLy8gICAgICAgLy8gSXMgdG9rZW4gZXhwaXJlZC4uLlxuICAvLyAgICAgICAvLyBpZiAodGhpcy50b2tlbi5pc1ZhbGlkKCkpIHtcbiAgLy8gICAgICAgLy8gICAvLyBkbyBub3RoaW5nXG4gIC8vICAgICAgIC8vICAgb3BlcmF0b3IuY29tcGxldGUodGhpcy50b2tlbik7XG4gIC8vICAgICAgIC8vICAgcmV0dXJuO1xuICAvLyAgICAgICAvLyB9XG5cbiAgLy8gICAgICAgY29uc3QgcmVxSlNPTjogVG9rZW5SZXF1ZXN0SnNvbiA9IHtcbiAgLy8gICAgICAgICBncmFudF90eXBlOiBHUkFOVF9UWVBFX1JFRlJFU0hfVE9LRU4sXG4gIC8vICAgICAgICAgY2xpZW50X2lkOiB0aGlzLl9jb25maWcub3B0aW9ucy5jbGllbnRJRCxcbiAgLy8gICAgICAgICByZWRpcmVjdF91cmk6IHRoaXMuX2NvbmZpZy5vcHRpb25zLnJlZGlyZWN0VXJpLFxuICAvLyAgICAgICAgIHJlZnJlc2hfdG9rZW46IHRoaXMucmVmcmVzaFRva2VuXG4gIC8vICAgICAgIH07XG5cbiAgLy8gICAgICAgY29uc3QgcmVxdWVzdCA9IG5ldyBUb2tlblJlcXVlc3QocmVxSlNPTik7XG5cbiAgLy8gICAgICAgdGhpcy50b2tlbkhhbmRsZXJcbiAgLy8gICAgICAgICAucGVyZm9ybVRva2VuUmVxdWVzdChjb25maWcsIHJlcXVlc3QpXG4gIC8vICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAvLyAgICAgICAgICAgb3BlcmF0b3IuY29tcGxldGUocmVzcG9uc2UpO1xuICAvLyAgICAgICAgIH0pO1xuICAvLyAgICAgfSk7XG4gIC8vICAgfSk7XG4gIC8vIH1cbn1cbiJdfQ==

@@ -203,4 +203,8 @@ /**

performAuthorizationRequest(responseType = OIDCAuthorizationResponseTypes.RESPONSE_TYPE_CODE) {
this._crypto.generateRandom(10).pipe(tap(state => {
this._storage.set(this.storageARequestStateName, state, '');
this._crypto.generateRandom(10).pipe(mergeMap(state => {
return this._token.createAndSaveNonce().pipe(map(nonce => {
return [state, nonce];
}));
}), mergeMap(stateAndNonce => {
this._storage.set(this.storageARequestStateName, stateAndNonce[0], '');
/** @type {?} */

@@ -215,8 +219,6 @@ let scope = this._config.options.scope.join(' ');

};
this._token.createAndSaveNonce().subscribe(nonce => {
this.buildRequestUrl(responseType, scope, state, extras, nonce).subscribe(url => {
this._logger.debug('Making a request to ', url);
window.location.href = url;
});
});
return this.buildRequestUrl(responseType, scope, stateAndNonce[0], extras, stateAndNonce[1]);
}), tap(url => {
this._logger.debug('Making a request to ', url);
window.location.href = url;
})).subscribe(() => { });

@@ -303,2 +305,2 @@ }

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tcmVxdWVzdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi1yZXF1ZXN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxhQUFhLEdBTWQsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztNQUUvQyxtQkFBbUIsR0FBRztJQUMxQixjQUFjO0lBQ2QsV0FBVztJQUNYLGVBQWU7SUFDZixPQUFPO0lBQ1AsT0FBTztDQUNSOzs7SUFHQyxxQkFBc0IsT0FBTztJQUM3QixvQkFBcUIsTUFBTTs7Ozs7O0FBRzdCLE1BQU07Ozs7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Ozs7SUFxSnJCLHFFQUF3Qzs7SUFRdEMsbURBQTRCOztJQUM1QixrREFBOEI7O0lBQzlCLG9EQUE4Qjs7SUFDOUIscURBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBPSURDQ29uZmlnU2VydmljZSxcbiAgT0lEQ0NvbmZpZ1N0b3JhZ2VLZXlOYW1lc1xufSBmcm9tICcuL2NvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENyeXB0b1NlcnZpY2UgfSBmcm9tICcuL2NyeXB0by5zZXJ2aWNlJztcbmltcG9ydCB7IFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ0Zsb3dTZXJ2aWNlLCBPSURDRmxvd3MgfSBmcm9tICcuL2Zsb3cuc2VydmljZSc7XG5pbXBvcnQgeyBPSURDQ29uZmlndXJhdGlvblNlcnZpY2UgfSBmcm9tICcuL29pZGMtY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIG1lcmdlTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtcbiAgVG9rZW5SZXNwb25zZSxcbiAgQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbixcbiAgQXV0aG9yaXphdGlvbkVycm9ySnNvbixcbiAgVG9rZW5SZXF1ZXN0SnNvbixcbiAgVG9rZW5FcnJvckpzb24sXG4gIFRva2VuUmVzcG9uc2VKc29uLFxufSBmcm9tICcuL3Rva2VuJztcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XG5pbXBvcnQgeyBPSURDTG9nZ2VyU2VydmljZSB9IGZyb20gJy4vbG9nZ2VyLnNlcnZpY2UnO1xuXG5jb25zdCBCVUlMVF9JTl9QQVJBTUVURVJTID0gW1xuICAncmVkaXJlY3RfdXJpJyxcbiAgJ2NsaWVudF9pZCcsXG4gICdyZXNwb25zZV90eXBlJyxcbiAgJ3N0YXRlJyxcbiAgJ3Njb3BlJ1xuXTtcblxuZXhwb3J0IGVudW0gT0lEQ0F1dGhvcml6YXRpb25SZXNwb25zZVR5cGVzIHtcbiAgUkVTUE9OU0VfVFlQRV9UT0tFTiA9ICd0b2tlbicsXG4gIFJFU1BPTlNFX1RZUEVfQ09ERSA9ICdjb2RlJ1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT0lEQ1Rva2VuUmVxdWVzdG9yU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfY29uZmlnOiBPSURDQ29uZmlnU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcm90ZWN0ZWQgX2xvZ2dlcjogT0lEQ0xvZ2dlclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIF9jb25maWd1cmF0aW9uOiBPSURDQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIF9odHRwOiBIdHRwQ2xpZW50LFxuICApIHtcblxuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkUmVxdWVzdFVybChcbiAgICByZXNwb25zZVR5cGU6IE9JRENBdXRob3JpemF0aW9uUmVzcG9uc2VUeXBlcyxcbiAgICBzY29wZTogc3RyaW5nLFxuICAgIHN0YXRlOiBzdHJpbmcsXG4gICAgZXh0cmFzOiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgbm9uY2U6IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAvLyBidWlsZCB0aGUgcXVlcnkgc3RyaW5nXG4gICAgLy8gY29lcmNlIHRvIGFueSB0eXBlIGZvciBjb252ZW5pZW5jZVxuXG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3JlZGlyZWN0X3VyaScsIHRoaXMuX2NvbmZpZy5vcHRpb25zLnJlZGlyZWN0VXJpKTtcbiAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdjbGllbnRfaWQnLCB0aGlzLl9jb25maWcub3B0aW9ucy5jbGllbnRJRCk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgncmVzcG9uc2VfdHlwZScsIHJlc3BvbnNlVHlwZSk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnc3RhdGUnLCBzdGF0ZSk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnc2NvcGUnLCBzY29wZSk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnbm9uY2UnLCBub25jZSk7XG5cbiAgICAvLyBjb3B5IG92ZXIgZXh0cmFzXG4gICAgaWYgKGV4dHJhcykge1xuICAgICAgZm9yIChjb25zdCBleHRyYSBpbiBleHRyYXMpIHtcbiAgICAgICAgaWYgKCFleHRyYXMuaGFzT3duUHJvcGVydHkoZXh0cmEpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoQlVJTFRfSU5fUEFSQU1FVEVSUy5pbmRleE9mKGV4dHJhKSA8IDApIHtcbiAgICAgICAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKGV4dHJhLCBleHRyYXNbZXh0cmFdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb24uZGlzY292ZXJ5JC5waXBlKFxuICAgICAgbWFwKGRvYyA9PiB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSBkb2MuYXV0aG9yaXphdGlvbl9lbmRwb2ludDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7YmFzZVVybH0/JHtxdWVyeX1gO1xuXG4gICAgICAgIHJldHVybiB1cmw7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgYWJzdHJhY3QgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0KCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3QgY29tcGxldGVBdXRob3JpemF0aW9uUmVxdWVzdCgpOiBQcm9taXNlPEF1dGhvcml6YXRpb25SZXNwb25zZUpzb24+O1xuXG4gIHByaXZhdGUgaXNUb2tlblJlc3BvbnNlKHJlc3BvbnNlOiBUb2tlblJlc3BvbnNlSnNvbiB8XG4gICAgVG9rZW5FcnJvckpzb24pOiByZXNwb25zZSBpcyBUb2tlblJlc3BvbnNlSnNvbiB7XG4gICAgcmV0dXJuIChyZXNwb25zZSBhcyBUb2tlbkVycm9ySnNvbikuZXJyb3IgPT09IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8vIHB1YmxpYyBwZXJmb3JtUmV2b2tlVG9rZW5SZXF1ZXN0KFxuICAvLyAgIGNvbmZpZ3VyYXRpb246IEF1dGhvcml6YXRpb25TZXJ2aWNlQ29uZmlndXJhdGlvbixcbiAgLy8gICByZXF1ZXN0OiBSZXZva2VUb2tlblJlcXVlc3QpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgLy8gICBsZXQgcmV2b2tlVG9rZW5SZXNwb25zZSA9IHRoaXMucmVxdWVzdG9yLnhocjxib29sZWFuPih7XG4gIC8vICAgICB1cmw6IGNvbmZpZ3VyYXRpb24ucmV2b2NhdGlvbkVuZHBvaW50LFxuICAvLyAgICAgbWV0aG9kOiAnUE9TVCcsXG4gIC8vICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJyB9LFxuICAvLyAgICAgZGF0YTogdGhpcy51dGlscy5zdHJpbmdpZnkocmVxdWVzdC50b1N0cmluZ01hcCgpKVxuICAvLyAgIH0pO1xuXG4gIC8vICAgcmV0dXJuIHJldm9rZVRva2VuUmVzcG9uc2UudGhlbihyZXNwb25zZSA9PiB7XG4gIC8vICAgICByZXR1cm4gdHJ1ZTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIHB1YmxpYyBwZXJmb3JtVG9rZW5SZXF1ZXN0JChyZXF1ZXN0OiBUb2tlblJlcXVlc3RKc29uKTpcbiAgICBPYnNlcnZhYmxlPFRva2VuUmVzcG9uc2U+IHtcblxuICAgIHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uLmRpc2NvdmVyeSQucGlwZShcbiAgICAgIG1hcChcbiAgICAgICAgZGlzY292ZXJEb2MgPT4ge1xuICAgICAgICAgIHJldHVybiBkaXNjb3ZlckRvYy50b2tlbl9lbmRwb2ludDtcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIG1lcmdlTWFwKFxuICAgICAgICB0b2tlbkVuZHBvaW50ID0+IHtcbiAgICAgICAgICBjb25zdCBib2R5ID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgYm9keS5zZXQoJ2dyYW50X3R5cGUnLCByZXF1ZXN0LmdyYW50X3R5cGUpO1xuICAgICAgICAgIGlmIChyZXF1ZXN0LmNvZGUpIHtcbiAgICAgICAgICAgIGJvZHkuc2V0KCdjb2RlJywgcmVxdWVzdC5jb2RlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJlcXVlc3QucmVmcmVzaF90b2tlbikge1xuICAgICAgICAgICAgYm9keS5zZXQoJ3JlZnJlc2hfdG9rZW4nLCByZXF1ZXN0LnJlZnJlc2hfdG9rZW4pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBib2R5LnNldCgncmVkaXJlY3RfdXJpJywgdGhpcy5fY29uZmlnLm9wdGlvbnMucmVkaXJlY3RVcmkpO1xuICAgICAgICAgIGJvZHkuc2V0KCdjbGllbnRfaWQnLCB0aGlzLl9jb25maWcub3B0aW9ucy5jbGllbnRJRCk7XG4gICAgICAgICAgaWYgKHJlcXVlc3QuZXh0cmFzKSB7XG4gICAgICAgICAgICBib2R5LnNldCgnZXh0cmFzJywgcmVxdWVzdC5leHRyYXMudG9TdHJpbmcoKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8VG9rZW5SZXNwb25zZUpzb24gfCBUb2tlbkVycm9ySnNvbj4odG9rZW5FbmRwb2ludCwgYm9keSk7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBtYXAoXG4gICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5pc1Rva2VuUmVzcG9uc2UocmVzcG9uc2UpKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFRva2VuUmVzcG9uc2UocmVzcG9uc2UpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyByZXNwb25zZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBPSURDUmVkaXJlY3RCYXNlZFJlcXVlc3RvclNlcnZpY2UgZXh0ZW5kcyBPSURDVG9rZW5SZXF1ZXN0b3JTZXJ2aWNlIHtcbiAgcHVibGljIHN0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoT0lEQ0NvbmZpZ1NlcnZpY2UpIF9jb25maWc6IE9JRENDb25maWdTZXJ2aWNlLFxuICAgIEBJbmplY3QoQWN0aXZhdGVkUm91dGUpIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgQEluamVjdChPSURDTG9nZ2VyU2VydmljZSkgX2xvZ2dlcjogT0lEQ0xvZ2dlclNlcnZpY2UsXG4gICAgQEluamVjdChPSURDQ29uZmlndXJhdGlvblNlcnZpY2UpIF9jb25maWd1cmF0aW9uOiBPSURDQ29uZmlndXJhdGlvblNlcnZpY2UsXG4gICAgQEluamVjdChIdHRwQ2xpZW50KSBfaHR0cDogSHR0cENsaWVudCxcbiAgICBwcml2YXRlIF90b2tlbjogVG9rZW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX2Zsb3c6IE9JRENGbG93U2VydmljZSxcbiAgICBwcml2YXRlIF9jcnlwdG86IENyeXB0b1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfc3RvcmFnZTogU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoX2NvbmZpZywgX3JvdXRlLCBfbG9nZ2VyLCBfY29uZmlndXJhdGlvbiwgX2h0dHApO1xuXG4gICAgdGhpcy51cGRhdGVDb25maWcoKTtcbiAgICB0aGlzLl9mbG93Lm9uRW50ZXIoT0lEQ0Zsb3dzLlVQREFURV9DT05GSUcsICgpID0+IHtcbiAgICAgIHJldHVybiBvZigxKS5waXBlKHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUNvbmZpZygpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSA9IHRoaXMuX2NvbmZpZy5nZXRTdG9yYWdlS2V5KFxuICAgICAgT0lEQ0NvbmZpZ1N0b3JhZ2VLZXlOYW1lcy5BX1JFUVVFU1RfU1RBVEVcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHBlcmZvcm1BdXRob3JpemF0aW9uUmVxdWVzdChcbiAgICByZXNwb25zZVR5cGUgPSBPSURDQXV0aG9yaXphdGlvblJlc3BvbnNlVHlwZXMuUkVTUE9OU0VfVFlQRV9DT0RFXG4gICk6IHZvaWQge1xuICAgIHRoaXMuX2NyeXB0by5nZW5lcmF0ZVJhbmRvbSgxMCkucGlwZShcbiAgICAgIHRhcChzdGF0ZSA9PiB7XG4gICAgICAgIHRoaXMuX3N0b3JhZ2Uuc2V0KHRoaXMuc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lLCBzdGF0ZSwgJycpO1xuXG4gICAgICAgIGxldCBzY29wZTogc3RyaW5nID0gdGhpcy5fY29uZmlnLm9wdGlvbnMuc2NvcGUuam9pbignICcpO1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLm9wdGlvbnMucmVmcmVzaF90b2tlbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHNjb3BlICs9ICcgb2ZmbGluZSc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRyYXMgPSB7XG4gICAgICAgICAgcHJvbXB0OiB0aGlzLl9jb25maWcub3B0aW9ucy5wcm9tcHRcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLl90b2tlbi5jcmVhdGVBbmRTYXZlTm9uY2UoKS5zdWJzY3JpYmUobm9uY2UgPT4ge1xuICAgICAgICAgIHRoaXMuYnVpbGRSZXF1ZXN0VXJsKHJlc3BvbnNlVHlwZSwgc2NvcGUsIHN0YXRlLCBleHRyYXMsIG5vbmNlKS5zdWJzY3JpYmUodXJsID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnTWFraW5nIGEgcmVxdWVzdCB0byAnLCB1cmwpO1xuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgoKSA9PiB7IH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGVtcHRzIHRvIGludHJvc3BlY3QgdGhlIGNvbnRlbnRzIG9mIHN0b3JhZ2UgYmFja2VuZCBhbmQgY29tcGxldGVzIHRoZVxuICAgKiByZXF1ZXN0LlxuICAgKi9cbiAgcHVibGljIGNvbXBsZXRlQXV0aG9yaXphdGlvblJlcXVlc3QoKTogUHJvbWlzZTxBdXRob3JpemF0aW9uUmVzcG9uc2VKc29uPiB7XG4gICAgY29uc3QgcmVxdWVzdFN0YXRlID0gdGhpcy5fc3RvcmFnZS5nZXQodGhpcy5zdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWUpO1xuICAgIHRoaXMuX3N0b3JhZ2UucmVtb3ZlKHRoaXMuc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lKTtcblxuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gdGhpcy5fcm91dGUuc25hcHNob3QucXVlcnlQYXJhbXM7XG4gICAgY29uc3Qgc3RhdGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHF1ZXJ5UGFyYW1zWydzdGF0ZSddO1xuICAgIGNvbnN0IGNvZGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHF1ZXJ5UGFyYW1zWydjb2RlJ107XG4gICAgY29uc3QgZXJyb3I6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHF1ZXJ5UGFyYW1zWydlcnJvciddO1xuXG4gICAgaWYgKCFzdGF0ZSB8fCAhY29kZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFwiTm90IEF1dGhvcml6ZWRcIik7XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdQb3RlbnRpYWwgYXV0aG9yaXphdGlvbiByZXF1ZXN0Jyk7XG5cbiAgICBjb25zdCBzaG91bGROb3RpZnkgPSBzdGF0ZSA9PT0gcmVxdWVzdFN0YXRlO1xuICAgIGlmICghc2hvdWxkTm90aWZ5KSB7XG4gICAgICBjb25zdCBlcnIgPSAnTWlzbWF0Y2hlZCByZXF1ZXN0IChzdGF0ZSBhbmQgcmVxdWVzdF91cmkpIGRvbnQgbWF0Y2guJztcbiAgICAgIHRoaXMuX2xvZ2dlci53YXJuKGVycik7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIC8vIGdldCBhZGRpdGlvbmFsIG9wdGlvbmFsIGluZm8uXG4gICAgICBjb25zdCBlcnJvclVyaSA9IHF1ZXJ5UGFyYW1zWydlcnJvcl91cmknXTtcbiAgICAgIGNvbnN0IGVycm9yRGVzY3JpcHRpb24gPSBxdWVyeVBhcmFtc1snZXJyb3JfZGVzY3JpcHRpb24nXTtcbiAgICAgIGNvbnN0IGF1dGhvcml6YXRpb25FcnJvciA9IHtcbiAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICBlcnJvcl9kZXNjcmlwdGlvbjogZXJyb3JEZXNjcmlwdGlvbixcbiAgICAgICAgZXJyb3JfdXJpOiBlcnJvclVyaSxcbiAgICAgICAgc3RhdGU6IHN0YXRlXG4gICAgICB9IGFzIEF1dGhvcml6YXRpb25FcnJvckpzb247XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoYXV0aG9yaXphdGlvbkVycm9yKTtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoJ0RlbGl2ZXJpbmcgYXV0aG9yaXphdGlvbiByZXNwb25zZScpO1xuICAgIGNvbnN0IGF1dGhvcml6YXRpb25SZXNwb25zZSA9IHtcbiAgICAgIGNvZGU6IGNvZGUsXG4gICAgICBzdGF0ZTogc3RhdGUsXG4gICAgfSBhcyBBdXRob3JpemF0aW9uUmVzcG9uc2VKc29uO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoYXV0aG9yaXphdGlvblJlc3BvbnNlKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tcmVxdWVzdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi1yZXF1ZXN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQix5QkFBeUIsRUFDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3hFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFDTCxhQUFhLEdBTWQsTUFBTSxTQUFTLENBQUM7QUFDakIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztNQUUvQyxtQkFBbUIsR0FBRztJQUMxQixjQUFjO0lBQ2QsV0FBVztJQUNYLGVBQWU7SUFDZixPQUFPO0lBQ1AsT0FBTztDQUNSOzs7SUFHQyxxQkFBc0IsT0FBTztJQUM3QixvQkFBcUIsTUFBTTs7Ozs7O0FBRzdCLE1BQU07Ozs7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O1lBMUlqQixpQkFBaUIsdUJBMklyQixNQUFNLFNBQUMsaUJBQWlCO1lBeEpwQix3QkFBd0IsdUJBeUo1QixNQUFNLFNBQUMsd0JBQXdCO1lBdEozQixVQUFVLHVCQXVKZCxNQUFNLFNBQUMsVUFBVTtZQTlJYixZQUFZO1lBYlosZUFBZTtZQUZmLGFBQWE7WUFDYixjQUFjOzs7O0lBcUpyQixxRUFBd0M7O0lBUXRDLG1EQUE0Qjs7SUFDNUIsa0RBQThCOztJQUM5QixvREFBOEI7O0lBQzlCLHFEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT0lEQ0NvbmZpZ1NlcnZpY2UsXG4gIE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXNcbn0gZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDcnlwdG9TZXJ2aWNlIH0gZnJvbSAnLi9jcnlwdG8uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENGbG93U2VydmljZSwgT0lEQ0Zsb3dzIH0gZnJvbSAnLi9mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vaWRjLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIFRva2VuUmVzcG9uc2UsXG4gIEF1dGhvcml6YXRpb25SZXNwb25zZUpzb24sXG4gIEF1dGhvcml6YXRpb25FcnJvckpzb24sXG4gIFRva2VuUmVxdWVzdEpzb24sXG4gIFRva2VuRXJyb3JKc29uLFxuICBUb2tlblJlc3BvbnNlSnNvbixcbn0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcblxuY29uc3QgQlVJTFRfSU5fUEFSQU1FVEVSUyA9IFtcbiAgJ3JlZGlyZWN0X3VyaScsXG4gICdjbGllbnRfaWQnLFxuICAncmVzcG9uc2VfdHlwZScsXG4gICdzdGF0ZScsXG4gICdzY29wZSdcbl07XG5cbmV4cG9ydCBlbnVtIE9JRENBdXRob3JpemF0aW9uUmVzcG9uc2VUeXBlcyB7XG4gIFJFU1BPTlNFX1RZUEVfVE9LRU4gPSAndG9rZW4nLFxuICBSRVNQT05TRV9UWVBFX0NPREUgPSAnY29kZSdcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9JRENUb2tlblJlcXVlc3RvclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX2NvbmZpZzogT0lEQ0NvbmZpZ1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJvdGVjdGVkIF9sb2dnZXI6IE9JRENMb2dnZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBfY29uZmlndXJhdGlvbjogT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBfaHR0cDogSHR0cENsaWVudCxcbiAgKSB7XG5cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJlcXVlc3RVcmwoXG4gICAgcmVzcG9uc2VUeXBlOiBPSURDQXV0aG9yaXphdGlvblJlc3BvbnNlVHlwZXMsXG4gICAgc2NvcGU6IHN0cmluZyxcbiAgICBzdGF0ZTogc3RyaW5nLFxuICAgIGV4dHJhczogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgIG5vbmNlOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgLy8gYnVpbGQgdGhlIHF1ZXJ5IHN0cmluZ1xuICAgIC8vIGNvZXJjZSB0byBhbnkgdHlwZSBmb3IgY29udmVuaWVuY2VcblxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdyZWRpcmVjdF91cmknLCB0aGlzLl9jb25maWcub3B0aW9ucy5yZWRpcmVjdFVyaSk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnY2xpZW50X2lkJywgdGhpcy5fY29uZmlnLm9wdGlvbnMuY2xpZW50SUQpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Jlc3BvbnNlX3R5cGUnLCByZXNwb25zZVR5cGUpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3N0YXRlJywgc3RhdGUpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Njb3BlJywgc2NvcGUpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ25vbmNlJywgbm9uY2UpO1xuXG4gICAgLy8gY29weSBvdmVyIGV4dHJhc1xuICAgIGlmIChleHRyYXMpIHtcbiAgICAgIGZvciAoY29uc3QgZXh0cmEgaW4gZXh0cmFzKSB7XG4gICAgICAgIGlmICghZXh0cmFzLmhhc093blByb3BlcnR5KGV4dHJhKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEJVSUxUX0lOX1BBUkFNRVRFUlMuaW5kZXhPZihleHRyYSkgPCAwKSB7XG4gICAgICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChleHRyYSwgZXh0cmFzW2V4dHJhXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uLmRpc2NvdmVyeSQucGlwZShcbiAgICAgIG1hcChkb2MgPT4ge1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gZG9jLmF1dGhvcml6YXRpb25fZW5kcG9pbnQ7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9PyR7cXVlcnl9YDtcblxuICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGFic3RyYWN0IHBlcmZvcm1BdXRob3JpemF0aW9uUmVxdWVzdCgpOiB2b2lkO1xuXG4gIGFic3RyYWN0IGNvbXBsZXRlQXV0aG9yaXphdGlvblJlcXVlc3QoKTogUHJvbWlzZTxBdXRob3JpemF0aW9uUmVzcG9uc2VKc29uPjtcblxuICBwcml2YXRlIGlzVG9rZW5SZXNwb25zZShyZXNwb25zZTogVG9rZW5SZXNwb25zZUpzb24gfFxuICAgIFRva2VuRXJyb3JKc29uKTogcmVzcG9uc2UgaXMgVG9rZW5SZXNwb25zZUpzb24ge1xuICAgIHJldHVybiAocmVzcG9uc2UgYXMgVG9rZW5FcnJvckpzb24pLmVycm9yID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBwdWJsaWMgcGVyZm9ybVJldm9rZVRva2VuUmVxdWVzdChcbiAgLy8gICBjb25maWd1cmF0aW9uOiBBdXRob3JpemF0aW9uU2VydmljZUNvbmZpZ3VyYXRpb24sXG4gIC8vICAgcmVxdWVzdDogUmV2b2tlVG9rZW5SZXF1ZXN0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIC8vICAgbGV0IHJldm9rZVRva2VuUmVzcG9uc2UgPSB0aGlzLnJlcXVlc3Rvci54aHI8Ym9vbGVhbj4oe1xuICAvLyAgICAgdXJsOiBjb25maWd1cmF0aW9uLnJldm9jYXRpb25FbmRwb2ludCxcbiAgLy8gICAgIG1ldGhvZDogJ1BPU1QnLFxuICAvLyAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgfSxcbiAgLy8gICAgIGRhdGE6IHRoaXMudXRpbHMuc3RyaW5naWZ5KHJlcXVlc3QudG9TdHJpbmdNYXAoKSlcbiAgLy8gICB9KTtcblxuICAvLyAgIHJldHVybiByZXZva2VUb2tlblJlc3BvbnNlLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAvLyAgICAgcmV0dXJuIHRydWU7XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBwdWJsaWMgcGVyZm9ybVRva2VuUmVxdWVzdCQocmVxdWVzdDogVG9rZW5SZXF1ZXN0SnNvbik6XG4gICAgT2JzZXJ2YWJsZTxUb2tlblJlc3BvbnNlPiB7XG5cbiAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbi5kaXNjb3ZlcnkkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIGRpc2NvdmVyRG9jID0+IHtcbiAgICAgICAgICByZXR1cm4gZGlzY292ZXJEb2MudG9rZW5fZW5kcG9pbnQ7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBtZXJnZU1hcChcbiAgICAgICAgdG9rZW5FbmRwb2ludCA9PiB7XG4gICAgICAgICAgY29uc3QgYm9keSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgIGJvZHkuc2V0KCdncmFudF90eXBlJywgcmVxdWVzdC5ncmFudF90eXBlKTtcbiAgICAgICAgICBpZiAocmVxdWVzdC5jb2RlKSB7XG4gICAgICAgICAgICBib2R5LnNldCgnY29kZScsIHJlcXVlc3QuY29kZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXF1ZXN0LnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgICAgICAgIGJvZHkuc2V0KCdyZWZyZXNoX3Rva2VuJywgcmVxdWVzdC5yZWZyZXNoX3Rva2VuKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYm9keS5zZXQoJ3JlZGlyZWN0X3VyaScsIHRoaXMuX2NvbmZpZy5vcHRpb25zLnJlZGlyZWN0VXJpKTtcbiAgICAgICAgICBib2R5LnNldCgnY2xpZW50X2lkJywgdGhpcy5fY29uZmlnLm9wdGlvbnMuY2xpZW50SUQpO1xuICAgICAgICAgIGlmIChyZXF1ZXN0LmV4dHJhcykge1xuICAgICAgICAgICAgYm9keS5zZXQoJ2V4dHJhcycsIHJlcXVlc3QuZXh0cmFzLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFRva2VuUmVzcG9uc2VKc29uIHwgVG9rZW5FcnJvckpzb24+KHRva2VuRW5kcG9pbnQsIGJvZHkpO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgbWFwKFxuICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNUb2tlblJlc3BvbnNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUb2tlblJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT0lEQ1JlZGlyZWN0QmFzZWRSZXF1ZXN0b3JTZXJ2aWNlIGV4dGVuZHMgT0lEQ1Rva2VuUmVxdWVzdG9yU2VydmljZSB7XG4gIHB1YmxpYyBzdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE9JRENDb25maWdTZXJ2aWNlKSBfY29uZmlnOiBPSURDQ29uZmlnU2VydmljZSxcbiAgICBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIEBJbmplY3QoT0lEQ0xvZ2dlclNlcnZpY2UpIF9sb2dnZXI6IE9JRENMb2dnZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlKSBfY29uZmlndXJhdGlvbjogT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoSHR0cENsaWVudCkgX2h0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBfdG9rZW46IFRva2VuU2VydmljZSxcbiAgICBwcml2YXRlIF9mbG93OiBPSURDRmxvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY3J5cHRvOiBDcnlwdG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKF9jb25maWcsIF9yb3V0ZSwgX2xvZ2dlciwgX2NvbmZpZ3VyYXRpb24sIF9odHRwKTtcblxuICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5VUERBVEVfQ09ORklHLCAoKSA9PiB7XG4gICAgICByZXR1cm4gb2YoMSkucGlwZSh0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xuICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25maWcoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWUgPSB0aGlzLl9jb25maWcuZ2V0U3RvcmFnZUtleShcbiAgICAgIE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXMuQV9SRVFVRVNUX1NUQVRFXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwZXJmb3JtQXV0aG9yaXphdGlvblJlcXVlc3QoXG4gICAgcmVzcG9uc2VUeXBlID0gT0lEQ0F1dGhvcml6YXRpb25SZXNwb25zZVR5cGVzLlJFU1BPTlNFX1RZUEVfQ09ERVxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9jcnlwdG8uZ2VuZXJhdGVSYW5kb20oMTApLnBpcGUoXG4gICAgICBtZXJnZU1hcChzdGF0ZSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b2tlbi5jcmVhdGVBbmRTYXZlTm9uY2UoKS5waXBlKFxuICAgICAgICAgIG1hcChub25jZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW3N0YXRlLCBub25jZV07XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKHN0YXRlQW5kTm9uY2UgPT4ge1xuICAgICAgICB0aGlzLl9zdG9yYWdlLnNldCh0aGlzLnN0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSwgc3RhdGVBbmROb25jZVswXSwgJycpO1xuXG4gICAgICAgIGxldCBzY29wZTogc3RyaW5nID0gdGhpcy5fY29uZmlnLm9wdGlvbnMuc2NvcGUuam9pbignICcpO1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLm9wdGlvbnMucmVmcmVzaF90b2tlbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHNjb3BlICs9ICcgb2ZmbGluZSc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRyYXMgPSB7XG4gICAgICAgICAgcHJvbXB0OiB0aGlzLl9jb25maWcub3B0aW9ucy5wcm9tcHRcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZFJlcXVlc3RVcmwocmVzcG9uc2VUeXBlLCBzY29wZSwgc3RhdGVBbmROb25jZVswXSwgZXh0cmFzLCBzdGF0ZUFuZE5vbmNlWzFdKVxuICAgICAgfSksXG4gICAgICB0YXAodXJsID0+IHtcbiAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdNYWtpbmcgYSByZXF1ZXN0IHRvICcsIHVybCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgfSksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4geyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBpbnRyb3NwZWN0IHRoZSBjb250ZW50cyBvZiBzdG9yYWdlIGJhY2tlbmQgYW5kIGNvbXBsZXRlcyB0aGVcbiAgICogcmVxdWVzdC5cbiAgICovXG4gIHB1YmxpYyBjb21wbGV0ZUF1dGhvcml6YXRpb25SZXF1ZXN0KCk6IFByb21pc2U8QXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbj4ge1xuICAgIGNvbnN0IHJlcXVlc3RTdGF0ZSA9IHRoaXMuX3N0b3JhZ2UuZ2V0KHRoaXMuc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lKTtcbiAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLnN0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMuX3JvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xuICAgIGNvbnN0IHN0YXRlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBxdWVyeVBhcmFtc1snc3RhdGUnXTtcbiAgICBjb25zdCBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBxdWVyeVBhcmFtc1snY29kZSddO1xuICAgIGNvbnN0IGVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBxdWVyeVBhcmFtc1snZXJyb3InXTtcblxuICAgIGlmICghc3RhdGUgfHwgIWNvZGUpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcIk5vdCBBdXRob3JpemVkXCIpO1xuICAgIH1cblxuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnUG90ZW50aWFsIGF1dGhvcml6YXRpb24gcmVxdWVzdCcpO1xuXG4gICAgY29uc3Qgc2hvdWxkTm90aWZ5ID0gc3RhdGUgPT09IHJlcXVlc3RTdGF0ZTtcbiAgICBpZiAoIXNob3VsZE5vdGlmeSkge1xuICAgICAgY29uc3QgZXJyID0gJ01pc21hdGNoZWQgcmVxdWVzdCAoc3RhdGUgYW5kIHJlcXVlc3RfdXJpKSBkb250IG1hdGNoLic7XG4gICAgICB0aGlzLl9sb2dnZXIud2FybihlcnIpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICAvLyBnZXQgYWRkaXRpb25hbCBvcHRpb25hbCBpbmZvLlxuICAgICAgY29uc3QgZXJyb3JVcmkgPSBxdWVyeVBhcmFtc1snZXJyb3JfdXJpJ107XG4gICAgICBjb25zdCBlcnJvckRlc2NyaXB0aW9uID0gcXVlcnlQYXJhbXNbJ2Vycm9yX2Rlc2NyaXB0aW9uJ107XG4gICAgICBjb25zdCBhdXRob3JpemF0aW9uRXJyb3IgPSB7XG4gICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGVycm9yRGVzY3JpcHRpb24sXG4gICAgICAgIGVycm9yX3VyaTogZXJyb3JVcmksXG4gICAgICAgIHN0YXRlOiBzdGF0ZVxuICAgICAgfSBhcyBBdXRob3JpemF0aW9uRXJyb3JKc29uO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGF1dGhvcml6YXRpb25FcnJvcik7XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdEZWxpdmVyaW5nIGF1dGhvcml6YXRpb24gcmVzcG9uc2UnKTtcbiAgICBjb25zdCBhdXRob3JpemF0aW9uUmVzcG9uc2UgPSB7XG4gICAgICBjb2RlOiBjb2RlLFxuICAgICAgc3RhdGU6IHN0YXRlLFxuICAgIH0gYXMgQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbjtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGF1dGhvcml6YXRpb25SZXNwb25zZSk7XG4gIH1cbn1cbiJdfQ==

@@ -87,2 +87,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiandrcy12YWxpZGF0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi12YWxpZGF0aW9uL2p3a3MtdmFsaWRhdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHlCQUF5QixFQUUxQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7O0FBUXJDLE1BQU0sNEJBQTZCLFNBQVEseUJBQXlCO0lBTnBFOzs7OztPQUtHO0lBQ0g7O1FBQ0U7OztXQUdHO1FBQ0ssYUFBUSxHQUFXLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVc7UUFDekUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsbUJBQUEsTUFBTSxFQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQTBDMUQsQ0FBQzs7Ozs7O0lBeENPLGlCQUFpQixDQUNyQixNQUF3QixFQUN4QixLQUFLLEdBQUcsSUFBSTs7WUFFWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYTtnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFFOUQsSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdGLE9BQU8sTUFBTTtxQkFDVixRQUFRLEVBQUU7cUJBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO3FCQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDckQ7WUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQ1osQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDcEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUNqQztnQkFDQSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7YUFDaEQ7WUFFRCxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDekQsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNyRSxPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTs7Ozs7O0lBRUssUUFBUSxDQUFDLFdBQW1CLEVBQUUsU0FBaUI7OztrQkFDN0MsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzs7a0JBQ25ELFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbkQsU0FBUyxFQUNULFlBQVksQ0FDYjtZQUNELDJDQUEyQztZQUMzQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7S0FBQTtDQUNGOzs7Ozs7O0lBM0NDLHlDQUFxRTs7SUFDckUsNENBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RWYWxpZGF0aW9uSGFuZGxlcixcbiAgVmFsaWRhdGlvblBhcmFtc1xufSBmcm9tICcuL3ZhbGlkYXRpb24taGFuZGxlcic7XG5cbmltcG9ydCB7IEpXSywgSldTIH0gZnJvbSAnbm9kZS1qb3NlJztcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHNpZ25hdHVyZSBvZiBhbiBpZF90b2tlbiBhZ2FpbnN0IG9uZVxuICogb2YgdGhlIGtleXMgb2YgYW4gSlNPTiBXZWIgS2V5IFNldCAoandrcykuXG4gKlxuICogVGhpcyBqd2tzIGNhbiBiZSBwcm92aWRlZCBieSB0aGUgZGlzY292ZXJ5IGRvY3VtZW50LlxuICovXG5leHBvcnQgY2xhc3MgSndrc1ZhbGlkYXRpb25IYW5kbGVyIGV4dGVuZHMgQWJzdHJhY3RWYWxpZGF0aW9uSGFuZGxlciB7XG4gIC8qKlxuICAgKiBUaW1lIHBlcmlvZCBpbiBzZWNvbmRzIHRoZSB0aW1lc3RhbXAgaW4gdGhlIHNpZ25hdHVyZSBjYW5cbiAgICogZGlmZmVyIGZyb20gdGhlIGN1cnJlbnQgdGltZS5cbiAgICovXG4gIHByaXZhdGUgY3lwdG9PYmo6IENyeXB0byA9IHdpbmRvdy5jcnlwdG8gfHwgKHdpbmRvdyBhcyBhbnkpLm1zQ3J5cHRvOyAvLyBmb3IgSUUxMVxuICBwcml2YXRlIHRleHRFbmNvZGVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5UZXh0RW5jb2RlcigpO1xuXG4gIGFzeW5jIHZhbGlkYXRlU2lnbmF0dXJlKFxuICAgIHBhcmFtczogVmFsaWRhdGlvblBhcmFtcyxcbiAgICByZXRyeSA9IHRydWVcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXBhcmFtcy5pZFRva2VuKSB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBpZFRva2VuIGV4cGVjdGVkIScpO1xuICAgIGlmICghcGFyYW1zLmlkVG9rZW5IZWFkZXIpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBpZFRva2VuSGFuZGxlciBleHBlY3RlZC4nKTtcbiAgICBpZiAoIXBhcmFtcy5qd2tzKSB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBqd2tzIGV4cGVjdGVkIScpO1xuXG4gICAgaWYgKHJldHJ5ICYmIHBhcmFtcy5sb2FkS2V5cyAmJiAoIXBhcmFtcy5qd2tzWydrZXlzJ10gfHwgIUFycmF5LmlzQXJyYXkocGFyYW1zLmp3a3NbJ2tleXMnXSkpKSB7XG4gICAgICByZXR1cm4gcGFyYW1zXG4gICAgICAgIC5sb2FkS2V5cygpXG4gICAgICAgIC50aGVuKGxvYWRlZEtleXMgPT4gKHBhcmFtcy5qd2tzID0gbG9hZGVkS2V5cykpXG4gICAgICAgIC50aGVuKF8gPT4gdGhpcy52YWxpZGF0ZVNpZ25hdHVyZShwYXJhbXMsIGZhbHNlKSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXRyeSAmJiAoXG4gICAgICAhcGFyYW1zLmp3a3NbJ2tleXMnXSB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkocGFyYW1zLmp3a3NbJ2tleXMnXSkgfHxcbiAgICAgIHBhcmFtcy5qd2tzWydrZXlzJ10ubGVuZ3RoID09PSAwKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcnJheSBrZXlzIGluIGp3a3MgbWlzc2luZyEnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gSldLLmFzS2V5U3RvcmUocGFyYW1zLmp3a3NbJ2tleXMnXSkudGhlbihrZXlzdG9yZSA9PiB7XG4gICAgICByZXR1cm4gSldTLmNyZWF0ZVZlcmlmeShrZXlzdG9yZSkudmVyaWZ5KHBhcmFtcy5pZFRva2VuKS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNhbGNIYXNoKHZhbHVlVG9IYXNoOiBzdHJpbmcsIGFsZ29yaXRobTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB2YWx1ZUFzQnl0ZXMgPSB0aGlzLnRleHRFbmNvZGVyLmVuY29kZSh2YWx1ZVRvSGFzaCk7XG4gICAgY29uc3QgcmVzdWx0Qnl0ZXMgPSBhd2FpdCB0aGlzLmN5cHRvT2JqLnN1YnRsZS5kaWdlc3QoXG4gICAgICBhbGdvcml0aG0sXG4gICAgICB2YWx1ZUFzQnl0ZXNcbiAgICApO1xuICAgIC8vIHRoZSByZXR1cm5lZCBieXRlcyBhcmUgZW5jb2RlZCBhcyBVVEYtMTZcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkocmVzdWx0Qnl0ZXMpKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiandrcy12YWxpZGF0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi12YWxpZGF0aW9uL2p3a3MtdmFsaWRhdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHlCQUF5QixFQUUxQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7O0FBU3JDLE1BQU0sNEJBQTZCLFNBQVEseUJBQXlCO0lBTnBFOzs7OztPQUtHO0lBQ0g7O1FBQ0U7OztXQUdHO1FBQ0ssYUFBUSxHQUFXLE1BQU0sQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBQSxNQUFNLEVBQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVc7UUFDekUsZ0JBQVcsR0FBRyxJQUFJLENBQUMsbUJBQUEsTUFBTSxFQUFPLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQTBDMUQsQ0FBQzs7Ozs7O0lBeENPLGlCQUFpQixDQUNyQixNQUF3QixFQUN4QixLQUFLLEdBQUcsSUFBSTs7WUFFWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYTtnQkFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFFOUQsSUFBSSxLQUFLLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzdGLE9BQU8sTUFBTTtxQkFDVixRQUFRLEVBQUU7cUJBQ1YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxDQUFDO3FCQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7YUFDckQ7WUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLENBQ1osQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDcEIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUNqQztnQkFDQSxNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7YUFDaEQ7WUFFRCxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDekQsT0FBTyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNyRSxPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTs7Ozs7O0lBRUssUUFBUSxDQUFDLFdBQW1CLEVBQUUsU0FBaUI7OztrQkFDN0MsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzs7a0JBQ25ELFdBQVcsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDbkQsU0FBUyxFQUNULFlBQVksQ0FDYjtZQUNELDJDQUEyQztZQUMzQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7S0FBQTtDQUNGOzs7Ozs7O0lBM0NDLHlDQUFxRTs7SUFDckUsNENBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RWYWxpZGF0aW9uSGFuZGxlcixcbiAgVmFsaWRhdGlvblBhcmFtc1xufSBmcm9tICcuL3ZhbGlkYXRpb24taGFuZGxlcic7XG5cbmltcG9ydCB7IEpXSywgSldTIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IGZyb21CeXRlQXJyYXkgfSBmcm9tICdiYXNlNjQtanMnO1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgc2lnbmF0dXJlIG9mIGFuIGlkX3Rva2VuIGFnYWluc3Qgb25lXG4gKiBvZiB0aGUga2V5cyBvZiBhbiBKU09OIFdlYiBLZXkgU2V0IChqd2tzKS5cbiAqXG4gKiBUaGlzIGp3a3MgY2FuIGJlIHByb3ZpZGVkIGJ5IHRoZSBkaXNjb3ZlcnkgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBKd2tzVmFsaWRhdGlvbkhhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdFZhbGlkYXRpb25IYW5kbGVyIHtcbiAgLyoqXG4gICAqIFRpbWUgcGVyaW9kIGluIHNlY29uZHMgdGhlIHRpbWVzdGFtcCBpbiB0aGUgc2lnbmF0dXJlIGNhblxuICAgKiBkaWZmZXIgZnJvbSB0aGUgY3VycmVudCB0aW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBjeXB0b09iajogQ3J5cHRvID0gd2luZG93LmNyeXB0byB8fCAod2luZG93IGFzIGFueSkubXNDcnlwdG87IC8vIGZvciBJRTExXG4gIHByaXZhdGUgdGV4dEVuY29kZXIgPSBuZXcgKHdpbmRvdyBhcyBhbnkpLlRleHRFbmNvZGVyKCk7XG5cbiAgYXN5bmMgdmFsaWRhdGVTaWduYXR1cmUoXG4gICAgcGFyYW1zOiBWYWxpZGF0aW9uUGFyYW1zLFxuICAgIHJldHJ5ID0gdHJ1ZVxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICghcGFyYW1zLmlkVG9rZW4pIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGlkVG9rZW4gZXhwZWN0ZWQhJyk7XG4gICAgaWYgKCFwYXJhbXMuaWRUb2tlbkhlYWRlcilcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGlkVG9rZW5IYW5kbGVyIGV4cGVjdGVkLicpO1xuICAgIGlmICghcGFyYW1zLmp3a3MpIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGp3a3MgZXhwZWN0ZWQhJyk7XG5cbiAgICBpZiAocmV0cnkgJiYgcGFyYW1zLmxvYWRLZXlzICYmICghcGFyYW1zLmp3a3NbJ2tleXMnXSB8fCAhQXJyYXkuaXNBcnJheShwYXJhbXMuandrc1sna2V5cyddKSkpIHtcbiAgICAgIHJldHVybiBwYXJhbXNcbiAgICAgICAgLmxvYWRLZXlzKClcbiAgICAgICAgLnRoZW4obG9hZGVkS2V5cyA9PiAocGFyYW1zLmp3a3MgPSBsb2FkZWRLZXlzKSlcbiAgICAgICAgLnRoZW4oXyA9PiB0aGlzLnZhbGlkYXRlU2lnbmF0dXJlKHBhcmFtcywgZmFsc2UpKTtcbiAgICB9XG5cbiAgICBpZiAoIXJldHJ5ICYmIChcbiAgICAgICFwYXJhbXMuandrc1sna2V5cyddIHx8XG4gICAgICAhQXJyYXkuaXNBcnJheShwYXJhbXMuandrc1sna2V5cyddKSB8fFxuICAgICAgcGFyYW1zLmp3a3NbJ2tleXMnXS5sZW5ndGggPT09IDApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FycmF5IGtleXMgaW4gandrcyBtaXNzaW5nIScpO1xuICAgIH1cblxuICAgIHJldHVybiBKV0suYXNLZXlTdG9yZShwYXJhbXMuandrc1sna2V5cyddKS50aGVuKGtleXN0b3JlID0+IHtcbiAgICAgIHJldHVybiBKV1MuY3JlYXRlVmVyaWZ5KGtleXN0b3JlKS52ZXJpZnkocGFyYW1zLmlkVG9rZW4pLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY2FsY0hhc2godmFsdWVUb0hhc2g6IHN0cmluZywgYWxnb3JpdGhtOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHZhbHVlQXNCeXRlcyA9IHRoaXMudGV4dEVuY29kZXIuZW5jb2RlKHZhbHVlVG9IYXNoKTtcbiAgICBjb25zdCByZXN1bHRCeXRlcyA9IGF3YWl0IHRoaXMuY3lwdG9PYmouc3VidGxlLmRpZ2VzdChcbiAgICAgIGFsZ29yaXRobSxcbiAgICAgIHZhbHVlQXNCeXRlc1xuICAgICk7XG4gICAgLy8gdGhlIHJldHVybmVkIGJ5dGVzIGFyZSBlbmNvZGVkIGFzIFVURi0xNlxuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50MTZBcnJheShyZXN1bHRCeXRlcykpO1xuICB9XG59XG4iXX0=

@@ -9,2 +9,4 @@ /**

import { OIDCFlowService, OIDCFlows } from './flow.service';
import { of, empty, from } from 'rxjs';
import { tap, mergeMap, concatAll } from 'rxjs/operators';
import * as i0 from "@angular/core";

@@ -53,3 +55,3 @@ import * as i1 from "./flow.service";

}));
this.applyConfig(options, true);
this.applyConfig(options, true).subscribe();
}

@@ -67,14 +69,23 @@ /**

function (options, noTransition) {
var _this = this;
if (noTransition === void 0) { noTransition = false; }
this.options = tslib_1.__assign({}, ((/** @type {?} */ (this.options))), options);
this.options.opendIDConnectURL = this.options.opendIDConnectURL || '';
if (!this.options.opendIDConnectURL.endsWith('/')) {
this.options.opendIDConnectURL += '/';
}
if (this._flow.currentState !== OIDCFlows.INITIAL) {
this._flow.transitTo$(OIDCFlows.INITIAL).subscribe();
}
if (!noTransition) {
this._flow.transitTo$(OIDCFlows.UPDATE_CONFIG).subscribe();
}
return of(1).pipe(tap(function () {
_this.options = tslib_1.__assign({}, ((/** @type {?} */ (_this.options))), options);
_this.options.opendIDConnectURL = _this.options.opendIDConnectURL || '';
if (!_this.options.opendIDConnectURL.endsWith('/')) {
_this.options.opendIDConnectURL += '/';
}
}), mergeMap(function () {
if (noTransition) {
return empty();
}
/** @type {?} */
var transitions = Array();
if (_this._flow.currentState !== OIDCFlows.INITIAL) {
transitions.push(_this._flow.transitTo$(OIDCFlows.INITIAL));
}
transitions.push(_this._flow.transitTo$(OIDCFlows.UPDATE_CONFIG));
transitions.push(_this._flow.transitTo$(OIDCFlows.INITIAL));
return from(transitions).pipe(concatAll());
}));
};

@@ -113,2 +124,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUU1RCxNQUFNLEtBQU8sY0FBYyxHQUFHLElBQUksY0FBYyxDQUFNLGdCQUFnQixDQUFDOzs7SUFHckUsT0FBUSxrQkFBa0I7SUFDMUIsWUFBYSx1QkFBdUI7SUFDcEMsVUFBVyxxQkFBcUI7SUFDaEMsT0FBUSxrQkFBa0I7SUFDMUIsaUJBQWtCLDBCQUEwQjtJQUM1QyxpQkFBa0IsMEJBQTBCOzs7QUFHOUM7SUF1Q0UsMkJBQzBCLE9BQW9CLEVBQ3BDLEtBQXNCO1FBQXRCLFVBQUssR0FBTCxLQUFLLENBQWlCO1FBckN6QixZQUFPLEdBQUcsbUJBQUE7WUFDZixXQUFXLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRzs7WUFHekMsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBQ2pCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLGFBQWEsRUFBRSxJQUFJO1lBRW5CLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLEtBQUs7WUFFaEIsVUFBVSxFQUFFLGVBQWU7WUFDM0IsU0FBUyxFQUFFLFFBQVE7WUFFbkIsZ0JBQWdCLEVBQUUsZ0JBQWdCO1lBQ2xDLG1CQUFtQixFQUFFLEdBQUc7WUFDeEIsZ0JBQWdCLEVBQUUsT0FBTztZQUN6QixxQkFBcUIsRUFBRSxZQUFZO1lBQ25DLG1CQUFtQixFQUFFLFVBQVU7WUFDL0IsZ0JBQWdCLEVBQUUsT0FBTztZQUN6Qix3QkFBd0IsRUFBRSxpQkFBaUI7WUFDM0Msd0JBQXdCLEVBQUUsaUJBQWlCO1lBRTNDLFlBQVksRUFBRSxZQUFZO1lBQzFCLGlDQUFpQyxFQUFFLElBQUk7WUFDdkMsb0JBQW9CLEVBQUUsS0FBSztZQUMzQixlQUFlLEVBQUUsS0FBSztZQUV0QixTQUFTLEVBQUUsRUFBRTtZQUViLGtCQUFrQixFQUFFLElBQUk7WUFFeEIsV0FBVyxFQUFFLFdBQVcsQ0FBQyxhQUFhO1NBQ3ZDLEVBQWUsQ0FBQztRQU1mLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Ozs7OztJQUVNLHVDQUFXOzs7OztJQUFsQixVQUFtQixPQUFvQixFQUFFLFlBQW9CO1FBQXBCLDZCQUFBLEVBQUEsb0JBQW9CO1FBQzNELElBQUksQ0FBQyxPQUFPLHdCQUFRLENBQUMsbUJBQUEsSUFBSSxDQUFDLE9BQU8sRUFBZSxDQUFDLEVBQUssT0FBTyxDQUFFLENBQUM7UUFFaEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQztRQUN0RSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUM7U0FDdkM7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxPQUFPLEVBQUU7WUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQ3REO1FBRUQsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNqQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7U0FDNUQ7SUFDSCxDQUFDOzs7OztJQUVNLHlDQUFhOzs7O0lBQXBCLFVBQXFCLE9BQWtDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0I7WUFDbEMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN6RCxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUNqQztZQUNILENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7O2dCQXJFRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Z0RBc0NJLE1BQU0sU0FBQyxjQUFjO2dCQXJEakIsZUFBZTs7OzRCQVR4QjtDQTRGQyxBQXRFRCxJQXNFQztTQW5FWSxpQkFBaUI7OztJQUM1QixvQ0FpQ2lCOztJQUlmLGtDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3QsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSU9JRENDb25maWcgfSBmcm9tICcuL2NvbmZpZy1pbnRlcmZhY2VzJztcbmltcG9ydCB7IFN0b3JhZ2VUeXBlIH0gZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ0Zsb3dTZXJ2aWNlLCBPSURDRmxvd3MgfSBmcm9tICcuL2Zsb3cuc2VydmljZSc7XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdjb25maWcub3B0aW9ucycpO1xuXG5leHBvcnQgZW51bSBPSURDQ29uZmlnU3RvcmFnZUtleU5hbWVzIHtcbiAgVE9LRU4gPSAnc3RvcmFnZVRva2VuTmFtZScsXG4gIE9JRENDT05GSUcgPSAnc3RvcmFnZU9JRENDb25maWdOYW1lJyxcbiAgT0lEQ0pXS3MgPSAnc3RvcmFnZU9JRENKV0tzTmFtZScsXG4gIE5PTkNFID0gJ3N0b3JhZ2VOb25jZU5hbWUnLFxuICBQQVJTRURfSURfVE9LRU4gPSAnc3RvcmFnZVBhcnNlZElEVG9rZW5OYW1lJyxcbiAgQV9SRVFVRVNUX1NUQVRFID0gJ3N0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSdcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT0lEQ0NvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgb3B0aW9ucyA9IHtcbiAgICByZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvJyxcbiAgICAvLyBjbGllbnRJRDogXCJub3QgcHJvdmlkZWQgaGVyZVwiLCAvLyBkaXNhYmxlcyBhdXRvTG9naW4gdW50aWwgeW91IHByb3ZpZGUgaXQuXG5cbiAgICBzY29wZTogWydvcGVuaWQnXSxcbiAgICBwcm9tcHQ6ICdjb25zZW50JyxcbiAgICByZWZyZXNoX3Rva2VuOiB0cnVlLFxuXG4gICAgZGVidWc6IGZhbHNlLFxuICAgIGF1dG9Mb2dvbjogZmFsc2UsXG5cbiAgICBhdXRoSGVhZGVyOiAnQXV0aG9yaXphdGlvbicsXG4gICAgYXV0aFRva2VuOiAnQmVhcmVyJyxcblxuICAgIHN0b3JhZ2VLZXlQcmVmaXg6ICdtaW5kYWRtaW4tYXV0aCcsXG4gICAgc3RvcmFnZUtleVNlcGVyYXRvcjogJ18nLFxuICAgIHN0b3JhZ2VUb2tlbk5hbWU6ICd0b2tlbicsXG4gICAgc3RvcmFnZU9JRENDb25maWdOYW1lOiAnb2lkY2NvbmZpZycsXG4gICAgc3RvcmFnZU9JRENKV0tzTmFtZTogJ29pZGNqd2tzJyxcbiAgICBzdG9yYWdlTm9uY2VOYW1lOiAnbm9uY2UnLFxuICAgIHN0b3JhZ2VQYXJzZWRJRFRva2VuTmFtZTogJ3BhcnNlZC1pZC10b2tlbicsXG4gICAgc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lOiAnYS1yZXF1ZXN0LXN0YXRlJyxcblxuICAgIHJlcXVpcmVIdHRwczogJ3JlbW90ZW9ubHknLFxuICAgIHN0cmljdERpc2NvdmVyeURvY3VtZW50VmFsaWRhdGlvbjogdHJ1ZSxcbiAgICBzZXNzaW9uQ2hlY2tzRW5hYmxlZDogZmFsc2UsXG4gICAgc2tpcElzc3VlckNoZWNrOiBmYWxzZSxcblxuICAgIG5vbmNlU2l6ZTogMzIsXG5cbiAgICBkaXNhYmxlQXRIYXNoQ2hlY2s6IHRydWUsXG5cbiAgICBzdG9yYWdlVHlwZTogU3RvcmFnZVR5cGUuTE9DQUxfU1RPUkFHRVxuICB9IGFzIElPSURDQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ09ORklHX09QVElPTlMpIG9wdGlvbnM6IElPSURDQ29uZmlnLFxuICAgIHByaXZhdGUgX2Zsb3c6IE9JRENGbG93U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5hcHBseUNvbmZpZyhvcHRpb25zLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseUNvbmZpZyhvcHRpb25zOiBJT0lEQ0NvbmZpZywgbm9UcmFuc2l0aW9uID0gZmFsc2UpIHtcbiAgICB0aGlzLm9wdGlvbnMgPSB7IC4uLih0aGlzLm9wdGlvbnMgYXMgSU9JRENDb25maWcpLCAuLi5vcHRpb25zIH07XG5cbiAgICB0aGlzLm9wdGlvbnMub3BlbmRJRENvbm5lY3RVUkwgPSB0aGlzLm9wdGlvbnMub3BlbmRJRENvbm5lY3RVUkwgfHwgJyc7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMub3BlbmRJRENvbm5lY3RVUkwuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgdGhpcy5vcHRpb25zLm9wZW5kSURDb25uZWN0VVJMICs9ICcvJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZmxvdy5jdXJyZW50U3RhdGUgIT09IE9JRENGbG93cy5JTklUSUFMKSB7XG4gICAgICB0aGlzLl9mbG93LnRyYW5zaXRUbyQoT0lEQ0Zsb3dzLklOSVRJQUwpLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICghbm9UcmFuc2l0aW9uKSB7XG4gICAgICB0aGlzLl9mbG93LnRyYW5zaXRUbyQoT0lEQ0Zsb3dzLlVQREFURV9DT05GSUcpLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTdG9yYWdlS2V5KGtleU5hbWU6IE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXMpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnN0b3JhZ2VLZXlQcmVmaXhcbiAgICAgID8gW3RoaXMub3B0aW9ucy5zdG9yYWdlS2V5UHJlZml4LCB0aGlzLm9wdGlvbnNba2V5TmFtZV1dLmpvaW4oXG4gICAgICAgICAgdGhpcy5vcHRpb25zLnN0b3JhZ2VLZXlTZXBlcmF0b3JcbiAgICAgICAgKVxuICAgICAgOiB0aGlzLm9wdGlvbnNba2V5TmFtZV07XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCxVQUFVLEVBQ1YsY0FBYyxFQUNkLE1BQU0sRUFHUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQU8sU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFFL0QsTUFBTSxLQUFPLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBTSxnQkFBZ0IsQ0FBQzs7O0lBR3JFLE9BQVEsa0JBQWtCO0lBQzFCLFlBQWEsdUJBQXVCO0lBQ3BDLFVBQVcscUJBQXFCO0lBQ2hDLE9BQVEsa0JBQWtCO0lBQzFCLGlCQUFrQiwwQkFBMEI7SUFDNUMsaUJBQWtCLDBCQUEwQjs7O0FBRzlDO0lBdUNFLDJCQUMwQixPQUFvQixFQUNwQyxLQUFzQjtRQUF0QixVQUFLLEdBQUwsS0FBSyxDQUFpQjtRQXJDekIsWUFBTyxHQUFHLG1CQUFBO1lBQ2YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLEdBQUc7O1lBR3pDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUNqQixNQUFNLEVBQUUsU0FBUztZQUNqQixhQUFhLEVBQUUsSUFBSTtZQUVuQixLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxLQUFLO1lBRWhCLFVBQVUsRUFBRSxlQUFlO1lBQzNCLFNBQVMsRUFBRSxRQUFRO1lBRW5CLGdCQUFnQixF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QzVCLG9DQWlDaUI7O0lBSWYsa0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW5qZWN0YWJsZSxcbiAgSW5qZWN0aW9uVG9rZW4sXG4gIEluamVjdCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJT0lEQ0NvbmZpZyB9IGZyb20gJy4vY29uZmlnLWludGVyZmFjZXMnO1xuaW1wb3J0IHsgU3RvcmFnZVR5cGUgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPSURDRmxvd1NlcnZpY2UsIE9JRENGbG93cyB9IGZyb20gJy4vZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCBlbXB0eSwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFwLCBtZXJnZU1hcCwgbWFwLCBjb25jYXRBbGwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBDT05GSUdfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxhbnk+KCdjb25maWcub3B0aW9ucycpO1xuXG5leHBvcnQgZW51bSBPSURDQ29uZmlnU3RvcmFnZUtleU5hbWVzIHtcbiAgVE9LRU4gPSAnc3RvcmFnZVRva2VuTmFtZScsXG4gIE9JRENDT05GSUcgPSAnc3RvcmFnZU9JRENDb25maWdOYW1lJyxcbiAgT0lEQ0pXS3MgPSAnc3RvcmFnZU9JRENKV0tzTmFtZScsXG4gIE5PTkNFID0gJ3N0b3JhZ2VOb25jZU5hbWUnLFxuICBQQVJTRURfSURfVE9LRU4gPSAnc3RvcmFnZVBhcnNlZElEVG9rZW5OYW1lJyxcbiAgQV9SRVFVRVNUX1NUQVRFID0gJ3N0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSdcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT0lEQ0NvbmZpZ1NlcnZpY2Uge1xuICBwdWJsaWMgb3B0aW9ucyA9IHtcbiAgICByZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArICcvJyxcbiAgICAvLyBjbGllbnRJRDogXCJub3QgcHJvdmlkZWQgaGVyZVwiLCAvLyBkaXNhYmxlcyBhdXRvTG9naW4gdW50aWwgeW91IHByb3ZpZGUgaXQuXG5cbiAgICBzY29wZTogWydvcGVuaWQnXSxcbiAgICBwcm9tcHQ6ICdjb25zZW50JyxcbiAgICByZWZyZXNoX3Rva2VuOiB0cnVlLFxuXG4gICAgZGVidWc6IGZhbHNlLFxuICAgIGF1dG9Mb2dvbjogZmFsc2UsXG5cbiAgICBhdXRoSGVhZGVyOiAnQXV0aG9yaXphdGlvbicsXG4gICAgYXV0aFRva2VuOiAnQmVhcmVyJyxcblxuICAgIHN0b3JhZ2VLZXlQcmVmaXg6ICdtaW5kYWRtaW4tYXV0aCcsXG4gICAgc3RvcmFnZUtleVNlcGVyYXRvcjogJ18nLFxuICAgIHN0b3JhZ2VUb2tlbk5hbWU6ICd0b2tlbicsXG4gICAgc3RvcmFnZU9JRENDb25maWdOYW1lOiAnb2lkY2NvbmZpZycsXG4gICAgc3RvcmFnZU9JRENKV0tzTmFtZTogJ29pZGNqd2tzJyxcbiAgICBzdG9yYWdlTm9uY2VOYW1lOiAnbm9uY2UnLFxuICAgIHN0b3JhZ2VQYXJzZWRJRFRva2VuTmFtZTogJ3BhcnNlZC1pZC10b2tlbicsXG4gICAgc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lOiAnYS1yZXF1ZXN0LXN0YXRlJyxcblxuICAgIHJlcXVpcmVIdHRwczogJ3JlbW90ZW9ubHknLFxuICAgIHN0cmljdERpc2NvdmVyeURvY3VtZW50VmFsaWRhdGlvbjogdHJ1ZSxcbiAgICBzZXNzaW9uQ2hlY2tzRW5hYmxlZDogZmFsc2UsXG4gICAgc2tpcElzc3VlckNoZWNrOiBmYWxzZSxcblxuICAgIG5vbmNlU2l6ZTogMzIsXG5cbiAgICBkaXNhYmxlQXRIYXNoQ2hlY2s6IHRydWUsXG5cbiAgICBzdG9yYWdlVHlwZTogU3RvcmFnZVR5cGUuTE9DQUxfU1RPUkFHRVxuICB9IGFzIElPSURDQ29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ09ORklHX09QVElPTlMpIG9wdGlvbnM6IElPSURDQ29uZmlnLFxuICAgIHByaXZhdGUgX2Zsb3c6IE9JRENGbG93U2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5hcHBseUNvbmZpZyhvcHRpb25zLCB0cnVlKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseUNvbmZpZyhvcHRpb25zOiBJT0lEQ0NvbmZpZywgbm9UcmFuc2l0aW9uID0gZmFsc2UpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBvZigxKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zID0geyAuLi4odGhpcy5vcHRpb25zIGFzIElPSURDQ29uZmlnKSwgLi4ub3B0aW9ucyB9O1xuXG4gICAgICAgIHRoaXMub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTCA9IHRoaXMub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTCB8fCAnJztcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnMub3BlbmRJRENvbm5lY3RVUkwuZW5kc1dpdGgoJy8nKSkge1xuICAgICAgICAgIHRoaXMub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTCArPSAnLyc7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgbWVyZ2VNYXAoKCkgPT4ge1xuICAgICAgICBpZiAobm9UcmFuc2l0aW9uKSB7XG4gICAgICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdHJhbnNpdGlvbnMgPSBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XG4gICAgICAgIGlmICh0aGlzLl9mbG93LmN1cnJlbnRTdGF0ZSAhPT0gT0lEQ0Zsb3dzLklOSVRJQUwpIHtcbiAgICAgICAgICB0cmFuc2l0aW9ucy5wdXNoKHRoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuSU5JVElBTCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdHJhbnNpdGlvbnMucHVzaCh0aGlzLl9mbG93LnRyYW5zaXRUbyQoT0lEQ0Zsb3dzLlVQREFURV9DT05GSUcpKTtcblxuICAgICAgICB0cmFuc2l0aW9ucy5wdXNoKHRoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuSU5JVElBTCkpO1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRyYW5zaXRpb25zKS5waXBlKGNvbmNhdEFsbCgpKTtcbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHB1YmxpYyBnZXRTdG9yYWdlS2V5KGtleU5hbWU6IE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXMpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnN0b3JhZ2VLZXlQcmVmaXhcbiAgICAgID8gW3RoaXMub3B0aW9ucy5zdG9yYWdlS2V5UHJlZml4LCB0aGlzLm9wdGlvbnNba2V5TmFtZV1dLmpvaW4oXG4gICAgICAgICAgdGhpcy5vcHRpb25zLnN0b3JhZ2VLZXlTZXBlcmF0b3JcbiAgICAgICAgKVxuICAgICAgOiB0aGlzLm9wdGlvbnNba2V5TmFtZV07XG4gIH1cbn1cbiJdfQ==

@@ -8,2 +8,3 @@ /**

import * as base64 from 'base64-js';
import { Injectable } from '@angular/core';
/**

@@ -87,2 +88,6 @@ * @param {?} buffer

};
WindowCryptoService.decorators = [
{ type: Injectable }
];
WindowCryptoService.ctorParameters = function () { return []; };
return WindowCryptoService;

@@ -95,2 +100,2 @@ }(CryptoService));

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jcnlwdG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxXQUFXLENBQUM7Ozs7O0FBRXBDLE1BQU0sa0JBQWtCLE1BQWtCOztRQUNsQyxPQUFPLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM1RCxPQUFPLE9BQU87U0FDWCxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztTQUNuQixPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQztTQUNuQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZCLENBQUM7Ozs7QUFFRDs7OztJQUFBO0lBSUEsQ0FBQztJQUFELG9CQUFDO0FBQUQsQ0FBQyxBQUpELElBSUM7Ozs7Ozs7Ozs7O0lBSEMsNkRBQTBEOzs7Ozs7SUFFMUQsOERBQTJEOztBQUc3RDtJQUF5QywrQ0FBYTtJQUdwRDtRQUFBLFlBQ0UsaUJBQU8sU0FDUjtRQUpPLGFBQU8sR0FBUSxNQUFNLENBQUMsTUFBTSxDQUFDOztJQUlyQyxDQUFDOzs7OztJQUVELDRDQUFjOzs7O0lBQWQsVUFBZSxJQUFZOztZQUNuQixNQUFNLEdBQUcsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRUQsNkNBQWU7Ozs7SUFBZixVQUFnQixJQUFZOztZQUNwQixJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU87YUFDdEIsVUFBVSxDQUFDLFFBQVEsQ0FBQzthQUNwQixNQUFNLENBQUMsSUFBSSxDQUFDO2FBQ1osTUFBTSxFQUFFO1FBQ1gsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNILDBCQUFDO0FBQUQsQ0FBQyxBQXBCRCxDQUF5QyxhQUFhLEdBb0JyRDs7OztJQW5CQyxzQ0FBcUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0ICogYXMgYmFzZTY0IGZyb20gJ2Jhc2U2NC1qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cmxTYWZlKGJ1ZmZlcjogVWludDhBcnJheSk6IHN0cmluZyB7XG4gIGNvbnN0IGVuY29kZWQgPSBiYXNlNjQuZnJvbUJ5dGVBcnJheShuZXcgVWludDhBcnJheShidWZmZXIpKTtcbiAgcmV0dXJuIGVuY29kZWRcbiAgICAucmVwbGFjZSgvXFwrL2csICctJylcbiAgICAucmVwbGFjZSgvXFwvL2csICdfJylcbiAgICAucmVwbGFjZSgvPS9nLCAnJyk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDcnlwdG9TZXJ2aWNlIHtcbiAgYWJzdHJhY3QgZ2VuZXJhdGVSYW5kb20oc2l6ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuXG4gIGFic3RyYWN0IGRlcml2ZUNoYWxsZW5nZShjb2RlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dDcnlwdG9TZXJ2aWNlIGV4dGVuZHMgQ3J5cHRvU2VydmljZSB7XG4gIHByaXZhdGUgX2NyeXB0bzogYW55ID0gd2luZG93LmNyeXB0bztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2VuZXJhdGVSYW5kb20oc2l6ZTogbnVtYmVyKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBidWZmZXIgPSBuZXcgVWludDhBcnJheShzaXplKTtcbiAgICB0aGlzLl9jcnlwdG8uZ2V0UmFuZG9tVmFsdWVzKGJ1ZmZlcik7XG4gICAgcmV0dXJuIG9mKHVybFNhZmUoYnVmZmVyKSk7XG4gIH1cblxuICBkZXJpdmVDaGFsbGVuZ2UoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5fY3J5cHRvXG4gICAgICAuY3JlYXRlSGFzaCgnc2hhMjU2JylcbiAgICAgIC51cGRhdGUoY29kZSlcbiAgICAgIC5kaWdlc3QoKTtcbiAgICByZXR1cm4gb2YodXJsU2FmZShuZXcgVWludDhBcnJheShoYXNoLmJ1ZmZlcikpKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi9jcnlwdG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFM0MsTUFBTSxrQkFBa0IsTUFBa0I7O1FBQ2xDLE9BQU8sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVELE9BQU8sT0FBTztTQUNYLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO1NBQ25CLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkIsQ0FBQzs7OztBQUVEOzs7O0lBQUE7SUFJQSxDQUFDO0lBQUQsb0JBQUM7QUFBRCxDQUFDLEFBSkQsSUFJQzs7Ozs7Ozs7Ozs7SUFIQyw2REFBMEQ7Ozs7OztJQUUxRCw4REFBMkQ7O0FBRzdEO0lBQ3lDLCtDQUFhO0lBR3BEO1FBQUEsWUFDRSxpQkFBTyxTQUNSO1FBSk8sYUFBTyxHQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUM7O0lBSXJDLENBQUM7Ozs7O0lBRUQsNENBQWM7Ozs7SUFBZCxVQUFlLElBQVk7O1lBQ25CLE1BQU0sR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7Ozs7SUFFRCw2Q0FBZTs7OztJQUFmLFVBQWdCLElBQVk7O1lBQ3BCLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTzthQUN0QixVQUFVLENBQUMsUUFBUSxDQUFDO2FBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUM7YUFDWixNQUFNLEVBQUU7UUFDWCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxDQUFDOztnQkFwQkYsVUFBVTs7O0lBcUJYLDBCQUFDO0NBQUEsQUFyQkQsQ0FDeUMsYUFBYSxHQW9CckQ7U0FwQlksbUJBQW1COzs7SUFDOUIsc0NBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCAqIGFzIGJhc2U2NCBmcm9tICdiYXNlNjQtanMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXJsU2FmZShidWZmZXI6IFVpbnQ4QXJyYXkpOiBzdHJpbmcge1xuICBjb25zdCBlbmNvZGVkID0gYmFzZTY0LmZyb21CeXRlQXJyYXkobmV3IFVpbnQ4QXJyYXkoYnVmZmVyKSk7XG4gIHJldHVybiBlbmNvZGVkXG4gICAgLnJlcGxhY2UoL1xcKy9nLCAnLScpXG4gICAgLnJlcGxhY2UoL1xcLy9nLCAnXycpXG4gICAgLnJlcGxhY2UoLz0vZywgJycpO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3J5cHRvU2VydmljZSB7XG4gIGFic3RyYWN0IGdlbmVyYXRlUmFuZG9tKHNpemU6IG51bWJlcik6IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBhYnN0cmFjdCBkZXJpdmVDaGFsbGVuZ2UoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgV2luZG93Q3J5cHRvU2VydmljZSBleHRlbmRzIENyeXB0b1NlcnZpY2Uge1xuICBwcml2YXRlIF9jcnlwdG86IGFueSA9IHdpbmRvdy5jcnlwdG87XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGdlbmVyYXRlUmFuZG9tKHNpemU6IG51bWJlcik6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgYnVmZmVyID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7XG4gICAgdGhpcy5fY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhidWZmZXIpO1xuICAgIHJldHVybiBvZih1cmxTYWZlKGJ1ZmZlcikpO1xuICB9XG5cbiAgZGVyaXZlQ2hhbGxlbmdlKGNvZGU6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgaGFzaCA9IHRoaXMuX2NyeXB0b1xuICAgICAgLmNyZWF0ZUhhc2goJ3NoYTI1NicpXG4gICAgICAudXBkYXRlKGNvZGUpXG4gICAgICAuZGlnZXN0KCk7XG4gICAgcmV0dXJuIG9mKHVybFNhZmUobmV3IFVpbnQ4QXJyYXkoaGFzaC5idWZmZXIpKSk7XG4gIH1cbn1cbiJdfQ==

@@ -210,3 +210,3 @@ /**

// Add set current state in between
observables$.push(of(1).pipe(tap(function () { _this._currentState = state; })));
observables$.push(of(1).pipe(tap(function () { _this._currentState = state; }), tap(function () { _this._subject.next(state); })));
// Now add enter CBs

@@ -216,3 +216,2 @@ if (this._states[state].onEnterCBs) {

}
observables$.push(of(1).pipe(tap(function () { _this._subject.next(state); })));
return from(observables$).pipe(concatAll(), map(function () { return undefined; }));

@@ -302,2 +301,2 @@ };

export { OIDCDefaultFlowService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFRLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0lBR25FLFNBQVUsU0FBUztJQUNuQixlQUFnQixjQUFjO0lBQzlCLHdCQUF5QixzQkFBc0I7SUFDL0MsY0FBZSxhQUFhO0lBQzVCLGtCQUFtQixpQkFBaUI7SUFFcEMsU0FBVSxTQUFTO0lBRW5CLHVCQUF3QixzQkFBc0I7SUFDOUMsdUJBQXdCLHFCQUFxQjtJQUU3QyxNQUFPLE1BQU07Ozs7OztBQUdmOzs7O0lBQ0UsMEJBQ1ksS0FBb0IsRUFDcEIsV0FBNkQsRUFDN0QsV0FBNkQ7UUFGN0QsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0Q7UUFDN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWtEO0lBRXpFLENBQUM7SUFFRCxzQkFBVyxrQ0FBSTs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsd0NBQVU7Ozs7UUFBckI7WUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQTRDLENBQUM7YUFDdEU7WUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx3Q0FBVTs7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QUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDNUYsaUJBQWlCLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3JGLFNBQVMsRUFBRSxJQUFJLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0Usc0JBQXNCLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDMUcscUJBQXFCLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN4RSxNQUFNLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDMUMsRUFDRCxTQUFTLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7O2dCQW5CRixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7O2lDQTlKRDtDQWdMQyxBQXBCRCxDQUc0QyxlQUFlLEdBaUIxRDtTQWpCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yLCBmb3JrSm9pbiwgZW1wdHksIGZyb20gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgdGFwLCBtYXAsIG1lcmdlTWFwLCBsYXN0LCBjb25jYXRBbGwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBlbnVtIE9JRENGbG93cyB7XG4gIElOSVRJQUwgPSAnaW5pdGlhbCcsXG4gIFVQREFURV9DT05GSUcgPSAndXBkYXRlQ29uZmlnJyxcbiAgR0VUX09JRENfQ09ORklHVVJBVElPTiA9ICdnZXRPSURDQ29uZmlndXJhdGlvbicsXG4gIFJFQURfU1RPUkFHRSA9ICdyZWFkU3RvcmFnZScsXG4gIENIRUNLX0FVVEhPUklaRUQgPSAnY2hlY2tBdXRob3JpemVkJyxcblxuICBXQUlUSU5HID0gJ3dhaXRpbmcnLFxuXG4gIFJFUVVFU1RfQVVUSE9SSVpBVElPTiA9ICdyZXF1ZXN0QXV0aG9yaXphdGlvbicsXG4gIFJFUVVFU1RfUkVGUkVTSF9UT0tFTiA9ICdyZXF1ZXN0UmVmcmVzaFRva2VuJyxcblxuICBET05FID0gJ2RvbmUnLFxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgT0lEQ0Fic3RyYWN0RmxvdyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfbmV4dDogQXJyYXk8c3RyaW5nPixcbiAgICBwcm90ZWN0ZWQgX29uRW50ZXJDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgICBwcm90ZWN0ZWQgX29uTGVhdmVDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5leHQoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX25leHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9uRW50ZXJDQnMoKTogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGlmICghdGhpcy5fb25FbnRlckNCcykge1xuICAgICAgdGhpcy5fb25FbnRlckNCcyA9IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX29uRW50ZXJDQnM7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG9uTGVhdmVDQnMoKTogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4ge1xuICAgIGlmICghdGhpcy5fb25MZWF2ZUNCcykge1xuICAgICAgdGhpcy5fb25MZWF2ZUNCcyA9IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+KCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX29uTGVhdmVDQnM7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIE9JRENGbG93IGV4dGVuZHMgT0lEQ0Fic3RyYWN0RmxvdyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfbmV4dDogQXJyYXk8c3RyaW5nPixcbiAgICBwcm90ZWN0ZWQgX29uRW50ZXJDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgICBwcm90ZWN0ZWQgX29uTGVhdmVDQnM/OiBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PixcbiAgKSB7XG4gICAgc3VwZXIoX25leHQsIF9vbkVudGVyQ0JzLCBfb25MZWF2ZUNCcyk7XG4gIH1cbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9JRENGbG93U2VydmljZSB7XG4gIHByb3RlY3RlZCBfc3ViamVjdDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz47XG5cbiAgcHVibGljIGdldCBzdWJqZWN0JCgpOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YmplY3Q7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBfY3VycmVudFN0YXRlOiBzdHJpbmc7XG5cbiAgcHVibGljIGdldCBjdXJyZW50U3RhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFN0YXRlO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZXMoKTogeyBba2V5OiBzdHJpbmddOiBPSURDQWJzdHJhY3RGbG93IH0ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZXM7XG4gIH1cblxuICBwdWJsaWMgb25FbnRlcihzdGF0ZTogc3RyaW5nLCBjYjogKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pikge1xuICAgIHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25FbnRlckNCcy5wdXNoKGNiKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkxlYXZlKHN0YXRlOiBzdHJpbmcsIGNiOiAoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+KSB7XG4gICAgdGhpcy5fc3RhdGVzW3N0YXRlXS5vbkxlYXZlQ0JzLnB1c2goY2IpO1xuICB9XG5cbiAgdHJhbnNpdFRvJChzdGF0ZTogc3RyaW5nLCAuLi5hcmdzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBMaXN0IG9mIE9ic2VydmFibGVzIGZyb20gdGhlIGNhbGxiYWNrc1xuICAgIGxldCBvYnNlcnZhYmxlcyQgPSBBcnJheTxPYnNlcnZhYmxlPGFueT4+KCk7XG5cbiAgICAvLyBBZGQgY2hlY2sgY2FsbGJhY2tzXG4gICAgb2JzZXJ2YWJsZXMkLnB1c2gob2YoMSkucGlwZShcbiAgICAgIG1lcmdlTWFwKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuX2N1cnJlbnRTdGF0ZSA9PT0gc3RhdGUpIHtcbiAgICAgICAgICByZXR1cm4gb2Y8dm9pZD4oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlZSBpZiB3ZSBjYW4gZ28gdG8gdGhhdCBzdGF0ZS5cbiAgICAgICAgaWYgKCF0aGlzLmNhbihzdGF0ZSkpIHtcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihuZXcgRXJyb3IoYFN0YXRlIGRvZXMgbm90IGV4aXN0cyBvciBjYW4ndCBnbyBmcm9tIFwiJHt0aGlzLl9jdXJyZW50U3RhdGV9XCIgdG8gXCIke3N0YXRlfVwiYCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVtcHR5KCk7XG4gICAgICB9KSxcbiAgICApKTtcblxuICAgIC8vIEFkZCBsZWF2ZSBjYWxsYmFja3NcbiAgICBpZiAodGhpcy5jdXJyZW50U3RhdGUgIT09IHRoaXMuX2luaXRpYWwgJiYgdGhpcy5fc3RhdGVzW3N0YXRlXS5vbkxlYXZlQ0JzKSB7XG4gICAgICBvYnNlcnZhYmxlcyQucHVzaChmb3JrSm9pbih0aGlzLl9zdGF0ZXNbc3RhdGVdLm9uTGVhdmVDQnMubWFwKGNiID0+IGNiKC4uLmFyZ3MpKSkpO1xuICAgIH1cblxuICAgIC8vIEFkZCBzZXQgY3VycmVudCBzdGF0ZSBpbiBiZXR3ZWVuXG4gICAgb2JzZXJ2YWJsZXMkLnB1c2gob2YoMSkucGlwZShcbiAgICAgIHRhcCgoKSA9PiB7IHRoaXMuX2N1cnJlbnRTdGF0ZSA9IHN0YXRlOyB9KSxcbiAgICApKTtcblxuICAgIC8vIE5vdyBhZGQgZW50ZXIgQ0JzXG4gICAgaWYgKHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25FbnRlckNCcykge1xuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goZm9ya0pvaW4odGhpcy5fc3RhdGVzW3N0YXRlXS5vbkVudGVyQ0JzLm1hcChjYiA9PiBjYiguLi5hcmdzKSkpKTtcbiAgICB9XG5cbiAgICBvYnNlcnZhYmxlcyQucHVzaChvZigxKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHsgdGhpcy5fc3ViamVjdC5uZXh0KHN0YXRlKTsgfSksXG4gICAgKSk7XG5cblxuICAgIHJldHVybiBmcm9tKG9ic2VydmFibGVzJCkucGlwZShcbiAgICAgIGNvbmNhdEFsbCgpLFxuICAgICAgbWFwKCgpID0+IHVuZGVmaW5lZCksXG4gICAgKTtcbiAgfVxuXG4gIGNhbihzdGF0ZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9zdGF0ZXNbc3RhdGVdIHx8ICF0aGlzLl9zdGF0ZXNbdGhpcy5fY3VycmVudFN0YXRlXS5uZXh0LmluY2x1ZGVzKHN0YXRlKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdHJhbnNpdGlvbnMoc3RhdGU6IHN0cmluZyk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9zdGF0ZXNbc3RhdGVdLm5leHQ7XG4gIH1cblxuICB0cmFuc2l0VG9OZXh0JCguLi5hcmdzOiBBcnJheTxhbnk+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2l0VG8kKHRoaXMuX3N0YXRlc1t0aGlzLl9jdXJyZW50U3RhdGVdLm5leHRbMF0pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9zdGF0ZXM6IHsgW2tleTogc3RyaW5nXTogT0lEQ0Fic3RyYWN0RmxvdyB9LFxuICAgIHByb3RlY3RlZCBfaW5pdGlhbCA9ICdpbml0aWFsJyxcbiAgKSB7XG4gICAgdGhpcy5fY3VycmVudFN0YXRlID0gdGhpcy5faW5pdGlhbDtcbiAgICB0aGlzLl9zdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KHRoaXMuX2luaXRpYWwpO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIE9JRENEZWZhdWx0Rmxvd1NlcnZpY2UgZXh0ZW5kcyBPSURDRmxvd1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihcbiAgICAgIHtcbiAgICAgICAgLy8gbmFtZTogbmV3IE9JRENGbG93KFs8bmV4dC1ob3A+LCA8b3RoZXItcG9zc2libGUtaG9wcz5dKSxcbiAgICAgICAgJ2luaXRpYWwnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5HRVRfT0lEQ19DT05GSUdVUkFUSU9OLCBPSURDRmxvd3MuVVBEQVRFX0NPTkZJR10pLFxuICAgICAgICAndXBkYXRlQ29uZmlnJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAnZ2V0T0lEQ0NvbmZpZ3VyYXRpb24nOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5SRUFEX1NUT1JBR0UsIE9JRENGbG93cy5JTklUSUFMXSksXG4gICAgICAgICdyZWFkU3RvcmFnZSc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLkNIRUNLX0FVVEhPUklaRUQsIE9JRENGbG93cy5ET05FLCBPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAnY2hlY2tBdXRob3JpemVkJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuV0FJVElORywgT0lEQ0Zsb3dzLlJFUVVFU1RfUkVGUkVTSF9UT0tFTl0pLFxuICAgICAgICAnd2FpdGluZyc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLlJFUVVFU1RfQVVUSE9SSVpBVElPTiwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ3JlcXVlc3RBdXRob3JpemF0aW9uJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuUkVRVUVTVF9SRUZSRVNIX1RPS0VOLCBPSURDRmxvd3MuRE9ORSwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ3JlcXVlc3RSZWZyZXNoVG9rZW4nOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5ET05FLCBPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAnZG9uZSc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgIH0sXG4gICAgICBPSURDRmxvd3MuSU5JVElBTCk7XG4gIH1cbn0iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvdy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvZmxvdy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFRLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0lBR25FLFNBQVUsU0FBUztJQUNuQixlQUFnQixjQUFjO0lBQzlCLHdCQUF5QixzQkFBc0I7SUFDL0MsY0FBZSxhQUFhO0lBQzVCLGtCQUFtQixpQkFBaUI7SUFFcEMsU0FBVSxTQUFTO0lBRW5CLHVCQUF3QixzQkFBc0I7SUFDOUMsdUJBQXdCLHFCQUFxQjtJQUU3QyxNQUFPLE1BQU07Ozs7OztBQUdmOzs7O0lBQ0UsMEJBQ1ksS0FBb0IsRUFDcEIsV0FBNkQsRUFDN0QsV0FBNkQ7UUFGN0QsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0Q7UUFDN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWtEO0lBRXpFLENBQUM7SUFFRCxzQkFBVyxrQ0FBSTs7OztRQUFmO1lBQ0UsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7OztPQUFBO0lBRUQsc0JBQVcsd0NBQVU7Ozs7UUFBckI7WUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLEVBQTRDLENBQUM7YUFDdEU7WUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDMUIsQ0FBQzs7O09BQUE7SUFFRCxzQkFBVyx3Q0FBVTs7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QUFDO1lBQzVGLGlCQUFpQixFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNyRixTQUFTLEVBQUUsSUFBSSxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdFLHNCQUFzQixFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLHFCQUFxQixFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFHLHFCQUFxQixFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEUsTUFBTSxFQUFFLElBQUksUUFBUSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFDLEVBQ0QsU0FBUyxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDOztnQkFuQkYsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7OztpQ0ExSkQ7Q0E0S0MsQUFwQkQsQ0FHNEMsZUFBZSxHQWlCMUQ7U0FqQlksc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvciwgZm9ya0pvaW4sIGVtcHR5LCBmcm9tIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHRhcCwgbWFwLCBtZXJnZU1hcCwgbGFzdCwgY29uY2F0QWxsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgZW51bSBPSURDRmxvd3Mge1xuICBJTklUSUFMID0gJ2luaXRpYWwnLFxuICBVUERBVEVfQ09ORklHID0gJ3VwZGF0ZUNvbmZpZycsXG4gIEdFVF9PSURDX0NPTkZJR1VSQVRJT04gPSAnZ2V0T0lEQ0NvbmZpZ3VyYXRpb24nLFxuICBSRUFEX1NUT1JBR0UgPSAncmVhZFN0b3JhZ2UnLFxuICBDSEVDS19BVVRIT1JJWkVEID0gJ2NoZWNrQXV0aG9yaXplZCcsXG5cbiAgV0FJVElORyA9ICd3YWl0aW5nJyxcblxuICBSRVFVRVNUX0FVVEhPUklaQVRJT04gPSAncmVxdWVzdEF1dGhvcml6YXRpb24nLFxuICBSRVFVRVNUX1JFRlJFU0hfVE9LRU4gPSAncmVxdWVzdFJlZnJlc2hUb2tlbicsXG5cbiAgRE9ORSA9ICdkb25lJyxcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9JRENBYnN0cmFjdEZsb3cge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX25leHQ6IEFycmF5PHN0cmluZz4sXG4gICAgcHJvdGVjdGVkIF9vbkVudGVyQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICAgcHJvdGVjdGVkIF9vbkxlYXZlQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICkge1xuICB9XG5cbiAgcHVibGljIGdldCBuZXh0KCk6IEFycmF5PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9uZXh0O1xuICB9XG5cbiAgcHVibGljIGdldCBvbkVudGVyQ0JzKCk6IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+IHtcbiAgICBpZiAoIXRoaXMuX29uRW50ZXJDQnMpIHtcbiAgICAgIHRoaXMuX29uRW50ZXJDQnMgPSBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9vbkVudGVyQ0JzO1xuICB9XG5cbiAgcHVibGljIGdldCBvbkxlYXZlQ0JzKCk6IEFycmF5PCguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4+IHtcbiAgICBpZiAoIXRoaXMuX29uTGVhdmVDQnMpIHtcbiAgICAgIHRoaXMuX29uTGVhdmVDQnMgPSBBcnJheTwoLi4uYXJnczogQXJyYXk8YW55PikgPT4gT2JzZXJ2YWJsZTxhbnk+PigpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9vbkxlYXZlQ0JzO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPSURDRmxvdyBleHRlbmRzIE9JRENBYnN0cmFjdEZsb3cge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX25leHQ6IEFycmF5PHN0cmluZz4sXG4gICAgcHJvdGVjdGVkIF9vbkVudGVyQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICAgcHJvdGVjdGVkIF9vbkxlYXZlQ0JzPzogQXJyYXk8KC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pj4sXG4gICkge1xuICAgIHN1cGVyKF9uZXh0LCBfb25FbnRlckNCcywgX29uTGVhdmVDQnMpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPSURDRmxvd1NlcnZpY2Uge1xuICBwcm90ZWN0ZWQgX3N1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+O1xuXG4gIHB1YmxpYyBnZXQgc3ViamVjdCQoKTogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9zdWJqZWN0O1xuICB9XG5cblxuICBwcm90ZWN0ZWQgX2N1cnJlbnRTdGF0ZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBnZXQgY3VycmVudFN0YXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2N1cnJlbnRTdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVzKCk6IHsgW2tleTogc3RyaW5nXTogT0lEQ0Fic3RyYWN0RmxvdyB9IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVzO1xuICB9XG5cbiAgcHVibGljIG9uRW50ZXIoc3RhdGU6IHN0cmluZywgY2I6ICguLi5hcmdzOiBBcnJheTxhbnk+KSA9PiBPYnNlcnZhYmxlPGFueT4pIHtcbiAgICB0aGlzLl9zdGF0ZXNbc3RhdGVdLm9uRW50ZXJDQnMucHVzaChjYik7XG4gIH1cblxuICBwdWJsaWMgb25MZWF2ZShzdGF0ZTogc3RyaW5nLCBjYjogKC4uLmFyZ3M6IEFycmF5PGFueT4pID0+IE9ic2VydmFibGU8YW55Pikge1xuICAgIHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25MZWF2ZUNCcy5wdXNoKGNiKTtcbiAgfVxuXG4gIHRyYW5zaXRUbyQoc3RhdGU6IHN0cmluZywgLi4uYXJnczogQXJyYXk8YW55Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgLy8gTGlzdCBvZiBPYnNlcnZhYmxlcyBmcm9tIHRoZSBjYWxsYmFja3NcbiAgICBsZXQgb2JzZXJ2YWJsZXMkID0gQXJyYXk8T2JzZXJ2YWJsZTxhbnk+PigpO1xuXG4gICAgLy8gQWRkIGNoZWNrIGNhbGxiYWNrc1xuICAgIG9ic2VydmFibGVzJC5wdXNoKG9mKDEpLnBpcGUoXG4gICAgICBtZXJnZU1hcCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9jdXJyZW50U3RhdGUgPT09IHN0YXRlKSB7XG4gICAgICAgICAgcmV0dXJuIG9mPHZvaWQ+KCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZWUgaWYgd2UgY2FuIGdvIHRvIHRoYXQgc3RhdGUuXG4gICAgICAgIGlmICghdGhpcy5jYW4oc3RhdGUpKSB7XG4gICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IobmV3IEVycm9yKGBTdGF0ZSBkb2VzIG5vdCBleGlzdHMgb3IgY2FuJ3QgZ28gZnJvbSBcIiR7dGhpcy5fY3VycmVudFN0YXRlfVwiIHRvIFwiJHtzdGF0ZX1cImApKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlbXB0eSgpO1xuICAgICAgfSksXG4gICAgKSk7XG5cbiAgICAvLyBBZGQgbGVhdmUgY2FsbGJhY2tzXG4gICAgaWYgKHRoaXMuY3VycmVudFN0YXRlICE9PSB0aGlzLl9pbml0aWFsICYmIHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25MZWF2ZUNCcykge1xuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goZm9ya0pvaW4odGhpcy5fc3RhdGVzW3N0YXRlXS5vbkxlYXZlQ0JzLm1hcChjYiA9PiBjYiguLi5hcmdzKSkpKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgc2V0IGN1cnJlbnQgc3RhdGUgaW4gYmV0d2VlblxuICAgIG9ic2VydmFibGVzJC5wdXNoKG9mKDEpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4geyB0aGlzLl9jdXJyZW50U3RhdGUgPSBzdGF0ZTsgfSksXG4gICAgICB0YXAoKCkgPT4geyB0aGlzLl9zdWJqZWN0Lm5leHQoc3RhdGUpOyB9KSxcbiAgICApKTtcblxuICAgIC8vIE5vdyBhZGQgZW50ZXIgQ0JzXG4gICAgaWYgKHRoaXMuX3N0YXRlc1tzdGF0ZV0ub25FbnRlckNCcykge1xuICAgICAgb2JzZXJ2YWJsZXMkLnB1c2goZm9ya0pvaW4odGhpcy5fc3RhdGVzW3N0YXRlXS5vbkVudGVyQ0JzLm1hcChjYiA9PiBjYiguLi5hcmdzKSkpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZnJvbShvYnNlcnZhYmxlcyQpLnBpcGUoXG4gICAgICBjb25jYXRBbGwoKSxcbiAgICAgIG1hcCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICk7XG4gIH1cblxuICBjYW4oc3RhdGU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5fc3RhdGVzW3N0YXRlXSB8fCAhdGhpcy5fc3RhdGVzW3RoaXMuX2N1cnJlbnRTdGF0ZV0ubmV4dC5pbmNsdWRlcyhzdGF0ZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRyYW5zaXRpb25zKHN0YXRlOiBzdHJpbmcpOiBBcnJheTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVzW3N0YXRlXS5uZXh0O1xuICB9XG5cbiAgdHJhbnNpdFRvTmV4dCQoLi4uYXJnczogQXJyYXk8YW55Pik6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNpdFRvJCh0aGlzLl9zdGF0ZXNbdGhpcy5fY3VycmVudFN0YXRlXS5uZXh0WzBdKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBfc3RhdGVzOiB7IFtrZXk6IHN0cmluZ106IE9JRENBYnN0cmFjdEZsb3cgfSxcbiAgICBwcm90ZWN0ZWQgX2luaXRpYWwgPSAnaW5pdGlhbCcsXG4gICkge1xuICAgIHRoaXMuX2N1cnJlbnRTdGF0ZSA9IHRoaXMuX2luaXRpYWw7XG4gICAgdGhpcy5fc3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih0aGlzLl9pbml0aWFsKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBPSURDRGVmYXVsdEZsb3dTZXJ2aWNlIGV4dGVuZHMgT0lEQ0Zsb3dTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoXG4gICAgICB7XG4gICAgICAgIC8vIG5hbWU6IG5ldyBPSURDRmxvdyhbPG5leHQtaG9wPiwgPG90aGVyLXBvc3NpYmxlLWhvcHM+XSksXG4gICAgICAgICdpbml0aWFsJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuR0VUX09JRENfQ09ORklHVVJBVElPTiwgT0lEQ0Zsb3dzLlVQREFURV9DT05GSUddKSxcbiAgICAgICAgJ3VwZGF0ZUNvbmZpZyc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ2dldE9JRENDb25maWd1cmF0aW9uJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuUkVBRF9TVE9SQUdFLCBPSURDRmxvd3MuSU5JVElBTF0pLFxuICAgICAgICAncmVhZFN0b3JhZ2UnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5DSEVDS19BVVRIT1JJWkVELCBPSURDRmxvd3MuRE9ORSwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ2NoZWNrQXV0aG9yaXplZCc6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLldBSVRJTkcsIE9JRENGbG93cy5SRVFVRVNUX1JFRlJFU0hfVE9LRU5dKSxcbiAgICAgICAgJ3dhaXRpbmcnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5SRVFVRVNUX0FVVEhPUklaQVRJT04sIE9JRENGbG93cy5JTklUSUFMXSksXG4gICAgICAgICdyZXF1ZXN0QXV0aG9yaXphdGlvbic6IG5ldyBPSURDRmxvdyhbT0lEQ0Zsb3dzLlJFUVVFU1RfUkVGUkVTSF9UT0tFTiwgT0lEQ0Zsb3dzLkRPTkUsIE9JRENGbG93cy5JTklUSUFMXSksXG4gICAgICAgICdyZXF1ZXN0UmVmcmVzaFRva2VuJzogbmV3IE9JRENGbG93KFtPSURDRmxvd3MuRE9ORSwgT0lEQ0Zsb3dzLklOSVRJQUxdKSxcbiAgICAgICAgJ2RvbmUnOiBuZXcgT0lEQ0Zsb3coW09JRENGbG93cy5JTklUSUFMXSksXG4gICAgICB9LFxuICAgICAgT0lEQ0Zsb3dzLklOSVRJQUwpO1xuICB9XG59Il19

@@ -24,3 +24,3 @@ /**

this._flow.onEnter(OIDCFlows.UPDATE_CONFIG, function () {
return from([_this._flow.transitTo$(OIDCFlows.INITIAL), _this._flow.transitToNext$()]).pipe(concatAll(), tap(function () { _this.updateConfig(); }));
return of(1).pipe(tap(function () { return _this.updateConfig(); }));
});

@@ -60,2 +60,10 @@ this._flow.onEnter(OIDCFlows.CHECK_AUTHORIZED, function () {

*/
OIDCService.prototype.ngOnInit = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
OIDCService.prototype.updateConfig = /**

@@ -84,11 +92,14 @@ * @return {?}

/**
* @param {?} options
* @param {?=} options
* @return {?}
*/
OIDCService.prototype.applyConfig = /**
* @param {?} options
OIDCService.prototype.run$ = /**
* @param {?=} options
* @return {?}
*/
function (options) {
this._config.applyConfig(options);
if (options) {
return from([this._config.applyConfig(options), this._flow.transitToNext$()]).pipe(concatAll());
}
return this._flow.transitToNext$();
};

@@ -193,2 +204,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvb2lkYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBbUMsTUFBTSxTQUFTLENBQUM7QUFFekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBWSxHQUFHLEVBQU8sU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJGO0lBS0UscUJBQ1UsTUFBb0IsRUFDcEIsT0FBMEIsRUFDMUIsT0FBMEIsRUFDMUIsS0FBc0IsRUFDdEIsVUFBcUM7UUFML0MsaUJBc0RDO1FBckRTLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBMkI7UUFFN0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7WUFDMUMsT0FBTyxJQUFJLENBQUMs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YXIvY29yZSc7XG5pbXBvcnQgeyBPSURDQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgR1JBTlRfVFlQRV9BVVRIT1JJWkFUSU9OX0NPREUsIFRva2VuUmVxdWVzdEpzb24sIFRva2VuUmVzcG9uc2UgfSBmcm9tICcuL3Rva2VuJztcblxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IElPSURDQ29uZmlnIH0gZnJvbSAnLi9jb25maWctaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQYXJzZWRJZFRva2VuLCBBdXRob3JpemF0aW9uRXJyb3JKc29uLCBBdXRob3JpemF0aW9uUmVzcG9uc2VKc29uIH0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyBPSURDRmxvd1NlcnZpY2UsIE9JRENGbG93cyB9IGZyb20gJy4vZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENUb2tlblJlcXVlc3RvclNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLXJlcXVlc3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAsIG1lcmdlQWxsLCB0YXAsIG1hcCwgY29uY2F0QWxsLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT0lEQ1NlcnZpY2Uge1xuICBwcml2YXRlIF9mbG93RGVidWdMaXN0ZW5lcjogYW55O1xuICBwcml2YXRlIF9hdXRvTG9nb25MaXN0ZW5lcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3Rva2VuOiBUb2tlblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbG9nZ2VyOiBPSURDTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIF9jb25maWc6IE9JRENDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2Zsb3c6IE9JRENGbG93U2VydmljZSxcbiAgICBwcml2YXRlIF9yZXF1ZXN0b3I6IE9JRENUb2tlblJlcXVlc3RvclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5VUERBVEVfQ09ORklHLCAoKSA9PiB7XG4gICAgICByZXR1cm4gZnJvbShbdGhpcy5fZmxvdy50cmFuc2l0VG8kKE9JRENGbG93cy5JTklUSUFMKSwgdGhpcy5fZmxvdy50cmFuc2l0VG9OZXh0JCgpXSkucGlwZShcbiAgICAgICAgY29uY2F0QWxsKCksXG4gICAgICAgIHRhcCgoKSA9PiB7IHRoaXMudXBkYXRlQ29uZmlnKCkgfSksXG4gICAgICApXG4gICAgfSk7XG5cbiAgICB0aGlzLl9mbG93Lm9uRW50ZXIoT0lEQ0Zsb3dzLkNIRUNLX0FVVEhPUklaRUQsICgpID0+IHtcbiAgICAgIHJldHVybiBvZigxKS5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIC8vIGNhbGwgY29tcGxldGUgYXV0aG9yaXphdGlvbiBpZiBwb3NzaWJsZSB0byBzZWUgdGhlcmUgbWlnaHRcbiAgICAgICAgICAvLyBiZSBhIHJlc3BvbnNlIHRoYXQgbmVlZHMgdG8gYmUgZGVsaXZlcmVkLlxuICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBDaGVja2luZyB0byBzZWUgaWYgdGhlcmUgaXMgYW4gYXV0aG9yaXphdGlvbiByZXNwb25zZSB0byBiZSBkZWxpdmVyZWQuYFxuICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBtZXJnZU1hcCgoKSA9PiBmcm9tKHRoaXMuX3JlcXVlc3Rvci5jb21wbGV0ZUF1dGhvcml6YXRpb25SZXF1ZXN0KCkpLnBpcGUoY2F0Y2hFcnJvcih2YWwgPT4gb2YodmFsKSkpKSxcbiAgICAgICAgbWVyZ2VNYXAoKHJlc3VsdDogQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbnxFcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiByZXN1bHQgPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKGBObyByZXN1bHQgaXMgYXZhaWxhYmxlIHlldC5gKTtcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZmxvdy50cmFuc2l0VG8kKE9JRENGbG93cy5SRVFVRVNUX1JFRlJFU0hfVE9LRU4sIHJlc3VsdClcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9mbG93Lm9uRW50ZXIoT0lEQ0Zsb3dzLlJFUVVFU1RfQVVUSE9SSVpBVElPTiwgKCkgPT4ge1xuICAgICAgcmV0dXJuIG9mKDEpLnBpcGUodGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVxdWVzdG9yLnBlcmZvcm1BdXRob3JpemF0aW9uUmVxdWVzdCgpO1xuICAgICAgfSkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5SRVFVRVNUX1JFRlJFU0hfVE9LRU4sIChyZXNwb25zZTogQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuX3JlcXVlc3Rvci5wZXJmb3JtVG9rZW5SZXF1ZXN0JCh7XG4gICAgICAgIGdyYW50X3R5cGU6IEdSQU5UX1RZUEVfQVVUSE9SSVpBVElPTl9DT0RFLFxuICAgICAgICBjb2RlOiByZXNwb25zZS5jb2RlLFxuICAgICAgICByZWRpcmVjdF91cmk6IFwiXCIsXG4gICAgICAgIGNsaWVudF9pZDogXCJcIixcbiAgICAgIH0gYXMgVG9rZW5SZXF1ZXN0SnNvbikucGlwZShcbiAgICAgICAgdGFwKChyZXN1bHQ6IFRva2VuUmVzcG9uc2UpID0+IHtcbiAgICAgICAgICB0aGlzLl90b2tlbi5zZXRUb2tlbihyZXN1bHQpO1xuICAgICAgICAgIHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKTtcbiAgICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25maWcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Zsb3dEZWJ1Z0xpc3RlbmVyID09PSB1bmRlZmluZWQgJiYgdGhpcy5fY29uZmlnLm9wdGlvbnMuZGVidWcpIHtcbiAgICAgIHRoaXMuX2Zsb3dEZWJ1Z0xpc3RlbmVyID0gdGhpcy5fZmxvdy5zdWJqZWN0JC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodikgPT4ge1xuICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhgRmxvdyBlbnRlcmVkIHN0YXRlOiAke3Z9YCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYXV0b0xvZ29uTGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fYXV0b0xvZ29uTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuX2F1dG9Mb2dvbkxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcub3B0aW9ucy5hdXRvTG9nb24pIHtcbiAgICAgIHRoaXMuX2F1dG9Mb2dvbkxpc3RlbmVyID0gdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5XQUlUSU5HLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiBvZigxKS5waXBlKG1lcmdlTWFwKCgpID0+IHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKSkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFwcGx5Q29uZmlnKG9wdGlvbnM6IElPSURDQ29uZmlnKSB7XG4gICAgdGhpcy5fY29uZmlnLmFwcGx5Q29uZmlnKG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGlzQXV0aGVudGljYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdG9rZW4uaXNBdXRoZW50aWNhdGVkKCk7XG4gIH1cblxuICBwdWJsaWMgc2lnbkluKHVzZXJuYW1lPzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZmxvdy5jdXJyZW50U3RhdGUgIT09IE9JRENGbG93cy5XQUlUSU5HKSB7XG4gICAgICB0aGlzLl9sb2dnZXIuZXJyb3IoXCJOb3QgcmVhZHkgeWV0P1wiKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcIk5vdCByZWFkeSB5ZXQ/XCIpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKCkudG9Qcm9taXNlKCk7XG4gIH1cblxuICBwdWJsaWMgc2lnbk91dCgpIHtcbiAgICBpZiAoIXRoaXMuaXNBdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdG9rZW4uZ2V0VG9rZW4oKS5yZWZyZXNoVG9rZW4pIHtcbiAgICAgIHRoaXMuX3Rva2VuLmxvZ291dCgpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID1cbiAgICAgICAgICB0aGlzLl9jb25maWcub3B0aW9ucy5vcGVuZElEQ29ubmVjdFVSTCArXG4gICAgICAgICAgJ29hdXRoMi9hdXRoL3Nlc3Npb25zL2xvZ2luL3Jldm9rZSc7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oJ05vIHJlZnJlc2h0b2tlbiBpbiBzaWduT3V0KCknKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHRva2VuKCkge1xuICAgIHJldHVybiB0aGlzLl90b2tlbi5nZXRUb2tlbigpO1xuICB9XG5cbiAgcHVibGljIGdldCBwYXJzZWRJZFRva2VuKCk6IFBhcnNlZElkVG9rZW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl90b2tlbi5wYXJzZWRJZFRva2VuO1xuICB9XG5cbiAgLy8gcGVyZm9ybVdpdGhGcmVzaFRva2VucygpOiBPYnNlcnZhYmxlPFRva2VuUmVzcG9uc2U+IHtcbiAgLy8gICByZXR1cm4gT2JzZXJ2YWJsZS5jcmVhdGUob3BlcmF0b3IgPT4ge1xuICAvLyAgICAgdGhpcy5jb25maWd1cmVkJC5zdWJzY3JpYmUoY29uZmlnID0+IHtcbiAgLy8gICAgICAgaWYgKHRoaXMudG9rZW4ucmVmcmVzaFRva2VuKSB7XG4gIC8vICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgnTWlzc2luZyByZWZyZXNoVG9rZW4uJyk7XG4gIC8vICAgICAgIH1cblxuICAvLyAgICAgICAvLyBJcyB0b2tlbiBleHBpcmVkLi4uXG4gIC8vICAgICAgIC8vIGlmICh0aGlzLnRva2VuLmlzVmFsaWQoKSkge1xuICAvLyAgICAgICAvLyAgIC8vIGRvIG5vdGhpbmdcbiAgLy8gICAgICAgLy8gICBvcGVyYXRvci5jb21wbGV0ZSh0aGlzLnRva2VuKTtcbiAgLy8gICAgICAgLy8gICByZXR1cm47XG4gIC8vICAgICAgIC8vIH1cblxuICAvLyAgICAgICBjb25zdCByZXFKU09OOiBUb2tlblJlcXVlc3RKc29uID0ge1xuICAvLyAgICAgICAgIGdyYW50X3R5cGU6IEdSQU5UX1RZUEVfUkVGUkVTSF9UT0tFTixcbiAgLy8gICAgICAgICBjbGllbnRfaWQ6IHRoaXMuX2NvbmZpZy5vcHRpb25zLmNsaWVudElELFxuICAvLyAgICAgICAgIHJlZGlyZWN0X3VyaTogdGhpcy5fY29uZmlnLm9wdGlvbnMucmVkaXJlY3RVcmksXG4gIC8vICAgICAgICAgcmVmcmVzaF90b2tlbjogdGhpcy5yZWZyZXNoVG9rZW5cbiAgLy8gICAgICAgfTtcblxuICAvLyAgICAgICBjb25zdCByZXF1ZXN0ID0gbmV3IFRva2VuUmVxdWVzdChyZXFKU09OKTtcblxuICAvLyAgICAgICB0aGlzLnRva2VuSGFuZGxlclxuICAvLyAgICAgICAgIC5wZXJmb3JtVG9rZW5SZXF1ZXN0KGNvbmZpZywgcmVxdWVzdClcbiAgLy8gICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gIC8vICAgICAgICAgICBvcGVyYXRvci5jb21wbGV0ZShyZXNwb25zZSk7XG4gIC8vICAgICAgICAgfSk7XG4gIC8vICAgICB9KTtcbiAgLy8gICB9KTtcbiAgLy8gfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1pbmFkbWluL29pZGMvIiwic291cmNlcyI6WyJsaWIvb2lkYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSw2QkFBNkIsRUFBbUMsTUFBTSxTQUFTLENBQUM7QUFFekYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRFO0lBS0UscUJBQ1UsTUFBb0IsRUFDcEIsT0FBMEIsRUFDMUIsT0FBMEIsRUFDMUIsS0FBc0IsRUFDdEIsVUFBcUM7UUFML0MsaUJBbURDO1FBbERTLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFDMUIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBMkI7UUFFN0MsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7WUFDMUMsT0FBTyxFQUFFLENBQUMs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Qyw4QkFBa0M7O0lBQ2xDLDRCQUE4Qjs7SUFDOUIsaUNBQTZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPSURDQ29uZmlnU2VydmljZSB9IGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgR1JBTlRfVFlQRV9BVVRIT1JJWkFUSU9OX0NPREUsIFRva2VuUmVxdWVzdEpzb24sIFRva2VuUmVzcG9uc2UgfSBmcm9tICcuL3Rva2VuJztcblxuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IElPSURDQ29uZmlnIH0gZnJvbSAnLi9jb25maWctaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQYXJzZWRJZFRva2VuLCBBdXRob3JpemF0aW9uRXJyb3JKc29uLCBBdXRob3JpemF0aW9uUmVzcG9uc2VKc29uIH0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyBPSURDRmxvd1NlcnZpY2UsIE9JRENGbG93cyB9IGZyb20gJy4vZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENUb2tlblJlcXVlc3RvclNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLXJlcXVlc3Rvci5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWVyZ2VNYXAsIHRhcCwgY29uY2F0QWxsLCBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT0lEQ1NlcnZpY2UgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9mbG93RGVidWdMaXN0ZW5lcjogYW55O1xuICBwcml2YXRlIF9hdXRvTG9nb25MaXN0ZW5lcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3Rva2VuOiBUb2tlblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfbG9nZ2VyOiBPSURDTG9nZ2VyU2VydmljZSxcbiAgICBwcml2YXRlIF9jb25maWc6IE9JRENDb25maWdTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2Zsb3c6IE9JRENGbG93U2VydmljZSxcbiAgICBwcml2YXRlIF9yZXF1ZXN0b3I6IE9JRENUb2tlblJlcXVlc3RvclNlcnZpY2UsXG4gICkge1xuICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5VUERBVEVfQ09ORklHLCAoKSA9PiB7XG4gICAgICByZXR1cm4gb2YoMSkucGlwZSh0YXAoKCkgPT4gdGhpcy51cGRhdGVDb25maWcoKSkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5DSEVDS19BVVRIT1JJWkVELCAoKSA9PiB7XG4gICAgICByZXR1cm4gb2YoMSkucGlwZShcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAvLyBjYWxsIGNvbXBsZXRlIGF1dGhvcml6YXRpb24gaWYgcG9zc2libGUgdG8gc2VlIHRoZXJlIG1pZ2h0XG4gICAgICAgICAgLy8gYmUgYSByZXNwb25zZSB0aGF0IG5lZWRzIHRvIGJlIGRlbGl2ZXJlZC5cbiAgICAgICAgICB0aGlzLl9sb2dnZXIuZGVidWcoXG4gICAgICAgICAgICBgQ2hlY2tpbmcgdG8gc2VlIGlmIHRoZXJlIGlzIGFuIGF1dGhvcml6YXRpb24gcmVzcG9uc2UgdG8gYmUgZGVsaXZlcmVkLmBcbiAgICAgICAgICApO1xuICAgICAgICB9KSxcbiAgICAgICAgbWVyZ2VNYXAoKCkgPT4gZnJvbSh0aGlzLl9yZXF1ZXN0b3IuY29tcGxldGVBdXRob3JpemF0aW9uUmVxdWVzdCgpKS5waXBlKGNhdGNoRXJyb3IodmFsID0+IG9mKHZhbCkpKSksXG4gICAgICAgIG1lcmdlTWFwKChyZXN1bHQ6IEF1dGhvcml6YXRpb25SZXNwb25zZUpzb258RXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhgTm8gcmVzdWx0IGlzIGF2YWlsYWJsZSB5ZXQuYCk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2Zsb3cudHJhbnNpdFRvJChPSURDRmxvd3MuUkVRVUVTVF9SRUZSRVNIX1RPS0VOLCByZXN1bHQpXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5SRVFVRVNUX0FVVEhPUklaQVRJT04sICgpID0+IHtcbiAgICAgIHJldHVybiBvZigxKS5waXBlKHRhcCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlcXVlc3Rvci5wZXJmb3JtQXV0aG9yaXphdGlvblJlcXVlc3QoKTtcbiAgICAgIH0pKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX2Zsb3cub25FbnRlcihPSURDRmxvd3MuUkVRVUVTVF9SRUZSRVNIX1RPS0VOLCAocmVzcG9uc2U6IEF1dGhvcml6YXRpb25SZXNwb25zZUpzb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9yZXF1ZXN0b3IucGVyZm9ybVRva2VuUmVxdWVzdCQoe1xuICAgICAgICBncmFudF90eXBlOiBHUkFOVF9UWVBFX0FVVEhPUklaQVRJT05fQ09ERSxcbiAgICAgICAgY29kZTogcmVzcG9uc2UuY29kZSxcbiAgICAgICAgcmVkaXJlY3RfdXJpOiBcIlwiLFxuICAgICAgICBjbGllbnRfaWQ6IFwiXCIsXG4gICAgICB9IGFzIFRva2VuUmVxdWVzdEpzb24pLnBpcGUoXG4gICAgICAgIHRhcCgocmVzdWx0OiBUb2tlblJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgdGhpcy5fdG9rZW4uc2V0VG9rZW4ocmVzdWx0KTtcbiAgICAgICAgICB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKCk7XG4gICAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25maWcoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2Zsb3dEZWJ1Z0xpc3RlbmVyID09PSB1bmRlZmluZWQgJiYgdGhpcy5fY29uZmlnLm9wdGlvbnMuZGVidWcpIHtcbiAgICAgIHRoaXMuX2Zsb3dEZWJ1Z0xpc3RlbmVyID0gdGhpcy5fZmxvdy5zdWJqZWN0JC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAodikgPT4ge1xuICAgICAgICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZyhgRmxvdyBlbnRlcmVkIHN0YXRlOiAke3Z9YCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fYXV0b0xvZ29uTGlzdGVuZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fYXV0b0xvZ29uTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuX2F1dG9Mb2dvbkxpc3RlbmVyID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9jb25maWcub3B0aW9ucy5hdXRvTG9nb24pIHtcbiAgICAgIHRoaXMuX2F1dG9Mb2dvbkxpc3RlbmVyID0gdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5XQUlUSU5HLCAoKSA9PiB7XG4gICAgICAgIHJldHVybiBvZigxKS5waXBlKG1lcmdlTWFwKCgpID0+IHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKSkpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJ1biQob3B0aW9ucz86IElPSURDQ29uZmlnKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBpZiAob3B0aW9ucykge1xuICAgICAgcmV0dXJuIGZyb20oW3RoaXMuX2NvbmZpZy5hcHBseUNvbmZpZyhvcHRpb25zKSwgdGhpcy5fZmxvdy50cmFuc2l0VG9OZXh0JCgpXSkucGlwZShcbiAgICAgICAgY29uY2F0QWxsKCksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9mbG93LnRyYW5zaXRUb05leHQkKCk7XG4gIH1cblxuICBwdWJsaWMgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl90b2tlbi5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaWduSW4odXNlcm5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9mbG93LmN1cnJlbnRTdGF0ZSAhPT0gT0lEQ0Zsb3dzLldBSVRJTkcpIHtcbiAgICAgIHRoaXMuX2xvZ2dlci5lcnJvcihcIk5vdCByZWFkeSB5ZXQ/XCIpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KFwiTm90IHJlYWR5IHlldD9cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2Zsb3cudHJhbnNpdFRvTmV4dCQoKS50b1Byb21pc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBzaWduT3V0KCkge1xuICAgIGlmICghdGhpcy5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90b2tlbi5nZXRUb2tlbigpLnJlZnJlc2hUb2tlbikge1xuICAgICAgdGhpcy5fdG9rZW4ubG9nb3V0KCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPVxuICAgICAgICAgIHRoaXMuX2NvbmZpZy5vcHRpb25zLm9wZW5kSURDb25uZWN0VVJMICtcbiAgICAgICAgICAnb2F1dGgyL2F1dGgvc2Vzc2lvbnMvbG9naW4vcmV2b2tlJztcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9sb2dnZXIud2FybignTm8gcmVmcmVzaHRva2VuIGluIHNpZ25PdXQoKScpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgdG9rZW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLmdldFRva2VuKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHBhcnNlZElkVG9rZW4oKTogUGFyc2VkSWRUb2tlbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3Rva2VuLnBhcnNlZElkVG9rZW47XG4gIH1cblxuICAvLyBwZXJmb3JtV2l0aEZyZXNoVG9rZW5zKCk6IE9ic2VydmFibGU8VG9rZW5SZXNwb25zZT4ge1xuICAvLyAgIHJldHVybiBPYnNlcnZhYmxlLmNyZWF0ZShvcGVyYXRvciA9PiB7XG4gIC8vICAgICB0aGlzLmNvbmZpZ3VyZWQkLnN1YnNjcmliZShjb25maWcgPT4ge1xuICAvLyAgICAgICBpZiAodGhpcy50b2tlbi5yZWZyZXNoVG9rZW4pIHtcbiAgLy8gICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCdNaXNzaW5nIHJlZnJlc2hUb2tlbi4nKTtcbiAgLy8gICAgICAgfVxuXG4gIC8vICAgICAgIC8vIElzIHRva2VuIGV4cGlyZWQuLi5cbiAgLy8gICAgICAgLy8gaWYgKHRoaXMudG9rZW4uaXNWYWxpZCgpKSB7XG4gIC8vICAgICAgIC8vICAgLy8gZG8gbm90aGluZ1xuICAvLyAgICAgICAvLyAgIG9wZXJhdG9yLmNvbXBsZXRlKHRoaXMudG9rZW4pO1xuICAvLyAgICAgICAvLyAgIHJldHVybjtcbiAgLy8gICAgICAgLy8gfVxuXG4gIC8vICAgICAgIGNvbnN0IHJlcUpTT046IFRva2VuUmVxdWVzdEpzb24gPSB7XG4gIC8vICAgICAgICAgZ3JhbnRfdHlwZTogR1JBTlRfVFlQRV9SRUZSRVNIX1RPS0VOLFxuICAvLyAgICAgICAgIGNsaWVudF9pZDogdGhpcy5fY29uZmlnLm9wdGlvbnMuY2xpZW50SUQsXG4gIC8vICAgICAgICAgcmVkaXJlY3RfdXJpOiB0aGlzLl9jb25maWcub3B0aW9ucy5yZWRpcmVjdFVyaSxcbiAgLy8gICAgICAgICByZWZyZXNoX3Rva2VuOiB0aGlzLnJlZnJlc2hUb2tlblxuICAvLyAgICAgICB9O1xuXG4gIC8vICAgICAgIGNvbnN0IHJlcXVlc3QgPSBuZXcgVG9rZW5SZXF1ZXN0KHJlcUpTT04pO1xuXG4gIC8vICAgICAgIHRoaXMudG9rZW5IYW5kbGVyXG4gIC8vICAgICAgICAgLnBlcmZvcm1Ub2tlblJlcXVlc3QoY29uZmlnLCByZXF1ZXN0KVxuICAvLyAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgLy8gICAgICAgICAgIG9wZXJhdG9yLmNvbXBsZXRlKHJlc3BvbnNlKTtcbiAgLy8gICAgICAgICB9KTtcbiAgLy8gICAgIH0pO1xuICAvLyAgIH0pO1xuICAvLyB9XG59XG4iXX0=

@@ -249,4 +249,8 @@ /**

if (responseType === void 0) { responseType = OIDCAuthorizationResponseTypes.RESPONSE_TYPE_CODE; }
this._crypto.generateRandom(10).pipe(tap(function (state) {
_this._storage.set(_this.storageARequestStateName, state, '');
this._crypto.generateRandom(10).pipe(mergeMap(function (state) {
return _this._token.createAndSaveNonce().pipe(map(function (nonce) {
return [state, nonce];
}));
}), mergeMap(function (stateAndNonce) {
_this._storage.set(_this.storageARequestStateName, stateAndNonce[0], '');
/** @type {?} */

@@ -261,8 +265,6 @@ var scope = _this._config.options.scope.join(' ');

};
_this._token.createAndSaveNonce().subscribe(function (nonce) {
_this.buildRequestUrl(responseType, scope, state, extras, nonce).subscribe(function (url) {
_this._logger.debug('Making a request to ', url);
window.location.href = url;
});
});
return _this.buildRequestUrl(responseType, scope, stateAndNonce[0], extras, stateAndNonce[1]);
}), tap(function (url) {
_this._logger.debug('Making a request to ', url);
window.location.href = url;
})).subscribe(function () { });

@@ -360,2 +362,2 @@ };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tcmVxdWVzdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi1yZXF1ZXN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIseUJBQXlCLEVBQzFCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsYUFBYSxHQU1kLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7SUFFL0MsbUJBQW1CLEdBQUc7SUFDMUIsY0FBYztJQUNkLFdBQVc7SUFDWCxlQUFlO0lBQ2YsT0FBTztJQUNQLE9BQU87Q0FDUjs7O0lBR0MscUJBQXNCLE9BQU87SUFDN0Isb0JBQXFCLE1BQU07Ozs7OztBQUc3Qjs7OztJQUNF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LGlCQUFpQix1QkE2SmQsTUFBTSxTQUFDLGlCQUFpQjtnQkExSnBCLGNBQWMsdUJBMkpsQixNQUFNLFNBQUMsY0FBYztnQkExSWpCLGlCQUFpQix1QkEySXJCLE1BQU0sU0FBQyxpQkFBaUI7Z0JBeEpwQix3QkFBd0IsdUJBeUo1QixNQUFNLFNBQUMsd0JBQXdCO2dCQXRKM0IsVUFBVSx1QkF1SmQsTUFBTSxTQUFDLFVBQVU7Z0JBOUliLFlBQVk7Z0JBYlosZUFBZTtnQkFGZixhQUFhO2dCQUNiLGNBQWM7O0lBMFB2Qix3Q0FBQztDQUFBLEFBdkdELENBQ3VELHlCQUF5QixHQXNHL0U7U0F0R1ksaUNBQWlDOzs7SUFDNUMscUVBQXdDOztJQVF0QyxtREFBNEI7O0lBQzVCLGtEQUE4Qjs7SUFDOUIsb0RBQThCOztJQUM5QixxREFBZ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE9JRENDb25maWdTZXJ2aWNlLFxuICBPSURDQ29uZmlnU3RvcmFnZUtleU5hbWVzXG59IGZyb20gJy4vY29uZmlnLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ3J5cHRvU2VydmljZSB9IGZyb20gJy4vY3J5cHRvLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuL3N0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBPSURDRmxvd1NlcnZpY2UsIE9JRENGbG93cyB9IGZyb20gJy4vZmxvdy5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4vb2lkYy1jb25maWd1cmF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgbWVyZ2VNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBUb2tlblJlc3BvbnNlLFxuICBBdXRob3JpemF0aW9uUmVzcG9uc2VKc29uLFxuICBBdXRob3JpemF0aW9uRXJyb3JKc29uLFxuICBUb2tlblJlcXVlc3RKc29uLFxuICBUb2tlbkVycm9ySnNvbixcbiAgVG9rZW5SZXNwb25zZUpzb24sXG59IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi90b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi9sb2dnZXIuc2VydmljZSc7XG5cbmNvbnN0IEJVSUxUX0lOX1BBUkFNRVRFUlMgPSBbXG4gICdyZWRpcmVjdF91cmknLFxuICAnY2xpZW50X2lkJyxcbiAgJ3Jlc3BvbnNlX3R5cGUnLFxuICAnc3RhdGUnLFxuICAnc2NvcGUnXG5dO1xuXG5leHBvcnQgZW51bSBPSURDQXV0aG9yaXphdGlvblJlc3BvbnNlVHlwZXMge1xuICBSRVNQT05TRV9UWVBFX1RPS0VOID0gJ3Rva2VuJyxcbiAgUkVTUE9OU0VfVFlQRV9DT0RFID0gJ2NvZGUnXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPSURDVG9rZW5SZXF1ZXN0b3JTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIF9jb25maWc6IE9JRENDb25maWdTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByb3RlY3RlZCBfbG9nZ2VyOiBPSURDTG9nZ2VyU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgX2NvbmZpZ3VyYXRpb246IE9JRENDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgX2h0dHA6IEh0dHBDbGllbnQsXG4gICkge1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRSZXF1ZXN0VXJsKFxuICAgIHJlc3BvbnNlVHlwZTogT0lEQ0F1dGhvcml6YXRpb25SZXNwb25zZVR5cGVzLFxuICAgIHNjb3BlOiBzdHJpbmcsXG4gICAgc3RhdGU6IHN0cmluZyxcbiAgICBleHRyYXM6IG9iamVjdCB8IHVuZGVmaW5lZCxcbiAgICBub25jZTogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIC8vIGJ1aWxkIHRoZSBxdWVyeSBzdHJpbmdcbiAgICAvLyBjb2VyY2UgdG8gYW55IHR5cGUgZm9yIGNvbnZlbmllbmNlXG5cbiAgICBjb25zdCBzZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKCk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgncmVkaXJlY3RfdXJpJywgdGhpcy5fY29uZmlnLm9wdGlvbnMucmVkaXJlY3RVcmkpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ2NsaWVudF9pZCcsIHRoaXMuX2NvbmZpZy5vcHRpb25zLmNsaWVudElEKTtcbiAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdyZXNwb25zZV90eXBlJywgcmVzcG9uc2VUeXBlKTtcbiAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdzdGF0ZScsIHN0YXRlKTtcbiAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdzY29wZScsIHNjb3BlKTtcbiAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdub25jZScsIG5vbmNlKTtcblxuICAgIC8vIGNvcHkgb3ZlciBleHRyYXNcbiAgICBpZiAoZXh0cmFzKSB7XG4gICAgICBmb3IgKGNvbnN0IGV4dHJhIGluIGV4dHJhcykge1xuICAgICAgICBpZiAoIWV4dHJhcy5oYXNPd25Qcm9wZXJ0eShleHRyYSkpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChCVUlMVF9JTl9QQVJBTUVURVJTLmluZGV4T2YoZXh0cmEpIDwgMCkge1xuICAgICAgICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoZXh0cmEsIGV4dHJhc1tleHRyYV0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBzZWFyY2hQYXJhbXMudG9TdHJpbmcoKTtcbiAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbi5kaXNjb3ZlcnkkLnBpcGUoXG4gICAgICBtYXAoZG9jID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IGRvYy5hdXRob3JpemF0aW9uX2VuZHBvaW50O1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtiYXNlVXJsfT8ke3F1ZXJ5fWA7XG5cbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBhYnN0cmFjdCBwZXJmb3JtQXV0aG9yaXphdGlvblJlcXVlc3QoKTogdm9pZDtcblxuICBhYnN0cmFjdCBjb21wbGV0ZUF1dGhvcml6YXRpb25SZXF1ZXN0KCk6IFByb21pc2U8QXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbj47XG5cbiAgcHJpdmF0ZSBpc1Rva2VuUmVzcG9uc2UocmVzcG9uc2U6IFRva2VuUmVzcG9uc2VKc29uIHxcbiAgICBUb2tlbkVycm9ySnNvbik6IHJlc3BvbnNlIGlzIFRva2VuUmVzcG9uc2VKc29uIHtcbiAgICByZXR1cm4gKHJlc3BvbnNlIGFzIFRva2VuRXJyb3JKc29uKS5lcnJvciA9PT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgLy8gcHVibGljIHBlcmZvcm1SZXZva2VUb2tlblJlcXVlc3QoXG4gIC8vICAgY29uZmlndXJhdGlvbjogQXV0aG9yaXphdGlvblNlcnZpY2VDb25maWd1cmF0aW9uLFxuICAvLyAgIHJlcXVlc3Q6IFJldm9rZVRva2VuUmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAvLyAgIGxldCByZXZva2VUb2tlblJlc3BvbnNlID0gdGhpcy5yZXF1ZXN0b3IueGhyPGJvb2xlYW4+KHtcbiAgLy8gICAgIHVybDogY29uZmlndXJhdGlvbi5yZXZvY2F0aW9uRW5kcG9pbnQsXG4gIC8vICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgLy8gICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQnIH0sXG4gIC8vICAgICBkYXRhOiB0aGlzLnV0aWxzLnN0cmluZ2lmeShyZXF1ZXN0LnRvU3RyaW5nTWFwKCkpXG4gIC8vICAgfSk7XG5cbiAgLy8gICByZXR1cm4gcmV2b2tlVG9rZW5SZXNwb25zZS50aGVuKHJlc3BvbnNlID0+IHtcbiAgLy8gICAgIHJldHVybiB0cnVlO1xuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgcHVibGljIHBlcmZvcm1Ub2tlblJlcXVlc3QkKHJlcXVlc3Q6IFRva2VuUmVxdWVzdEpzb24pOlxuICAgIE9ic2VydmFibGU8VG9rZW5SZXNwb25zZT4ge1xuXG4gICAgcmV0dXJuIHRoaXMuX2NvbmZpZ3VyYXRpb24uZGlzY292ZXJ5JC5waXBlKFxuICAgICAgbWFwKFxuICAgICAgICBkaXNjb3ZlckRvYyA9PiB7XG4gICAgICAgICAgcmV0dXJuIGRpc2NvdmVyRG9jLnRva2VuX2VuZHBvaW50O1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgbWVyZ2VNYXAoXG4gICAgICAgIHRva2VuRW5kcG9pbnQgPT4ge1xuICAgICAgICAgIGNvbnN0IGJvZHkgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICBib2R5LnNldCgnZ3JhbnRfdHlwZScsIHJlcXVlc3QuZ3JhbnRfdHlwZSk7XG4gICAgICAgICAgaWYgKHJlcXVlc3QuY29kZSkge1xuICAgICAgICAgICAgYm9keS5zZXQoJ2NvZGUnLCByZXF1ZXN0LmNvZGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAocmVxdWVzdC5yZWZyZXNoX3Rva2VuKSB7XG4gICAgICAgICAgICBib2R5LnNldCgncmVmcmVzaF90b2tlbicsIHJlcXVlc3QucmVmcmVzaF90b2tlbik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJvZHkuc2V0KCdyZWRpcmVjdF91cmknLCB0aGlzLl9jb25maWcub3B0aW9ucy5yZWRpcmVjdFVyaSk7XG4gICAgICAgICAgYm9keS5zZXQoJ2NsaWVudF9pZCcsIHRoaXMuX2NvbmZpZy5vcHRpb25zLmNsaWVudElEKTtcbiAgICAgICAgICBpZiAocmVxdWVzdC5leHRyYXMpIHtcbiAgICAgICAgICAgIGJvZHkuc2V0KCdleHRyYXMnLCByZXF1ZXN0LmV4dHJhcy50b1N0cmluZygpKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxUb2tlblJlc3BvbnNlSnNvbiB8IFRva2VuRXJyb3JKc29uPih0b2tlbkVuZHBvaW50LCBib2R5KTtcbiAgICAgICAgfVxuICAgICAgKSxcbiAgICAgIG1hcChcbiAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmlzVG9rZW5SZXNwb25zZShyZXNwb25zZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgVG9rZW5SZXNwb25zZShyZXNwb25zZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IHJlc3BvbnNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE9JRENSZWRpcmVjdEJhc2VkUmVxdWVzdG9yU2VydmljZSBleHRlbmRzIE9JRENUb2tlblJlcXVlc3RvclNlcnZpY2Uge1xuICBwdWJsaWMgc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChPSURDQ29uZmlnU2VydmljZSkgX2NvbmZpZzogT0lEQ0NvbmZpZ1NlcnZpY2UsXG4gICAgQEluamVjdChBY3RpdmF0ZWRSb3V0ZSkgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBASW5qZWN0KE9JRENMb2dnZXJTZXJ2aWNlKSBfbG9nZ2VyOiBPSURDTG9nZ2VyU2VydmljZSxcbiAgICBASW5qZWN0KE9JRENDb25maWd1cmF0aW9uU2VydmljZSkgX2NvbmZpZ3VyYXRpb246IE9JRENDb25maWd1cmF0aW9uU2VydmljZSxcbiAgICBASW5qZWN0KEh0dHBDbGllbnQpIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgX3Rva2VuOiBUb2tlblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfZmxvdzogT0lEQ0Zsb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgX2NyeXB0bzogQ3J5cHRvU2VydmljZSxcbiAgICBwcml2YXRlIF9zdG9yYWdlOiBTdG9yYWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihfY29uZmlnLCBfcm91dGUsIF9sb2dnZXIsIF9jb25maWd1cmF0aW9uLCBfaHR0cCk7XG5cbiAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xuICAgIHRoaXMuX2Zsb3cub25FbnRlcihPSURDRmxvd3MuVVBEQVRFX0NPTkZJRywgKCkgPT4ge1xuICAgICAgcmV0dXJuIG9mKDEpLnBpcGUodGFwKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVDb25maWcoKTtcbiAgICAgIH0pKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lID0gdGhpcy5fY29uZmlnLmdldFN0b3JhZ2VLZXkoXG4gICAgICBPSURDQ29uZmlnU3RvcmFnZUtleU5hbWVzLkFfUkVRVUVTVF9TVEFURVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgcGVyZm9ybUF1dGhvcml6YXRpb25SZXF1ZXN0KFxuICAgIHJlc3BvbnNlVHlwZSA9IE9JRENBdXRob3JpemF0aW9uUmVzcG9uc2VUeXBlcy5SRVNQT05TRV9UWVBFX0NPREVcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5fY3J5cHRvLmdlbmVyYXRlUmFuZG9tKDEwKS5waXBlKFxuICAgICAgdGFwKHN0YXRlID0+IHtcbiAgICAgICAgdGhpcy5fc3RvcmFnZS5zZXQodGhpcy5zdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWUsIHN0YXRlLCAnJyk7XG5cbiAgICAgICAgbGV0IHNjb3BlOiBzdHJpbmcgPSB0aGlzLl9jb25maWcub3B0aW9ucy5zY29wZS5qb2luKCcgJyk7XG4gICAgICAgIGlmICh0aGlzLl9jb25maWcub3B0aW9ucy5yZWZyZXNoX3Rva2VuID09PSB0cnVlKSB7XG4gICAgICAgICAgc2NvcGUgKz0gJyBvZmZsaW5lJztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGV4dHJhcyA9IHtcbiAgICAgICAgICBwcm9tcHQ6IHRoaXMuX2NvbmZpZy5vcHRpb25zLnByb21wdFxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuX3Rva2VuLmNyZWF0ZUFuZFNhdmVOb25jZSgpLnN1YnNjcmliZShub25jZSA9PiB7XG4gICAgICAgICAgdGhpcy5idWlsZFJlcXVlc3RVcmwocmVzcG9uc2VUeXBlLCBzY29wZSwgc3RhdGUsIGV4dHJhcywgbm9uY2UpLnN1YnNjcmliZSh1cmwgPT4ge1xuICAgICAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdNYWtpbmcgYSByZXF1ZXN0IHRvICcsIHVybCk7XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICkuc3Vic2NyaWJlKCgpID0+IHsgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gaW50cm9zcGVjdCB0aGUgY29udGVudHMgb2Ygc3RvcmFnZSBiYWNrZW5kIGFuZCBjb21wbGV0ZXMgdGhlXG4gICAqIHJlcXVlc3QuXG4gICAqL1xuICBwdWJsaWMgY29tcGxldGVBdXRob3JpemF0aW9uUmVxdWVzdCgpOiBQcm9taXNlPEF1dGhvcml6YXRpb25SZXNwb25zZUpzb24+IHtcbiAgICBjb25zdCByZXF1ZXN0U3RhdGUgPSB0aGlzLl9zdG9yYWdlLmdldCh0aGlzLnN0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSk7XG4gICAgdGhpcy5fc3RvcmFnZS5yZW1vdmUodGhpcy5zdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWUpO1xuXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB0aGlzLl9yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcztcbiAgICBjb25zdCBzdGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gcXVlcnlQYXJhbXNbJ3N0YXRlJ107XG4gICAgY29uc3QgY29kZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gcXVlcnlQYXJhbXNbJ2NvZGUnXTtcbiAgICBjb25zdCBlcnJvcjogc3RyaW5nIHwgdW5kZWZpbmVkID0gcXVlcnlQYXJhbXNbJ2Vycm9yJ107XG5cbiAgICBpZiAoIXN0YXRlIHx8ICFjb2RlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoXCJOb3QgQXV0aG9yaXplZFwiKTtcbiAgICB9XG5cbiAgICB0aGlzLl9sb2dnZXIuZGVidWcoJ1BvdGVudGlhbCBhdXRob3JpemF0aW9uIHJlcXVlc3QnKTtcblxuICAgIGNvbnN0IHNob3VsZE5vdGlmeSA9IHN0YXRlID09PSByZXF1ZXN0U3RhdGU7XG4gICAgaWYgKCFzaG91bGROb3RpZnkpIHtcbiAgICAgIGNvbnN0IGVyciA9ICdNaXNtYXRjaGVkIHJlcXVlc3QgKHN0YXRlIGFuZCByZXF1ZXN0X3VyaSkgZG9udCBtYXRjaC4nO1xuICAgICAgdGhpcy5fbG9nZ2VyLndhcm4oZXJyKTtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChlcnIpO1xuICAgIH1cblxuICAgIGlmIChlcnJvcikge1xuICAgICAgLy8gZ2V0IGFkZGl0aW9uYWwgb3B0aW9uYWwgaW5mby5cbiAgICAgIGNvbnN0IGVycm9yVXJpID0gcXVlcnlQYXJhbXNbJ2Vycm9yX3VyaSddO1xuICAgICAgY29uc3QgZXJyb3JEZXNjcmlwdGlvbiA9IHF1ZXJ5UGFyYW1zWydlcnJvcl9kZXNjcmlwdGlvbiddO1xuICAgICAgY29uc3QgYXV0aG9yaXphdGlvbkVycm9yID0ge1xuICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiBlcnJvckRlc2NyaXB0aW9uLFxuICAgICAgICBlcnJvcl91cmk6IGVycm9yVXJpLFxuICAgICAgICBzdGF0ZTogc3RhdGVcbiAgICAgIH0gYXMgQXV0aG9yaXphdGlvbkVycm9ySnNvbjtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChhdXRob3JpemF0aW9uRXJyb3IpO1xuICAgIH1cblxuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnRGVsaXZlcmluZyBhdXRob3JpemF0aW9uIHJlc3BvbnNlJyk7XG4gICAgY29uc3QgYXV0aG9yaXphdGlvblJlc3BvbnNlID0ge1xuICAgICAgY29kZTogY29kZSxcbiAgICAgIHN0YXRlOiBzdGF0ZSxcbiAgICB9IGFzIEF1dGhvcml6YXRpb25SZXNwb25zZUpzb247XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShhdXRob3JpemF0aW9uUmVzcG9uc2UpO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4tcmVxdWVzdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi1yZXF1ZXN0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIseUJBQXlCLEVBQzFCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQ0wsYUFBYSxHQU1kLE1BQU0sU0FBUyxDQUFDO0FBQ2pCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7SUFFL0MsbUJBQW1CLEdBQUc7SUFDMUIsY0FBYztJQUNkLFdBQVc7SUFDWCxlQUFlO0lBQ2YsT0FBTztJQUNQLE9BQU87Q0FDUjs7O0lBR0MscUJBQXNCLE9BQU87SUFDN0Isb0JBQXFCLE1BQU07Ozs7OztBQUc3Qjs7OztJQUNF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QkFBcUIsR0FBRyxtQkFBQTtZQUM1QixJQUFJLEVBQUUsSUFBSTtZQUNWLEtBQUssRUFBRSxLQUFLO1NBQ2IsRUFBNkI7UUFDOUIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDaEQsQ0FBQzs7Z0JBNUdGLFVBQVU7OztnQkF4SlQsaUJBQWlCLHVCQTZKZCxNQUFNLFNBQUMsaUJBQWlCO2dCQTFKcEIsY0FBYyx1QkEySmxCLE1BQU0sU0FBQyxjQUFjO2dCQTFJakIsaUJBQWlCLHVCQTJJckIsTUFBTSxTQUFDLGlCQUFpQjtnQkF4SnBCLHdCQUF3Qix1QkF5SjVCLE1BQU0sU0FBQyx3QkFBd0I7Z0JBdEozQixVQUFVLHVCQXVKZCxNQUFNLFNBQUMsVUFBVTtnQkE5SWIsWUFBWTtnQkFiWixlQUFlO2dCQUZmLGFBQWE7Z0JBQ2IsY0FBYzs7SUFnUXZCLHdDQUFDO0NBQUEsQUE3R0QsQ0FDdUQseUJBQXlCLEdBNEcvRTtTQTVHWSxpQ0FBaUM7OztJQUM1QyxxRUFBd0M7O0lBUXRDLG1EQUE0Qjs7SUFDNUIsa0RBQThCOztJQUM5QixvREFBOEI7O0lBQzlCLHFEQUFnQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgT0lEQ0NvbmZpZ1NlcnZpY2UsXG4gIE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXNcbn0gZnJvbSAnLi9jb25maWcuc2VydmljZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDcnlwdG9TZXJ2aWNlIH0gZnJvbSAnLi9jcnlwdG8uc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9JRENGbG93U2VydmljZSwgT0lEQ0Zsb3dzIH0gZnJvbSAnLi9mbG93LnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9vaWRjLWNvbmZpZ3VyYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBtZXJnZU1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7XG4gIFRva2VuUmVzcG9uc2UsXG4gIEF1dGhvcml6YXRpb25SZXNwb25zZUpzb24sXG4gIEF1dGhvcml6YXRpb25FcnJvckpzb24sXG4gIFRva2VuUmVxdWVzdEpzb24sXG4gIFRva2VuRXJyb3JKc29uLFxuICBUb2tlblJlc3BvbnNlSnNvbixcbn0gZnJvbSAnLi90b2tlbic7XG5pbXBvcnQgeyBUb2tlblNlcnZpY2UgfSBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuaW1wb3J0IHsgT0lEQ0xvZ2dlclNlcnZpY2UgfSBmcm9tICcuL2xvZ2dlci5zZXJ2aWNlJztcblxuY29uc3QgQlVJTFRfSU5fUEFSQU1FVEVSUyA9IFtcbiAgJ3JlZGlyZWN0X3VyaScsXG4gICdjbGllbnRfaWQnLFxuICAncmVzcG9uc2VfdHlwZScsXG4gICdzdGF0ZScsXG4gICdzY29wZSdcbl07XG5cbmV4cG9ydCBlbnVtIE9JRENBdXRob3JpemF0aW9uUmVzcG9uc2VUeXBlcyB7XG4gIFJFU1BPTlNFX1RZUEVfVE9LRU4gPSAndG9rZW4nLFxuICBSRVNQT05TRV9UWVBFX0NPREUgPSAnY29kZSdcbn1cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE9JRENUb2tlblJlcXVlc3RvclNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgX2NvbmZpZzogT0lEQ0NvbmZpZ1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIF9yb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJvdGVjdGVkIF9sb2dnZXI6IE9JRENMb2dnZXJTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBfY29uZmlndXJhdGlvbjogT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBfaHR0cDogSHR0cENsaWVudCxcbiAgKSB7XG5cbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZFJlcXVlc3RVcmwoXG4gICAgcmVzcG9uc2VUeXBlOiBPSURDQXV0aG9yaXphdGlvblJlc3BvbnNlVHlwZXMsXG4gICAgc2NvcGU6IHN0cmluZyxcbiAgICBzdGF0ZTogc3RyaW5nLFxuICAgIGV4dHJhczogb2JqZWN0IHwgdW5kZWZpbmVkLFxuICAgIG5vbmNlOiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgLy8gYnVpbGQgdGhlIHF1ZXJ5IHN0cmluZ1xuICAgIC8vIGNvZXJjZSB0byBhbnkgdHlwZSBmb3IgY29udmVuaWVuY2VcblxuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoKTtcbiAgICBzZWFyY2hQYXJhbXMuYXBwZW5kKCdyZWRpcmVjdF91cmknLCB0aGlzLl9jb25maWcub3B0aW9ucy5yZWRpcmVjdFVyaSk7XG4gICAgc2VhcmNoUGFyYW1zLmFwcGVuZCgnY2xpZW50X2lkJywgdGhpcy5fY29uZmlnLm9wdGlvbnMuY2xpZW50SUQpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Jlc3BvbnNlX3R5cGUnLCByZXNwb25zZVR5cGUpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3N0YXRlJywgc3RhdGUpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ3Njb3BlJywgc2NvcGUpO1xuICAgIHNlYXJjaFBhcmFtcy5hcHBlbmQoJ25vbmNlJywgbm9uY2UpO1xuXG4gICAgLy8gY29weSBvdmVyIGV4dHJhc1xuICAgIGlmIChleHRyYXMpIHtcbiAgICAgIGZvciAoY29uc3QgZXh0cmEgaW4gZXh0cmFzKSB7XG4gICAgICAgIGlmICghZXh0cmFzLmhhc093blByb3BlcnR5KGV4dHJhKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKEJVSUxUX0lOX1BBUkFNRVRFUlMuaW5kZXhPZihleHRyYSkgPCAwKSB7XG4gICAgICAgICAgc2VhcmNoUGFyYW1zLmFwcGVuZChleHRyYSwgZXh0cmFzW2V4dHJhXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHNlYXJjaFBhcmFtcy50b1N0cmluZygpO1xuICAgIHJldHVybiB0aGlzLl9jb25maWd1cmF0aW9uLmRpc2NvdmVyeSQucGlwZShcbiAgICAgIG1hcChkb2MgPT4ge1xuICAgICAgICBjb25zdCBiYXNlVXJsID0gZG9jLmF1dGhvcml6YXRpb25fZW5kcG9pbnQ7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke2Jhc2VVcmx9PyR7cXVlcnl9YDtcblxuICAgICAgICByZXR1cm4gdXJsO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIGFic3RyYWN0IHBlcmZvcm1BdXRob3JpemF0aW9uUmVxdWVzdCgpOiB2b2lkO1xuXG4gIGFic3RyYWN0IGNvbXBsZXRlQXV0aG9yaXphdGlvblJlcXVlc3QoKTogUHJvbWlzZTxBdXRob3JpemF0aW9uUmVzcG9uc2VKc29uPjtcblxuICBwcml2YXRlIGlzVG9rZW5SZXNwb25zZShyZXNwb25zZTogVG9rZW5SZXNwb25zZUpzb24gfFxuICAgIFRva2VuRXJyb3JKc29uKTogcmVzcG9uc2UgaXMgVG9rZW5SZXNwb25zZUpzb24ge1xuICAgIHJldHVybiAocmVzcG9uc2UgYXMgVG9rZW5FcnJvckpzb24pLmVycm9yID09PSB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyBwdWJsaWMgcGVyZm9ybVJldm9rZVRva2VuUmVxdWVzdChcbiAgLy8gICBjb25maWd1cmF0aW9uOiBBdXRob3JpemF0aW9uU2VydmljZUNvbmZpZ3VyYXRpb24sXG4gIC8vICAgcmVxdWVzdDogUmV2b2tlVG9rZW5SZXF1ZXN0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIC8vICAgbGV0IHJldm9rZVRva2VuUmVzcG9uc2UgPSB0aGlzLnJlcXVlc3Rvci54aHI8Ym9vbGVhbj4oe1xuICAvLyAgICAgdXJsOiBjb25maWd1cmF0aW9uLnJldm9jYXRpb25FbmRwb2ludCxcbiAgLy8gICAgIG1ldGhvZDogJ1BPU1QnLFxuICAvLyAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcgfSxcbiAgLy8gICAgIGRhdGE6IHRoaXMudXRpbHMuc3RyaW5naWZ5KHJlcXVlc3QudG9TdHJpbmdNYXAoKSlcbiAgLy8gICB9KTtcblxuICAvLyAgIHJldHVybiByZXZva2VUb2tlblJlc3BvbnNlLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAvLyAgICAgcmV0dXJuIHRydWU7XG4gIC8vICAgfSk7XG4gIC8vIH1cblxuICBwdWJsaWMgcGVyZm9ybVRva2VuUmVxdWVzdCQocmVxdWVzdDogVG9rZW5SZXF1ZXN0SnNvbik6XG4gICAgT2JzZXJ2YWJsZTxUb2tlblJlc3BvbnNlPiB7XG5cbiAgICByZXR1cm4gdGhpcy5fY29uZmlndXJhdGlvbi5kaXNjb3ZlcnkkLnBpcGUoXG4gICAgICBtYXAoXG4gICAgICAgIGRpc2NvdmVyRG9jID0+IHtcbiAgICAgICAgICByZXR1cm4gZGlzY292ZXJEb2MudG9rZW5fZW5kcG9pbnQ7XG4gICAgICAgIH1cbiAgICAgICksXG4gICAgICBtZXJnZU1hcChcbiAgICAgICAgdG9rZW5FbmRwb2ludCA9PiB7XG4gICAgICAgICAgY29uc3QgYm9keSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICAgIGJvZHkuc2V0KCdncmFudF90eXBlJywgcmVxdWVzdC5ncmFudF90eXBlKTtcbiAgICAgICAgICBpZiAocmVxdWVzdC5jb2RlKSB7XG4gICAgICAgICAgICBib2R5LnNldCgnY29kZScsIHJlcXVlc3QuY29kZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXF1ZXN0LnJlZnJlc2hfdG9rZW4pIHtcbiAgICAgICAgICAgIGJvZHkuc2V0KCdyZWZyZXNoX3Rva2VuJywgcmVxdWVzdC5yZWZyZXNoX3Rva2VuKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYm9keS5zZXQoJ3JlZGlyZWN0X3VyaScsIHRoaXMuX2NvbmZpZy5vcHRpb25zLnJlZGlyZWN0VXJpKTtcbiAgICAgICAgICBib2R5LnNldCgnY2xpZW50X2lkJywgdGhpcy5fY29uZmlnLm9wdGlvbnMuY2xpZW50SUQpO1xuICAgICAgICAgIGlmIChyZXF1ZXN0LmV4dHJhcykge1xuICAgICAgICAgICAgYm9keS5zZXQoJ2V4dHJhcycsIHJlcXVlc3QuZXh0cmFzLnRvU3RyaW5nKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFRva2VuUmVzcG9uc2VKc29uIHwgVG9rZW5FcnJvckpzb24+KHRva2VuRW5kcG9pbnQsIGJvZHkpO1xuICAgICAgICB9XG4gICAgICApLFxuICAgICAgbWFwKFxuICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNUb2tlblJlc3BvbnNlKHJlc3BvbnNlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBUb2tlblJlc3BvbnNlKHJlc3BvbnNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgcmVzcG9uc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT0lEQ1JlZGlyZWN0QmFzZWRSZXF1ZXN0b3JTZXJ2aWNlIGV4dGVuZHMgT0lEQ1Rva2VuUmVxdWVzdG9yU2VydmljZSB7XG4gIHB1YmxpYyBzdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KE9JRENDb25maWdTZXJ2aWNlKSBfY29uZmlnOiBPSURDQ29uZmlnU2VydmljZSxcbiAgICBASW5qZWN0KEFjdGl2YXRlZFJvdXRlKSBfcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIEBJbmplY3QoT0lEQ0xvZ2dlclNlcnZpY2UpIF9sb2dnZXI6IE9JRENMb2dnZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlKSBfY29uZmlndXJhdGlvbjogT0lEQ0NvbmZpZ3VyYXRpb25TZXJ2aWNlLFxuICAgIEBJbmplY3QoSHR0cENsaWVudCkgX2h0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBfdG9rZW46IFRva2VuU2VydmljZSxcbiAgICBwcml2YXRlIF9mbG93OiBPSURDRmxvd1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY3J5cHRvOiBDcnlwdG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKF9jb25maWcsIF9yb3V0ZSwgX2xvZ2dlciwgX2NvbmZpZ3VyYXRpb24sIF9odHRwKTtcblxuICAgIHRoaXMudXBkYXRlQ29uZmlnKCk7XG4gICAgdGhpcy5fZmxvdy5vbkVudGVyKE9JRENGbG93cy5VUERBVEVfQ09ORklHLCAoKSA9PiB7XG4gICAgICByZXR1cm4gb2YoMSkucGlwZSh0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbmZpZygpO1xuICAgICAgfSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb25maWcoKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlQVJlcXVlc3RTdGF0ZU5hbWUgPSB0aGlzLl9jb25maWcuZ2V0U3RvcmFnZUtleShcbiAgICAgIE9JRENDb25maWdTdG9yYWdlS2V5TmFtZXMuQV9SRVFVRVNUX1NUQVRFXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBwZXJmb3JtQXV0aG9yaXphdGlvblJlcXVlc3QoXG4gICAgcmVzcG9uc2VUeXBlID0gT0lEQ0F1dGhvcml6YXRpb25SZXNwb25zZVR5cGVzLlJFU1BPTlNFX1RZUEVfQ09ERVxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9jcnlwdG8uZ2VuZXJhdGVSYW5kb20oMTApLnBpcGUoXG4gICAgICBtZXJnZU1hcChzdGF0ZSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b2tlbi5jcmVhdGVBbmRTYXZlTm9uY2UoKS5waXBlKFxuICAgICAgICAgIG1hcChub25jZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gW3N0YXRlLCBub25jZV07XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICAgIG1lcmdlTWFwKHN0YXRlQW5kTm9uY2UgPT4ge1xuICAgICAgICB0aGlzLl9zdG9yYWdlLnNldCh0aGlzLnN0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSwgc3RhdGVBbmROb25jZVswXSwgJycpO1xuXG4gICAgICAgIGxldCBzY29wZTogc3RyaW5nID0gdGhpcy5fY29uZmlnLm9wdGlvbnMuc2NvcGUuam9pbignICcpO1xuICAgICAgICBpZiAodGhpcy5fY29uZmlnLm9wdGlvbnMucmVmcmVzaF90b2tlbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHNjb3BlICs9ICcgb2ZmbGluZSc7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBleHRyYXMgPSB7XG4gICAgICAgICAgcHJvbXB0OiB0aGlzLl9jb25maWcub3B0aW9ucy5wcm9tcHRcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gdGhpcy5idWlsZFJlcXVlc3RVcmwocmVzcG9uc2VUeXBlLCBzY29wZSwgc3RhdGVBbmROb25jZVswXSwgZXh0cmFzLCBzdGF0ZUFuZE5vbmNlWzFdKVxuICAgICAgfSksXG4gICAgICB0YXAodXJsID0+IHtcbiAgICAgICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdNYWtpbmcgYSByZXF1ZXN0IHRvICcsIHVybCk7XG4gICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgfSksXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4geyB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byBpbnRyb3NwZWN0IHRoZSBjb250ZW50cyBvZiBzdG9yYWdlIGJhY2tlbmQgYW5kIGNvbXBsZXRlcyB0aGVcbiAgICogcmVxdWVzdC5cbiAgICovXG4gIHB1YmxpYyBjb21wbGV0ZUF1dGhvcml6YXRpb25SZXF1ZXN0KCk6IFByb21pc2U8QXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbj4ge1xuICAgIGNvbnN0IHJlcXVlc3RTdGF0ZSA9IHRoaXMuX3N0b3JhZ2UuZ2V0KHRoaXMuc3RvcmFnZUFSZXF1ZXN0U3RhdGVOYW1lKTtcbiAgICB0aGlzLl9zdG9yYWdlLnJlbW92ZSh0aGlzLnN0b3JhZ2VBUmVxdWVzdFN0YXRlTmFtZSk7XG5cbiAgICBjb25zdCBxdWVyeVBhcmFtcyA9IHRoaXMuX3JvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zO1xuICAgIGNvbnN0IHN0YXRlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBxdWVyeVBhcmFtc1snc3RhdGUnXTtcbiAgICBjb25zdCBjb2RlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBxdWVyeVBhcmFtc1snY29kZSddO1xuICAgIGNvbnN0IGVycm9yOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBxdWVyeVBhcmFtc1snZXJyb3InXTtcblxuICAgIGlmICghc3RhdGUgfHwgIWNvZGUpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChcIk5vdCBBdXRob3JpemVkXCIpO1xuICAgIH1cblxuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnUG90ZW50aWFsIGF1dGhvcml6YXRpb24gcmVxdWVzdCcpO1xuXG4gICAgY29uc3Qgc2hvdWxkTm90aWZ5ID0gc3RhdGUgPT09IHJlcXVlc3RTdGF0ZTtcbiAgICBpZiAoIXNob3VsZE5vdGlmeSkge1xuICAgICAgY29uc3QgZXJyID0gJ01pc21hdGNoZWQgcmVxdWVzdCAoc3RhdGUgYW5kIHJlcXVlc3RfdXJpKSBkb250IG1hdGNoLic7XG4gICAgICB0aGlzLl9sb2dnZXIud2FybihlcnIpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycik7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yKSB7XG4gICAgICAvLyBnZXQgYWRkaXRpb25hbCBvcHRpb25hbCBpbmZvLlxuICAgICAgY29uc3QgZXJyb3JVcmkgPSBxdWVyeVBhcmFtc1snZXJyb3JfdXJpJ107XG4gICAgICBjb25zdCBlcnJvckRlc2NyaXB0aW9uID0gcXVlcnlQYXJhbXNbJ2Vycm9yX2Rlc2NyaXB0aW9uJ107XG4gICAgICBjb25zdCBhdXRob3JpemF0aW9uRXJyb3IgPSB7XG4gICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IGVycm9yRGVzY3JpcHRpb24sXG4gICAgICAgIGVycm9yX3VyaTogZXJyb3JVcmksXG4gICAgICAgIHN0YXRlOiBzdGF0ZVxuICAgICAgfSBhcyBBdXRob3JpemF0aW9uRXJyb3JKc29uO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGF1dGhvcml6YXRpb25FcnJvcik7XG4gICAgfVxuXG4gICAgdGhpcy5fbG9nZ2VyLmRlYnVnKCdEZWxpdmVyaW5nIGF1dGhvcml6YXRpb24gcmVzcG9uc2UnKTtcbiAgICBjb25zdCBhdXRob3JpemF0aW9uUmVzcG9uc2UgPSB7XG4gICAgICBjb2RlOiBjb2RlLFxuICAgICAgc3RhdGU6IHN0YXRlLFxuICAgIH0gYXMgQXV0aG9yaXphdGlvblJlc3BvbnNlSnNvbjtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGF1dGhvcml6YXRpb25SZXNwb25zZSk7XG4gIH1cbn1cbiJdfQ==

@@ -123,2 +123,2 @@ /**

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiandrcy12YWxpZGF0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi12YWxpZGF0aW9uL2p3a3MtdmFsaWRhdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHlCQUF5QixFQUUxQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7O0FBUXJDOzs7Ozs7O0lBQTJDLGlEQUF5QjtJQU5wRTs7Ozs7T0FLRztJQUNIO1FBQUEscUVBZ0RDO1FBL0NDOzs7V0FHRztRQUNLLGNBQVEsR0FBVyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQUEsTUFBTSxFQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXO1FBQ3pFLGlCQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFBLE1BQU0sRUFBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7O0lBMEMxRCxDQUFDOzs7Ozs7SUF4Q08saURBQWlCOzs7OztJQUF2QixVQUNFLE1BQXdCLEVBQ3hCLEtBQVk7UUFBWixzQkFBQSxFQUFBLFlBQVk7Ozs7Z0JBRVosSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhO29CQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBRTlELElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM3RixzQkFBTyxNQUFNOzZCQUNWLFFBQVEsRUFBRTs2QkFDVixJQUFJLENBQUMsVUFBQSxVQUFVLElBQUksT0FBQSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEVBQTFCLENBQTBCLENBQUM7NkJBQzlDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQXJDLENBQXFDLENBQUMsRUFBQztpQkFDckQ7Z0JBRUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUNaLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ3BCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFDakM7b0JBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2lCQUNoRDtnQkFFRCxzQkFBTyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxRQUFRO3dCQUN0RCxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxNQUFNOzRCQUNsRSxPQUFPLE1BQU0sQ0FBQzt3QkFDaEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLEVBQUM7OztLQUNKOzs7Ozs7SUFFSyx3Q0FBUTs7Ozs7SUFBZCxVQUFlLFdBQW1CLEVBQUUsU0FBaUI7Ozs7Ozt3QkFDN0MsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzt3QkFDckMscUJBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNuRCxTQUFTLEVBQ1QsWUFBWSxDQUNiLEVBQUE7O3dCQUhLLFdBQVcsR0FBRyxTQUduQjt3QkFDRCwyQ0FBMkM7d0JBQzNDLHNCQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDOzs7O0tBQ3RFO0lBQ0gsNEJBQUM7QUFBRCxDQUFDLEFBaERELENBQTJDLHlCQUF5QixHQWdEbkU7Ozs7Ozs7Ozs7Ozs7O0lBM0NDLHlDQUFxRTs7SUFDckUsNENBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RWYWxpZGF0aW9uSGFuZGxlcixcbiAgVmFsaWRhdGlvblBhcmFtc1xufSBmcm9tICcuL3ZhbGlkYXRpb24taGFuZGxlcic7XG5cbmltcG9ydCB7IEpXSywgSldTIH0gZnJvbSAnbm9kZS1qb3NlJztcblxuLyoqXG4gKiBWYWxpZGF0ZXMgdGhlIHNpZ25hdHVyZSBvZiBhbiBpZF90b2tlbiBhZ2FpbnN0IG9uZVxuICogb2YgdGhlIGtleXMgb2YgYW4gSlNPTiBXZWIgS2V5IFNldCAoandrcykuXG4gKlxuICogVGhpcyBqd2tzIGNhbiBiZSBwcm92aWRlZCBieSB0aGUgZGlzY292ZXJ5IGRvY3VtZW50LlxuICovXG5leHBvcnQgY2xhc3MgSndrc1ZhbGlkYXRpb25IYW5kbGVyIGV4dGVuZHMgQWJzdHJhY3RWYWxpZGF0aW9uSGFuZGxlciB7XG4gIC8qKlxuICAgKiBUaW1lIHBlcmlvZCBpbiBzZWNvbmRzIHRoZSB0aW1lc3RhbXAgaW4gdGhlIHNpZ25hdHVyZSBjYW5cbiAgICogZGlmZmVyIGZyb20gdGhlIGN1cnJlbnQgdGltZS5cbiAgICovXG4gIHByaXZhdGUgY3lwdG9PYmo6IENyeXB0byA9IHdpbmRvdy5jcnlwdG8gfHwgKHdpbmRvdyBhcyBhbnkpLm1zQ3J5cHRvOyAvLyBmb3IgSUUxMVxuICBwcml2YXRlIHRleHRFbmNvZGVyID0gbmV3ICh3aW5kb3cgYXMgYW55KS5UZXh0RW5jb2RlcigpO1xuXG4gIGFzeW5jIHZhbGlkYXRlU2lnbmF0dXJlKFxuICAgIHBhcmFtczogVmFsaWRhdGlvblBhcmFtcyxcbiAgICByZXRyeSA9IHRydWVcbiAgKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXBhcmFtcy5pZFRva2VuKSB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBpZFRva2VuIGV4cGVjdGVkIScpO1xuICAgIGlmICghcGFyYW1zLmlkVG9rZW5IZWFkZXIpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBpZFRva2VuSGFuZGxlciBleHBlY3RlZC4nKTtcbiAgICBpZiAoIXBhcmFtcy5qd2tzKSB0aHJvdyBuZXcgRXJyb3IoJ1BhcmFtZXRlciBqd2tzIGV4cGVjdGVkIScpO1xuXG4gICAgaWYgKHJldHJ5ICYmIHBhcmFtcy5sb2FkS2V5cyAmJiAoIXBhcmFtcy5qd2tzWydrZXlzJ10gfHwgIUFycmF5LmlzQXJyYXkocGFyYW1zLmp3a3NbJ2tleXMnXSkpKSB7XG4gICAgICByZXR1cm4gcGFyYW1zXG4gICAgICAgIC5sb2FkS2V5cygpXG4gICAgICAgIC50aGVuKGxvYWRlZEtleXMgPT4gKHBhcmFtcy5qd2tzID0gbG9hZGVkS2V5cykpXG4gICAgICAgIC50aGVuKF8gPT4gdGhpcy52YWxpZGF0ZVNpZ25hdHVyZShwYXJhbXMsIGZhbHNlKSk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXRyeSAmJiAoXG4gICAgICAhcGFyYW1zLmp3a3NbJ2tleXMnXSB8fFxuICAgICAgIUFycmF5LmlzQXJyYXkocGFyYW1zLmp3a3NbJ2tleXMnXSkgfHxcbiAgICAgIHBhcmFtcy5qd2tzWydrZXlzJ10ubGVuZ3RoID09PSAwKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdBcnJheSBrZXlzIGluIGp3a3MgbWlzc2luZyEnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gSldLLmFzS2V5U3RvcmUocGFyYW1zLmp3a3NbJ2tleXMnXSkudGhlbihrZXlzdG9yZSA9PiB7XG4gICAgICByZXR1cm4gSldTLmNyZWF0ZVZlcmlmeShrZXlzdG9yZSkudmVyaWZ5KHBhcmFtcy5pZFRva2VuKS50aGVuKHJlc3VsdCA9PiB7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGNhbGNIYXNoKHZhbHVlVG9IYXNoOiBzdHJpbmcsIGFsZ29yaXRobTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB2YWx1ZUFzQnl0ZXMgPSB0aGlzLnRleHRFbmNvZGVyLmVuY29kZSh2YWx1ZVRvSGFzaCk7XG4gICAgY29uc3QgcmVzdWx0Qnl0ZXMgPSBhd2FpdCB0aGlzLmN5cHRvT2JqLnN1YnRsZS5kaWdlc3QoXG4gICAgICBhbGdvcml0aG0sXG4gICAgICB2YWx1ZUFzQnl0ZXNcbiAgICApO1xuICAgIC8vIHRoZSByZXR1cm5lZCBieXRlcyBhcmUgZW5jb2RlZCBhcyBVVEYtMTZcbiAgICByZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLCBuZXcgVWludDE2QXJyYXkocmVzdWx0Qnl0ZXMpKTtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiandrcy12YWxpZGF0aW9uLWhhbmRsZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbWluYWRtaW4vb2lkYy8iLCJzb3VyY2VzIjpbImxpYi90b2tlbi12YWxpZGF0aW9uL2p3a3MtdmFsaWRhdGlvbi1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNMLHlCQUF5QixFQUUxQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7Ozs7O0FBU3JDOzs7Ozs7O0lBQTJDLGlEQUF5QjtJQU5wRTs7Ozs7T0FLRztJQUNIO1FBQUEscUVBZ0RDO1FBL0NDOzs7V0FHRztRQUNLLGNBQVEsR0FBVyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsbUJBQUEsTUFBTSxFQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXO1FBQ3pFLGlCQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFBLE1BQU0sRUFBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7O0lBMEMxRCxDQUFDOzs7Ozs7SUF4Q08saURBQWlCOzs7OztJQUF2QixVQUNFLE1BQXdCLEVBQ3hCLEtBQVk7UUFBWixzQkFBQSxFQUFBLFlBQVk7Ozs7Z0JBRVosSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO29CQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhO29CQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtvQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUM7Z0JBRTlELElBQUksS0FBSyxJQUFJLE1BQU0sQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUM3RixzQkFBTyxNQUFNOzZCQUNWLFFBQVEsRUFBRTs2QkFDVixJQUFJLENBQUMsVUFBQSxVQUFVLElBQUksT0FBQSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLEVBQTFCLENBQTBCLENBQUM7NkJBQzlDLElBQUksQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQXJDLENBQXFDLENBQUMsRUFBQztpQkFDckQ7Z0JBRUQsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUNaLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7b0JBQ3BCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFDakM7b0JBQ0EsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2lCQUNoRDtnQkFFRCxzQkFBTyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxRQUFRO3dCQUN0RCxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBQSxNQUFNOzRCQUNsRSxPQUFPLE1BQU0sQ0FBQzt3QkFDaEIsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLEVBQUM7OztLQUNKOzs7Ozs7SUFFSyx3Q0FBUTs7Ozs7SUFBZCxVQUFlLFdBQW1CLEVBQUUsU0FBaUI7Ozs7Ozt3QkFDN0MsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzt3QkFDckMscUJBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUNuRCxTQUFTLEVBQ1QsWUFBWSxDQUNiLEVBQUE7O3dCQUhLLFdBQVcsR0FBRyxTQUduQjt3QkFDRCwyQ0FBMkM7d0JBQzNDLHNCQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDOzs7O0tBQ3RFO0lBQ0gsNEJBQUM7QUFBRCxDQUFDLEFBaERELENBQTJDLHlCQUF5QixHQWdEbkU7Ozs7Ozs7Ozs7Ozs7O0lBM0NDLHlDQUFxRTs7SUFDckUsNENBQXdEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWJzdHJhY3RWYWxpZGF0aW9uSGFuZGxlcixcbiAgVmFsaWRhdGlvblBhcmFtc1xufSBmcm9tICcuL3ZhbGlkYXRpb24taGFuZGxlcic7XG5cbmltcG9ydCB7IEpXSywgSldTIH0gZnJvbSAnbm9kZS1qb3NlJztcbmltcG9ydCB7IGZyb21CeXRlQXJyYXkgfSBmcm9tICdiYXNlNjQtanMnO1xuXG4vKipcbiAqIFZhbGlkYXRlcyB0aGUgc2lnbmF0dXJlIG9mIGFuIGlkX3Rva2VuIGFnYWluc3Qgb25lXG4gKiBvZiB0aGUga2V5cyBvZiBhbiBKU09OIFdlYiBLZXkgU2V0IChqd2tzKS5cbiAqXG4gKiBUaGlzIGp3a3MgY2FuIGJlIHByb3ZpZGVkIGJ5IHRoZSBkaXNjb3ZlcnkgZG9jdW1lbnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBKd2tzVmFsaWRhdGlvbkhhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdFZhbGlkYXRpb25IYW5kbGVyIHtcbiAgLyoqXG4gICAqIFRpbWUgcGVyaW9kIGluIHNlY29uZHMgdGhlIHRpbWVzdGFtcCBpbiB0aGUgc2lnbmF0dXJlIGNhblxuICAgKiBkaWZmZXIgZnJvbSB0aGUgY3VycmVudCB0aW1lLlxuICAgKi9cbiAgcHJpdmF0ZSBjeXB0b09iajogQ3J5cHRvID0gd2luZG93LmNyeXB0byB8fCAod2luZG93IGFzIGFueSkubXNDcnlwdG87IC8vIGZvciBJRTExXG4gIHByaXZhdGUgdGV4dEVuY29kZXIgPSBuZXcgKHdpbmRvdyBhcyBhbnkpLlRleHRFbmNvZGVyKCk7XG5cbiAgYXN5bmMgdmFsaWRhdGVTaWduYXR1cmUoXG4gICAgcGFyYW1zOiBWYWxpZGF0aW9uUGFyYW1zLFxuICAgIHJldHJ5ID0gdHJ1ZVxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICghcGFyYW1zLmlkVG9rZW4pIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGlkVG9rZW4gZXhwZWN0ZWQhJyk7XG4gICAgaWYgKCFwYXJhbXMuaWRUb2tlbkhlYWRlcilcbiAgICAgIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGlkVG9rZW5IYW5kbGVyIGV4cGVjdGVkLicpO1xuICAgIGlmICghcGFyYW1zLmp3a3MpIHRocm93IG5ldyBFcnJvcignUGFyYW1ldGVyIGp3a3MgZXhwZWN0ZWQhJyk7XG5cbiAgICBpZiAocmV0cnkgJiYgcGFyYW1zLmxvYWRLZXlzICYmICghcGFyYW1zLmp3a3NbJ2tleXMnXSB8fCAhQXJyYXkuaXNBcnJheShwYXJhbXMuandrc1sna2V5cyddKSkpIHtcbiAgICAgIHJldHVybiBwYXJhbXNcbiAgICAgICAgLmxvYWRLZXlzKClcbiAgICAgICAgLnRoZW4obG9hZGVkS2V5cyA9PiAocGFyYW1zLmp3a3MgPSBsb2FkZWRLZXlzKSlcbiAgICAgICAgLnRoZW4oXyA9PiB0aGlzLnZhbGlkYXRlU2lnbmF0dXJlKHBhcmFtcywgZmFsc2UpKTtcbiAgICB9XG5cbiAgICBpZiAoIXJldHJ5ICYmIChcbiAgICAgICFwYXJhbXMuandrc1sna2V5cyddIHx8XG4gICAgICAhQXJyYXkuaXNBcnJheShwYXJhbXMuandrc1sna2V5cyddKSB8fFxuICAgICAgcGFyYW1zLmp3a3NbJ2tleXMnXS5sZW5ndGggPT09IDApXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FycmF5IGtleXMgaW4gandrcyBtaXNzaW5nIScpO1xuICAgIH1cblxuICAgIHJldHVybiBKV0suYXNLZXlTdG9yZShwYXJhbXMuandrc1sna2V5cyddKS50aGVuKGtleXN0b3JlID0+IHtcbiAgICAgIHJldHVybiBKV1MuY3JlYXRlVmVyaWZ5KGtleXN0b3JlKS52ZXJpZnkocGFyYW1zLmlkVG9rZW4pLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgY2FsY0hhc2godmFsdWVUb0hhc2g6IHN0cmluZywgYWxnb3JpdGhtOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHZhbHVlQXNCeXRlcyA9IHRoaXMudGV4dEVuY29kZXIuZW5jb2RlKHZhbHVlVG9IYXNoKTtcbiAgICBjb25zdCByZXN1bHRCeXRlcyA9IGF3YWl0IHRoaXMuY3lwdG9PYmouc3VidGxlLmRpZ2VzdChcbiAgICAgIGFsZ29yaXRobSxcbiAgICAgIHZhbHVlQXNCeXRlc1xuICAgICk7XG4gICAgLy8gdGhlIHJldHVybmVkIGJ5dGVzIGFyZSBlbmNvZGVkIGFzIFVURi0xNlxuICAgIHJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIG5ldyBVaW50MTZBcnJheShyZXN1bHRCeXRlcykpO1xuICB9XG59XG4iXX0=
import { InjectionToken } from '@angular/core';
import { IOIDCConfig } from './config-interfaces';
import { OIDCFlowService } from './flow.service';
import { Observable } from 'rxjs';
export declare const CONFIG_OPTIONS: InjectionToken<any>;

@@ -17,4 +18,4 @@ export declare enum OIDCConfigStorageKeyNames {

constructor(options: IOIDCConfig, _flow: OIDCFlowService);
applyConfig(options: IOIDCConfig, noTransition?: boolean): void;
applyConfig(options: IOIDCConfig, noTransition?: boolean): Observable<any>;
getStorageKey(keyName: OIDCConfigStorageKeyNames): string;
}

@@ -0,1 +1,2 @@

import { OnInit } from '@angular/core';
import { OIDCConfigService } from './config.service';

@@ -9,3 +10,4 @@ import { TokenResponse } from './token';

import { OIDCLoggerService } from './logger.service';
export declare class OIDCService {
import { Observable } from 'rxjs';
export declare class OIDCService implements OnInit {
private _token;

@@ -19,4 +21,5 @@ private _logger;

constructor(_token: TokenService, _logger: OIDCLoggerService, _config: OIDCConfigService, _flow: OIDCFlowService, _requestor: OIDCTokenRequestorService);
ngOnInit(): void;
private updateConfig;
applyConfig(options: IOIDCConfig): void;
run$(options?: IOIDCConfig): Observable<any>;
isAuthenticated(): boolean;

@@ -23,0 +26,0 @@ signIn(username?: string): Promise<any>;

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"IOIDCConfig":{"__symbolic":"interface"},"IResourceServerConfig":{"__symbolic":"interface"},"CONFIG_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":11,"character":34},"arguments":["config.options"]},"OIDCConfigStorageKeyNames":{"TOKEN":"storageTokenName","OIDCCONFIG":"storageOIDCConfigName","OIDCJWKs":"storageOIDCJWKsName","NONCE":"storageNonceName","PARSED_ID_TOKEN":"storageParsedIDTokenName","A_REQUEST_STATE":"storageARequestStateName"},"OIDCConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":22,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":62,"character":5},"arguments":[{"__symbolic":"reference","name":"CONFIG_OPTIONS"}]}],null],"parameters":[{"__symbolic":"reference","name":"IOIDCConfig"},{"__symbolic":"reference","name":"OIDCFlowService"}]}],"applyConfig":[{"__symbolic":"method"}],"getStorageKey":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"OIDCService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"OIDCFlowService"},{"__symbolic":"reference","name":"ɵi"}]}],"updateConfig":[{"__symbolic":"method"}],"applyConfig":[{"__symbolic":"method"}],"isAuthenticated":[{"__symbolic":"method"}],"signIn":[{"__symbolic":"method"}],"signOut":[{"__symbolic":"method"}]}},"OIDCModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":34,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-logger","name":"LoggerModule","line":35,"character":4},"member":"forRoot"},"arguments":[{"level":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-logger","name":"NgxLoggerLevel","line":35,"character":34},"member":"DEBUG"}}]}],"declarations":[],"exports":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":42,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":43,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"OIDCModule"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["configOptions","defaultJwtInterceptor"],"defaults":[null,true],"value":{"ngModule":{"__symbolic":"reference","name":"OIDCModule"},"providers":[{"__symbolic":"spread","expression":{"__symbolic":"if","condition":{"__symbolic":"reference","name":"configOptions"},"thenExpression":[{"provide":{"__symbolic":"reference","name":"CONFIG_OPTIONS"},"useValue":{"__symbolic":"reference","name":"configOptions"}}],"elseExpression":[]}},{"provide":{"__symbolic":"reference","name":"OIDCFlowService"},"useClass":{"__symbolic":"reference","name":"OIDCDefaultFlowService"}},{"provide":{"__symbolic":"reference","name":"OIDCConfigService"},"useClass":{"__symbolic":"reference","name":"OIDCConfigService"}},{"provide":{"__symbolic":"reference","name":"ɵc"},"useClass":{"__symbolic":"reference","name":"ɵc"}},{"provide":{"__symbolic":"reference","name":"ɵb"},"useClass":{"__symbolic":"reference","name":"ɵk"},"deps":[{"__symbolic":"reference","name":"OIDCConfigService"}]},{"provide":{"__symbolic":"reference","name":"ɵd"},"useClass":{"__symbolic":"reference","name":"ɵd"}},{"provide":{"__symbolic":"reference","name":"ɵe"},"useClass":{"__symbolic":"reference","name":"ɵf"}},{"provide":{"__symbolic":"reference","name":"ɵg"},"useClass":{"__symbolic":"reference","name":"ɵl"}},{"provide":{"__symbolic":"reference","name":"ɵa"},"useClass":{"__symbolic":"reference","name":"ɵa"}},{"provide":{"__symbolic":"reference","name":"ɵi"},"useClass":{"__symbolic":"reference","name":"ɵj"}},{"provide":{"__symbolic":"reference","name":"ɵm"},"useClass":{"__symbolic":"reference","name":"ɵn"}},{"provide":{"__symbolic":"reference","name":"OIDCService"},"useClass":{"__symbolic":"reference","name":"OIDCService"}},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":109,"character":19},"useClass":{"__symbolic":"reference","name":"ɵo"},"multi":true}]}}}},"OIDCFlows":{"INITIAL":"initial","UPDATE_CONFIG":"updateConfig","GET_OIDC_CONFIGURATION":"getOIDCConfiguration","READ_STORAGE":"readStorage","CHECK_AUTHORIZED":"checkAuthorized","WAITING":"waiting","REQUEST_AUTHORIZATION":"requestAuthorization","REQUEST_REFRESH_TOKEN":"requestRefreshToken","DONE":"done"},"OIDCAbstractFlow":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]}]}]}},"OIDCFlow":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"OIDCAbstractFlow"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]}]}]}},"OIDCFlowService":{"__symbolic":"class","members":{"onEnter":[{"__symbolic":"method"}],"onLeave":[{"__symbolic":"method"}],"transitTo$":[{"__symbolic":"method"}],"can":[{"__symbolic":"method"}],"transitions":[{"__symbolic":"method"}],"transitToNext$":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":148,"character":23,"module":"./lib/flow.service"},null]}]}},"OIDCDefaultFlowService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"OIDCFlowService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":156,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"OIDCFlowService"},{"__symbolic":"reference","name":"ɵg"}]}],"updateConfig":[{"__symbolic":"method"}],"getToken":[{"__symbolic":"method"}],"setToken":[{"__symbolic":"method"}],"removeToken":[{"__symbolic":"method"}],"createAndSaveNonce":[{"__symbolic":"method"}],"processIdToken":[{"__symbolic":"method"}],"isAuthenticated":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"setStorageType":[{"__symbolic":"method"}],"checkAtHash":[{"__symbolic":"method"}],"padBase64":[{"__symbolic":"method"}],"checkSignature":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","members":{"updateStorageType":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-logger","name":"CustomNGXLoggerService","line":14,"character":31},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"OIDCFlowService"}]}],"trace":[{"__symbolic":"method"}],"debug":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"warn":[{"__symbolic":"method"}],"error":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":47,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":57,"character":19},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"OIDCFlowService"}]}],"updateConfig":[{"__symbolic":"method"}],"validateDiscoveryDocument":[{"__symbolic":"method"}],"validateUrlFromDiscoveryDocument":[{"__symbolic":"method"}],"validateUrlForHttps":[{"__symbolic":"method"}],"validateUrlAgainstIssuer":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","members":{"generateRandom":[{"__symbolic":"method"}],"deriveChallenge":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"members":{"__ctor__":[{"__symbolic":"constructor"}],"generateRandom":[{"__symbolic":"method"}],"deriveChallenge":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","members":{"validateSignature":[{"__symbolic":"method"}],"validateAtHash":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","members":{"validateSignature":[{"__symbolic":"method"}],"validateAtHash":[{"__symbolic":"method"}],"inferHashAlgorithm":[{"__symbolic":"method"}],"calcHash":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":40,"character":22},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":43,"character":21}]}],"buildRequestUrl":[{"__symbolic":"method"}],"performAuthorizationRequest":[{"__symbolic":"method"}],"completeAuthorizationRequest":[{"__symbolic":"method"}],"isTokenResponse":[{"__symbolic":"method"}],"performTokenRequest$":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":154,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":159,"character":5},"arguments":[{"__symbolic":"reference","name":"OIDCConfigService"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":160,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":40,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":161,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵc"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":162,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":163,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":43,"character":21}]}],null,null,null,null],"parameters":[{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":40,"character":22},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":43,"character":21},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"OIDCFlowService"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵb"}]}],"updateConfig":[{"__symbolic":"method"}],"performAuthorizationRequest":[{"__symbolic":"method"}],"completeAuthorizationRequest":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OIDCConfigService"}]}],"updateStorageType":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"checkIsStorageAvailable":[{"__symbolic":"method"}],"isWindowStorageAvailable":[{"__symbolic":"method"}],"isCookieStorageAvailable":[{"__symbolic":"method"}],"setCookie":[{"__symbolic":"method"}],"removeCookie":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵh"},"members":{"validateSignature":[{"__symbolic":"method"}],"calcHash":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","members":{"handleError":[{"__symbolic":"method"}]}},"ɵn":{"__symbolic":"class","members":{"handleError":[{"__symbolic":"method"}]}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"ɵc"}]}],"checkUrl":[{"__symbolic":"method"}],"intercept":[{"__symbolic":"method"}]}}},"origins":{"IOIDCConfig":"./lib/config-interfaces","IResourceServerConfig":"./lib/config-interfaces","CONFIG_OPTIONS":"./lib/config.service","OIDCConfigStorageKeyNames":"./lib/config.service","OIDCConfigService":"./lib/config.service","OIDCService":"./lib/oidc.service","OIDCModule":"./lib/oidc.module","OIDCFlows":"./lib/flow.service","OIDCAbstractFlow":"./lib/flow.service","OIDCFlow":"./lib/flow.service","OIDCFlowService":"./lib/flow.service","OIDCDefaultFlowService":"./lib/flow.service","ɵa":"./lib/token.service","ɵb":"./lib/storage.service","ɵc":"./lib/logger.service","ɵd":"./lib/oidc-configuration.service","ɵe":"./lib/crypto.service","ɵf":"./lib/crypto.service","ɵg":"./lib/token-validation/validation-handler","ɵh":"./lib/token-validation/validation-handler","ɵi":"./lib/token-requestor.service","ɵj":"./lib/token-requestor.service","ɵk":"./lib/browser-storage.service","ɵl":"./lib/token-validation/jwks-validation-handler","ɵm":"./lib/interceptors/resource-server-error-handler","ɵn":"./lib/interceptors/resource-server-error-handler","ɵo":"./lib/interceptors/default-oauth.interceptor"},"importAs":"@minadmin/oidc"}
{"__symbolic":"module","version":4,"metadata":{"IOIDCConfig":{"__symbolic":"interface"},"IResourceServerConfig":{"__symbolic":"interface"},"CONFIG_OPTIONS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":13,"character":34},"arguments":["config.options"]},"OIDCConfigStorageKeyNames":{"TOKEN":"storageTokenName","OIDCCONFIG":"storageOIDCConfigName","OIDCJWKs":"storageOIDCJWKsName","NONCE":"storageNonceName","PARSED_ID_TOKEN":"storageParsedIDTokenName","A_REQUEST_STATE":"storageARequestStateName"},"OIDCConfigService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":24,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":64,"character":5},"arguments":[{"__symbolic":"reference","name":"CONFIG_OPTIONS"}]}],null],"parameters":[{"__symbolic":"reference","name":"IOIDCConfig"},{"__symbolic":"reference","name":"OIDCFlowService"}]}],"applyConfig":[{"__symbolic":"method"}],"getStorageKey":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"OIDCService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":13,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"OIDCFlowService"},{"__symbolic":"reference","name":"ɵi"}]}],"ngOnInit":[{"__symbolic":"method"}],"updateConfig":[{"__symbolic":"method"}],"run$":[{"__symbolic":"method"}],"isAuthenticated":[{"__symbolic":"method"}],"signIn":[{"__symbolic":"method"}],"signOut":[{"__symbolic":"method"}]}},"OIDCModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":32,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClientModule","line":34,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-logger","name":"LoggerModule","line":35,"character":4},"member":"forRoot"},"arguments":[{"level":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-logger","name":"NgxLoggerLevel","line":35,"character":34},"member":"DEBUG"}}]}],"declarations":[],"exports":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":42,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":43,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"OIDCModule"}]}]},"statics":{"forRoot":{"__symbolic":"function","parameters":["configOptions","defaultJwtInterceptor"],"defaults":[null,true],"value":{"ngModule":{"__symbolic":"reference","name":"OIDCModule"},"providers":[{"__symbolic":"spread","expression":{"__symbolic":"if","condition":{"__symbolic":"reference","name":"configOptions"},"thenExpression":[{"provide":{"__symbolic":"reference","name":"CONFIG_OPTIONS"},"useValue":{"__symbolic":"reference","name":"configOptions"}}],"elseExpression":[]}},{"provide":{"__symbolic":"reference","name":"OIDCFlowService"},"useClass":{"__symbolic":"reference","name":"OIDCDefaultFlowService"}},{"provide":{"__symbolic":"reference","name":"OIDCConfigService"},"useClass":{"__symbolic":"reference","name":"OIDCConfigService"}},{"provide":{"__symbolic":"reference","name":"ɵc"},"useClass":{"__symbolic":"reference","name":"ɵc"}},{"provide":{"__symbolic":"reference","name":"ɵb"},"useClass":{"__symbolic":"reference","name":"ɵk"},"deps":[{"__symbolic":"reference","name":"OIDCConfigService"}]},{"provide":{"__symbolic":"reference","name":"ɵd"},"useClass":{"__symbolic":"reference","name":"ɵd"}},{"provide":{"__symbolic":"reference","name":"ɵe"},"useClass":{"__symbolic":"reference","name":"ɵf"}},{"provide":{"__symbolic":"reference","name":"ɵg"},"useClass":{"__symbolic":"reference","name":"ɵl"}},{"provide":{"__symbolic":"reference","name":"ɵa"},"useClass":{"__symbolic":"reference","name":"ɵa"}},{"provide":{"__symbolic":"reference","name":"ɵi"},"useClass":{"__symbolic":"reference","name":"ɵj"}},{"provide":{"__symbolic":"reference","name":"ɵm"},"useClass":{"__symbolic":"reference","name":"ɵn"}},{"provide":{"__symbolic":"reference","name":"OIDCService"},"useClass":{"__symbolic":"reference","name":"OIDCService"}},{"provide":{"__symbolic":"reference","module":"@angular/common/http","name":"HTTP_INTERCEPTORS","line":109,"character":19},"useClass":{"__symbolic":"reference","name":"ɵo"},"multi":true}]}}}},"OIDCFlows":{"INITIAL":"initial","UPDATE_CONFIG":"updateConfig","GET_OIDC_CONFIGURATION":"getOIDCConfiguration","READ_STORAGE":"readStorage","CHECK_AUTHORIZED":"checkAuthorized","WAITING":"waiting","REQUEST_AUTHORIZATION":"requestAuthorization","REQUEST_REFRESH_TOKEN":"requestRefreshToken","DONE":"done"},"OIDCAbstractFlow":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]}]}]}},"OIDCFlow":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"OIDCAbstractFlow"},"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":53,"character":34,"module":"./lib/flow.service"}]}]}]}},"OIDCFlowService":{"__symbolic":"class","members":{"onEnter":[{"__symbolic":"method"}],"onLeave":[{"__symbolic":"method"}],"transitTo$":[{"__symbolic":"method"}],"can":[{"__symbolic":"method"}],"transitions":[{"__symbolic":"method"}],"transitToNext$":[{"__symbolic":"method"}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"error","message":"Expression form not supported","line":144,"character":23,"module":"./lib/flow.service"},null]}]}},"OIDCDefaultFlowService":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"OIDCFlowService"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":152,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":20,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":36,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"OIDCFlowService"},{"__symbolic":"reference","name":"ɵg"}]}],"updateConfig":[{"__symbolic":"method"}],"getToken":[{"__symbolic":"method"}],"setToken":[{"__symbolic":"method"}],"removeToken":[{"__symbolic":"method"}],"createAndSaveNonce":[{"__symbolic":"method"}],"processIdToken":[{"__symbolic":"method"}],"isAuthenticated":[{"__symbolic":"method"}],"logout":[{"__symbolic":"method"}],"setStorageType":[{"__symbolic":"method"}],"checkAtHash":[{"__symbolic":"method"}],"padBase64":[{"__symbolic":"method"}],"checkSignature":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","members":{"updateStorageType":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"ngx-logger","name":"CustomNGXLoggerService","line":14,"character":31},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"OIDCFlowService"}]}],"trace":[{"__symbolic":"method"}],"debug":[{"__symbolic":"method"}],"info":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"warn":[{"__symbolic":"method"}],"error":[{"__symbolic":"method"}]}},"ɵd":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":47,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":57,"character":19},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"OIDCFlowService"}]}],"updateConfig":[{"__symbolic":"method"}],"validateDiscoveryDocument":[{"__symbolic":"method"}],"validateUrlFromDiscoveryDocument":[{"__symbolic":"method"}],"validateUrlForHttps":[{"__symbolic":"method"}],"validateUrlAgainstIssuer":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"ɵe":{"__symbolic":"class","members":{"generateRandom":[{"__symbolic":"method"}],"deriveChallenge":[{"__symbolic":"method"}]}},"ɵf":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵe"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":18,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"generateRandom":[{"__symbolic":"method"}],"deriveChallenge":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","members":{"validateSignature":[{"__symbolic":"method"}],"validateAtHash":[{"__symbolic":"method"}]}},"ɵh":{"__symbolic":"class","members":{"validateSignature":[{"__symbolic":"method"}],"validateAtHash":[{"__symbolic":"method"}],"inferHashAlgorithm":[{"__symbolic":"method"}],"calcHash":[{"__symbolic":"method"}]}},"ɵi":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":40,"character":22},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":43,"character":21}]}],"buildRequestUrl":[{"__symbolic":"method"}],"performAuthorizationRequest":[{"__symbolic":"method"}],"completeAuthorizationRequest":[{"__symbolic":"method"}],"isTokenResponse":[{"__symbolic":"method"}],"performTokenRequest$":[{"__symbolic":"method"}]}},"ɵj":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵi"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":154,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":159,"character":5},"arguments":[{"__symbolic":"reference","name":"OIDCConfigService"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":160,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":40,"character":22}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":161,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵc"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":162,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":163,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":43,"character":21}]}],null,null,null,null],"parameters":[{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","module":"@angular/router","name":"ActivatedRoute","line":40,"character":22},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":43,"character":21},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"OIDCFlowService"},{"__symbolic":"reference","name":"ɵe"},{"__symbolic":"reference","name":"ɵb"}]}],"updateConfig":[{"__symbolic":"method"}],"performAuthorizationRequest":[{"__symbolic":"method"}],"completeAuthorizationRequest":[{"__symbolic":"method"}]}},"ɵk":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵb"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":4,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"OIDCConfigService"}]}],"updateStorageType":[{"__symbolic":"method"}],"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"checkIsStorageAvailable":[{"__symbolic":"method"}],"isWindowStorageAvailable":[{"__symbolic":"method"}],"isCookieStorageAvailable":[{"__symbolic":"method"}],"setCookie":[{"__symbolic":"method"}],"removeCookie":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}]}},"ɵl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵh"},"members":{"validateSignature":[{"__symbolic":"method"}],"calcHash":[{"__symbolic":"method"}]}},"ɵm":{"__symbolic":"class","members":{"handleError":[{"__symbolic":"method"}]}},"ɵn":{"__symbolic":"class","members":{"handleError":[{"__symbolic":"method"}]}},"ɵo":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":14,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"ɵm"},{"__symbolic":"reference","name":"OIDCConfigService"},{"__symbolic":"reference","name":"ɵc"}]}],"checkUrl":[{"__symbolic":"method"}],"intercept":[{"__symbolic":"method"}]}}},"origins":{"IOIDCConfig":"./lib/config-interfaces","IResourceServerConfig":"./lib/config-interfaces","CONFIG_OPTIONS":"./lib/config.service","OIDCConfigStorageKeyNames":"./lib/config.service","OIDCConfigService":"./lib/config.service","OIDCService":"./lib/oidc.service","OIDCModule":"./lib/oidc.module","OIDCFlows":"./lib/flow.service","OIDCAbstractFlow":"./lib/flow.service","OIDCFlow":"./lib/flow.service","OIDCFlowService":"./lib/flow.service","OIDCDefaultFlowService":"./lib/flow.service","ɵa":"./lib/token.service","ɵb":"./lib/storage.service","ɵc":"./lib/logger.service","ɵd":"./lib/oidc-configuration.service","ɵe":"./lib/crypto.service","ɵf":"./lib/crypto.service","ɵg":"./lib/token-validation/validation-handler","ɵh":"./lib/token-validation/validation-handler","ɵi":"./lib/token-requestor.service","ɵj":"./lib/token-requestor.service","ɵk":"./lib/browser-storage.service","ɵl":"./lib/token-validation/jwks-validation-handler","ɵm":"./lib/interceptors/resource-server-error-handler","ɵn":"./lib/interceptors/resource-server-error-handler","ɵo":"./lib/interceptors/default-oauth.interceptor"},"importAs":"@minadmin/oidc"}

@@ -11,3 +11,3 @@ {

},
"version": "0.0.2",
"version": "0.0.3",
"license": "Apache-2.0",

@@ -30,3 +30,2 @@ "licenses": [

"release-it": "^7.6.2",
"rxjs": "^6.0.0",
"tsickle": ">=0.27.3",

@@ -44,3 +43,4 @@ "tslib": "^1.9.0",

"core-js": "2.x",
"zone.js": "0.x"
"zone.js": "0.x",
"rxjs": ">=6.0.0 <7.0.0"
},

@@ -47,0 +47,0 @@ "dependencies": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc