{"version":3,"sources":["webpack:///../node_modules/oidc-client/lib/oidc-client.min.js"],"names":["r","t","e","n","exports","i","l","call","m","c","d","o","Object","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","create","bind","prototype","hasOwnProperty","p","s","length","configurable","writable","key","debug","info","warn","error","Log","TypeError","this","reset","arguments","Array","apply","from","set","Error","setInterval","toString","clearInterval","Global","_testing","setXMLHttpRequest","location","window","localStorage","sessionStorage","XMLHttpRequest","MetadataService","JsonService","_settings","_jsonService","getMetadata","metadata","Promise","resolve","metadataUrl","getJson","then","reject","getIssuer","_getMetadataProperty","getAuthorizationEndpoint","getUserInfoEndpoint","getTokenEndpoint","getCheckSessionIframe","getEndSessionEndpoint","getRevocationEndpoint","getKeysEndpoint","getSigningKeys","signingKeys","keys","_metadataUrl","authority","indexOf","UrlUtility","addQueryParam","encodeURIComponent","parseUrlFragment","href","lastIndexOf","substr","a","u","h","exec","decodeURIComponent","JoseUtil","jws","KeyUtil","X509","crypto","hextob64u","b64tohex","AllowedSigningAlgs","OidcClientSettings","iterator","constructor","g","client_id","client_secret","v","response_type","y","scope","_","S","redirect_uri","F","post_logout_redirect_uri","b","prompt","w","display","E","max_age","x","ui_locales","k","acr_values","A","resource","P","response_mode","C","filterProtocolClaims","T","R","loadUserInfo","I","D","staleStateAge","U","L","clockSkew","B","N","userInfoJwtIssuer","O","j","stateStore","H","WebStorageStateStore","M","ResponseValidatorCtor","K","ResponseValidator","V","MetadataServiceCtor","q","J","extraQueryParams","W","z","extraTokenParams","Y","_authority","_metadata","_signingKeys","_client_id","_client_secret","_response_type","_scope","_redirect_uri","_post_logout_redirect_uri","_prompt","_display","_max_age","_ui_locales","_acr_values","_resource","_response_mode","_filterProtocolClaims","_loadUserInfo","_staleStateAge","_clockSkew","_userInfoJwtIssuer","_stateStore","_validator","_metadataService","_extraQueryParams","_extraTokenParams","prefix","store","_store","_prefix","setItem","getItem","remove","removeItem","getAllKeys","push","isArray","_contentTypes","slice","_XMLHttpRequest","_jwtHandler","open","onload","status","getResponseHeader","find","startsWith","JSON","parse","responseText","message","statusText","onerror","setRequestHeader","send","postForm","State","id","data","created","request_type","_id","_data","_created","parseInt","Date","now","_request_type","toStorageString","stringify","fromStorageString","clearStaleState","all","OidcClient","f","createSigninRequest","state","id_token_hint","login_hint","request","request_uri","skipUserInfo","SigninRequest","isCode","url","readSigninResponseState","SigninResponse","SigninState","response","processSigninResponse","validateSigninResponse","createSignoutRequest","SignoutRequest","readSignoutResponseState","SignoutResponse","ErrorResponse","undefined","processSignoutResponse","validateSignoutResponse","settings","validator","metadataService","TokenClient","exchangeCode","assign","grant_type","code","code_verifier","exchangeRefreshToken","refresh_token","error_description","error_uri","session_state","ReferenceError","name","setPrototypeOf","__proto__","isOidc","nonce","code_challenge","split","filter","isOAuth","_nonce","_code_verifier","hashString","_code_challenge","hexToBase64Url","_skipUserInfo","replace","User","id_token","access_token","token_type","profile","expires_at","expires_in","AccessTokenEvents","accessTokenExpiringNotificationTime","accessTokenExpiringTimer","Timer","accessTokenExpiredTimer","_accessTokenExpiringNotificationTime","_accessTokenExpiring","_accessTokenExpired","load","init","cancel","unload","addAccessTokenExpiring","addHandler","removeAccessTokenExpiring","removeHandler","addAccessTokenExpired","removeAccessTokenExpired","Event","_name","_callbacks","findIndex","splice","raise","SessionMonitor","CheckSessionIFrame","timer","_userManager","_CheckSessionIFrameCtor","_timer","events","addUserLoaded","_start","addUserUnloaded","_stop","getUser","monitorAnonymousSession","querySessionStatus","sub","sid","_sub","_sid","_checkSessionIFrame","start","_checkSessionInterval","_stopCheckSessionOnError","_callback","stop","_raiseUserSessionChanged","_raiseUserSignedOut","_raiseUserSignedIn","checkSessionInterval","stopCheckSessionOnError","_url","_interval","_stopOnError","_frame_origin","_frame","document","createElement","style","visibility","position","width","height","src","body","appendChild","_boundMessageEvent","_message","addEventListener","origin","source","contentWindow","_session_state","postMessage","TokenRevocationClient","_XMLHttpRequestCtor","revoke","_revoke","CordovaPopupWindow","_promise","_resolve","_reject","features","popupWindowFeatures","target","popupWindowTarget","startUrl","_isInAppBrowserInstalled","some","navigate","cordova","_error","require","_popup","InAppBrowser","_exitCallbackEvent","_exitCallback","_loadStartCallbackEvent","_loadStartCallback","promise","_success","_cleanup","close","removeEventListener","Version","InMemoryWebStorage","UserManager","CordovaPopupNavigator","CordovaIFrameNavigator","UserInfoService","_userInfoService","_joseUtil","_tokenClient","_processSigninParams","_validateTokens","_processClaims","isOpenIdConnect","getClaims","_mergeClaims","forEach","_processCode","_validateIdTokenAndAccessToken","_validateIdToken","_validateIdTokenAttributes","validateJwtAttributes","_validateAccessToken","parseJwt","header","payload","kid","_filterByAlg","alg","validateJwt","kty","at_hash","_getClaimsFromJwt","iss","KEYUTIL","userAgent","lang","extend","superclass","test","Math","lib","Base","mixIn","$super","clone","WordArray","words","sigBytes","concat","clamp","ceil","random","enc","Hex","join","Latin1","String","fromCharCode","charCodeAt","Utf8","escape","unescape","BufferedBlockAlgorithm","_nDataBytes","_append","_process","blockSize","max","_minBufferSize","min","_doProcessBlock","Hasher","cfg","_doReset","update","finalize","_doFinalize","_createHelper","_createHmacHelper","HMAC","algo","x64","Word","high","low","toX32","Base64","_map","charAt","sqrt","pow","SHA256","_hash","floor","HmacSHA256","SHA512","G","X","Q","$","Z","tt","et","rt","nt","HmacSHA512","SHA384","HmacSHA384","substring","fromNumber","fromString","appName","am","DB","DM","DV","FV","F1","F2","fromInt","mp","invDigit","mpl","mph","um","mt2","r2","q3","ONE","dlShiftTo","mu","divide","convert","compareTo","mod","revert","reduce","divRemTo","mulTo","multiplyTo","sqrTo","squareTo","abs","ZERO","subTo","copyTo","drShiftTo","fromRadix","lShiftTo","rShiftTo","isEven","exp","negate","toRadix","bitLength","modPowInt","multiplyUpperTo","multiplyLowerTo","dAddOffset","Re","Ie","De","Dt","Ut","Lt","Le","getTime","chunkSize","LN2","log","signum","intValue","dMultiply","testBit","bitwiseTo","shiftLeft","isProbablePrime","nextBytes","changeBit","addTo","modInt","millerRabin","subtract","getLowestSetBit","shiftRight","modPow","byteValue","shortValue","toByteArray","equals","and","or","xor","andNot","not","bitCount","setBit","clearBit","flipBit","add","multiply","remainder","divideAndRemainder","modInverse","gcd","square","next","Be","msCrypto","Ne","getRandomValues","Oe","Uint8Array","appVersion","je","He","Me","Ke","Ve","qe","dmp1","dmq1","coeff","Je","We","curve","zinv","ze","fromBigInteger","infinity","doPublic","setPublic","isPublic","isPrivate","encrypt","encryptOAEP","Er","MessageDigest","Util","getCanonicalAlgName","getHashLength","Or","hashHex","jr","type","toBigInteger","getX","getY","isInfinity","twice","getInfinity","multiplyTwo","getQ","getA","getB","decodePointHex","getByteLength","getEncoded","toByteArrayUnsigned","unshift","decodeFrom","decodeFromHex","add2D","twice2D","valueOf","multiply2D","isOnCurve","validate","wr","RegExp","match","shift","KJUR","asn1","ASN1Util","integerToByteHex","bigIntToMinTwosComplementsHex","getPEMStringFromHex","Vr","newObject","DERBoolean","DERInteger","DERBitString","DEROctetString","DERNull","DERObjectIdentifier","DEREnumerated","DERUTF8String","DERNumericString","DERPrintableString","DERTeletexString","DERIA5String","DERUTCTime","DERGeneralizedTime","DERSequence","DERSet","DERTaggedObject","array","tag","explicit","obj","jsonToASN1HEX","getEncodedHex","oidHexToInt","oidIntToHex","ASN1Object","getLengthHexFromValue","hV","hTLV","isModified","getFreshValueHex","hL","hT","getValueHex","DERAbstractString","getString","setString","Br","toLowerCase","setStringHex","str","hex","DERAbstractTime","localDateToUTC","utc","getTimezoneOffset","formatDate","zeroPadding","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","Rr","setByDateValue","UTC","setByDate","DERAbstractStructured","setByASN1ObjectArray","asn1Array","appendASN1Object","setByBigInteger","setByInteger","setValueHex","bigint","setHexValueIncludingUnusedBits","setUnusedBitsAndHexValue","setByBinaryString","setByBooleanArray","newFalseArray","bin","setValueOidString","setValueName","x509","OID","name2oid","oid","date","withMillis","millis","sortFlag","sort","sortflag","isExplicit","asn1Object","setASN1Object","xr","kr","Ar","Pr","Cr","Tr","Ir","Dr","Ur","Lr","zr","$r","Nr","Yr","Hr","Mr","Kr","qr","Jr","Wr","Gr","repeat","Xr","Qr","Zr","getLblen","getL","getVblen","getVidx","getV","getTLV","getNextSiblingIdx","getChildIdx","getNthChildIdx","getIdxbyList","getTLVbyList","getVbyList","hextooidstr","dump","ommit_long_octet","isASN1HEX","oid2name","oidname","x509ExtName","isHex","utf8tob64u","b64utoutf8","isInteger","isBase64","isBase64URL","isIntegerArray","DIGESTINFOHEAD","sha1","sha224","sha256","sha384","sha512","md2","md5","ripemd160","DEFAULTPROVIDER","hmacmd5","hmacsha1","hmacsha224","hmacsha256","hmacsha384","hmacsha512","hmacripemd160","MD5withRSA","SHA1withRSA","SHA224withRSA","SHA256withRSA","SHA384withRSA","SHA512withRSA","RIPEMD160withRSA","MD5withECDSA","SHA1withECDSA","SHA224withECDSA","SHA256withECDSA","SHA384withECDSA","SHA512withECDSA","RIPEMD160withECDSA","SHA1withDSA","SHA224withDSA","SHA256withDSA","MD5withRSAandMGF1","SHA1withRSAandMGF1","SHA224withRSAandMGF1","SHA256withRSAandMGF1","SHA384withRSAandMGF1","SHA512withRSAandMGF1","RIPEMD160withRSAandMGF1","CRYPTOJSMESSAGEDIGESTNAME","MD5","SHA1","SHA224","RIPEMD160","getDigestInfoHex","getPaddedDigestInfoHex","digestString","digestHex","prov","sha256Hex","sha512Hex","SECURERANDOMGEN","getRandomHexOfNbytes","getRandomBigIntegerOfNbytes","getRandomHexOfNbits","getRandomBigIntegerOfNbits","getRandomBigIntegerZeroToMax","getRandomBigIntegerMinToMax","setAlgAndProvider","md","updateString","updateHex","digest","sjcl","hash","codec","toBits","fromBits","algName","provName","HASHLENGTH","Mac","algProv","mac","pass","doFinal","doFinalString","doFinalHex","setPassword","utf8","rstr","b64","b64u","Signature","_setAlgNames","mdAlgName","pubkeyAlgName","_zeroPaddingOfSignature","tn","getKey","prvKey","pubKey","sign","sHashHex","ecprvhex","eccurvename","ECDSA","hSign","signHex","signWithMessageHashPSS","pssSaltLen","signWithMessageHash","DSA","signString","verify","ecpubhex","verifyHex","verifyWithMessageHashPSS","verifyWithMessageHash","algProvName","initParams","psssaltlen","prvkeypem","prvkeypas","Cipher","getAlgByKeyAndName","decrypt","decryptOAEP","oidhex2name","getBigRandom","setNamedCurve","ecparams","ECParameterDB","getByName","prvKeyHex","pubKeyHex","curveName","setPrivateKeyHex","setPublicKeyHex","getPublicKeyXYHex","keylen","getShortNISTPCurveName","generateKeyPairHex","biRSSigToASN1Sig","fromByteArrayUnsigned","serializeSig","parseSigHex","verifyRaw","Bitcoin","parseSig","toByteArraySigned","parseSigCompact","readPKCS5PrvKeyHex","getName","readPKCS8PrvKeyHex","readPKCS8PubKeyHex","readCertPubKeyHex","prv","pub","parseSigHexInHexRS","asn1SigToConcatSig","concatSigToASN1Sig","hexRSSigToASN1Sig","regist","AES","iv","ciphertext","proc","eproc","ivlen","TripleDES","DES","cipher","ivsalt","keyhex","ivhex","version","parsePKCS5PEM","getKeyAndUnusedIvByPasscodeAndIvsalt","decryptKeyB64","getDecryptedKeyHex","getEncryptedPKCS5PEMFromPrvKeyHex","toUpperCase","parseHexOfEncryptedPKCS8","encryptionSchemeAlg","encryptionSchemeIV","pbkdf2Salt","pbkdf2Iter","getPBKDF2KeyHexFromParam","PBKDF2","keySize","iterations","_getPlainPKCS8HexFromEncryptedPKCS8PEM","getKeyFromEncryptedPKCS8PEM","getKeyFromPlainPrivatePKCS8Hex","parsePlainPrivatePKCS8Hex","algparam","algoid","keyidx","getKeyFromPlainPrivatePKCS8PEM","_getKeyFromPublicPKCS8Hex","parsePublicRawRSAKeyHex","parsePublicPKCS8Hex","xy","dp","dq","co","qi","setPrivateEx","setPrivate","crv","sn","getPublicKeyFromCertHex","getPublicKeyFromCertPEM","generateKeypair","generate","prvKeyObj","pubKeyObj","getPEM","SubjectPublicKeyInfo","seq","octstr","bitstr","getKeyFromCSRPEM","getKeyFromCSRHex","parseCSRHex","p8pubkeyhex","getJWKFromKey","getPosArrayOfChildrenFromHex","getHexValueArrayOfChildrenFromHex","readPrivateKeyFromPEMString","readPKCS5PubKeyHex","readCertHex","getPublicKeyHex","en","rn","nn","on","foffset","aExtInfo","getVersion","getSerialNumberHex","getSignatureAlgorithmField","getIssuerHex","getIssuerString","hex2dn","getSubjectHex","getSubjectString","getNotBefore","getNotAfter","getPublicKeyIdx","getPublicKeyContentIdx","getPublicKey","getSignatureAlgorithmName","getSignatureValueHex","verifySignature","parseExt","critical","vidx","getExtInfo","getExtBasicConstraints","cA","pathLen","getExtKeyUsageBin","getExtKeyUsageString","KEYUSAGE_NAME","getExtSubjectKeyIdentifier","getExtAuthorityKeyIdentifier","getExtExtKeyUsageName","getExtSubjectAltName","getExtSubjectAltName2","getExtCRLDistributionPointsURI","getExtAIAInfo","ocsp","caissuer","getExtCertificatePolicies","cps","unotice","readCertPEM","getInfo","compile","doPrivate","signPSS","verifyPSS","SALT_LEN_HLEN","SALT_LEN_MAX","SALT_LEN_RECOVER","hex2rdn","map","hex2attrTypeValue","oid2atype","getPublicKeyInfoPropOfCertPEM","JWS","isSafeJSONString","parseJWS","parsedJWS","sigvalH","headB64U","payloadB64U","sigvalB64U","si","sigvalBI","headS","payloadS","readSafeJSONString","jwsalg2sigalg","hASN1Sig","headerObj","payloadObj","headerPP","payloadPP","sigHex","verifyJWT","inArray","includedArray","aud","IntDate","getNow","verifyAt","gracePeriod","nbf","iat","jti","HS256","HS384","HS512","RS256","RS384","RS512","ES256","ES384","PS256","PS384","PS512","none","getEncodedSignatureValueFromJWS","getJWKthumbprint","getZulu","intDate2UTCString","toUTCString","intDate2Zulu","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","SecureRandom","rng_seed_time","BigInteger","RSAKey","an","EDSA","un","cn","hn","ln","fn","ASN1HEX","CryptoJS","b64toBA","stoBA","BAtos","BAtohex","stohex","stob64","stob64u","b64utos","b64tob64u","b64utob64","hex2b64","b64utohex","utf8tob64","b64toutf8","utf8tohex","hextoutf8","hextorstr","rstrtohex","hextob64","hextob64nl","b64nltohex","hextopem","pemtohex","hextoArrayBuffer","ArrayBuffer","DataView","setUint8","ArrayBuffertohex","byteLength","getUint8","zulutomsec","zulutosec","zulutodate","datetozulu","getUTCMilliseconds","uricmptohex","hextouricmp","ipv6tohex","hextoipv6","hextoip","iptohex","encodeURIComponentAll","newline_toUnix","newline_toDos","hextoposhex","intarystrtohex","strdiffidx","kn","An","Pn","Cn","Buffer","TYPED_ARRAY_SUPPORT","RangeError","isEncoding","write","isBuffer","copy","buffer","isView","isNaN","readUInt16BE","Number","fromByteArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","kMaxLength","poolSize","_augment","species","fill","allocUnsafe","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","inspect","includes","isFinite","toJSON","_arr","readUIntLE","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","read","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","trim","Function","NaN","x5c","_validateJwt","azp","rng","scopes","getOwnPropertyNames","SilentRenewService","UserManagerSettings","_events","UserManagerEvents","_silentRenewService","automaticSilentRenew","startSilentRenew","monitorSession","_sessionMonitor","_tokenRevocationClient","_loadUser","removeUser","storeUser","signinRedirect","useReplaceToNavigate","_signinStart","_redirectNavigator","signinRedirectCallback","_signinEnd","signinPopup","popup_redirect_uri","_signin","_popupNavigator","signinPopupCallback","_signinCallback","signinSilent","_useRefreshToken","includeIdTokenInSilentRenew","validateSubOnSilentRenew","current_sub","_signinSilentIframe","_validateIdTokenFromTokenRefreshToken","auth_time","silent_redirect_uri","_iframeNavigator","silentRequestTimeout","signinSilentCallback","signinCallback","signoutCallback","signoutRedirectCallback","signoutPopupCallback","query_status_response_type","prepare","callback","signoutRedirect","_signoutStart","_signoutEnd","signoutPopup","popup_post_logout_redirect_uri","_signout","revokeAccessTokenOnSignout","_revokeInternal","revokeAccessToken","_revokeAccessTokenInternal","_revokeRefreshTokenInternal","stopSilentRenew","_userStore","_userStoreKey","redirectNavigator","popupNavigator","iframeNavigator","userStore","RedirectNavigator","PopupNavigator","IFrameNavigator","_popup_redirect_uri","_popup_post_logout_redirect_uri","_popupWindowFeatures","_popupWindowTarget","_silent_redirect_uri","_silentRequestTimeout","_automaticSilentRenew","_validateSubOnSilentRenew","_includeIdTokenInSilentRenew","_monitorSession","_monitorAnonymousSession","_query_status_response_type","_revokeAccessTokenOnSignout","PopupWindow","notifyOpener","_checkForPopupClosedTimer","_checkForPopupClosed","focus","closed","opener","IFrameWindow","notifyParent","setTimeout","_timeout","clearTimeout","removeChild","_origin","frameElement","parent","protocol","host","_userLoaded","_userUnloaded","_silentRenewError","_userSignedIn","_userSignedOut","_userSessionChanged","removeUserLoaded","removeUserUnloaded","addSilentRenewError","removeSilentRenewError","_raiseSilentRenewError","addUserSignedIn","removeUserSignedIn","addUserSignedOut","removeUserSignedOut","addUserSessionChanged","removeUserSessionChanged","_nowFunc","expiration","_timerHandle","_expiration","_tokenExpiring","module"],"mappings":"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","file":"979cbae8-e3d8548ee86a6f0bf5d9.js","sourcesContent":["require(\"core-js/modules/es6.string.trim\");\n\nrequire(\"core-js/modules/es6.date.to-json\");\n\nrequire(\"core-js/modules/es7.array.includes\");\n\nrequire(\"core-js/modules/es6.string.includes\");\n\nrequire(\"core-js/modules/es6.array.fill\");\n\nrequire(\"core-js/modules/es6.number.constructor\");\n\nrequire(\"core-js/modules/es6.typed.data-view\");\n\nrequire(\"core-js/modules/es6.array.map\");\n\nrequire(\"core-js/modules/es6.string.repeat\");\n\nrequire(\"core-js/modules/es6.array.sort\");\n\nrequire(\"core-js/modules/es6.object.keys\");\n\nrequire(\"core-js/modules/es6.regexp.match\");\n\nrequire(\"core-js/modules/es6.regexp.constructor\");\n\nrequire(\"core-js/modules/es6.typed.uint8-array\");\n\nrequire(\"core-js/modules/es6.array.reduce\");\n\nrequire(\"core-js/modules/es6.array.for-each\");\n\nrequire(\"core-js/modules/es6.array.some\");\n\nrequire(\"core-js/modules/es6.string.sub\");\n\nrequire(\"core-js/modules/es6.array.find-index\");\n\nrequire(\"core-js/modules/es6.regexp.replace\");\n\nrequire(\"core-js/modules/es6.regexp.split\");\n\nrequire(\"core-js/modules/es6.array.filter\");\n\nrequire(\"core-js/modules/es6.object.set-prototype-of\");\n\nrequire(\"core-js/modules/es6.function.name\");\n\nrequire(\"core-js/modules/es6.object.assign\");\n\nrequire(\"core-js/modules/es6.date.now\");\n\nrequire(\"core-js/modules/es6.string.starts-with\");\n\nrequire(\"core-js/modules/es6.array.find\");\n\nrequire(\"core-js/modules/es6.array.is-array\");\n\nrequire(\"core-js/modules/es6.array.last-index-of\");\n\nrequire(\"core-js/modules/es6.array.index-of\");\n\nrequire(\"core-js/modules/web.dom.iterable\");\n\nrequire(\"core-js/modules/es6.array.iterator\");\n\nrequire(\"core-js/modules/es6.promise\");\n\nrequire(\"core-js/modules/es6.regexp.to-string\");\n\nrequire(\"core-js/modules/es6.date.to-string\");\n\nrequire(\"core-js/modules/es6.object.to-string\");\n\nrequire(\"core-js/modules/es6.string.iterator\");\n\nrequire(\"core-js/modules/es6.array.from\");\n\nrequire(\"core-js/modules/es6.function.bind\");\n\nrequire(\"core-js/modules/es6.object.create\");\n\nrequire(\"core-js/modules/es7.symbol.async-iterator\");\n\nrequire(\"core-js/modules/es6.symbol\");\n\nrequire(\"core-js/modules/es6.object.define-property\");\n\n!function t(e, r) {\n if (\"object\" == typeof exports && \"object\" == typeof module) module.exports = r();else if (\"function\" == typeof define && define.amd) define([], r);else {\n var n = r();\n\n for (var i in n) {\n (\"object\" == typeof exports ? exports : e)[i] = n[i];\n }\n }\n}(this, function () {\n return function (t) {\n var e = {};\n\n function r(n) {\n if (e[n]) return e[n].exports;\n var i = e[n] = {\n i: n,\n l: !1,\n exports: {}\n };\n return t[n].call(i.exports, i, i.exports, r), i.l = !0, i.exports;\n }\n\n return r.m = t, r.c = e, r.d = function (t, e, n) {\n r.o(t, e) || Object.defineProperty(t, e, {\n enumerable: !0,\n get: n\n });\n }, r.r = function (t) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n }, r.t = function (t, e) {\n if (1 & e && (t = r(t)), 8 & e) return t;\n if (4 & e && \"object\" == typeof t && t && t.__esModule) return t;\n var n = Object.create(null);\n if (r.r(n), Object.defineProperty(n, \"default\", {\n enumerable: !0,\n value: t\n }), 2 & e && \"string\" != typeof t) for (var i in t) {\n r.d(n, i, function (e) {\n return t[e];\n }.bind(null, i));\n }\n return n;\n }, r.n = function (t) {\n var e = t && t.__esModule ? function e() {\n return t[\"default\"];\n } : function e() {\n return t;\n };\n return r.d(e, \"a\", e), e;\n }, r.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, r.p = \"\", r(r.s = 22);\n }([function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }();\n\n var i = {\n debug: function t() {},\n info: function t() {},\n warn: function t() {},\n error: function t() {}\n },\n o = void 0,\n s = void 0;\n (e.Log = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.reset = function t() {\n s = 3, o = i;\n }, t.debug = function t() {\n if (s >= 4) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) {\n r[n] = arguments[n];\n }\n\n o.debug.apply(o, Array.from(r));\n }\n }, t.info = function t() {\n if (s >= 3) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) {\n r[n] = arguments[n];\n }\n\n o.info.apply(o, Array.from(r));\n }\n }, t.warn = function t() {\n if (s >= 2) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) {\n r[n] = arguments[n];\n }\n\n o.warn.apply(o, Array.from(r));\n }\n }, t.error = function t() {\n if (s >= 1) {\n for (var e = arguments.length, r = Array(e), n = 0; n < e; n++) {\n r[n] = arguments[n];\n }\n\n o.error.apply(o, Array.from(r));\n }\n }, n(t, null, [{\n key: \"NONE\",\n get: function t() {\n return 0;\n }\n }, {\n key: \"ERROR\",\n get: function t() {\n return 1;\n }\n }, {\n key: \"WARN\",\n get: function t() {\n return 2;\n }\n }, {\n key: \"INFO\",\n get: function t() {\n return 3;\n }\n }, {\n key: \"DEBUG\",\n get: function t() {\n return 4;\n }\n }, {\n key: \"level\",\n get: function t() {\n return s;\n },\n set: function t(e) {\n if (!(0 <= e && e <= 4)) throw new Error(\"Invalid log level\");\n s = e;\n }\n }, {\n key: \"logger\",\n get: function t() {\n return o;\n },\n set: function t(e) {\n if (!e.debug && e.info && (e.debug = e.info), !(e.debug && e.info && e.warn && e.error)) throw new Error(\"Invalid logger\");\n o = e;\n }\n }]), t;\n }()).reset();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }();\n\n var i = {\n setInterval: function (t) {\n function e(e, r) {\n return t.apply(this, arguments);\n }\n\n return e.toString = function () {\n return t.toString();\n }, e;\n }(function (t, e) {\n return setInterval(t, e);\n }),\n clearInterval: function (t) {\n function e(e) {\n return t.apply(this, arguments);\n }\n\n return e.toString = function () {\n return t.toString();\n }, e;\n }(function (t) {\n return clearInterval(t);\n })\n },\n o = !1,\n s = null;\n\n e.Global = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t._testing = function t() {\n o = !0;\n }, t.setXMLHttpRequest = function t(e) {\n s = e;\n }, n(t, null, [{\n key: \"location\",\n get: function t() {\n if (!o) return location;\n }\n }, {\n key: \"localStorage\",\n get: function t() {\n if (!o && \"undefined\" != typeof window) return localStorage;\n }\n }, {\n key: \"sessionStorage\",\n get: function t() {\n if (!o && \"undefined\" != typeof window) return sessionStorage;\n }\n }, {\n key: \"XMLHttpRequest\",\n get: function t() {\n if (!o && \"undefined\" != typeof window) return s || XMLHttpRequest;\n }\n }, {\n key: \"timer\",\n get: function t() {\n if (!o) return i;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.MetadataService = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(7);\n\n e.MetadataService = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.JsonService;\n if (function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !e) throw i.Log.error(\"MetadataService: No settings passed to MetadataService\"), new Error(\"settings\");\n this._settings = e, this._jsonService = new r([\"application/jwk-set+json\"]);\n }\n\n return t.prototype.getMetadata = function t() {\n var e = this;\n return this._settings.metadata ? (i.Log.debug(\"MetadataService.getMetadata: Returning metadata from settings\"), Promise.resolve(this._settings.metadata)) : this.metadataUrl ? (i.Log.debug(\"MetadataService.getMetadata: getting metadata from\", this.metadataUrl), this._jsonService.getJson(this.metadataUrl).then(function (t) {\n return i.Log.debug(\"MetadataService.getMetadata: json received\"), e._settings.metadata = t, t;\n })) : (i.Log.error(\"MetadataService.getMetadata: No authority or metadataUrl configured on settings\"), Promise.reject(new Error(\"No authority or metadataUrl configured on settings\")));\n }, t.prototype.getIssuer = function t() {\n return this._getMetadataProperty(\"issuer\");\n }, t.prototype.getAuthorizationEndpoint = function t() {\n return this._getMetadataProperty(\"authorization_endpoint\");\n }, t.prototype.getUserInfoEndpoint = function t() {\n return this._getMetadataProperty(\"userinfo_endpoint\");\n }, t.prototype.getTokenEndpoint = function t() {\n var e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0];\n return this._getMetadataProperty(\"token_endpoint\", e);\n }, t.prototype.getCheckSessionIframe = function t() {\n return this._getMetadataProperty(\"check_session_iframe\", !0);\n }, t.prototype.getEndSessionEndpoint = function t() {\n return this._getMetadataProperty(\"end_session_endpoint\", !0);\n }, t.prototype.getRevocationEndpoint = function t() {\n return this._getMetadataProperty(\"revocation_endpoint\", !0);\n }, t.prototype.getKeysEndpoint = function t() {\n return this._getMetadataProperty(\"jwks_uri\", !0);\n }, t.prototype._getMetadataProperty = function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];\n return i.Log.debug(\"MetadataService.getMetadataProperty for: \" + e), this.getMetadata().then(function (t) {\n if (i.Log.debug(\"MetadataService.getMetadataProperty: metadata recieved\"), void 0 === t[e]) {\n if (!0 === r) return void i.Log.warn(\"MetadataService.getMetadataProperty: Metadata does not contain optional property \" + e);\n throw i.Log.error(\"MetadataService.getMetadataProperty: Metadata does not contain property \" + e), new Error(\"Metadata does not contain property \" + e);\n }\n\n return t[e];\n });\n }, t.prototype.getSigningKeys = function t() {\n var e = this;\n return this._settings.signingKeys ? (i.Log.debug(\"MetadataService.getSigningKeys: Returning signingKeys from settings\"), Promise.resolve(this._settings.signingKeys)) : this._getMetadataProperty(\"jwks_uri\").then(function (t) {\n return i.Log.debug(\"MetadataService.getSigningKeys: jwks_uri received\", t), e._jsonService.getJson(t).then(function (t) {\n if (i.Log.debug(\"MetadataService.getSigningKeys: key set received\", t), !t.keys) throw i.Log.error(\"MetadataService.getSigningKeys: Missing keys on keyset\"), new Error(\"Missing keys on keyset\");\n return e._settings.signingKeys = t.keys, e._settings.signingKeys;\n });\n });\n }, n(t, [{\n key: \"metadataUrl\",\n get: function t() {\n return this._metadataUrl || (this._settings.metadataUrl ? this._metadataUrl = this._settings.metadataUrl : (this._metadataUrl = this._settings.authority, this._metadataUrl && this._metadataUrl.indexOf(\".well-known/openid-configuration\") < 0 && (\"/\" !== this._metadataUrl[this._metadataUrl.length - 1] && (this._metadataUrl += \"/\"), this._metadataUrl += \".well-known/openid-configuration\"))), this._metadataUrl;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UrlUtility = void 0;\n var n = r(0),\n i = r(1);\n\n e.UrlUtility = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.addQueryParam = function t(e, r, n) {\n return e.indexOf(\"?\") < 0 && (e += \"?\"), \"?\" !== e[e.length - 1] && (e += \"&\"), e += encodeURIComponent(r), e += \"=\", e += encodeURIComponent(n);\n }, t.parseUrlFragment = function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"#\",\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.Global;\n \"string\" != typeof e && (e = o.location.href);\n var s = e.lastIndexOf(r);\n s >= 0 && (e = e.substr(s + 1)), \"?\" === r && (s = e.indexOf(\"#\")) >= 0 && (e = e.substr(0, s));\n\n for (var a, u = {}, c = /([^&=]+)=([^&]*)/g, h = 0; a = c.exec(e);) {\n if (u[decodeURIComponent(a[1])] = decodeURIComponent(a[2]), h++ > 50) return n.Log.error(\"UrlUtility.parseUrlFragment: response exceeded expected number of parameters\", e), {\n error: \"Response exceeded expected number of parameters\"\n };\n }\n\n for (var l in u) {\n return u;\n }\n\n return {};\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.JoseUtil = void 0;\n\n var n = r(25),\n i = function o(t) {\n return t && t.__esModule ? t : {\n \"default\": t\n };\n }(r(32));\n\n e.JoseUtil = (0, i[\"default\"])({\n jws: n.jws,\n KeyUtil: n.KeyUtil,\n X509: n.X509,\n crypto: n.crypto,\n hextob64u: n.hextob64u,\n b64tohex: n.b64tohex,\n AllowedSigningAlgs: n.AllowedSigningAlgs\n });\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.OidcClientSettings = void 0;\n\n var n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n },\n i = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n o = r(0),\n s = r(6),\n a = r(23),\n u = r(2);\n\n var c = \"id_token\",\n h = \"openid\",\n l = 900,\n f = 300;\n\n e.OidcClientSettings = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.authority,\n i = e.metadataUrl,\n o = e.metadata,\n d = e.signingKeys,\n g = e.client_id,\n p = e.client_secret,\n v = e.response_type,\n y = void 0 === v ? c : v,\n m = e.scope,\n _ = void 0 === m ? h : m,\n S = e.redirect_uri,\n F = e.post_logout_redirect_uri,\n b = e.prompt,\n w = e.display,\n E = e.max_age,\n x = e.ui_locales,\n k = e.acr_values,\n A = e.resource,\n P = e.response_mode,\n C = e.filterProtocolClaims,\n T = void 0 === C || C,\n R = e.loadUserInfo,\n I = void 0 === R || R,\n D = e.staleStateAge,\n U = void 0 === D ? l : D,\n L = e.clockSkew,\n B = void 0 === L ? f : L,\n N = e.userInfoJwtIssuer,\n O = void 0 === N ? \"OP\" : N,\n j = e.stateStore,\n H = void 0 === j ? new s.WebStorageStateStore() : j,\n M = e.ResponseValidatorCtor,\n K = void 0 === M ? a.ResponseValidator : M,\n V = e.MetadataServiceCtor,\n q = void 0 === V ? u.MetadataService : V,\n J = e.extraQueryParams,\n W = void 0 === J ? {} : J,\n z = e.extraTokenParams,\n Y = void 0 === z ? {} : z;\n\n !function G(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._authority = r, this._metadataUrl = i, this._metadata = o, this._signingKeys = d, this._client_id = g, this._client_secret = p, this._response_type = y, this._scope = _, this._redirect_uri = S, this._post_logout_redirect_uri = F, this._prompt = b, this._display = w, this._max_age = E, this._ui_locales = x, this._acr_values = k, this._resource = A, this._response_mode = P, this._filterProtocolClaims = !!T, this._loadUserInfo = !!I, this._staleStateAge = U, this._clockSkew = B, this._userInfoJwtIssuer = O, this._stateStore = H, this._validator = new K(this), this._metadataService = new q(this), this._extraQueryParams = \"object\" === (void 0 === W ? \"undefined\" : n(W)) ? W : {}, this._extraTokenParams = \"object\" === (void 0 === Y ? \"undefined\" : n(Y)) ? Y : {};\n }\n\n return i(t, [{\n key: \"client_id\",\n get: function t() {\n return this._client_id;\n },\n set: function t(e) {\n if (this._client_id) throw o.Log.error(\"OidcClientSettings.set_client_id: client_id has already been assigned.\"), new Error(\"client_id has already been assigned.\");\n this._client_id = e;\n }\n }, {\n key: \"client_secret\",\n get: function t() {\n return this._client_secret;\n }\n }, {\n key: \"response_type\",\n get: function t() {\n return this._response_type;\n }\n }, {\n key: \"scope\",\n get: function t() {\n return this._scope;\n }\n }, {\n key: \"redirect_uri\",\n get: function t() {\n return this._redirect_uri;\n }\n }, {\n key: \"post_logout_redirect_uri\",\n get: function t() {\n return this._post_logout_redirect_uri;\n }\n }, {\n key: \"prompt\",\n get: function t() {\n return this._prompt;\n }\n }, {\n key: \"display\",\n get: function t() {\n return this._display;\n }\n }, {\n key: \"max_age\",\n get: function t() {\n return this._max_age;\n }\n }, {\n key: \"ui_locales\",\n get: function t() {\n return this._ui_locales;\n }\n }, {\n key: \"acr_values\",\n get: function t() {\n return this._acr_values;\n }\n }, {\n key: \"resource\",\n get: function t() {\n return this._resource;\n }\n }, {\n key: \"response_mode\",\n get: function t() {\n return this._response_mode;\n }\n }, {\n key: \"authority\",\n get: function t() {\n return this._authority;\n },\n set: function t(e) {\n if (this._authority) throw o.Log.error(\"OidcClientSettings.set_authority: authority has already been assigned.\"), new Error(\"authority has already been assigned.\");\n this._authority = e;\n }\n }, {\n key: \"metadataUrl\",\n get: function t() {\n return this._metadataUrl || (this._metadataUrl = this.authority, this._metadataUrl && this._metadataUrl.indexOf(\".well-known/openid-configuration\") < 0 && (\"/\" !== this._metadataUrl[this._metadataUrl.length - 1] && (this._metadataUrl += \"/\"), this._metadataUrl += \".well-known/openid-configuration\")), this._metadataUrl;\n }\n }, {\n key: \"metadata\",\n get: function t() {\n return this._metadata;\n },\n set: function t(e) {\n this._metadata = e;\n }\n }, {\n key: \"signingKeys\",\n get: function t() {\n return this._signingKeys;\n },\n set: function t(e) {\n this._signingKeys = e;\n }\n }, {\n key: \"filterProtocolClaims\",\n get: function t() {\n return this._filterProtocolClaims;\n }\n }, {\n key: \"loadUserInfo\",\n get: function t() {\n return this._loadUserInfo;\n }\n }, {\n key: \"staleStateAge\",\n get: function t() {\n return this._staleStateAge;\n }\n }, {\n key: \"clockSkew\",\n get: function t() {\n return this._clockSkew;\n }\n }, {\n key: \"userInfoJwtIssuer\",\n get: function t() {\n return this._userInfoJwtIssuer;\n }\n }, {\n key: \"stateStore\",\n get: function t() {\n return this._stateStore;\n }\n }, {\n key: \"validator\",\n get: function t() {\n return this._validator;\n }\n }, {\n key: \"metadataService\",\n get: function t() {\n return this._metadataService;\n }\n }, {\n key: \"extraQueryParams\",\n get: function t() {\n return this._extraQueryParams;\n },\n set: function t(e) {\n \"object\" === (void 0 === e ? \"undefined\" : n(e)) ? this._extraQueryParams = e : this._extraQueryParams = {};\n }\n }, {\n key: \"extraTokenParams\",\n get: function t() {\n return this._extraTokenParams;\n },\n set: function t(e) {\n \"object\" === (void 0 === e ? \"undefined\" : n(e)) ? this._extraTokenParams = e : this._extraTokenParams = {};\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.WebStorageStateStore = void 0;\n var n = r(0),\n i = r(1);\n\n e.WebStorageStateStore = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.prefix,\n n = void 0 === r ? \"oidc.\" : r,\n o = e.store,\n s = void 0 === o ? i.Global.localStorage : o;\n !function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._store = s, this._prefix = n;\n }\n\n return t.prototype.set = function t(e, r) {\n return n.Log.debug(\"WebStorageStateStore.set\", e), e = this._prefix + e, this._store.setItem(e, r), Promise.resolve();\n }, t.prototype.get = function t(e) {\n n.Log.debug(\"WebStorageStateStore.get\", e), e = this._prefix + e;\n\n var r = this._store.getItem(e);\n\n return Promise.resolve(r);\n }, t.prototype.remove = function t(e) {\n n.Log.debug(\"WebStorageStateStore.remove\", e), e = this._prefix + e;\n\n var r = this._store.getItem(e);\n\n return this._store.removeItem(e), Promise.resolve(r);\n }, t.prototype.getAllKeys = function t() {\n n.Log.debug(\"WebStorageStateStore.getAllKeys\");\n\n for (var e = [], r = 0; r < this._store.length; r++) {\n var i = this._store.key(r);\n\n 0 === i.indexOf(this._prefix) && e.push(i.substr(this._prefix.length));\n }\n\n return Promise.resolve(e);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.JsonService = void 0;\n var n = r(0),\n i = r(1);\n\n e.JsonService = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null,\n r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : i.Global.XMLHttpRequest,\n n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null;\n !function o(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), e && Array.isArray(e) ? this._contentTypes = e.slice() : this._contentTypes = [], this._contentTypes.push(\"application/json\"), n && this._contentTypes.push(\"application/jwt\"), this._XMLHttpRequest = r, this._jwtHandler = n;\n }\n\n return t.prototype.getJson = function t(e, r) {\n var i = this;\n if (!e) throw n.Log.error(\"JsonService.getJson: No url passed\"), new Error(\"url\");\n return n.Log.debug(\"JsonService.getJson, url: \", e), new Promise(function (t, o) {\n var s = new i._XMLHttpRequest();\n s.open(\"GET\", e);\n var a = i._contentTypes,\n u = i._jwtHandler;\n s.onload = function () {\n if (n.Log.debug(\"JsonService.getJson: HTTP response received, status\", s.status), 200 === s.status) {\n var r = s.getResponseHeader(\"Content-Type\");\n\n if (r) {\n var i = a.find(function (t) {\n if (r.startsWith(t)) return !0;\n });\n if (\"application/jwt\" == i) return void u(s).then(t, o);\n if (i) try {\n return void t(JSON.parse(s.responseText));\n } catch (t) {\n return n.Log.error(\"JsonService.getJson: Error parsing JSON response\", t.message), void o(t);\n }\n }\n\n o(Error(\"Invalid response Content-Type: \" + r + \", from URL: \" + e));\n } else o(Error(s.statusText + \" (\" + s.status + \")\"));\n }, s.onerror = function () {\n n.Log.error(\"JsonService.getJson: network error\"), o(Error(\"Network Error\"));\n }, r && (n.Log.debug(\"JsonService.getJson: token passed, setting Authorization header\"), s.setRequestHeader(\"Authorization\", \"Bearer \" + r)), s.send();\n });\n }, t.prototype.postForm = function t(e, r) {\n var i = this;\n if (!e) throw n.Log.error(\"JsonService.postForm: No url passed\"), new Error(\"url\");\n return n.Log.debug(\"JsonService.postForm, url: \", e), new Promise(function (t, o) {\n var s = new i._XMLHttpRequest();\n s.open(\"POST\", e);\n var a = i._contentTypes;\n s.onload = function () {\n if (n.Log.debug(\"JsonService.postForm: HTTP response received, status\", s.status), 200 !== s.status) {\n if (400 === s.status) if (i = s.getResponseHeader(\"Content-Type\")) if (a.find(function (t) {\n if (i.startsWith(t)) return !0;\n })) try {\n var r = JSON.parse(s.responseText);\n if (r && r.error) return n.Log.error(\"JsonService.postForm: Error from server: \", r.error), void o(new Error(r.error));\n } catch (t) {\n return n.Log.error(\"JsonService.postForm: Error parsing JSON response\", t.message), void o(t);\n }\n o(Error(s.statusText + \" (\" + s.status + \")\"));\n } else {\n var i;\n if ((i = s.getResponseHeader(\"Content-Type\")) && a.find(function (t) {\n if (i.startsWith(t)) return !0;\n })) try {\n return void t(JSON.parse(s.responseText));\n } catch (t) {\n return n.Log.error(\"JsonService.postForm: Error parsing JSON response\", t.message), void o(t);\n }\n o(Error(\"Invalid response Content-Type: \" + i + \", from URL: \" + e));\n }\n }, s.onerror = function () {\n n.Log.error(\"JsonService.postForm: network error\"), o(Error(\"Network Error\"));\n };\n var u = \"\";\n\n for (var c in r) {\n var h = r[c];\n h && (u.length > 0 && (u += \"&\"), u += encodeURIComponent(c), u += \"=\", u += encodeURIComponent(h));\n }\n\n s.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\"), s.send(u);\n });\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.State = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = function s(t) {\n return t && t.__esModule ? t : {\n \"default\": t\n };\n }(r(14));\n\n e.State = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.id,\n n = e.data,\n i = e.created,\n s = e.request_type;\n !function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._id = r || (0, o[\"default\"])(), this._data = n, this._created = \"number\" == typeof i && i > 0 ? i : parseInt(Date.now() / 1e3), this._request_type = s;\n }\n\n return t.prototype.toStorageString = function t() {\n return i.Log.debug(\"State.toStorageString\"), JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type\n });\n }, t.fromStorageString = function e(r) {\n return i.Log.debug(\"State.fromStorageString\"), new t(JSON.parse(r));\n }, t.clearStaleState = function e(r, n) {\n var o = Date.now() / 1e3 - n;\n return r.getAllKeys().then(function (e) {\n i.Log.debug(\"State.clearStaleState: got keys\", e);\n\n for (var n = [], s = function s(a) {\n var c = e[a];\n u = r.get(c).then(function (e) {\n var n = !1;\n if (e) try {\n var s = t.fromStorageString(e);\n i.Log.debug(\"State.clearStaleState: got item from key: \", c, s.created), s.created <= o && (n = !0);\n } catch (t) {\n i.Log.error(\"State.clearStaleState: Error parsing state for key\", c, t.message), n = !0;\n } else i.Log.debug(\"State.clearStaleState: no item in storage for key: \", c), n = !0;\n if (n) return i.Log.debug(\"State.clearStaleState: removed item for key: \", c), r.remove(c);\n }), n.push(u);\n }, a = 0; a < e.length; a++) {\n var u;\n s(a);\n }\n\n return i.Log.debug(\"State.clearStaleState: waiting on promise count:\", n.length), Promise.all(n);\n });\n }, n(t, [{\n key: \"id\",\n get: function t() {\n return this._id;\n }\n }, {\n key: \"data\",\n get: function t() {\n return this._data;\n }\n }, {\n key: \"created\",\n get: function t() {\n return this._created;\n }\n }, {\n key: \"request_type\",\n get: function t() {\n return this._request_type;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.OidcClient = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(5),\n s = r(11),\n a = r(12),\n u = r(36),\n c = r(37),\n h = r(38),\n l = r(13),\n f = r(8);\n\n e.OidcClient = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n !function r(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), e instanceof o.OidcClientSettings ? this._settings = e : this._settings = new o.OidcClientSettings(e);\n }\n\n return t.prototype.createSigninRequest = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.response_type,\n o = r.scope,\n s = r.redirect_uri,\n u = r.data,\n c = r.state,\n h = r.prompt,\n l = r.display,\n f = r.max_age,\n d = r.ui_locales,\n g = r.id_token_hint,\n p = r.login_hint,\n v = r.acr_values,\n y = r.resource,\n m = r.request,\n _ = r.request_uri,\n S = r.response_mode,\n F = r.extraQueryParams,\n b = r.extraTokenParams,\n w = r.request_type,\n E = r.skipUserInfo,\n x = arguments[1];\n i.Log.debug(\"OidcClient.createSigninRequest\");\n var k = this._settings.client_id;\n n = n || this._settings.response_type, o = o || this._settings.scope, s = s || this._settings.redirect_uri, h = h || this._settings.prompt, l = l || this._settings.display, f = f || this._settings.max_age, d = d || this._settings.ui_locales, v = v || this._settings.acr_values, y = y || this._settings.resource, S = S || this._settings.response_mode, F = F || this._settings.extraQueryParams, b = b || this._settings.extraTokenParams;\n var A = this._settings.authority;\n return a.SigninRequest.isCode(n) && \"code\" !== n ? Promise.reject(new Error(\"OpenID Connect hybrid flow is not supported\")) : this._metadataService.getAuthorizationEndpoint().then(function (t) {\n i.Log.debug(\"OidcClient.createSigninRequest: Received authorization endpoint\", t);\n var r = new a.SigninRequest({\n url: t,\n client_id: k,\n redirect_uri: s,\n response_type: n,\n scope: o,\n data: u || c,\n authority: A,\n prompt: h,\n display: l,\n max_age: f,\n ui_locales: d,\n id_token_hint: g,\n login_hint: p,\n acr_values: v,\n resource: y,\n request: m,\n request_uri: _,\n extraQueryParams: F,\n extraTokenParams: b,\n request_type: w,\n response_mode: S,\n client_secret: e._settings.client_secret,\n skipUserInfo: E\n }),\n P = r.state;\n return (x = x || e._stateStore).set(P.id, P.toStorageString()).then(function () {\n return r;\n });\n });\n }, t.prototype.readSigninResponseState = function t(e, r) {\n var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];\n i.Log.debug(\"OidcClient.readSigninResponseState\");\n var o = \"query\" === this._settings.response_mode || !this._settings.response_mode && a.SigninRequest.isCode(this._settings.response_type) ? \"?\" : \"#\",\n s = new u.SigninResponse(e, o);\n return s.state ? (r = r || this._stateStore, (n ? r.remove.bind(r) : r.get.bind(r))(s.state).then(function (t) {\n if (!t) throw i.Log.error(\"OidcClient.readSigninResponseState: No matching state found in storage\"), new Error(\"No matching state found in storage\");\n return {\n state: l.SigninState.fromStorageString(t),\n response: s\n };\n })) : (i.Log.error(\"OidcClient.readSigninResponseState: No state in response\"), Promise.reject(new Error(\"No state in response\")));\n }, t.prototype.processSigninResponse = function t(e, r) {\n var n = this;\n return i.Log.debug(\"OidcClient.processSigninResponse\"), this.readSigninResponseState(e, r, !0).then(function (t) {\n var e = t.state,\n r = t.response;\n return i.Log.debug(\"OidcClient.processSigninResponse: Received state from storage; validating response\"), n._validator.validateSigninResponse(e, r);\n });\n }, t.prototype.createSignoutRequest = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.id_token_hint,\n o = r.data,\n s = r.state,\n a = r.post_logout_redirect_uri,\n u = r.extraQueryParams,\n h = r.request_type,\n l = arguments[1];\n return i.Log.debug(\"OidcClient.createSignoutRequest\"), a = a || this._settings.post_logout_redirect_uri, u = u || this._settings.extraQueryParams, this._metadataService.getEndSessionEndpoint().then(function (t) {\n if (!t) throw i.Log.error(\"OidcClient.createSignoutRequest: No end session endpoint url returned\"), new Error(\"no end session endpoint\");\n i.Log.debug(\"OidcClient.createSignoutRequest: Received end session endpoint\", t);\n var r = new c.SignoutRequest({\n url: t,\n id_token_hint: n,\n post_logout_redirect_uri: a,\n data: o || s,\n extraQueryParams: u,\n request_type: h\n }),\n f = r.state;\n return f && (i.Log.debug(\"OidcClient.createSignoutRequest: Signout request has state to persist\"), (l = l || e._stateStore).set(f.id, f.toStorageString())), r;\n });\n }, t.prototype.readSignoutResponseState = function t(e, r) {\n var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2];\n i.Log.debug(\"OidcClient.readSignoutResponseState\");\n var o = new h.SignoutResponse(e);\n if (!o.state) return i.Log.debug(\"OidcClient.readSignoutResponseState: No state in response\"), o.error ? (i.Log.warn(\"OidcClient.readSignoutResponseState: Response was error: \", o.error), Promise.reject(new s.ErrorResponse(o))) : Promise.resolve({\n undefined: void 0,\n response: o\n });\n var a = o.state;\n return r = r || this._stateStore, (n ? r.remove.bind(r) : r.get.bind(r))(a).then(function (t) {\n if (!t) throw i.Log.error(\"OidcClient.readSignoutResponseState: No matching state found in storage\"), new Error(\"No matching state found in storage\");\n return {\n state: f.State.fromStorageString(t),\n response: o\n };\n });\n }, t.prototype.processSignoutResponse = function t(e, r) {\n var n = this;\n return i.Log.debug(\"OidcClient.processSignoutResponse\"), this.readSignoutResponseState(e, r, !0).then(function (t) {\n var e = t.state,\n r = t.response;\n return e ? (i.Log.debug(\"OidcClient.processSignoutResponse: Received state from storage; validating response\"), n._validator.validateSignoutResponse(e, r)) : (i.Log.debug(\"OidcClient.processSignoutResponse: No state from storage; skipping validating response\"), r);\n });\n }, t.prototype.clearStaleState = function t(e) {\n return i.Log.debug(\"OidcClient.clearStaleState\"), e = e || this._stateStore, f.State.clearStaleState(e, this.settings.staleStateAge);\n }, n(t, [{\n key: \"_stateStore\",\n get: function t() {\n return this.settings.stateStore;\n }\n }, {\n key: \"_validator\",\n get: function t() {\n return this.settings.validator;\n }\n }, {\n key: \"_metadataService\",\n get: function t() {\n return this.settings.metadataService;\n }\n }, {\n key: \"settings\",\n get: function t() {\n return this._settings;\n }\n }, {\n key: \"metadataService\",\n get: function t() {\n return this._metadataService;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.TokenClient = void 0;\n var n = r(7),\n i = r(2),\n o = r(0);\n\n e.TokenClient = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.JsonService,\n s = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.MetadataService;\n if (function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !e) throw o.Log.error(\"TokenClient.ctor: No settings passed\"), new Error(\"settings\");\n this._settings = e, this._jsonService = new r(), this._metadataService = new s(this._settings);\n }\n\n return t.prototype.exchangeCode = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return (r = Object.assign({}, r)).grant_type = r.grant_type || \"authorization_code\", r.client_id = r.client_id || this._settings.client_id, r.redirect_uri = r.redirect_uri || this._settings.redirect_uri, r.code ? r.redirect_uri ? r.code_verifier ? r.client_id ? this._metadataService.getTokenEndpoint(!1).then(function (t) {\n return o.Log.debug(\"TokenClient.exchangeCode: Received token endpoint\"), e._jsonService.postForm(t, r).then(function (t) {\n return o.Log.debug(\"TokenClient.exchangeCode: response received\"), t;\n });\n }) : (o.Log.error(\"TokenClient.exchangeCode: No client_id passed\"), Promise.reject(new Error(\"A client_id is required\"))) : (o.Log.error(\"TokenClient.exchangeCode: No code_verifier passed\"), Promise.reject(new Error(\"A code_verifier is required\"))) : (o.Log.error(\"TokenClient.exchangeCode: No redirect_uri passed\"), Promise.reject(new Error(\"A redirect_uri is required\"))) : (o.Log.error(\"TokenClient.exchangeCode: No code passed\"), Promise.reject(new Error(\"A code is required\")));\n }, t.prototype.exchangeRefreshToken = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return (r = Object.assign({}, r)).grant_type = r.grant_type || \"refresh_token\", r.client_id = r.client_id || this._settings.client_id, r.client_secret = r.client_secret || this._settings.client_secret, r.refresh_token ? r.client_id ? this._metadataService.getTokenEndpoint(!1).then(function (t) {\n return o.Log.debug(\"TokenClient.exchangeRefreshToken: Received token endpoint\"), e._jsonService.postForm(t, r).then(function (t) {\n return o.Log.debug(\"TokenClient.exchangeRefreshToken: response received\"), t;\n });\n }) : (o.Log.error(\"TokenClient.exchangeRefreshToken: No client_id passed\"), Promise.reject(new Error(\"A client_id is required\"))) : (o.Log.error(\"TokenClient.exchangeRefreshToken: No refresh_token passed\"), Promise.reject(new Error(\"A refresh_token is required\")));\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ErrorResponse = void 0;\n var n = r(0);\n\n e.ErrorResponse = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n i = r.error,\n o = r.error_description,\n s = r.error_uri,\n a = r.state,\n u = r.session_state;\n if (function c(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), !i) throw n.Log.error(\"No error passed to ErrorResponse\"), new Error(\"error\");\n\n var h = function l(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, t.call(this, o || i));\n\n return h.name = \"ErrorResponse\", h.error = i, h.error_description = o, h.error_uri = s, h.state = a, h.session_state = u, h;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e;\n }(Error);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SigninRequest = void 0;\n var n = r(0),\n i = r(3),\n o = r(13);\n\n e.SigninRequest = function () {\n function t(e) {\n var r = e.url,\n s = e.client_id,\n a = e.redirect_uri,\n u = e.response_type,\n c = e.scope,\n h = e.authority,\n l = e.data,\n f = e.prompt,\n d = e.display,\n g = e.max_age,\n p = e.ui_locales,\n v = e.id_token_hint,\n y = e.login_hint,\n m = e.acr_values,\n _ = e.resource,\n S = e.response_mode,\n F = e.request,\n b = e.request_uri,\n w = e.extraQueryParams,\n E = e.request_type,\n x = e.client_secret,\n k = e.extraTokenParams,\n A = e.skipUserInfo;\n if (function P(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !r) throw n.Log.error(\"SigninRequest.ctor: No url passed\"), new Error(\"url\");\n if (!s) throw n.Log.error(\"SigninRequest.ctor: No client_id passed\"), new Error(\"client_id\");\n if (!a) throw n.Log.error(\"SigninRequest.ctor: No redirect_uri passed\"), new Error(\"redirect_uri\");\n if (!u) throw n.Log.error(\"SigninRequest.ctor: No response_type passed\"), new Error(\"response_type\");\n if (!c) throw n.Log.error(\"SigninRequest.ctor: No scope passed\"), new Error(\"scope\");\n if (!h) throw n.Log.error(\"SigninRequest.ctor: No authority passed\"), new Error(\"authority\");\n var C = t.isOidc(u),\n T = t.isCode(u);\n S || (S = t.isCode(u) ? \"query\" : null), this.state = new o.SigninState({\n nonce: C,\n data: l,\n client_id: s,\n authority: h,\n redirect_uri: a,\n code_verifier: T,\n request_type: E,\n response_mode: S,\n client_secret: x,\n scope: c,\n extraTokenParams: k,\n skipUserInfo: A\n }), r = i.UrlUtility.addQueryParam(r, \"client_id\", s), r = i.UrlUtility.addQueryParam(r, \"redirect_uri\", a), r = i.UrlUtility.addQueryParam(r, \"response_type\", u), r = i.UrlUtility.addQueryParam(r, \"scope\", c), r = i.UrlUtility.addQueryParam(r, \"state\", this.state.id), C && (r = i.UrlUtility.addQueryParam(r, \"nonce\", this.state.nonce)), T && (r = i.UrlUtility.addQueryParam(r, \"code_challenge\", this.state.code_challenge), r = i.UrlUtility.addQueryParam(r, \"code_challenge_method\", \"S256\"));\n var R = {\n prompt: f,\n display: d,\n max_age: g,\n ui_locales: p,\n id_token_hint: v,\n login_hint: y,\n acr_values: m,\n resource: _,\n request: F,\n request_uri: b,\n response_mode: S\n };\n\n for (var I in R) {\n R[I] && (r = i.UrlUtility.addQueryParam(r, I, R[I]));\n }\n\n for (var D in w) {\n r = i.UrlUtility.addQueryParam(r, D, w[D]);\n }\n\n this.url = r;\n }\n\n return t.isOidc = function t(e) {\n return !!e.split(/\\s+/g).filter(function (t) {\n return \"id_token\" === t;\n })[0];\n }, t.isOAuth = function t(e) {\n return !!e.split(/\\s+/g).filter(function (t) {\n return \"token\" === t;\n })[0];\n }, t.isCode = function t(e) {\n return !!e.split(/\\s+/g).filter(function (t) {\n return \"code\" === t;\n })[0];\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SigninState = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(8),\n s = r(4),\n a = function u(t) {\n return t && t.__esModule ? t : {\n \"default\": t\n };\n }(r(14));\n\n e.SigninState = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.nonce,\n i = r.authority,\n o = r.client_id,\n u = r.redirect_uri,\n c = r.code_verifier,\n h = r.response_mode,\n l = r.client_secret,\n f = r.scope,\n d = r.extraTokenParams,\n g = r.skipUserInfo;\n !function p(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n\n var v = function y(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, t.call(this, arguments[0]));\n\n if (!0 === n ? v._nonce = (0, a[\"default\"])() : n && (v._nonce = n), !0 === c ? v._code_verifier = (0, a[\"default\"])() + (0, a[\"default\"])() + (0, a[\"default\"])() : c && (v._code_verifier = c), v.code_verifier) {\n var m = s.JoseUtil.hashString(v.code_verifier, \"SHA256\");\n v._code_challenge = s.JoseUtil.hexToBase64Url(m);\n }\n\n return v._redirect_uri = u, v._authority = i, v._client_id = o, v._response_mode = h, v._client_secret = l, v._scope = f, v._extraTokenParams = d, v._skipUserInfo = g, v;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.toStorageString = function t() {\n return i.Log.debug(\"SigninState.toStorageString\"), JSON.stringify({\n id: this.id,\n data: this.data,\n created: this.created,\n request_type: this.request_type,\n nonce: this.nonce,\n code_verifier: this.code_verifier,\n redirect_uri: this.redirect_uri,\n authority: this.authority,\n client_id: this.client_id,\n response_mode: this.response_mode,\n client_secret: this.client_secret,\n scope: this.scope,\n extraTokenParams: this.extraTokenParams,\n skipUserInfo: this.skipUserInfo\n });\n }, e.fromStorageString = function t(r) {\n return i.Log.debug(\"SigninState.fromStorageString\"), new e(JSON.parse(r));\n }, n(e, [{\n key: \"nonce\",\n get: function t() {\n return this._nonce;\n }\n }, {\n key: \"authority\",\n get: function t() {\n return this._authority;\n }\n }, {\n key: \"client_id\",\n get: function t() {\n return this._client_id;\n }\n }, {\n key: \"redirect_uri\",\n get: function t() {\n return this._redirect_uri;\n }\n }, {\n key: \"code_verifier\",\n get: function t() {\n return this._code_verifier;\n }\n }, {\n key: \"code_challenge\",\n get: function t() {\n return this._code_challenge;\n }\n }, {\n key: \"response_mode\",\n get: function t() {\n return this._response_mode;\n }\n }, {\n key: \"client_secret\",\n get: function t() {\n return this._client_secret;\n }\n }, {\n key: \"scope\",\n get: function t() {\n return this._scope;\n }\n }, {\n key: \"extraTokenParams\",\n get: function t() {\n return this._extraTokenParams;\n }\n }, {\n key: \"skipUserInfo\",\n get: function t() {\n return this._skipUserInfo;\n }\n }]), e;\n }(o.State);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e[\"default\"] = function n() {\n return (0, i[\"default\"])().replace(/-/g, \"\");\n };\n\n var i = function o(t) {\n return t && t.__esModule ? t : {\n \"default\": t\n };\n }(r(33));\n\n t.exports = e[\"default\"];\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.User = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.User = function () {\n function t(e) {\n var r = e.id_token,\n n = e.session_state,\n i = e.access_token,\n o = e.refresh_token,\n s = e.token_type,\n a = e.scope,\n u = e.profile,\n c = e.expires_at,\n h = e.state;\n !function l(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this.id_token = r, this.session_state = n, this.access_token = i, this.refresh_token = o, this.token_type = s, this.scope = a, this.profile = u, this.expires_at = c, this.state = h;\n }\n\n return t.prototype.toStorageString = function t() {\n return i.Log.debug(\"User.toStorageString\"), JSON.stringify({\n id_token: this.id_token,\n session_state: this.session_state,\n access_token: this.access_token,\n refresh_token: this.refresh_token,\n token_type: this.token_type,\n scope: this.scope,\n profile: this.profile,\n expires_at: this.expires_at\n });\n }, t.fromStorageString = function e(r) {\n return i.Log.debug(\"User.fromStorageString\"), new t(JSON.parse(r));\n }, n(t, [{\n key: \"expires_in\",\n get: function t() {\n if (this.expires_at) {\n var e = parseInt(Date.now() / 1e3);\n return this.expires_at - e;\n }\n },\n set: function t(e) {\n var r = parseInt(e);\n\n if (\"number\" == typeof r && r > 0) {\n var n = parseInt(Date.now() / 1e3);\n this.expires_at = n + r;\n }\n }\n }, {\n key: \"expired\",\n get: function t() {\n var e = this.expires_in;\n if (void 0 !== e) return e <= 0;\n }\n }, {\n key: \"scopes\",\n get: function t() {\n return (this.scope || \"\").split(\" \");\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.AccessTokenEvents = void 0;\n var n = r(0),\n i = r(48);\n var o = 60;\n\n e.AccessTokenEvents = function () {\n function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.accessTokenExpiringNotificationTime,\n n = void 0 === r ? o : r,\n s = e.accessTokenExpiringTimer,\n a = void 0 === s ? new i.Timer(\"Access token expiring\") : s,\n u = e.accessTokenExpiredTimer,\n c = void 0 === u ? new i.Timer(\"Access token expired\") : u;\n !function h(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._accessTokenExpiringNotificationTime = n, this._accessTokenExpiring = a, this._accessTokenExpired = c;\n }\n\n return t.prototype.load = function t(e) {\n if (e.access_token && void 0 !== e.expires_in) {\n var r = e.expires_in;\n\n if (n.Log.debug(\"AccessTokenEvents.load: access token present, remaining duration:\", r), r > 0) {\n var i = r - this._accessTokenExpiringNotificationTime;\n i <= 0 && (i = 1), n.Log.debug(\"AccessTokenEvents.load: registering expiring timer in:\", i), this._accessTokenExpiring.init(i);\n } else n.Log.debug(\"AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration.\"), this._accessTokenExpiring.cancel();\n\n var o = r + 1;\n n.Log.debug(\"AccessTokenEvents.load: registering expired timer in:\", o), this._accessTokenExpired.init(o);\n } else this._accessTokenExpiring.cancel(), this._accessTokenExpired.cancel();\n }, t.prototype.unload = function t() {\n n.Log.debug(\"AccessTokenEvents.unload: canceling existing access token timers\"), this._accessTokenExpiring.cancel(), this._accessTokenExpired.cancel();\n }, t.prototype.addAccessTokenExpiring = function t(e) {\n this._accessTokenExpiring.addHandler(e);\n }, t.prototype.removeAccessTokenExpiring = function t(e) {\n this._accessTokenExpiring.removeHandler(e);\n }, t.prototype.addAccessTokenExpired = function t(e) {\n this._accessTokenExpired.addHandler(e);\n }, t.prototype.removeAccessTokenExpired = function t(e) {\n this._accessTokenExpired.removeHandler(e);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Event = void 0;\n var n = r(0);\n\n e.Event = function () {\n function t(e) {\n !function r(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._name = e, this._callbacks = [];\n }\n\n return t.prototype.addHandler = function t(e) {\n this._callbacks.push(e);\n }, t.prototype.removeHandler = function t(e) {\n var r = this._callbacks.findIndex(function (t) {\n return t === e;\n });\n\n r >= 0 && this._callbacks.splice(r, 1);\n }, t.prototype.raise = function t() {\n n.Log.debug(\"Event: Raising event: \" + this._name);\n\n for (var e = 0; e < this._callbacks.length; e++) {\n var r;\n\n (r = this._callbacks)[e].apply(r, arguments);\n }\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SessionMonitor = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(19),\n s = r(1);\n\n e.SessionMonitor = function () {\n function t(e) {\n var r = this,\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.CheckSessionIFrame,\n a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : s.Global.timer;\n if (function u(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !e) throw i.Log.error(\"SessionMonitor.ctor: No user manager passed to SessionMonitor\"), new Error(\"userManager\");\n this._userManager = e, this._CheckSessionIFrameCtor = n, this._timer = a, this._userManager.events.addUserLoaded(this._start.bind(this)), this._userManager.events.addUserUnloaded(this._stop.bind(this)), this._userManager.getUser().then(function (t) {\n t ? r._start(t) : r._settings.monitorAnonymousSession && r._userManager.querySessionStatus().then(function (t) {\n var e = {\n session_state: t.session_state\n };\n t.sub && t.sid && (e.profile = {\n sub: t.sub,\n sid: t.sid\n }), r._start(e);\n })[\"catch\"](function (t) {\n i.Log.error(\"SessionMonitor ctor: error from querySessionStatus:\", t.message);\n });\n })[\"catch\"](function (t) {\n i.Log.error(\"SessionMonitor ctor: error from getUser:\", t.message);\n });\n }\n\n return t.prototype._start = function t(e) {\n var r = this,\n n = e.session_state;\n n && (e.profile ? (this._sub = e.profile.sub, this._sid = e.profile.sid, i.Log.debug(\"SessionMonitor._start: session_state:\", n, \", sub:\", this._sub)) : (this._sub = void 0, this._sid = void 0, i.Log.debug(\"SessionMonitor._start: session_state:\", n, \", anonymous user\")), this._checkSessionIFrame ? this._checkSessionIFrame.start(n) : this._metadataService.getCheckSessionIframe().then(function (t) {\n if (t) {\n i.Log.debug(\"SessionMonitor._start: Initializing check session iframe\");\n var e = r._client_id,\n o = r._checkSessionInterval,\n s = r._stopCheckSessionOnError;\n r._checkSessionIFrame = new r._CheckSessionIFrameCtor(r._callback.bind(r), e, t, o, s), r._checkSessionIFrame.load().then(function () {\n r._checkSessionIFrame.start(n);\n });\n } else i.Log.warn(\"SessionMonitor._start: No check session iframe found in the metadata\");\n })[\"catch\"](function (t) {\n i.Log.error(\"SessionMonitor._start: Error from getCheckSessionIframe:\", t.message);\n }));\n }, t.prototype._stop = function t() {\n var e = this;\n if (this._sub = void 0, this._sid = void 0, this._checkSessionIFrame && (i.Log.debug(\"SessionMonitor._stop\"), this._checkSessionIFrame.stop()), this._settings.monitorAnonymousSession) var r = this._timer.setInterval(function () {\n e._timer.clearInterval(r), e._userManager.querySessionStatus().then(function (t) {\n var r = {\n session_state: t.session_state\n };\n t.sub && t.sid && (r.profile = {\n sub: t.sub,\n sid: t.sid\n }), e._start(r);\n })[\"catch\"](function (t) {\n i.Log.error(\"SessionMonitor: error from querySessionStatus:\", t.message);\n });\n }, 1e3);\n }, t.prototype._callback = function t() {\n var e = this;\n\n this._userManager.querySessionStatus().then(function (t) {\n var r = !0;\n t ? t.sub === e._sub ? (r = !1, e._checkSessionIFrame.start(t.session_state), t.sid === e._sid ? i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:\", t.session_state) : (i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:\", t.session_state), e._userManager.events._raiseUserSessionChanged())) : i.Log.debug(\"SessionMonitor._callback: Different subject signed into OP:\", t.sub) : i.Log.debug(\"SessionMonitor._callback: Subject no longer signed into OP\"), r && (e._sub ? (i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed out event\"), e._userManager.events._raiseUserSignedOut()) : (i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed in event\"), e._userManager.events._raiseUserSignedIn()));\n })[\"catch\"](function (t) {\n e._sub && (i.Log.debug(\"SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event\", t.message), e._userManager.events._raiseUserSignedOut());\n });\n }, n(t, [{\n key: \"_settings\",\n get: function t() {\n return this._userManager.settings;\n }\n }, {\n key: \"_metadataService\",\n get: function t() {\n return this._userManager.metadataService;\n }\n }, {\n key: \"_client_id\",\n get: function t() {\n return this._settings.client_id;\n }\n }, {\n key: \"_checkSessionInterval\",\n get: function t() {\n return this._settings.checkSessionInterval;\n }\n }, {\n key: \"_stopCheckSessionOnError\",\n get: function t() {\n return this._settings.stopCheckSessionOnError;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CheckSessionIFrame = void 0;\n var n = r(0);\n var i = 2e3;\n\n e.CheckSessionIFrame = function () {\n function t(e, r, n, o) {\n var s = !(arguments.length > 4 && void 0 !== arguments[4]) || arguments[4];\n !function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._callback = e, this._client_id = r, this._url = n, this._interval = o || i, this._stopOnError = s;\n var u = n.indexOf(\"/\", n.indexOf(\"//\") + 2);\n this._frame_origin = n.substr(0, u), this._frame = window.document.createElement(\"iframe\"), this._frame.style.visibility = \"hidden\", this._frame.style.position = \"absolute\", this._frame.style.display = \"none\", this._frame.style.width = 0, this._frame.style.height = 0, this._frame.src = n;\n }\n\n return t.prototype.load = function t() {\n var e = this;\n return new Promise(function (t) {\n e._frame.onload = function () {\n t();\n }, window.document.body.appendChild(e._frame), e._boundMessageEvent = e._message.bind(e), window.addEventListener(\"message\", e._boundMessageEvent, !1);\n });\n }, t.prototype._message = function t(e) {\n e.origin === this._frame_origin && e.source === this._frame.contentWindow && (\"error\" === e.data ? (n.Log.error(\"CheckSessionIFrame: error message from check session op iframe\"), this._stopOnError && this.stop()) : \"changed\" === e.data ? (n.Log.debug(\"CheckSessionIFrame: changed message from check session op iframe\"), this.stop(), this._callback()) : n.Log.debug(\"CheckSessionIFrame: \" + e.data + \" message from check session op iframe\"));\n }, t.prototype.start = function t(e) {\n var r = this;\n\n if (this._session_state !== e) {\n n.Log.debug(\"CheckSessionIFrame.start\"), this.stop(), this._session_state = e;\n\n var i = function t() {\n r._frame.contentWindow.postMessage(r._client_id + \" \" + r._session_state, r._frame_origin);\n };\n\n i(), this._timer = window.setInterval(i, this._interval);\n }\n }, t.prototype.stop = function t() {\n this._session_state = null, this._timer && (n.Log.debug(\"CheckSessionIFrame.stop\"), window.clearInterval(this._timer), this._timer = null);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.TokenRevocationClient = void 0;\n var n = r(0),\n i = r(2),\n o = r(1);\n\n e.TokenRevocationClient = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.Global.XMLHttpRequest,\n s = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.MetadataService;\n if (function a(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !e) throw n.Log.error(\"TokenRevocationClient.ctor: No settings provided\"), new Error(\"No settings provided.\");\n this._settings = e, this._XMLHttpRequestCtor = r, this._metadataService = new s(this._settings);\n }\n\n return t.prototype.revoke = function t(e, r) {\n var i = this,\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : \"access_token\";\n if (!e) throw n.Log.error(\"TokenRevocationClient.revoke: No token provided\"), new Error(\"No token provided.\");\n if (\"access_token\" !== o && \"refresh_token\" != o) throw n.Log.error(\"TokenRevocationClient.revoke: Invalid token type\"), new Error(\"Invalid token type.\");\n return this._metadataService.getRevocationEndpoint().then(function (t) {\n if (t) {\n n.Log.debug(\"TokenRevocationClient.revoke: Revoking \" + o);\n var s = i._settings.client_id,\n a = i._settings.client_secret;\n return i._revoke(t, s, a, e, o);\n }\n\n if (r) throw n.Log.error(\"TokenRevocationClient.revoke: Revocation not supported\"), new Error(\"Revocation not supported\");\n });\n }, t.prototype._revoke = function t(e, r, i, o, s) {\n var a = this;\n return new Promise(function (t, u) {\n var c = new a._XMLHttpRequestCtor();\n c.open(\"POST\", e), c.onload = function () {\n n.Log.debug(\"TokenRevocationClient.revoke: HTTP response received, status\", c.status), 200 === c.status ? t() : u(Error(c.statusText + \" (\" + c.status + \")\"));\n }, c.onerror = function () {\n n.Log.debug(\"TokenRevocationClient.revoke: Network Error.\"), u(\"Network Error\");\n };\n var h = \"client_id=\" + encodeURIComponent(r);\n i && (h += \"&client_secret=\" + encodeURIComponent(i)), h += \"&token_type_hint=\" + encodeURIComponent(s), h += \"&token=\" + encodeURIComponent(o), c.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded\"), c.send(h);\n });\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CordovaPopupWindow = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n var o = \"location=no,toolbar=no,zoom=no\",\n s = \"_blank\";\n\n e.CordovaPopupWindow = function () {\n function t(e) {\n var r = this;\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._promise = new Promise(function (t, e) {\n r._resolve = t, r._reject = e;\n }), this.features = e.popupWindowFeatures || o, this.target = e.popupWindowTarget || s, this.redirect_uri = e.startUrl, i.Log.debug(\"CordovaPopupWindow.ctor: redirect_uri: \" + this.redirect_uri);\n }\n\n return t.prototype._isInAppBrowserInstalled = function t(e) {\n return [\"cordova-plugin-inappbrowser\", \"cordova-plugin-inappbrowser.inappbrowser\", \"org.apache.cordova.inappbrowser\"].some(function (t) {\n return e.hasOwnProperty(t);\n });\n }, t.prototype.navigate = function t(e) {\n if (e && e.url) {\n if (!window.cordova) return this._error(\"cordova is undefined\");\n\n var r = window.cordova.require(\"cordova/plugin_list\").metadata;\n\n if (!1 === this._isInAppBrowserInstalled(r)) return this._error(\"InAppBrowser plugin not found\");\n this._popup = cordova.InAppBrowser.open(e.url, this.target, this.features), this._popup ? (i.Log.debug(\"CordovaPopupWindow.navigate: popup successfully created\"), this._exitCallbackEvent = this._exitCallback.bind(this), this._loadStartCallbackEvent = this._loadStartCallback.bind(this), this._popup.addEventListener(\"exit\", this._exitCallbackEvent, !1), this._popup.addEventListener(\"loadstart\", this._loadStartCallbackEvent, !1)) : this._error(\"Error opening popup window\");\n } else this._error(\"No url provided\");\n\n return this.promise;\n }, t.prototype._loadStartCallback = function t(e) {\n 0 === e.url.indexOf(this.redirect_uri) && this._success({\n url: e.url\n });\n }, t.prototype._exitCallback = function t(e) {\n this._error(e);\n }, t.prototype._success = function t(e) {\n this._cleanup(), i.Log.debug(\"CordovaPopupWindow: Successful response from cordova popup window\"), this._resolve(e);\n }, t.prototype._error = function t(e) {\n this._cleanup(), i.Log.error(e), this._reject(new Error(e));\n }, t.prototype.close = function t() {\n this._cleanup();\n }, t.prototype._cleanup = function t() {\n this._popup && (i.Log.debug(\"CordovaPopupWindow: cleaning up popup\"), this._popup.removeEventListener(\"exit\", this._exitCallbackEvent, !1), this._popup.removeEventListener(\"loadstart\", this._loadStartCallbackEvent, !1), this._popup.close()), this._popup = null;\n }, n(t, [{\n key: \"promise\",\n get: function t() {\n return this._promise;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var n = r(0),\n i = r(9),\n o = r(5),\n s = r(6),\n a = r(39),\n u = r(40),\n c = r(16),\n h = r(2),\n l = r(50),\n f = r(51),\n d = r(19),\n g = r(20),\n p = r(18),\n v = r(1),\n y = r(15),\n m = r(52);\n e[\"default\"] = {\n Version: m.Version,\n Log: n.Log,\n OidcClient: i.OidcClient,\n OidcClientSettings: o.OidcClientSettings,\n WebStorageStateStore: s.WebStorageStateStore,\n InMemoryWebStorage: a.InMemoryWebStorage,\n UserManager: u.UserManager,\n AccessTokenEvents: c.AccessTokenEvents,\n MetadataService: h.MetadataService,\n CordovaPopupNavigator: l.CordovaPopupNavigator,\n CordovaIFrameNavigator: f.CordovaIFrameNavigator,\n CheckSessionIFrame: d.CheckSessionIFrame,\n TokenRevocationClient: g.TokenRevocationClient,\n SessionMonitor: p.SessionMonitor,\n Global: v.Global,\n User: y.User\n }, t.exports = e[\"default\"];\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.ResponseValidator = void 0;\n var n = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n },\n i = r(0),\n o = r(2),\n s = r(24),\n a = r(10),\n u = r(11),\n c = r(4);\n var h = [\"nonce\", \"at_hash\", \"iat\", \"nbf\", \"exp\", \"aud\", \"iss\", \"c_hash\"];\n\n e.ResponseValidator = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.MetadataService,\n n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : s.UserInfoService,\n u = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : c.JoseUtil,\n h = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : a.TokenClient;\n if (function l(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !e) throw i.Log.error(\"ResponseValidator.ctor: No settings passed to ResponseValidator\"), new Error(\"settings\");\n this._settings = e, this._metadataService = new r(this._settings), this._userInfoService = new n(this._settings), this._joseUtil = u, this._tokenClient = new h(this._settings);\n }\n\n return t.prototype.validateSigninResponse = function t(e, r) {\n var n = this;\n return i.Log.debug(\"ResponseValidator.validateSigninResponse\"), this._processSigninParams(e, r).then(function (t) {\n return i.Log.debug(\"ResponseValidator.validateSigninResponse: state processed\"), n._validateTokens(e, t).then(function (t) {\n return i.Log.debug(\"ResponseValidator.validateSigninResponse: tokens validated\"), n._processClaims(e, t).then(function (t) {\n return i.Log.debug(\"ResponseValidator.validateSigninResponse: claims processed\"), t;\n });\n });\n });\n }, t.prototype.validateSignoutResponse = function t(e, r) {\n return e.id !== r.state ? (i.Log.error(\"ResponseValidator.validateSignoutResponse: State does not match\"), Promise.reject(new Error(\"State does not match\"))) : (i.Log.debug(\"ResponseValidator.validateSignoutResponse: state validated\"), r.state = e.data, r.error ? (i.Log.warn(\"ResponseValidator.validateSignoutResponse: Response was error\", r.error), Promise.reject(new u.ErrorResponse(r))) : Promise.resolve(r));\n }, t.prototype._processSigninParams = function t(e, r) {\n if (e.id !== r.state) return i.Log.error(\"ResponseValidator._processSigninParams: State does not match\"), Promise.reject(new Error(\"State does not match\"));\n if (!e.client_id) return i.Log.error(\"ResponseValidator._processSigninParams: No client_id on state\"), Promise.reject(new Error(\"No client_id on state\"));\n if (!e.authority) return i.Log.error(\"ResponseValidator._processSigninParams: No authority on state\"), Promise.reject(new Error(\"No authority on state\"));\n\n if (this._settings.authority) {\n if (this._settings.authority && this._settings.authority !== e.authority) return i.Log.error(\"ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state\"), Promise.reject(new Error(\"authority mismatch on settings vs. signin state\"));\n } else this._settings.authority = e.authority;\n\n if (this._settings.client_id) {\n if (this._settings.client_id && this._settings.client_id !== e.client_id) return i.Log.error(\"ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state\"), Promise.reject(new Error(\"client_id mismatch on settings vs. signin state\"));\n } else this._settings.client_id = e.client_id;\n\n return i.Log.debug(\"ResponseValidator._processSigninParams: state validated\"), r.state = e.data, r.error ? (i.Log.warn(\"ResponseValidator._processSigninParams: Response was error\", r.error), Promise.reject(new u.ErrorResponse(r))) : e.nonce && !r.id_token ? (i.Log.error(\"ResponseValidator._processSigninParams: Expecting id_token in response\"), Promise.reject(new Error(\"No id_token in response\"))) : !e.nonce && r.id_token ? (i.Log.error(\"ResponseValidator._processSigninParams: Not expecting id_token in response\"), Promise.reject(new Error(\"Unexpected id_token in response\"))) : e.code_verifier && !r.code ? (i.Log.error(\"ResponseValidator._processSigninParams: Expecting code in response\"), Promise.reject(new Error(\"No code in response\"))) : !e.code_verifier && r.code ? (i.Log.error(\"ResponseValidator._processSigninParams: Not expecting code in response\"), Promise.reject(new Error(\"Unexpected code in response\"))) : (r.scope || (r.scope = e.scope), Promise.resolve(r));\n }, t.prototype._processClaims = function t(e, r) {\n var n = this;\n\n if (r.isOpenIdConnect) {\n if (i.Log.debug(\"ResponseValidator._processClaims: response is OIDC, processing claims\"), r.profile = this._filterProtocolClaims(r.profile), !0 !== e.skipUserInfo && this._settings.loadUserInfo && r.access_token) return i.Log.debug(\"ResponseValidator._processClaims: loading user info\"), this._userInfoService.getClaims(r.access_token).then(function (t) {\n return i.Log.debug(\"ResponseValidator._processClaims: user info claims received from user info endpoint\"), t.sub !== r.profile.sub ? (i.Log.error(\"ResponseValidator._processClaims: sub from user info endpoint does not match sub in access_token\"), Promise.reject(new Error(\"sub from user info endpoint does not match sub in access_token\"))) : (r.profile = n._mergeClaims(r.profile, t), i.Log.debug(\"ResponseValidator._processClaims: user info claims received, updated profile:\", r.profile), r);\n });\n i.Log.debug(\"ResponseValidator._processClaims: not loading user info\");\n } else i.Log.debug(\"ResponseValidator._processClaims: response is not OIDC, not processing claims\");\n\n return Promise.resolve(r);\n }, t.prototype._mergeClaims = function t(e, r) {\n var i = Object.assign({}, e);\n\n for (var o in r) {\n var s = r[o];\n Array.isArray(s) || (s = [s]);\n\n for (var a = 0; a < s.length; a++) {\n var u = s[a];\n i[o] ? Array.isArray(i[o]) ? i[o].indexOf(u) < 0 && i[o].push(u) : i[o] !== u && (\"object\" === (void 0 === u ? \"undefined\" : n(u)) ? i[o] = this._mergeClaims(i[o], u) : i[o] = [i[o], u]) : i[o] = u;\n }\n }\n\n return i;\n }, t.prototype._filterProtocolClaims = function t(e) {\n i.Log.debug(\"ResponseValidator._filterProtocolClaims, incoming claims:\", e);\n var r = Object.assign({}, e);\n return this._settings._filterProtocolClaims ? (h.forEach(function (t) {\n delete r[t];\n }), i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims filtered\", r)) : i.Log.debug(\"ResponseValidator._filterProtocolClaims: protocol claims not filtered\"), r;\n }, t.prototype._validateTokens = function t(e, r) {\n return r.code ? (i.Log.debug(\"ResponseValidator._validateTokens: Validating code\"), this._processCode(e, r)) : r.id_token ? r.access_token ? (i.Log.debug(\"ResponseValidator._validateTokens: Validating id_token and access_token\"), this._validateIdTokenAndAccessToken(e, r)) : (i.Log.debug(\"ResponseValidator._validateTokens: Validating id_token\"), this._validateIdToken(e, r)) : (i.Log.debug(\"ResponseValidator._validateTokens: No code to process or id_token to validate\"), Promise.resolve(r));\n }, t.prototype._processCode = function t(e, r) {\n var o = this,\n s = {\n client_id: e.client_id,\n client_secret: e.client_secret,\n code: r.code,\n redirect_uri: e.redirect_uri,\n code_verifier: e.code_verifier\n };\n return e.extraTokenParams && \"object\" === n(e.extraTokenParams) && Object.assign(s, e.extraTokenParams), this._tokenClient.exchangeCode(s).then(function (t) {\n for (var n in t) {\n r[n] = t[n];\n }\n\n return r.id_token ? (i.Log.debug(\"ResponseValidator._processCode: token response successful, processing id_token\"), o._validateIdTokenAttributes(e, r)) : (i.Log.debug(\"ResponseValidator._processCode: token response successful, returning response\"), r);\n });\n }, t.prototype._validateIdTokenAttributes = function t(e, r) {\n var n = this;\n return this._metadataService.getIssuer().then(function (t) {\n var o = e.client_id,\n s = n._settings.clockSkew;\n return i.Log.debug(\"ResponseValidator._validateIdTokenAttributes: Validaing JWT attributes; using clock skew (in seconds) of: \", s), n._joseUtil.validateJwtAttributes(r.id_token, t, o, s).then(function (t) {\n return e.nonce && e.nonce !== t.nonce ? (i.Log.error(\"ResponseValidator._validateIdTokenAttributes: Invalid nonce in id_token\"), Promise.reject(new Error(\"Invalid nonce in id_token\"))) : t.sub ? (r.profile = t, r) : (i.Log.error(\"ResponseValidator._validateIdTokenAttributes: No sub present in id_token\"), Promise.reject(new Error(\"No sub present in id_token\")));\n });\n });\n }, t.prototype._validateIdTokenAndAccessToken = function t(e, r) {\n var n = this;\n return this._validateIdToken(e, r).then(function (t) {\n return n._validateAccessToken(t);\n });\n }, t.prototype._validateIdToken = function t(e, r) {\n var n = this;\n if (!e.nonce) return i.Log.error(\"ResponseValidator._validateIdToken: No nonce on state\"), Promise.reject(new Error(\"No nonce on state\"));\n\n var o = this._joseUtil.parseJwt(r.id_token);\n\n if (!o || !o.header || !o.payload) return i.Log.error(\"ResponseValidator._validateIdToken: Failed to parse id_token\", o), Promise.reject(new Error(\"Failed to parse id_token\"));\n if (e.nonce !== o.payload.nonce) return i.Log.error(\"ResponseValidator._validateIdToken: Invalid nonce in id_token\"), Promise.reject(new Error(\"Invalid nonce in id_token\"));\n var s = o.header.kid;\n return this._metadataService.getIssuer().then(function (t) {\n return i.Log.debug(\"ResponseValidator._validateIdToken: Received issuer\"), n._metadataService.getSigningKeys().then(function (a) {\n if (!a) return i.Log.error(\"ResponseValidator._validateIdToken: No signing keys from metadata\"), Promise.reject(new Error(\"No signing keys from metadata\"));\n i.Log.debug(\"ResponseValidator._validateIdToken: Received signing keys\");\n var u = void 0;\n if (s) u = a.filter(function (t) {\n return t.kid === s;\n })[0];else {\n if ((a = n._filterByAlg(a, o.header.alg)).length > 1) return i.Log.error(\"ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata\"), Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));\n u = a[0];\n }\n if (!u) return i.Log.error(\"ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys\"), Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));\n var c = e.client_id,\n h = n._settings.clockSkew;\n return i.Log.debug(\"ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: \", h), n._joseUtil.validateJwt(r.id_token, u, t, c, h).then(function () {\n return i.Log.debug(\"ResponseValidator._validateIdToken: JWT validation successful\"), o.payload.sub ? (r.profile = o.payload, r) : (i.Log.error(\"ResponseValidator._validateIdToken: No sub present in id_token\"), Promise.reject(new Error(\"No sub present in id_token\")));\n });\n });\n });\n }, t.prototype._filterByAlg = function t(e, r) {\n var n = null;\n if (r.startsWith(\"RS\")) n = \"RSA\";else if (r.startsWith(\"PS\")) n = \"PS\";else {\n if (!r.startsWith(\"ES\")) return i.Log.debug(\"ResponseValidator._filterByAlg: alg not supported: \", r), [];\n n = \"EC\";\n }\n return i.Log.debug(\"ResponseValidator._filterByAlg: Looking for keys that match kty: \", n), e = e.filter(function (t) {\n return t.kty === n;\n }), i.Log.debug(\"ResponseValidator._filterByAlg: Number of keys that match kty: \", n, e.length), e;\n }, t.prototype._validateAccessToken = function t(e) {\n if (!e.profile) return i.Log.error(\"ResponseValidator._validateAccessToken: No profile loaded from id_token\"), Promise.reject(new Error(\"No profile loaded from id_token\"));\n if (!e.profile.at_hash) return i.Log.error(\"ResponseValidator._validateAccessToken: No at_hash in id_token\"), Promise.reject(new Error(\"No at_hash in id_token\"));\n if (!e.id_token) return i.Log.error(\"ResponseValidator._validateAccessToken: No id_token\"), Promise.reject(new Error(\"No id_token\"));\n\n var r = this._joseUtil.parseJwt(e.id_token);\n\n if (!r || !r.header) return i.Log.error(\"ResponseValidator._validateAccessToken: Failed to parse id_token\", r), Promise.reject(new Error(\"Failed to parse id_token\"));\n var n = r.header.alg;\n if (!n || 5 !== n.length) return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\", n), Promise.reject(new Error(\"Unsupported alg: \" + n));\n var o = n.substr(2, 3);\n if (!o) return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\", n, o), Promise.reject(new Error(\"Unsupported alg: \" + n));\n if (256 !== (o = parseInt(o)) && 384 !== o && 512 !== o) return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\", n, o), Promise.reject(new Error(\"Unsupported alg: \" + n));\n\n var s = \"sha\" + o,\n a = this._joseUtil.hashString(e.access_token, s);\n\n if (!a) return i.Log.error(\"ResponseValidator._validateAccessToken: access_token hash failed:\", s), Promise.reject(new Error(\"Failed to validate at_hash\"));\n\n var u = a.substr(0, a.length / 2),\n c = this._joseUtil.hexToBase64Url(u);\n\n return c !== e.profile.at_hash ? (i.Log.error(\"ResponseValidator._validateAccessToken: Failed to validate at_hash\", c, e.profile.at_hash), Promise.reject(new Error(\"Failed to validate at_hash\"))) : (i.Log.debug(\"ResponseValidator._validateAccessToken: success\"), Promise.resolve(e));\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserInfoService = void 0;\n var n = r(7),\n i = r(2),\n o = r(0),\n s = r(4);\n\n e.UserInfoService = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : n.JsonService,\n a = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : i.MetadataService,\n u = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : s.JoseUtil;\n if (function c(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !e) throw o.Log.error(\"UserInfoService.ctor: No settings passed\"), new Error(\"settings\");\n this._settings = e, this._jsonService = new r(void 0, void 0, this._getClaimsFromJwt.bind(this)), this._metadataService = new a(this._settings), this._joseUtil = u;\n }\n\n return t.prototype.getClaims = function t(e) {\n var r = this;\n return e ? this._metadataService.getUserInfoEndpoint().then(function (t) {\n return o.Log.debug(\"UserInfoService.getClaims: received userinfo url\", t), r._jsonService.getJson(t, e).then(function (t) {\n return o.Log.debug(\"UserInfoService.getClaims: claims received\", t), t;\n });\n }) : (o.Log.error(\"UserInfoService.getClaims: No token passed\"), Promise.reject(new Error(\"A token is required\")));\n }, t.prototype._getClaimsFromJwt = function t(e) {\n var r = this;\n\n try {\n var n = this._joseUtil.parseJwt(e.responseText);\n\n if (!n || !n.header || !n.payload) return o.Log.error(\"UserInfoService._getClaimsFromJwt: Failed to parse JWT\", n), Promise.reject(new Error(\"Failed to parse id_token\"));\n var i = n.header.kid,\n s = void 0;\n\n switch (this._settings.userInfoJwtIssuer) {\n case \"OP\":\n s = this._metadataService.getIssuer();\n break;\n\n case \"ANY\":\n s = Promise.resolve(n.payload.iss);\n break;\n\n default:\n s = Promise.resolve(this._settings.userInfoJwtIssuer);\n }\n\n return s.then(function (t) {\n return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received issuer:\" + t), r._metadataService.getSigningKeys().then(function (s) {\n if (!s) return o.Log.error(\"UserInfoService._getClaimsFromJwt: No signing keys from metadata\"), Promise.reject(new Error(\"No signing keys from metadata\"));\n o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received signing keys\");\n var a = void 0;\n if (i) a = s.filter(function (t) {\n return t.kid === i;\n })[0];else {\n if ((s = r._filterByAlg(s, n.header.alg)).length > 1) return o.Log.error(\"UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata\"), Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));\n a = s[0];\n }\n if (!a) return o.Log.error(\"UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys\"), Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));\n var u = r._settings.client_id,\n c = r._settings.clockSkew;\n return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: \", c), r._joseUtil.validateJwt(e.responseText, a, t, u, c, void 0, !0).then(function () {\n return o.Log.debug(\"UserInfoService._getClaimsFromJwt: JWT validation successful\"), n.payload;\n });\n });\n });\n } catch (t) {\n return o.Log.error(\"UserInfoService._getClaimsFromJwt: Error parsing JWT response\", t.message), void reject(t);\n }\n }, t.prototype._filterByAlg = function t(e, r) {\n var n = null;\n if (r.startsWith(\"RS\")) n = \"RSA\";else if (r.startsWith(\"PS\")) n = \"PS\";else {\n if (!r.startsWith(\"ES\")) return o.Log.debug(\"UserInfoService._filterByAlg: alg not supported: \", r), [];\n n = \"EC\";\n }\n return o.Log.debug(\"UserInfoService._filterByAlg: Looking for keys that match kty: \", n), e = e.filter(function (t) {\n return t.kty === n;\n }), o.Log.debug(\"UserInfoService._filterByAlg: Number of keys that match kty: \", n, e.length), e;\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.AllowedSigningAlgs = e.b64tohex = e.hextob64u = e.crypto = e.X509 = e.KeyUtil = e.jws = void 0;\n var n = r(26);\n e.jws = n.jws, e.KeyUtil = n.KEYUTIL, e.X509 = n.X509, e.crypto = n.crypto, e.hextob64u = n.hextob64u, e.b64tohex = n.b64tohex, e.AllowedSigningAlgs = [\"RS256\", \"RS384\", \"RS512\", \"PS256\", \"PS384\", \"PS512\", \"ES256\", \"ES384\", \"ES512\"];\n }, function (t, e, r) {\n \"use strict\";\n\n (function (t) {\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n var r = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (t) {\n return typeof t;\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : typeof t;\n },\n n = {\n userAgent: !1\n },\n i = {};\n /*!\n Copyright (c) 2011, Yahoo! Inc. All rights reserved.\n Code licensed under the BSD License:\n http://developer.yahoo.com/yui/license.html\n version: 2.9.0\n */\n\n if (void 0 === o) var o = {};\n o.lang = {\n extend: function t(e, r, i) {\n if (!r || !e) throw new Error(\"YAHOO.lang.extend failed, please check that all dependencies are included.\");\n\n var o = function t() {};\n\n if (o.prototype = r.prototype, e.prototype = new o(), e.prototype.constructor = e, e.superclass = r.prototype, r.prototype.constructor == Object.prototype.constructor && (r.prototype.constructor = r), i) {\n var s;\n\n for (s in i) {\n e.prototype[s] = i[s];\n }\n\n var a = function t() {},\n u = [\"toString\", \"valueOf\"];\n\n try {\n /MSIE/.test(n.userAgent) && (a = function t(e, r) {\n for (s = 0; s < u.length; s += 1) {\n var n = u[s],\n i = r[n];\n \"function\" == typeof i && i != Object.prototype[n] && (e[n] = i);\n }\n });\n } catch (t) {}\n\n a(e.prototype, i);\n }\n }\n };\n /*! CryptoJS v3.1.2 core-fix.js\n * code.google.com/p/crypto-js\n * (c) 2009-2013 by Jeff Mott. All rights reserved.\n * code.google.com/p/crypto-js/wiki/License\n * THIS IS FIX of 'core.js' to fix Hmac issue.\n * https://code.google.com/p/crypto-js/issues/detail?id=84\n * https://crypto-js.googlecode.com/svn-history/r667/branches/3.x/src/core.js\n */\n\n var s,\n a,\n u,\n c,\n h,\n l,\n f,\n d,\n g,\n p,\n v,\n y = y || (s = Math, u = (a = {}).lib = {}, c = u.Base = function () {\n function t() {}\n\n return {\n extend: function e(r) {\n t.prototype = this;\n var n = new t();\n return r && n.mixIn(r), n.hasOwnProperty(\"init\") || (n.init = function () {\n n.$super.init.apply(this, arguments);\n }), n.init.prototype = n, n.$super = this, n;\n },\n create: function t() {\n var e = this.extend();\n return e.init.apply(e, arguments), e;\n },\n init: function t() {},\n mixIn: function t(e) {\n for (var r in e) {\n e.hasOwnProperty(r) && (this[r] = e[r]);\n }\n\n e.hasOwnProperty(\"toString\") && (this.toString = e.toString);\n },\n clone: function t() {\n return this.init.prototype.extend(this);\n }\n };\n }(), h = u.WordArray = c.extend({\n init: function t(e, r) {\n e = this.words = e || [], this.sigBytes = void 0 != r ? r : 4 * e.length;\n },\n toString: function t(e) {\n return (e || f).stringify(this);\n },\n concat: function t(e) {\n var r = this.words,\n n = e.words,\n i = this.sigBytes,\n o = e.sigBytes;\n if (this.clamp(), i % 4) for (var s = 0; s < o; s++) {\n var a = n[s >>> 2] >>> 24 - s % 4 * 8 & 255;\n r[i + s >>> 2] |= a << 24 - (i + s) % 4 * 8;\n } else for (s = 0; s < o; s += 4) {\n r[i + s >>> 2] = n[s >>> 2];\n }\n return this.sigBytes += o, this;\n },\n clamp: function t() {\n var e = this.words,\n r = this.sigBytes;\n e[r >>> 2] &= 4294967295 << 32 - r % 4 * 8, e.length = s.ceil(r / 4);\n },\n clone: function t() {\n var e = c.clone.call(this);\n return e.words = this.words.slice(0), e;\n },\n random: function t(e) {\n for (var r = [], n = 0; n < e; n += 4) {\n r.push(4294967296 * s.random() | 0);\n }\n\n return new h.init(r, e);\n }\n }), l = a.enc = {}, f = l.Hex = {\n stringify: function t(e) {\n for (var r = e.words, n = e.sigBytes, i = [], o = 0; o < n; o++) {\n var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;\n i.push((s >>> 4).toString(16)), i.push((15 & s).toString(16));\n }\n\n return i.join(\"\");\n },\n parse: function t(e) {\n for (var r = e.length, n = [], i = 0; i < r; i += 2) {\n n[i >>> 3] |= parseInt(e.substr(i, 2), 16) << 24 - i % 8 * 4;\n }\n\n return new h.init(n, r / 2);\n }\n }, d = l.Latin1 = {\n stringify: function t(e) {\n for (var r = e.words, n = e.sigBytes, i = [], o = 0; o < n; o++) {\n var s = r[o >>> 2] >>> 24 - o % 4 * 8 & 255;\n i.push(String.fromCharCode(s));\n }\n\n return i.join(\"\");\n },\n parse: function t(e) {\n for (var r = e.length, n = [], i = 0; i < r; i++) {\n n[i >>> 2] |= (255 & e.charCodeAt(i)) << 24 - i % 4 * 8;\n }\n\n return new h.init(n, r);\n }\n }, g = l.Utf8 = {\n stringify: function t(e) {\n try {\n return decodeURIComponent(escape(d.stringify(e)));\n } catch (t) {\n throw new Error(\"Malformed UTF-8 data\");\n }\n },\n parse: function t(e) {\n return d.parse(unescape(encodeURIComponent(e)));\n }\n }, p = u.BufferedBlockAlgorithm = c.extend({\n reset: function t() {\n this._data = new h.init(), this._nDataBytes = 0;\n },\n _append: function t(e) {\n \"string\" == typeof e && (e = g.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes;\n },\n _process: function t(e) {\n var r = this._data,\n n = r.words,\n i = r.sigBytes,\n o = this.blockSize,\n a = i / (4 * o),\n u = (a = e ? s.ceil(a) : s.max((0 | a) - this._minBufferSize, 0)) * o,\n c = s.min(4 * u, i);\n\n if (u) {\n for (var l = 0; l < u; l += o) {\n this._doProcessBlock(n, l);\n }\n\n var f = n.splice(0, u);\n r.sigBytes -= c;\n }\n\n return new h.init(f, c);\n },\n clone: function t() {\n var e = c.clone.call(this);\n return e._data = this._data.clone(), e;\n },\n _minBufferSize: 0\n }), u.Hasher = p.extend({\n cfg: c.extend(),\n init: function t(e) {\n this.cfg = this.cfg.extend(e), this.reset();\n },\n reset: function t() {\n p.reset.call(this), this._doReset();\n },\n update: function t(e) {\n return this._append(e), this._process(), this;\n },\n finalize: function t(e) {\n return e && this._append(e), this._doFinalize();\n },\n blockSize: 16,\n _createHelper: function t(e) {\n return function (t, r) {\n return new e.init(r).finalize(t);\n };\n },\n _createHmacHelper: function t(e) {\n return function (t, r) {\n return new v.HMAC.init(e, r).finalize(t);\n };\n }\n }), v = a.algo = {}, a);\n !function (t) {\n var e,\n r = (e = y).lib,\n n = r.Base,\n i = r.WordArray;\n (e = e.x64 = {}).Word = n.extend({\n init: function t(e, r) {\n this.high = e, this.low = r;\n }\n }), e.WordArray = n.extend({\n init: function t(e, r) {\n e = this.words = e || [], this.sigBytes = void 0 != r ? r : 8 * e.length;\n },\n toX32: function t() {\n for (var e = this.words, r = e.length, n = [], o = 0; o < r; o++) {\n var s = e[o];\n n.push(s.high), n.push(s.low);\n }\n\n return i.create(n, this.sigBytes);\n },\n clone: function t() {\n for (var e = n.clone.call(this), r = e.words = this.words.slice(0), i = r.length, o = 0; o < i; o++) {\n r[o] = r[o].clone();\n }\n\n return e;\n }\n });\n }(), function () {\n var t = y,\n e = t.lib.WordArray;\n t.enc.Base64 = {\n stringify: function t(e) {\n var r = e.words,\n n = e.sigBytes,\n i = this._map;\n e.clamp(), e = [];\n\n for (var o = 0; o < n; o += 3) {\n for (var s = (r[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (r[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << 8 | r[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, a = 0; 4 > a && o + .75 * a < n; a++) {\n e.push(i.charAt(s >>> 6 * (3 - a) & 63));\n }\n }\n\n if (r = i.charAt(64)) for (; e.length % 4;) {\n e.push(r);\n }\n return e.join(\"\");\n },\n parse: function t(r) {\n var n = r.length,\n i = this._map;\n (o = i.charAt(64)) && -1 != (o = r.indexOf(o)) && (n = o);\n\n for (var o = [], s = 0, a = 0; a < n; a++) {\n if (a % 4) {\n var u = i.indexOf(r.charAt(a - 1)) << a % 4 * 2,\n c = i.indexOf(r.charAt(a)) >>> 6 - a % 4 * 2;\n o[s >>> 2] |= (u | c) << 24 - s % 4 * 8, s++;\n }\n }\n\n return e.create(o, s);\n },\n _map: \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"\n };\n }(), function (t) {\n for (var e = y, r = (i = e.lib).WordArray, n = i.Hasher, i = e.algo, o = [], s = [], a = function t(e) {\n return 4294967296 * (e - (0 | e)) | 0;\n }, u = 2, c = 0; 64 > c;) {\n var h;\n\n t: {\n h = u;\n\n for (var l = t.sqrt(h), f = 2; f <= l; f++) {\n if (!(h % f)) {\n h = !1;\n break t;\n }\n }\n\n h = !0;\n }\n\n h && (8 > c && (o[c] = a(t.pow(u, .5))), s[c] = a(t.pow(u, 1 / 3)), c++), u++;\n }\n\n var d = [];\n i = i.SHA256 = n.extend({\n _doReset: function t() {\n this._hash = new r.init(o.slice(0));\n },\n _doProcessBlock: function t(e, r) {\n for (var n = this._hash.words, i = n[0], o = n[1], a = n[2], u = n[3], c = n[4], h = n[5], l = n[6], f = n[7], g = 0; 64 > g; g++) {\n if (16 > g) d[g] = 0 | e[r + g];else {\n var p = d[g - 15],\n v = d[g - 2];\n d[g] = ((p << 25 | p >>> 7) ^ (p << 14 | p >>> 18) ^ p >>> 3) + d[g - 7] + ((v << 15 | v >>> 17) ^ (v << 13 | v >>> 19) ^ v >>> 10) + d[g - 16];\n }\n p = f + ((c << 26 | c >>> 6) ^ (c << 21 | c >>> 11) ^ (c << 7 | c >>> 25)) + (c & h ^ ~c & l) + s[g] + d[g], v = ((i << 30 | i >>> 2) ^ (i << 19 | i >>> 13) ^ (i << 10 | i >>> 22)) + (i & o ^ i & a ^ o & a), f = l, l = h, h = c, c = u + p | 0, u = a, a = o, o = i, i = p + v | 0;\n }\n\n n[0] = n[0] + i | 0, n[1] = n[1] + o | 0, n[2] = n[2] + a | 0, n[3] = n[3] + u | 0, n[4] = n[4] + c | 0, n[5] = n[5] + h | 0, n[6] = n[6] + l | 0, n[7] = n[7] + f | 0;\n },\n _doFinalize: function e() {\n var r = this._data,\n n = r.words,\n i = 8 * this._nDataBytes,\n o = 8 * r.sigBytes;\n return n[o >>> 5] |= 128 << 24 - o % 32, n[14 + (o + 64 >>> 9 << 4)] = t.floor(i / 4294967296), n[15 + (o + 64 >>> 9 << 4)] = i, r.sigBytes = 4 * n.length, this._process(), this._hash;\n },\n clone: function t() {\n var e = n.clone.call(this);\n return e._hash = this._hash.clone(), e;\n }\n });\n e.SHA256 = n._createHelper(i), e.HmacSHA256 = n._createHmacHelper(i);\n }(Math), function () {\n function t() {\n return n.create.apply(n, arguments);\n }\n\n for (var e = y, r = e.lib.Hasher, n = (o = e.x64).Word, i = o.WordArray, o = e.algo, s = [t(1116352408, 3609767458), t(1899447441, 602891725), t(3049323471, 3964484399), t(3921009573, 2173295548), t(961987163, 4081628472), t(1508970993, 3053834265), t(2453635748, 2937671579), t(2870763221, 3664609560), t(3624381080, 2734883394), t(310598401, 1164996542), t(607225278, 1323610764), t(1426881987, 3590304994), t(1925078388, 4068182383), t(2162078206, 991336113), t(2614888103, 633803317), t(3248222580, 3479774868), t(3835390401, 2666613458), t(4022224774, 944711139), t(264347078, 2341262773), t(604807628, 2007800933), t(770255983, 1495990901), t(1249150122, 1856431235), t(1555081692, 3175218132), t(1996064986, 2198950837), t(2554220882, 3999719339), t(2821834349, 766784016), t(2952996808, 2566594879), t(3210313671, 3203337956), t(3336571891, 1034457026), t(3584528711, 2466948901), t(113926993, 3758326383), t(338241895, 168717936), t(666307205, 1188179964), t(773529912, 1546045734), t(1294757372, 1522805485), t(1396182291, 2643833823), t(1695183700, 2343527390), t(1986661051, 1014477480), t(2177026350, 1206759142), t(2456956037, 344077627), t(2730485921, 1290863460), t(2820302411, 3158454273), t(3259730800, 3505952657), t(3345764771, 106217008), t(3516065817, 3606008344), t(3600352804, 1432725776), t(4094571909, 1467031594), t(275423344, 851169720), t(430227734, 3100823752), t(506948616, 1363258195), t(659060556, 3750685593), t(883997877, 3785050280), t(958139571, 3318307427), t(1322822218, 3812723403), t(1537002063, 2003034995), t(1747873779, 3602036899), t(1955562222, 1575990012), t(2024104815, 1125592928), t(2227730452, 2716904306), t(2361852424, 442776044), t(2428436474, 593698344), t(2756734187, 3733110249), t(3204031479, 2999351573), t(3329325298, 3815920427), t(3391569614, 3928383900), t(3515267271, 566280711), t(3940187606, 3454069534), t(4118630271, 4000239992), t(116418474, 1914138554), t(174292421, 2731055270), t(289380356, 3203993006), t(460393269, 320620315), t(685471733, 587496836), t(852142971, 1086792851), t(1017036298, 365543100), t(1126000580, 2618297676), t(1288033470, 3409855158), t(1501505948, 4234509866), t(1607167915, 987167468), t(1816402316, 1246189591)], a = [], u = 0; 80 > u; u++) {\n a[u] = t();\n }\n\n o = o.SHA512 = r.extend({\n _doReset: function t() {\n this._hash = new i.init([new n.init(1779033703, 4089235720), new n.init(3144134277, 2227873595), new n.init(1013904242, 4271175723), new n.init(2773480762, 1595750129), new n.init(1359893119, 2917565137), new n.init(2600822924, 725511199), new n.init(528734635, 4215389547), new n.init(1541459225, 327033209)]);\n },\n _doProcessBlock: function t(e, r) {\n for (var n = (f = this._hash.words)[0], i = f[1], o = f[2], u = f[3], c = f[4], h = f[5], l = f[6], f = f[7], d = n.high, g = n.low, p = i.high, v = i.low, y = o.high, m = o.low, _ = u.high, S = u.low, F = c.high, b = c.low, w = h.high, E = h.low, x = l.high, k = l.low, A = f.high, P = f.low, C = d, T = g, R = p, I = v, D = y, U = m, L = _, B = S, N = F, O = b, j = w, H = E, M = x, K = k, V = A, q = P, J = 0; 80 > J; J++) {\n var W = a[J];\n if (16 > J) var z = W.high = 0 | e[r + 2 * J],\n Y = W.low = 0 | e[r + 2 * J + 1];else {\n z = ((Y = (z = a[J - 15]).high) >>> 1 | (G = z.low) << 31) ^ (Y >>> 8 | G << 24) ^ Y >>> 7;\n var G = (G >>> 1 | Y << 31) ^ (G >>> 8 | Y << 24) ^ (G >>> 7 | Y << 25),\n X = ((Y = (X = a[J - 2]).high) >>> 19 | (Q = X.low) << 13) ^ (Y << 3 | Q >>> 29) ^ Y >>> 6,\n Q = (Q >>> 19 | Y << 13) ^ (Q << 3 | Y >>> 29) ^ (Q >>> 6 | Y << 26),\n $ = (Y = a[J - 7]).high,\n Z = (tt = a[J - 16]).high,\n tt = tt.low;\n z = (z = (z = z + $ + ((Y = G + Y.low) >>> 0 < G >>> 0 ? 1 : 0)) + X + ((Y = Y + Q) >>> 0 < Q >>> 0 ? 1 : 0)) + Z + ((Y = Y + tt) >>> 0 < tt >>> 0 ? 1 : 0);\n W.high = z, W.low = Y;\n }\n $ = N & j ^ ~N & M, tt = O & H ^ ~O & K, W = C & R ^ C & D ^ R & D;\n var et = T & I ^ T & U ^ I & U,\n rt = (G = (C >>> 28 | T << 4) ^ (C << 30 | T >>> 2) ^ (C << 25 | T >>> 7), X = (T >>> 28 | C << 4) ^ (T << 30 | C >>> 2) ^ (T << 25 | C >>> 7), (Q = s[J]).high),\n nt = Q.low;\n Z = (Z = (Z = (Z = V + ((N >>> 14 | O << 18) ^ (N >>> 18 | O << 14) ^ (N << 23 | O >>> 9)) + ((Q = q + ((O >>> 14 | N << 18) ^ (O >>> 18 | N << 14) ^ (O << 23 | N >>> 9))) >>> 0 < q >>> 0 ? 1 : 0)) + $ + ((Q = Q + tt) >>> 0 < tt >>> 0 ? 1 : 0)) + rt + ((Q = Q + nt) >>> 0 < nt >>> 0 ? 1 : 0)) + z + ((Q = Q + Y) >>> 0 < Y >>> 0 ? 1 : 0), W = G + W + ((Y = X + et) >>> 0 < X >>> 0 ? 1 : 0), V = M, q = K, M = j, K = H, j = N, H = O, N = L + Z + ((O = B + Q | 0) >>> 0 < B >>> 0 ? 1 : 0) | 0, L = D, B = U, D = R, U = I, R = C, I = T, C = Z + W + ((T = Q + Y | 0) >>> 0 < Q >>> 0 ? 1 : 0) | 0;\n }\n\n g = n.low = g + T, n.high = d + C + (g >>> 0 < T >>> 0 ? 1 : 0), v = i.low = v + I, i.high = p + R + (v >>> 0 < I >>> 0 ? 1 : 0), m = o.low = m + U, o.high = y + D + (m >>> 0 < U >>> 0 ? 1 : 0), S = u.low = S + B, u.high = _ + L + (S >>> 0 < B >>> 0 ? 1 : 0), b = c.low = b + O, c.high = F + N + (b >>> 0 < O >>> 0 ? 1 : 0), E = h.low = E + H, h.high = w + j + (E >>> 0 < H >>> 0 ? 1 : 0), k = l.low = k + K, l.high = x + M + (k >>> 0 < K >>> 0 ? 1 : 0), P = f.low = P + q, f.high = A + V + (P >>> 0 < q >>> 0 ? 1 : 0);\n },\n _doFinalize: function t() {\n var e = this._data,\n r = e.words,\n n = 8 * this._nDataBytes,\n i = 8 * e.sigBytes;\n return r[i >>> 5] |= 128 << 24 - i % 32, r[30 + (i + 128 >>> 10 << 5)] = Math.floor(n / 4294967296), r[31 + (i + 128 >>> 10 << 5)] = n, e.sigBytes = 4 * r.length, this._process(), this._hash.toX32();\n },\n clone: function t() {\n var e = r.clone.call(this);\n return e._hash = this._hash.clone(), e;\n },\n blockSize: 32\n }), e.SHA512 = r._createHelper(o), e.HmacSHA512 = r._createHmacHelper(o);\n }(), function () {\n var t = y,\n e = (i = t.x64).Word,\n r = i.WordArray,\n n = (i = t.algo).SHA512,\n i = i.SHA384 = n.extend({\n _doReset: function t() {\n this._hash = new r.init([new e.init(3418070365, 3238371032), new e.init(1654270250, 914150663), new e.init(2438529370, 812702999), new e.init(355462360, 4144912697), new e.init(1731405415, 4290775857), new e.init(2394180231, 1750603025), new e.init(3675008525, 1694076839), new e.init(1203062813, 3204075428)]);\n },\n _doFinalize: function t() {\n var e = n._doFinalize.call(this);\n\n return e.sigBytes -= 16, e;\n }\n });\n t.SHA384 = n._createHelper(i), t.HmacSHA384 = n._createHmacHelper(i);\n }();\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n var m,\n _ = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",\n S = \"=\";\n\n function F(t) {\n var e,\n r,\n n = \"\";\n\n for (e = 0; e + 3 <= t.length; e += 3) {\n r = parseInt(t.substring(e, e + 3), 16), n += _.charAt(r >> 6) + _.charAt(63 & r);\n }\n\n if (e + 1 == t.length ? (r = parseInt(t.substring(e, e + 1), 16), n += _.charAt(r << 2)) : e + 2 == t.length && (r = parseInt(t.substring(e, e + 2), 16), n += _.charAt(r >> 2) + _.charAt((3 & r) << 4)), S) for (; (3 & n.length) > 0;) {\n n += S;\n }\n return n;\n }\n\n function b(t) {\n var e,\n r,\n n,\n i = \"\",\n o = 0;\n\n for (e = 0; e < t.length && t.charAt(e) != S; ++e) {\n (n = _.indexOf(t.charAt(e))) < 0 || (0 == o ? (i += D(n >> 2), r = 3 & n, o = 1) : 1 == o ? (i += D(r << 2 | n >> 4), r = 15 & n, o = 2) : 2 == o ? (i += D(r), i += D(n >> 2), r = 3 & n, o = 3) : (i += D(r << 2 | n >> 4), i += D(15 & n), o = 0));\n }\n\n return 1 == o && (i += D(r << 2)), i;\n }\n\n function w(t) {\n var e,\n r = b(t),\n n = new Array();\n\n for (e = 0; 2 * e < r.length; ++e) {\n n[e] = parseInt(r.substring(2 * e, 2 * e + 2), 16);\n }\n\n return n;\n }\n\n function E(t, e, r) {\n null != t && (\"number\" == typeof t ? this.fromNumber(t, e, r) : null == e && \"string\" != typeof t ? this.fromString(t, 256) : this.fromString(t, e));\n }\n\n function x() {\n return new E(null);\n }\n\n \"Microsoft Internet Explorer\" == n.appName ? (E.prototype.am = function k(t, e, r, n, i, o) {\n for (var s = 32767 & e, a = e >> 15; --o >= 0;) {\n var u = 32767 & this[t],\n c = this[t++] >> 15,\n h = a * u + c * s;\n i = ((u = s * u + ((32767 & h) << 15) + r[n] + (1073741823 & i)) >>> 30) + (h >>> 15) + a * c + (i >>> 30), r[n++] = 1073741823 & u;\n }\n\n return i;\n }, m = 30) : \"Netscape\" != n.appName ? (E.prototype.am = function A(t, e, r, n, i, o) {\n for (; --o >= 0;) {\n var s = e * this[t++] + r[n] + i;\n i = Math.floor(s / 67108864), r[n++] = 67108863 & s;\n }\n\n return i;\n }, m = 26) : (E.prototype.am = function P(t, e, r, n, i, o) {\n for (var s = 16383 & e, a = e >> 14; --o >= 0;) {\n var u = 16383 & this[t],\n c = this[t++] >> 14,\n h = a * u + c * s;\n i = ((u = s * u + ((16383 & h) << 14) + r[n] + i) >> 28) + (h >> 14) + a * c, r[n++] = 268435455 & u;\n }\n\n return i;\n }, m = 28), E.prototype.DB = m, E.prototype.DM = (1 << m) - 1, E.prototype.DV = 1 << m;\n E.prototype.FV = Math.pow(2, 52), E.prototype.F1 = 52 - m, E.prototype.F2 = 2 * m - 52;\n var C,\n T,\n R = \"0123456789abcdefghijklmnopqrstuvwxyz\",\n I = new Array();\n\n for (C = \"0\".charCodeAt(0), T = 0; T <= 9; ++T) {\n I[C++] = T;\n }\n\n for (C = \"a\".charCodeAt(0), T = 10; T < 36; ++T) {\n I[C++] = T;\n }\n\n for (C = \"A\".charCodeAt(0), T = 10; T < 36; ++T) {\n I[C++] = T;\n }\n\n function D(t) {\n return R.charAt(t);\n }\n\n function U(t, e) {\n var r = I[t.charCodeAt(e)];\n return null == r ? -1 : r;\n }\n\n function L(t) {\n var e = x();\n return e.fromInt(t), e;\n }\n\n function B(t) {\n var e,\n r = 1;\n return 0 != (e = t >>> 16) && (t = e, r += 16), 0 != (e = t >> 8) && (t = e, r += 8), 0 != (e = t >> 4) && (t = e, r += 4), 0 != (e = t >> 2) && (t = e, r += 2), 0 != (e = t >> 1) && (t = e, r += 1), r;\n }\n\n function N(t) {\n this.m = t;\n }\n\n function O(t) {\n this.m = t, this.mp = t.invDigit(), this.mpl = 32767 & this.mp, this.mph = this.mp >> 15, this.um = (1 << t.DB - 15) - 1, this.mt2 = 2 * t.t;\n }\n\n function j(t, e) {\n return t & e;\n }\n\n function H(t, e) {\n return t | e;\n }\n\n function M(t, e) {\n return t ^ e;\n }\n\n function K(t, e) {\n return t & ~e;\n }\n\n function V(t) {\n if (0 == t) return -1;\n var e = 0;\n return 0 == (65535 & t) && (t >>= 16, e += 16), 0 == (255 & t) && (t >>= 8, e += 8), 0 == (15 & t) && (t >>= 4, e += 4), 0 == (3 & t) && (t >>= 2, e += 2), 0 == (1 & t) && ++e, e;\n }\n\n function q(t) {\n for (var e = 0; 0 != t;) {\n t &= t - 1, ++e;\n }\n\n return e;\n }\n\n function J() {}\n\n function W(t) {\n return t;\n }\n\n function z(t) {\n this.r2 = x(), this.q3 = x(), E.ONE.dlShiftTo(2 * t.t, this.r2), this.mu = this.r2.divide(t), this.m = t;\n }\n\n N.prototype.convert = function Y(t) {\n return t.s < 0 || t.compareTo(this.m) >= 0 ? t.mod(this.m) : t;\n }, N.prototype.revert = function G(t) {\n return t;\n }, N.prototype.reduce = function X(t) {\n t.divRemTo(this.m, null, t);\n }, N.prototype.mulTo = function Q(t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, N.prototype.sqrTo = function $(t, e) {\n t.squareTo(e), this.reduce(e);\n }, O.prototype.convert = function Z(t) {\n var e = x();\n return t.abs().dlShiftTo(this.m.t, e), e.divRemTo(this.m, null, e), t.s < 0 && e.compareTo(E.ZERO) > 0 && this.m.subTo(e, e), e;\n }, O.prototype.revert = function tt(t) {\n var e = x();\n return t.copyTo(e), this.reduce(e), e;\n }, O.prototype.reduce = function et(t) {\n for (; t.t <= this.mt2;) {\n t[t.t++] = 0;\n }\n\n for (var e = 0; e < this.m.t; ++e) {\n var r = 32767 & t[e],\n n = r * this.mpl + ((r * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;\n\n for (t[r = e + this.m.t] += this.m.am(0, n, t, e, 0, this.m.t); t[r] >= t.DV;) {\n t[r] -= t.DV, t[++r]++;\n }\n }\n\n t.clamp(), t.drShiftTo(this.m.t, t), t.compareTo(this.m) >= 0 && t.subTo(this.m, t);\n }, O.prototype.mulTo = function rt(t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, O.prototype.sqrTo = function nt(t, e) {\n t.squareTo(e), this.reduce(e);\n }, E.prototype.copyTo = function it(t) {\n for (var e = this.t - 1; e >= 0; --e) {\n t[e] = this[e];\n }\n\n t.t = this.t, t.s = this.s;\n }, E.prototype.fromInt = function ot(t) {\n this.t = 1, this.s = t < 0 ? -1 : 0, t > 0 ? this[0] = t : t < -1 ? this[0] = t + this.DV : this.t = 0;\n }, E.prototype.fromString = function st(t, e) {\n var r;\n if (16 == e) r = 4;else if (8 == e) r = 3;else if (256 == e) r = 8;else if (2 == e) r = 1;else if (32 == e) r = 5;else {\n if (4 != e) return void this.fromRadix(t, e);\n r = 2;\n }\n this.t = 0, this.s = 0;\n\n for (var n = t.length, i = !1, o = 0; --n >= 0;) {\n var s = 8 == r ? 255 & t[n] : U(t, n);\n s < 0 ? \"-\" == t.charAt(n) && (i = !0) : (i = !1, 0 == o ? this[this.t++] = s : o + r > this.DB ? (this[this.t - 1] |= (s & (1 << this.DB - o) - 1) << o, this[this.t++] = s >> this.DB - o) : this[this.t - 1] |= s << o, (o += r) >= this.DB && (o -= this.DB));\n }\n\n 8 == r && 0 != (128 & t[0]) && (this.s = -1, o > 0 && (this[this.t - 1] |= (1 << this.DB - o) - 1 << o)), this.clamp(), i && E.ZERO.subTo(this, this);\n }, E.prototype.clamp = function at() {\n for (var t = this.s & this.DM; this.t > 0 && this[this.t - 1] == t;) {\n --this.t;\n }\n }, E.prototype.dlShiftTo = function ut(t, e) {\n var r;\n\n for (r = this.t - 1; r >= 0; --r) {\n e[r + t] = this[r];\n }\n\n for (r = t - 1; r >= 0; --r) {\n e[r] = 0;\n }\n\n e.t = this.t + t, e.s = this.s;\n }, E.prototype.drShiftTo = function ct(t, e) {\n for (var r = t; r < this.t; ++r) {\n e[r - t] = this[r];\n }\n\n e.t = Math.max(this.t - t, 0), e.s = this.s;\n }, E.prototype.lShiftTo = function ht(t, e) {\n var r,\n n = t % this.DB,\n i = this.DB - n,\n o = (1 << i) - 1,\n s = Math.floor(t / this.DB),\n a = this.s << n & this.DM;\n\n for (r = this.t - 1; r >= 0; --r) {\n e[r + s + 1] = this[r] >> i | a, a = (this[r] & o) << n;\n }\n\n for (r = s - 1; r >= 0; --r) {\n e[r] = 0;\n }\n\n e[s] = a, e.t = this.t + s + 1, e.s = this.s, e.clamp();\n }, E.prototype.rShiftTo = function lt(t, e) {\n e.s = this.s;\n var r = Math.floor(t / this.DB);\n if (r >= this.t) e.t = 0;else {\n var n = t % this.DB,\n i = this.DB - n,\n o = (1 << n) - 1;\n e[0] = this[r] >> n;\n\n for (var s = r + 1; s < this.t; ++s) {\n e[s - r - 1] |= (this[s] & o) << i, e[s - r] = this[s] >> n;\n }\n\n n > 0 && (e[this.t - r - 1] |= (this.s & o) << i), e.t = this.t - r, e.clamp();\n }\n }, E.prototype.subTo = function ft(t, e) {\n for (var r = 0, n = 0, i = Math.min(t.t, this.t); r < i;) {\n n += this[r] - t[r], e[r++] = n & this.DM, n >>= this.DB;\n }\n\n if (t.t < this.t) {\n for (n -= t.s; r < this.t;) {\n n += this[r], e[r++] = n & this.DM, n >>= this.DB;\n }\n\n n += this.s;\n } else {\n for (n += this.s; r < t.t;) {\n n -= t[r], e[r++] = n & this.DM, n >>= this.DB;\n }\n\n n -= t.s;\n }\n\n e.s = n < 0 ? -1 : 0, n < -1 ? e[r++] = this.DV + n : n > 0 && (e[r++] = n), e.t = r, e.clamp();\n }, E.prototype.multiplyTo = function dt(t, e) {\n var r = this.abs(),\n n = t.abs(),\n i = r.t;\n\n for (e.t = i + n.t; --i >= 0;) {\n e[i] = 0;\n }\n\n for (i = 0; i < n.t; ++i) {\n e[i + r.t] = r.am(0, n[i], e, i, 0, r.t);\n }\n\n e.s = 0, e.clamp(), this.s != t.s && E.ZERO.subTo(e, e);\n }, E.prototype.squareTo = function gt(t) {\n for (var e = this.abs(), r = t.t = 2 * e.t; --r >= 0;) {\n t[r] = 0;\n }\n\n for (r = 0; r < e.t - 1; ++r) {\n var n = e.am(r, e[r], t, 2 * r, 0, 1);\n (t[r + e.t] += e.am(r + 1, 2 * e[r], t, 2 * r + 1, n, e.t - r - 1)) >= e.DV && (t[r + e.t] -= e.DV, t[r + e.t + 1] = 1);\n }\n\n t.t > 0 && (t[t.t - 1] += e.am(r, e[r], t, 2 * r, 0, 1)), t.s = 0, t.clamp();\n }, E.prototype.divRemTo = function pt(t, e, r) {\n var n = t.abs();\n\n if (!(n.t <= 0)) {\n var i = this.abs();\n if (i.t < n.t) return null != e && e.fromInt(0), void (null != r && this.copyTo(r));\n null == r && (r = x());\n var o = x(),\n s = this.s,\n a = t.s,\n u = this.DB - B(n[n.t - 1]);\n u > 0 ? (n.lShiftTo(u, o), i.lShiftTo(u, r)) : (n.copyTo(o), i.copyTo(r));\n var c = o.t,\n h = o[c - 1];\n\n if (0 != h) {\n var l = h * (1 << this.F1) + (c > 1 ? o[c - 2] >> this.F2 : 0),\n f = this.FV / l,\n d = (1 << this.F1) / l,\n g = 1 << this.F2,\n p = r.t,\n v = p - c,\n y = null == e ? x() : e;\n\n for (o.dlShiftTo(v, y), r.compareTo(y) >= 0 && (r[r.t++] = 1, r.subTo(y, r)), E.ONE.dlShiftTo(c, y), y.subTo(o, o); o.t < c;) {\n o[o.t++] = 0;\n }\n\n for (; --v >= 0;) {\n var m = r[--p] == h ? this.DM : Math.floor(r[p] * f + (r[p - 1] + g) * d);\n if ((r[p] += o.am(0, m, r, v, 0, c)) < m) for (o.dlShiftTo(v, y), r.subTo(y, r); r[p] < --m;) {\n r.subTo(y, r);\n }\n }\n\n null != e && (r.drShiftTo(c, e), s != a && E.ZERO.subTo(e, e)), r.t = c, r.clamp(), u > 0 && r.rShiftTo(u, r), s < 0 && E.ZERO.subTo(r, r);\n }\n }\n }, E.prototype.invDigit = function vt() {\n if (this.t < 1) return 0;\n var t = this[0];\n if (0 == (1 & t)) return 0;\n var e = 3 & t;\n return (e = (e = (e = (e = e * (2 - (15 & t) * e) & 15) * (2 - (255 & t) * e) & 255) * (2 - ((65535 & t) * e & 65535)) & 65535) * (2 - t * e % this.DV) % this.DV) > 0 ? this.DV - e : -e;\n }, E.prototype.isEven = function yt() {\n return 0 == (this.t > 0 ? 1 & this[0] : this.s);\n }, E.prototype.exp = function mt(t, e) {\n if (t > 4294967295 || t < 1) return E.ONE;\n var r = x(),\n n = x(),\n i = e.convert(this),\n o = B(t) - 1;\n\n for (i.copyTo(r); --o >= 0;) {\n if (e.sqrTo(r, n), (t & 1 << o) > 0) e.mulTo(n, i, r);else {\n var s = r;\n r = n, n = s;\n }\n }\n\n return e.revert(r);\n }, E.prototype.toString = function _t(t) {\n if (this.s < 0) return \"-\" + this.negate().toString(t);\n var e;\n if (16 == t) e = 4;else if (8 == t) e = 3;else if (2 == t) e = 1;else if (32 == t) e = 5;else {\n if (4 != t) return this.toRadix(t);\n e = 2;\n }\n var r,\n n = (1 << e) - 1,\n i = !1,\n o = \"\",\n s = this.t,\n a = this.DB - s * this.DB % e;\n if (s-- > 0) for (a < this.DB && (r = this[s] >> a) > 0 && (i = !0, o = D(r)); s >= 0;) {\n a < e ? (r = (this[s] & (1 << a) - 1) << e - a, r |= this[--s] >> (a += this.DB - e)) : (r = this[s] >> (a -= e) & n, a <= 0 && (a += this.DB, --s)), r > 0 && (i = !0), i && (o += D(r));\n }\n return i ? o : \"0\";\n }, E.prototype.negate = function St() {\n var t = x();\n return E.ZERO.subTo(this, t), t;\n }, E.prototype.abs = function Ft() {\n return this.s < 0 ? this.negate() : this;\n }, E.prototype.compareTo = function bt(t) {\n var e = this.s - t.s;\n if (0 != e) return e;\n var r = this.t;\n if (0 != (e = r - t.t)) return this.s < 0 ? -e : e;\n\n for (; --r >= 0;) {\n if (0 != (e = this[r] - t[r])) return e;\n }\n\n return 0;\n }, E.prototype.bitLength = function wt() {\n return this.t <= 0 ? 0 : this.DB * (this.t - 1) + B(this[this.t - 1] ^ this.s & this.DM);\n }, E.prototype.mod = function Et(t) {\n var e = x();\n return this.abs().divRemTo(t, null, e), this.s < 0 && e.compareTo(E.ZERO) > 0 && t.subTo(e, e), e;\n }, E.prototype.modPowInt = function xt(t, e) {\n var r;\n return r = t < 256 || e.isEven() ? new N(e) : new O(e), this.exp(t, r);\n }, E.ZERO = L(0), E.ONE = L(1), J.prototype.convert = W, J.prototype.revert = W, J.prototype.mulTo = function kt(t, e, r) {\n t.multiplyTo(e, r);\n }, J.prototype.sqrTo = function At(t, e) {\n t.squareTo(e);\n }, z.prototype.convert = function Pt(t) {\n if (t.s < 0 || t.t > 2 * this.m.t) return t.mod(this.m);\n if (t.compareTo(this.m) < 0) return t;\n var e = x();\n return t.copyTo(e), this.reduce(e), e;\n }, z.prototype.revert = function Ct(t) {\n return t;\n }, z.prototype.reduce = function Tt(t) {\n for (t.drShiftTo(this.m.t - 1, this.r2), t.t > this.m.t + 1 && (t.t = this.m.t + 1, t.clamp()), this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3), this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2); t.compareTo(this.r2) < 0;) {\n t.dAddOffset(1, this.m.t + 1);\n }\n\n for (t.subTo(this.r2, t); t.compareTo(this.m) >= 0;) {\n t.subTo(this.m, t);\n }\n }, z.prototype.mulTo = function Rt(t, e, r) {\n t.multiplyTo(e, r), this.reduce(r);\n }, z.prototype.sqrTo = function It(t, e) {\n t.squareTo(e), this.reduce(e);\n };\n var Dt = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997],\n Ut = (1 << 26) / Dt[Dt.length - 1];\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n function Lt() {\n this.i = 0, this.j = 0, this.S = new Array();\n }\n\n E.prototype.chunkSize = function Bt(t) {\n return Math.floor(Math.LN2 * this.DB / Math.log(t));\n }, E.prototype.toRadix = function Nt(t) {\n if (null == t && (t = 10), 0 == this.signum() || t < 2 || t > 36) return \"0\";\n var e = this.chunkSize(t),\n r = Math.pow(t, e),\n n = L(r),\n i = x(),\n o = x(),\n s = \"\";\n\n for (this.divRemTo(n, i, o); i.signum() > 0;) {\n s = (r + o.intValue()).toString(t).substr(1) + s, i.divRemTo(n, i, o);\n }\n\n return o.intValue().toString(t) + s;\n }, E.prototype.fromRadix = function Ot(t, e) {\n this.fromInt(0), null == e && (e = 10);\n\n for (var r = this.chunkSize(e), n = Math.pow(e, r), i = !1, o = 0, s = 0, a = 0; a < t.length; ++a) {\n var u = U(t, a);\n u < 0 ? \"-\" == t.charAt(a) && 0 == this.signum() && (i = !0) : (s = e * s + u, ++o >= r && (this.dMultiply(n), this.dAddOffset(s, 0), o = 0, s = 0));\n }\n\n o > 0 && (this.dMultiply(Math.pow(e, o)), this.dAddOffset(s, 0)), i && E.ZERO.subTo(this, this);\n }, E.prototype.fromNumber = function jt(t, e, r) {\n if (\"number\" == typeof e) {\n if (t < 2) this.fromInt(1);else for (this.fromNumber(t, r), this.testBit(t - 1) || this.bitwiseTo(E.ONE.shiftLeft(t - 1), H, this), this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(e);) {\n this.dAddOffset(2, 0), this.bitLength() > t && this.subTo(E.ONE.shiftLeft(t - 1), this);\n }\n } else {\n var n = new Array(),\n i = 7 & t;\n n.length = 1 + (t >> 3), e.nextBytes(n), i > 0 ? n[0] &= (1 << i) - 1 : n[0] = 0, this.fromString(n, 256);\n }\n }, E.prototype.bitwiseTo = function Ht(t, e, r) {\n var n,\n i,\n o = Math.min(t.t, this.t);\n\n for (n = 0; n < o; ++n) {\n r[n] = e(this[n], t[n]);\n }\n\n if (t.t < this.t) {\n for (i = t.s & this.DM, n = o; n < this.t; ++n) {\n r[n] = e(this[n], i);\n }\n\n r.t = this.t;\n } else {\n for (i = this.s & this.DM, n = o; n < t.t; ++n) {\n r[n] = e(i, t[n]);\n }\n\n r.t = t.t;\n }\n\n r.s = e(this.s, t.s), r.clamp();\n }, E.prototype.changeBit = function Mt(t, e) {\n var r = E.ONE.shiftLeft(t);\n return this.bitwiseTo(r, e, r), r;\n }, E.prototype.addTo = function Kt(t, e) {\n for (var r = 0, n = 0, i = Math.min(t.t, this.t); r < i;) {\n n += this[r] + t[r], e[r++] = n & this.DM, n >>= this.DB;\n }\n\n if (t.t < this.t) {\n for (n += t.s; r < this.t;) {\n n += this[r], e[r++] = n & this.DM, n >>= this.DB;\n }\n\n n += this.s;\n } else {\n for (n += this.s; r < t.t;) {\n n += t[r], e[r++] = n & this.DM, n >>= this.DB;\n }\n\n n += t.s;\n }\n\n e.s = n < 0 ? -1 : 0, n > 0 ? e[r++] = n : n < -1 && (e[r++] = this.DV + n), e.t = r, e.clamp();\n }, E.prototype.dMultiply = function Vt(t) {\n this[this.t] = this.am(0, t - 1, this, 0, 0, this.t), ++this.t, this.clamp();\n }, E.prototype.dAddOffset = function qt(t, e) {\n if (0 != t) {\n for (; this.t <= e;) {\n this[this.t++] = 0;\n }\n\n for (this[e] += t; this[e] >= this.DV;) {\n this[e] -= this.DV, ++e >= this.t && (this[this.t++] = 0), ++this[e];\n }\n }\n }, E.prototype.multiplyLowerTo = function Jt(t, e, r) {\n var n,\n i = Math.min(this.t + t.t, e);\n\n for (r.s = 0, r.t = i; i > 0;) {\n r[--i] = 0;\n }\n\n for (n = r.t - this.t; i < n; ++i) {\n r[i + this.t] = this.am(0, t[i], r, i, 0, this.t);\n }\n\n for (n = Math.min(t.t, e); i < n; ++i) {\n this.am(0, t[i], r, i, 0, e - i);\n }\n\n r.clamp();\n }, E.prototype.multiplyUpperTo = function Wt(t, e, r) {\n --e;\n var n = r.t = this.t + t.t - e;\n\n for (r.s = 0; --n >= 0;) {\n r[n] = 0;\n }\n\n for (n = Math.max(e - this.t, 0); n < t.t; ++n) {\n r[this.t + n - e] = this.am(e - n, t[n], r, 0, 0, this.t + n - e);\n }\n\n r.clamp(), r.drShiftTo(1, r);\n }, E.prototype.modInt = function zt(t) {\n if (t <= 0) return 0;\n var e = this.DV % t,\n r = this.s < 0 ? t - 1 : 0;\n if (this.t > 0) if (0 == e) r = this[0] % t;else for (var n = this.t - 1; n >= 0; --n) {\n r = (e * r + this[n]) % t;\n }\n return r;\n }, E.prototype.millerRabin = function Yt(t) {\n var e = this.subtract(E.ONE),\n r = e.getLowestSetBit();\n if (r <= 0) return !1;\n var n = e.shiftRight(r);\n (t = t + 1 >> 1) > Dt.length && (t = Dt.length);\n\n for (var i = x(), o = 0; o < t; ++o) {\n i.fromInt(Dt[Math.floor(Math.random() * Dt.length)]);\n var s = i.modPow(n, this);\n\n if (0 != s.compareTo(E.ONE) && 0 != s.compareTo(e)) {\n for (var a = 1; a++ < r && 0 != s.compareTo(e);) {\n if (0 == (s = s.modPowInt(2, this)).compareTo(E.ONE)) return !1;\n }\n\n if (0 != s.compareTo(e)) return !1;\n }\n }\n\n return !0;\n }, E.prototype.clone =\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n function Gt() {\n var t = x();\n return this.copyTo(t), t;\n }, E.prototype.intValue = function Xt() {\n if (this.s < 0) {\n if (1 == this.t) return this[0] - this.DV;\n if (0 == this.t) return -1;\n } else {\n if (1 == this.t) return this[0];\n if (0 == this.t) return 0;\n }\n\n return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0];\n }, E.prototype.byteValue = function Qt() {\n return 0 == this.t ? this.s : this[0] << 24 >> 24;\n }, E.prototype.shortValue = function $t() {\n return 0 == this.t ? this.s : this[0] << 16 >> 16;\n }, E.prototype.signum = function Zt() {\n return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1;\n }, E.prototype.toByteArray = function te() {\n var t = this.t,\n e = new Array();\n e[0] = this.s;\n var r,\n n = this.DB - t * this.DB % 8,\n i = 0;\n if (t-- > 0) for (n < this.DB && (r = this[t] >> n) != (this.s & this.DM) >> n && (e[i++] = r | this.s << this.DB - n); t >= 0;) {\n n < 8 ? (r = (this[t] & (1 << n) - 1) << 8 - n, r |= this[--t] >> (n += this.DB - 8)) : (r = this[t] >> (n -= 8) & 255, n <= 0 && (n += this.DB, --t)), 0 != (128 & r) && (r |= -256), 0 == i && (128 & this.s) != (128 & r) && ++i, (i > 0 || r != this.s) && (e[i++] = r);\n }\n return e;\n }, E.prototype.equals = function ee(t) {\n return 0 == this.compareTo(t);\n }, E.prototype.min = function re(t) {\n return this.compareTo(t) < 0 ? this : t;\n }, E.prototype.max = function ne(t) {\n return this.compareTo(t) > 0 ? this : t;\n }, E.prototype.and = function ie(t) {\n var e = x();\n return this.bitwiseTo(t, j, e), e;\n }, E.prototype.or = function oe(t) {\n var e = x();\n return this.bitwiseTo(t, H, e), e;\n }, E.prototype.xor = function se(t) {\n var e = x();\n return this.bitwiseTo(t, M, e), e;\n }, E.prototype.andNot = function ae(t) {\n var e = x();\n return this.bitwiseTo(t, K, e), e;\n }, E.prototype.not = function ue() {\n for (var t = x(), e = 0; e < this.t; ++e) {\n t[e] = this.DM & ~this[e];\n }\n\n return t.t = this.t, t.s = ~this.s, t;\n }, E.prototype.shiftLeft = function ce(t) {\n var e = x();\n return t < 0 ? this.rShiftTo(-t, e) : this.lShiftTo(t, e), e;\n }, E.prototype.shiftRight = function he(t) {\n var e = x();\n return t < 0 ? this.lShiftTo(-t, e) : this.rShiftTo(t, e), e;\n }, E.prototype.getLowestSetBit = function le() {\n for (var t = 0; t < this.t; ++t) {\n if (0 != this[t]) return t * this.DB + V(this[t]);\n }\n\n return this.s < 0 ? this.t * this.DB : -1;\n }, E.prototype.bitCount = function fe() {\n for (var t = 0, e = this.s & this.DM, r = 0; r < this.t; ++r) {\n t += q(this[r] ^ e);\n }\n\n return t;\n }, E.prototype.testBit = function de(t) {\n var e = Math.floor(t / this.DB);\n return e >= this.t ? 0 != this.s : 0 != (this[e] & 1 << t % this.DB);\n }, E.prototype.setBit = function ge(t) {\n return this.changeBit(t, H);\n }, E.prototype.clearBit = function pe(t) {\n return this.changeBit(t, K);\n }, E.prototype.flipBit = function ve(t) {\n return this.changeBit(t, M);\n }, E.prototype.add = function ye(t) {\n var e = x();\n return this.addTo(t, e), e;\n }, E.prototype.subtract = function me(t) {\n var e = x();\n return this.subTo(t, e), e;\n }, E.prototype.multiply = function _e(t) {\n var e = x();\n return this.multiplyTo(t, e), e;\n }, E.prototype.divide = function Se(t) {\n var e = x();\n return this.divRemTo(t, e, null), e;\n }, E.prototype.remainder = function Fe(t) {\n var e = x();\n return this.divRemTo(t, null, e), e;\n }, E.prototype.divideAndRemainder = function be(t) {\n var e = x(),\n r = x();\n return this.divRemTo(t, e, r), new Array(e, r);\n }, E.prototype.modPow = function we(t, e) {\n var r,\n n,\n i = t.bitLength(),\n o = L(1);\n if (i <= 0) return o;\n r = i < 18 ? 1 : i < 48 ? 3 : i < 144 ? 4 : i < 768 ? 5 : 6, n = i < 8 ? new N(e) : e.isEven() ? new z(e) : new O(e);\n var s = new Array(),\n a = 3,\n u = r - 1,\n c = (1 << r) - 1;\n\n if (s[1] = n.convert(this), r > 1) {\n var h = x();\n\n for (n.sqrTo(s[1], h); a <= c;) {\n s[a] = x(), n.mulTo(h, s[a - 2], s[a]), a += 2;\n }\n }\n\n var l,\n f,\n d = t.t - 1,\n g = !0,\n p = x();\n\n for (i = B(t[d]) - 1; d >= 0;) {\n for (i >= u ? l = t[d] >> i - u & c : (l = (t[d] & (1 << i + 1) - 1) << u - i, d > 0 && (l |= t[d - 1] >> this.DB + i - u)), a = r; 0 == (1 & l);) {\n l >>= 1, --a;\n }\n\n if ((i -= a) < 0 && (i += this.DB, --d), g) s[l].copyTo(o), g = !1;else {\n for (; a > 1;) {\n n.sqrTo(o, p), n.sqrTo(p, o), a -= 2;\n }\n\n a > 0 ? n.sqrTo(o, p) : (f = o, o = p, p = f), n.mulTo(p, s[l], o);\n }\n\n for (; d >= 0 && 0 == (t[d] & 1 << i);) {\n n.sqrTo(o, p), f = o, o = p, p = f, --i < 0 && (i = this.DB - 1, --d);\n }\n }\n\n return n.revert(o);\n }, E.prototype.modInverse = function Ee(t) {\n var e = t.isEven();\n if (this.isEven() && e || 0 == t.signum()) return E.ZERO;\n\n for (var r = t.clone(), n = this.clone(), i = L(1), o = L(0), s = L(0), a = L(1); 0 != r.signum();) {\n for (; r.isEven();) {\n r.rShiftTo(1, r), e ? (i.isEven() && o.isEven() || (i.addTo(this, i), o.subTo(t, o)), i.rShiftTo(1, i)) : o.isEven() || o.subTo(t, o), o.rShiftTo(1, o);\n }\n\n for (; n.isEven();) {\n n.rShiftTo(1, n), e ? (s.isEven() && a.isEven() || (s.addTo(this, s), a.subTo(t, a)), s.rShiftTo(1, s)) : a.isEven() || a.subTo(t, a), a.rShiftTo(1, a);\n }\n\n r.compareTo(n) >= 0 ? (r.subTo(n, r), e && i.subTo(s, i), o.subTo(a, o)) : (n.subTo(r, n), e && s.subTo(i, s), a.subTo(o, a));\n }\n\n return 0 != n.compareTo(E.ONE) ? E.ZERO : a.compareTo(t) >= 0 ? a.subtract(t) : a.signum() < 0 ? (a.addTo(t, a), a.signum() < 0 ? a.add(t) : a) : a;\n }, E.prototype.pow = function xe(t) {\n return this.exp(t, new J());\n }, E.prototype.gcd = function ke(t) {\n var e = this.s < 0 ? this.negate() : this.clone(),\n r = t.s < 0 ? t.negate() : t.clone();\n\n if (e.compareTo(r) < 0) {\n var n = e;\n e = r, r = n;\n }\n\n var i = e.getLowestSetBit(),\n o = r.getLowestSetBit();\n if (o < 0) return e;\n\n for (i < o && (o = i), o > 0 && (e.rShiftTo(o, e), r.rShiftTo(o, r)); e.signum() > 0;) {\n (i = e.getLowestSetBit()) > 0 && e.rShiftTo(i, e), (i = r.getLowestSetBit()) > 0 && r.rShiftTo(i, r), e.compareTo(r) >= 0 ? (e.subTo(r, e), e.rShiftTo(1, e)) : (r.subTo(e, r), r.rShiftTo(1, r));\n }\n\n return o > 0 && r.lShiftTo(o, r), r;\n }, E.prototype.isProbablePrime = function Ae(t) {\n var e,\n r = this.abs();\n\n if (1 == r.t && r[0] <= Dt[Dt.length - 1]) {\n for (e = 0; e < Dt.length; ++e) {\n if (r[0] == Dt[e]) return !0;\n }\n\n return !1;\n }\n\n if (r.isEven()) return !1;\n\n for (e = 1; e < Dt.length;) {\n for (var n = Dt[e], i = e + 1; i < Dt.length && n < Ut;) {\n n *= Dt[i++];\n }\n\n for (n = r.modInt(n); e < i;) {\n if (n % Dt[e++] == 0) return !1;\n }\n }\n\n return r.millerRabin(t);\n }, E.prototype.square = function Pe() {\n var t = x();\n return this.squareTo(t), t;\n }, Lt.prototype.init = function Ce(t) {\n var e, r, n;\n\n for (e = 0; e < 256; ++e) {\n this.S[e] = e;\n }\n\n for (r = 0, e = 0; e < 256; ++e) {\n r = r + this.S[e] + t[e % t.length] & 255, n = this.S[e], this.S[e] = this.S[r], this.S[r] = n;\n }\n\n this.i = 0, this.j = 0;\n }, Lt.prototype.next = function Te() {\n var t;\n return this.i = this.i + 1 & 255, this.j = this.j + this.S[this.i] & 255, t = this.S[this.i], this.S[this.i] = this.S[this.j], this.S[this.j] = t, this.S[t + this.S[this.i] & 255];\n };\n var Re,\n Ie,\n De,\n Ue = 256;\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n function Le() {\n !function t(e) {\n Ie[De++] ^= 255 & e, Ie[De++] ^= e >> 8 & 255, Ie[De++] ^= e >> 16 & 255, Ie[De++] ^= e >> 24 & 255, De >= Ue && (De -= Ue);\n }(new Date().getTime());\n }\n\n if (null == Ie) {\n var Be;\n\n if (Ie = new Array(), De = 0, void 0 !== i && (void 0 !== i.crypto || void 0 !== i.msCrypto)) {\n var Ne = i.crypto || i.msCrypto;\n\n if (Ne.getRandomValues) {\n var Oe = new Uint8Array(32);\n\n for (Ne.getRandomValues(Oe), Be = 0; Be < 32; ++Be) {\n Ie[De++] = Oe[Be];\n }\n } else if (\"Netscape\" == n.appName && n.appVersion < \"5\") {\n var je = i.crypto.random(32);\n\n for (Be = 0; Be < je.length; ++Be) {\n Ie[De++] = 255 & je.charCodeAt(Be);\n }\n }\n }\n\n for (; De < Ue;) {\n Be = Math.floor(65536 * Math.random()), Ie[De++] = Be >>> 8, Ie[De++] = 255 & Be;\n }\n\n De = 0, Le();\n }\n\n function He() {\n if (null == Re) {\n for (Le(), (Re = function t() {\n return new Lt();\n }()).init(Ie), De = 0; De < Ie.length; ++De) {\n Ie[De] = 0;\n }\n\n De = 0;\n }\n\n return Re.next();\n }\n\n function Me() {}\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n\n function Ke(t, e) {\n return new E(t, e);\n }\n\n function Ve(t, e, r) {\n for (var n = \"\", i = 0; n.length < e;) {\n n += r(String.fromCharCode.apply(String, t.concat([(4278190080 & i) >> 24, (16711680 & i) >> 16, (65280 & i) >> 8, 255 & i]))), i += 1;\n }\n\n return n;\n }\n\n function qe() {\n this.n = null, this.e = 0, this.d = null, this.p = null, this.q = null, this.dmp1 = null, this.dmq1 = null, this.coeff = null;\n }\n /*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\n\n\n function Je(t, e) {\n this.x = e, this.q = t;\n }\n\n function We(t, e, r, n) {\n this.curve = t, this.x = e, this.y = r, this.z = null == n ? E.ONE : n, this.zinv = null;\n }\n\n function ze(t, e, r) {\n this.q = t, this.a = this.fromBigInteger(e), this.b = this.fromBigInteger(r), this.infinity = new We(this, null, null);\n }\n\n Me.prototype.nextBytes = function Ye(t) {\n var e;\n\n for (e = 0; e < t.length; ++e) {\n t[e] = He();\n }\n }, qe.prototype.doPublic = function Ge(t) {\n return t.modPowInt(this.e, this.n);\n }, qe.prototype.setPublic = function Xe(t, e) {\n if (this.isPublic = !0, this.isPrivate = !1, \"string\" != typeof t) this.n = t, this.e = e;else {\n if (!(null != t && null != e && t.length > 0 && e.length > 0)) throw \"Invalid RSA public key\";\n this.n = Ke(t, 16), this.e = parseInt(e, 16);\n }\n }, qe.prototype.encrypt = function Qe(t) {\n var e = function r(t, e) {\n if (e < t.length + 11) throw \"Message too long for RSA\";\n\n for (var r = new Array(), n = t.length - 1; n >= 0 && e > 0;) {\n var i = t.charCodeAt(n--);\n i < 128 ? r[--e] = i : i > 127 && i < 2048 ? (r[--e] = 63 & i | 128, r[--e] = i >> 6 | 192) : (r[--e] = 63 & i | 128, r[--e] = i >> 6 & 63 | 128, r[--e] = i >> 12 | 224);\n }\n\n r[--e] = 0;\n\n for (var o = new Me(), s = new Array(); e > 2;) {\n for (s[0] = 0; 0 == s[0];) {\n o.nextBytes(s);\n }\n\n r[--e] = s[0];\n }\n\n return r[--e] = 2, r[--e] = 0, new E(r);\n }(t, this.n.bitLength() + 7 >> 3);\n\n if (null == e) return null;\n var n = this.doPublic(e);\n if (null == n) return null;\n var i = n.toString(16);\n return 0 == (1 & i.length) ? i : \"0\" + i;\n }, qe.prototype.encryptOAEP = function $e(t, e, r) {\n var n = function i(t, e, r, n) {\n var i = Er.crypto.MessageDigest,\n o = Er.crypto.Util,\n s = null;\n if (r || (r = \"sha1\"), \"string\" == typeof r && (s = i.getCanonicalAlgName(r), n = i.getHashLength(s), r = function t(e) {\n return Or(o.hashHex(jr(e), s));\n }), t.length + 2 * n + 2 > e) throw \"Message too long for RSA\";\n var a,\n u = \"\";\n\n for (a = 0; a < e - t.length - 2 * n - 2; a += 1) {\n u += \"\\0\";\n }\n\n var c = r(\"\") + u + \"\u0001\" + t,\n h = new Array(n);\n new Me().nextBytes(h);\n var l = Ve(h, c.length, r),\n f = [];\n\n for (a = 0; a < c.length; a += 1) {\n f[a] = c.charCodeAt(a) ^ l.charCodeAt(a);\n }\n\n var d = Ve(f, h.length, r),\n g = [0];\n\n for (a = 0; a < h.length; a += 1) {\n g[a + 1] = h[a] ^ d.charCodeAt(a);\n }\n\n return new E(g.concat(f));\n }(t, this.n.bitLength() + 7 >> 3, e, r);\n\n if (null == n) return null;\n var o = this.doPublic(n);\n if (null == o) return null;\n var s = o.toString(16);\n return 0 == (1 & s.length) ? s : \"0\" + s;\n }, qe.prototype.type = \"RSA\", Je.prototype.equals = function Ze(t) {\n return t == this || this.q.equals(t.q) && this.x.equals(t.x);\n }, Je.prototype.toBigInteger = function tr() {\n return this.x;\n }, Je.prototype.negate = function er() {\n return new Je(this.q, this.x.negate().mod(this.q));\n }, Je.prototype.add = function rr(t) {\n return new Je(this.q, this.x.add(t.toBigInteger()).mod(this.q));\n }, Je.prototype.subtract = function nr(t) {\n return new Je(this.q, this.x.subtract(t.toBigInteger()).mod(this.q));\n }, Je.prototype.multiply = function ir(t) {\n return new Je(this.q, this.x.multiply(t.toBigInteger()).mod(this.q));\n }, Je.prototype.square = function or() {\n return new Je(this.q, this.x.square().mod(this.q));\n }, Je.prototype.divide = function sr(t) {\n return new Je(this.q, this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q));\n }, We.prototype.getX = function ar() {\n return null == this.zinv && (this.zinv = this.z.modInverse(this.curve.q)), this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q));\n }, We.prototype.getY = function ur() {\n return null == this.zinv && (this.zinv = this.z.modInverse(this.curve.q)), this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q));\n }, We.prototype.equals = function cr(t) {\n return t == this || (this.isInfinity() ? t.isInfinity() : t.isInfinity() ? this.isInfinity() : !!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(E.ZERO) && t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(E.ZERO));\n }, We.prototype.isInfinity = function hr() {\n return null == this.x && null == this.y || this.z.equals(E.ZERO) && !this.y.toBigInteger().equals(E.ZERO);\n }, We.prototype.negate = function lr() {\n return new We(this.curve, this.x, this.y.negate(), this.z);\n }, We.prototype.add = function fr(t) {\n if (this.isInfinity()) return t;\n if (t.isInfinity()) return this;\n var e = t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),\n r = t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);\n if (E.ZERO.equals(r)) return E.ZERO.equals(e) ? this.twice() : this.curve.getInfinity();\n var n = new E(\"3\"),\n i = this.x.toBigInteger(),\n o = this.y.toBigInteger(),\n s = (t.x.toBigInteger(), t.y.toBigInteger(), r.square()),\n a = s.multiply(r),\n u = i.multiply(s),\n c = e.square().multiply(this.z),\n h = c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),\n l = u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),\n f = a.multiply(this.z).multiply(t.z).mod(this.curve.q);\n return new We(this.curve, this.curve.fromBigInteger(h), this.curve.fromBigInteger(l), f);\n }, We.prototype.twice = function dr() {\n if (this.isInfinity()) return this;\n if (0 == this.y.toBigInteger().signum()) return this.curve.getInfinity();\n var t = new E(\"3\"),\n e = this.x.toBigInteger(),\n r = this.y.toBigInteger(),\n n = r.multiply(this.z),\n i = n.multiply(r).mod(this.curve.q),\n o = this.curve.a.toBigInteger(),\n s = e.square().multiply(t);\n E.ZERO.equals(o) || (s = s.add(this.z.square().multiply(o)));\n var a = (s = s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),\n u = s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),\n c = n.square().multiply(n).shiftLeft(3).mod(this.curve.q);\n return new We(this.curve, this.curve.fromBigInteger(a), this.curve.fromBigInteger(u), c);\n }, We.prototype.multiply = function gr(t) {\n if (this.isInfinity()) return this;\n if (0 == t.signum()) return this.curve.getInfinity();\n var e,\n r = t,\n n = r.multiply(new E(\"3\")),\n i = this.negate(),\n o = this;\n\n for (e = n.bitLength() - 2; e > 0; --e) {\n o = o.twice();\n var s = n.testBit(e);\n s != r.testBit(e) && (o = o.add(s ? this : i));\n }\n\n return o;\n }, We.prototype.multiplyTwo = function pr(t, e, r) {\n var n;\n n = t.bitLength() > r.bitLength() ? t.bitLength() - 1 : r.bitLength() - 1;\n\n for (var i = this.curve.getInfinity(), o = this.add(e); n >= 0;) {\n i = i.twice(), t.testBit(n) ? i = r.testBit(n) ? i.add(o) : i.add(this) : r.testBit(n) && (i = i.add(e)), --n;\n }\n\n return i;\n }, ze.prototype.getQ = function vr() {\n return this.q;\n }, ze.prototype.getA = function yr() {\n return this.a;\n }, ze.prototype.getB = function mr() {\n return this.b;\n }, ze.prototype.equals = function _r(t) {\n return t == this || this.q.equals(t.q) && this.a.equals(t.a) && this.b.equals(t.b);\n }, ze.prototype.getInfinity = function Sr() {\n return this.infinity;\n }, ze.prototype.fromBigInteger = function Fr(t) {\n return new Je(this.q, t);\n }, ze.prototype.decodePointHex = function br(t) {\n switch (parseInt(t.substr(0, 2), 16)) {\n case 0:\n return this.infinity;\n\n case 2:\n case 3:\n return null;\n\n case 4:\n case 6:\n case 7:\n var e = (t.length - 2) / 2,\n r = t.substr(2, e),\n n = t.substr(e + 2, e);\n return new We(this, this.fromBigInteger(new E(r, 16)), this.fromBigInteger(new E(n, 16)));\n\n default:\n return null;\n }\n },\n /*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\n Je.prototype.getByteLength = function () {\n return Math.floor((this.toBigInteger().bitLength() + 7) / 8);\n }, We.prototype.getEncoded = function (t) {\n var e = function t(e, r) {\n var n = e.toByteArrayUnsigned();\n if (r < n.length) n = n.slice(n.length - r);else for (; r > n.length;) {\n n.unshift(0);\n }\n return n;\n },\n r = this.getX().toBigInteger(),\n n = this.getY().toBigInteger(),\n i = e(r, 32);\n\n return t ? n.isEven() ? i.unshift(2) : i.unshift(3) : (i.unshift(4), i = i.concat(e(n, 32))), i;\n }, We.decodeFrom = function (t, e) {\n e[0];\n var r = e.length - 1,\n n = e.slice(1, 1 + r / 2),\n i = e.slice(1 + r / 2, 1 + r);\n n.unshift(0), i.unshift(0);\n var o = new E(n),\n s = new E(i);\n return new We(t, t.fromBigInteger(o), t.fromBigInteger(s));\n }, We.decodeFromHex = function (t, e) {\n e.substr(0, 2);\n var r = e.length - 2,\n n = e.substr(2, r / 2),\n i = e.substr(2 + r / 2, r / 2),\n o = new E(n, 16),\n s = new E(i, 16);\n return new We(t, t.fromBigInteger(o), t.fromBigInteger(s));\n }, We.prototype.add2D = function (t) {\n if (this.isInfinity()) return t;\n if (t.isInfinity()) return this;\n if (this.x.equals(t.x)) return this.y.equals(t.y) ? this.twice() : this.curve.getInfinity();\n var e = t.x.subtract(this.x),\n r = t.y.subtract(this.y).divide(e),\n n = r.square().subtract(this.x).subtract(t.x),\n i = r.multiply(this.x.subtract(n)).subtract(this.y);\n return new We(this.curve, n, i);\n }, We.prototype.twice2D = function () {\n if (this.isInfinity()) return this;\n if (0 == this.y.toBigInteger().signum()) return this.curve.getInfinity();\n var t = this.curve.fromBigInteger(E.valueOf(2)),\n e = this.curve.fromBigInteger(E.valueOf(3)),\n r = this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),\n n = r.square().subtract(this.x.multiply(t)),\n i = r.multiply(this.x.subtract(n)).subtract(this.y);\n return new We(this.curve, n, i);\n }, We.prototype.multiply2D = function (t) {\n if (this.isInfinity()) return this;\n if (0 == t.signum()) return this.curve.getInfinity();\n var e,\n r = t,\n n = r.multiply(new E(\"3\")),\n i = this.negate(),\n o = this;\n\n for (e = n.bitLength() - 2; e > 0; --e) {\n o = o.twice();\n var s = n.testBit(e);\n s != r.testBit(e) && (o = o.add2D(s ? this : i));\n }\n\n return o;\n }, We.prototype.isOnCurve = function () {\n var t = this.getX().toBigInteger(),\n e = this.getY().toBigInteger(),\n r = this.curve.getA().toBigInteger(),\n n = this.curve.getB().toBigInteger(),\n i = this.curve.getQ(),\n o = e.multiply(e).mod(i),\n s = t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);\n return o.equals(s);\n }, We.prototype.toString = function () {\n return \"(\" + this.getX().toBigInteger().toString() + \",\" + this.getY().toBigInteger().toString() + \")\";\n }, We.prototype.validate = function () {\n var t = this.curve.getQ();\n if (this.isInfinity()) throw new Error(\"Point is at infinity.\");\n var e = this.getX().toBigInteger(),\n r = this.getY().toBigInteger();\n if (e.compareTo(E.ONE) < 0 || e.compareTo(t.subtract(E.ONE)) > 0) throw new Error(\"x coordinate out of bounds\");\n if (r.compareTo(E.ONE) < 0 || r.compareTo(t.subtract(E.ONE)) > 0) throw new Error(\"y coordinate out of bounds\");\n if (!this.isOnCurve()) throw new Error(\"Point is not on the curve.\");\n if (this.multiply(t).isInfinity()) throw new Error(\"Point is not a scalar multiple of G.\");\n return !0;\n };\n /*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\n\n var wr = function () {\n var t = new RegExp('(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)|(?:\"(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))', \"g\"),\n e = new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\", \"g\"),\n n = {\n '\"': '\"',\n \"/\": \"/\",\n \"\\\\\": \"\\\\\",\n b: \"\\b\",\n f: \"\\f\",\n n: \"\\n\",\n r: \"\\r\",\n t: \"\\t\"\n };\n\n function i(t, e, r) {\n return e ? n[e] : String.fromCharCode(parseInt(r, 16));\n }\n\n var o = new String(\"\"),\n s = (Object, Array, Object.hasOwnProperty);\n return function (n, a) {\n var u,\n c,\n h = n.match(t),\n l = h[0],\n f = !1;\n \"{\" === l ? u = {} : \"[\" === l ? u = [] : (u = [], f = !0);\n\n for (var d = [u], g = 1 - f, p = h.length; g < p; ++g) {\n var v;\n\n switch ((l = h[g]).charCodeAt(0)) {\n default:\n (v = d[0])[c || v.length] = +l, c = void 0;\n break;\n\n case 34:\n if (-1 !== (l = l.substring(1, l.length - 1)).indexOf(\"\\\\\") && (l = l.replace(e, i)), v = d[0], !c) {\n if (!(v instanceof Array)) {\n c = l || o;\n break;\n }\n\n c = v.length;\n }\n\n v[c] = l, c = void 0;\n break;\n\n case 91:\n v = d[0], d.unshift(v[c || v.length] = []), c = void 0;\n break;\n\n case 93:\n d.shift();\n break;\n\n case 102:\n (v = d[0])[c || v.length] = !1, c = void 0;\n break;\n\n case 110:\n (v = d[0])[c || v.length] = null, c = void 0;\n break;\n\n case 116:\n (v = d[0])[c || v.length] = !0, c = void 0;\n break;\n\n case 123:\n v = d[0], d.unshift(v[c || v.length] = {}), c = void 0;\n break;\n\n case 125:\n d.shift();\n }\n }\n\n if (f) {\n if (1 !== d.length) throw new Error();\n u = u[0];\n } else if (d.length) throw new Error();\n\n if (a) {\n u = function t(e, n) {\n var i = e[n];\n\n if (i && \"object\" === (void 0 === i ? \"undefined\" : r(i))) {\n var o = null;\n\n for (var u in i) {\n if (s.call(i, u) && i !== e) {\n var c = t(i, u);\n void 0 !== c ? i[u] = c : (o || (o = []), o.push(u));\n }\n }\n\n if (o) for (var h = o.length; --h >= 0;) {\n delete i[o[h]];\n }\n }\n\n return a.call(e, n, i);\n }({\n \"\": u\n }, \"\");\n }\n\n return u;\n };\n }();\n\n void 0 !== Er && Er || (e.KJUR = Er = {}), void 0 !== Er.asn1 && Er.asn1 || (Er.asn1 = {}), Er.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (t) {\n var e = t.toString(16);\n return e.length % 2 == 1 && (e = \"0\" + e), e;\n }, this.bigIntToMinTwosComplementsHex = function (t) {\n var e = t.toString(16);\n if (\"-\" != e.substr(0, 1)) e.length % 2 == 1 ? e = \"0\" + e : e.match(/^[0-7]/) || (e = \"00\" + e);else {\n var r = e.substr(1).length;\n r % 2 == 1 ? r += 1 : e.match(/^[0-7]/) || (r += 2);\n\n for (var n = \"\", i = 0; i < r; i++) {\n n += \"f\";\n }\n\n e = new E(n, 16).xor(t).add(E.ONE).toString(16).replace(/^-/, \"\");\n }\n return e;\n }, this.getPEMStringFromHex = function (t, e) {\n return Vr(t, e);\n }, this.newObject = function (t) {\n var e = Er.asn1,\n r = e.DERBoolean,\n n = e.DERInteger,\n i = e.DERBitString,\n o = e.DEROctetString,\n s = e.DERNull,\n a = e.DERObjectIdentifier,\n u = e.DEREnumerated,\n c = e.DERUTF8String,\n h = e.DERNumericString,\n l = e.DERPrintableString,\n f = e.DERTeletexString,\n d = e.DERIA5String,\n g = e.DERUTCTime,\n p = e.DERGeneralizedTime,\n v = e.DERSequence,\n y = e.DERSet,\n m = e.DERTaggedObject,\n _ = e.ASN1Util.newObject,\n S = Object.keys(t);\n if (1 != S.length) throw \"key of param shall be only one.\";\n var F = S[0];\n if (-1 == \":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + F + \":\")) throw \"undefined key: \" + F;\n if (\"bool\" == F) return new r(t[F]);\n if (\"int\" == F) return new n(t[F]);\n if (\"bitstr\" == F) return new i(t[F]);\n if (\"octstr\" == F) return new o(t[F]);\n if (\"null\" == F) return new s(t[F]);\n if (\"oid\" == F) return new a(t[F]);\n if (\"enum\" == F) return new u(t[F]);\n if (\"utf8str\" == F) return new c(t[F]);\n if (\"numstr\" == F) return new h(t[F]);\n if (\"prnstr\" == F) return new l(t[F]);\n if (\"telstr\" == F) return new f(t[F]);\n if (\"ia5str\" == F) return new d(t[F]);\n if (\"utctime\" == F) return new g(t[F]);\n if (\"gentime\" == F) return new p(t[F]);\n\n if (\"seq\" == F) {\n for (var b = t[F], w = [], E = 0; E < b.length; E++) {\n var x = _(b[E]);\n\n w.push(x);\n }\n\n return new v({\n array: w\n });\n }\n\n if (\"set\" == F) {\n for (b = t[F], w = [], E = 0; E < b.length; E++) {\n x = _(b[E]);\n w.push(x);\n }\n\n return new y({\n array: w\n });\n }\n\n if (\"tag\" == F) {\n var k = t[F];\n\n if (\"[object Array]\" === Object.prototype.toString.call(k) && 3 == k.length) {\n var A = _(k[2]);\n\n return new m({\n tag: k[0],\n explicit: k[1],\n obj: A\n });\n }\n\n var P = {};\n if (void 0 !== k.explicit && (P.explicit = k.explicit), void 0 !== k.tag && (P.tag = k.tag), void 0 === k.obj) throw \"obj shall be specified for 'tag'.\";\n return P.obj = _(k.obj), new m(P);\n }\n }, this.jsonToASN1HEX = function (t) {\n return this.newObject(t).getEncodedHex();\n };\n }(), Er.asn1.ASN1Util.oidHexToInt = function (t) {\n for (var e = \"\", r = parseInt(t.substr(0, 2), 16), n = (e = Math.floor(r / 40) + \".\" + r % 40, \"\"), i = 2; i < t.length; i += 2) {\n var o = (\"00000000\" + parseInt(t.substr(i, 2), 16).toString(2)).slice(-8);\n if (n += o.substr(1, 7), \"0\" == o.substr(0, 1)) e = e + \".\" + new E(n, 2).toString(10), n = \"\";\n }\n\n return e;\n }, Er.asn1.ASN1Util.oidIntToHex = function (t) {\n var e = function t(e) {\n var r = e.toString(16);\n return 1 == r.length && (r = \"0\" + r), r;\n },\n r = function t(r) {\n var n = \"\",\n i = new E(r, 10).toString(2),\n o = 7 - i.length % 7;\n 7 == o && (o = 0);\n\n for (var s = \"\", a = 0; a < o; a++) {\n s += \"0\";\n }\n\n i = s + i;\n\n for (a = 0; a < i.length - 1; a += 7) {\n var u = i.substr(a, 7);\n a != i.length - 7 && (u = \"1\" + u), n += e(parseInt(u, 2));\n }\n\n return n;\n };\n\n if (!t.match(/^[0-9.]+$/)) throw \"malformed oid string: \" + t;\n var n = \"\",\n i = t.split(\".\"),\n o = 40 * parseInt(i[0]) + parseInt(i[1]);\n n += e(o), i.splice(0, 2);\n\n for (var s = 0; s < i.length; s++) {\n n += r(i[s]);\n }\n\n return n;\n }, Er.asn1.ASN1Object = function () {\n this.getLengthHexFromValue = function () {\n if (void 0 === this.hV || null == this.hV) throw \"this.hV is null or undefined.\";\n if (this.hV.length % 2 == 1) throw \"value hex must be even length: n=\" + \"\".length + \",v=\" + this.hV;\n var t = this.hV.length / 2,\n e = t.toString(16);\n if (e.length % 2 == 1 && (e = \"0\" + e), t < 128) return e;\n var r = e.length / 2;\n if (r > 15) throw \"ASN.1 length too long to represent by 8x: n = \" + t.toString(16);\n return (128 + r).toString(16) + e;\n }, this.getEncodedHex = function () {\n return (null == this.hTLV || this.isModified) && (this.hV = this.getFreshValueHex(), this.hL = this.getLengthHexFromValue(), this.hTLV = this.hT + this.hL + this.hV, this.isModified = !1), this.hTLV;\n }, this.getValueHex = function () {\n return this.getEncodedHex(), this.hV;\n }, this.getFreshValueHex = function () {\n return \"\";\n };\n }, Er.asn1.DERAbstractString = function (t) {\n Er.asn1.DERAbstractString.superclass.constructor.call(this);\n this.getString = function () {\n return this.s;\n }, this.setString = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = t, this.hV = Br(this.s).toLowerCase();\n }, this.setStringHex = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = null, this.hV = t;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, void 0 !== t && (\"string\" == typeof t ? this.setString(t) : void 0 !== t.str ? this.setString(t.str) : void 0 !== t.hex && this.setStringHex(t.hex));\n }, o.lang.extend(Er.asn1.DERAbstractString, Er.asn1.ASN1Object), Er.asn1.DERAbstractTime = function (t) {\n Er.asn1.DERAbstractTime.superclass.constructor.call(this);\n this.localDateToUTC = function (t) {\n return utc = t.getTime() + 6e4 * t.getTimezoneOffset(), new Date(utc);\n }, this.formatDate = function (t, e, r) {\n var n = this.zeroPadding,\n i = this.localDateToUTC(t),\n o = String(i.getFullYear());\n \"utc\" == e && (o = o.substr(2, 2));\n var s = o + n(String(i.getMonth() + 1), 2) + n(String(i.getDate()), 2) + n(String(i.getHours()), 2) + n(String(i.getMinutes()), 2) + n(String(i.getSeconds()), 2);\n\n if (!0 === r) {\n var a = i.getMilliseconds();\n\n if (0 != a) {\n var u = n(String(a), 3);\n s = s + \".\" + (u = u.replace(/[0]+$/, \"\"));\n }\n }\n\n return s + \"Z\";\n }, this.zeroPadding = function (t, e) {\n return t.length >= e ? t : new Array(e - t.length + 1).join(\"0\") + t;\n }, this.getString = function () {\n return this.s;\n }, this.setString = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = t, this.hV = Rr(t);\n }, this.setByDateValue = function (t, e, r, n, i, o) {\n var s = new Date(Date.UTC(t, e - 1, r, n, i, o, 0));\n this.setByDate(s);\n }, this.getFreshValueHex = function () {\n return this.hV;\n };\n }, o.lang.extend(Er.asn1.DERAbstractTime, Er.asn1.ASN1Object), Er.asn1.DERAbstractStructured = function (t) {\n Er.asn1.DERAbstractString.superclass.constructor.call(this);\n this.setByASN1ObjectArray = function (t) {\n this.hTLV = null, this.isModified = !0, this.asn1Array = t;\n }, this.appendASN1Object = function (t) {\n this.hTLV = null, this.isModified = !0, this.asn1Array.push(t);\n }, this.asn1Array = new Array(), void 0 !== t && void 0 !== t.array && (this.asn1Array = t.array);\n }, o.lang.extend(Er.asn1.DERAbstractStructured, Er.asn1.ASN1Object), Er.asn1.DERBoolean = function () {\n Er.asn1.DERBoolean.superclass.constructor.call(this), this.hT = \"01\", this.hTLV = \"0101ff\";\n }, o.lang.extend(Er.asn1.DERBoolean, Er.asn1.ASN1Object), Er.asn1.DERInteger = function (t) {\n Er.asn1.DERInteger.superclass.constructor.call(this), this.hT = \"02\", this.setByBigInteger = function (t) {\n this.hTLV = null, this.isModified = !0, this.hV = Er.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t);\n }, this.setByInteger = function (t) {\n var e = new E(String(t), 10);\n this.setByBigInteger(e);\n }, this.setValueHex = function (t) {\n this.hV = t;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, void 0 !== t && (void 0 !== t.bigint ? this.setByBigInteger(t.bigint) : void 0 !== t[\"int\"] ? this.setByInteger(t[\"int\"]) : \"number\" == typeof t ? this.setByInteger(t) : void 0 !== t.hex && this.setValueHex(t.hex));\n }, o.lang.extend(Er.asn1.DERInteger, Er.asn1.ASN1Object), Er.asn1.DERBitString = function (t) {\n if (void 0 !== t && void 0 !== t.obj) {\n var e = Er.asn1.ASN1Util.newObject(t.obj);\n t.hex = \"00\" + e.getEncodedHex();\n }\n\n Er.asn1.DERBitString.superclass.constructor.call(this), this.hT = \"03\", this.setHexValueIncludingUnusedBits = function (t) {\n this.hTLV = null, this.isModified = !0, this.hV = t;\n }, this.setUnusedBitsAndHexValue = function (t, e) {\n if (t < 0 || 7 < t) throw \"unused bits shall be from 0 to 7: u = \" + t;\n var r = \"0\" + t;\n this.hTLV = null, this.isModified = !0, this.hV = r + e;\n }, this.setByBinaryString = function (t) {\n var e = 8 - (t = t.replace(/0+$/, \"\")).length % 8;\n 8 == e && (e = 0);\n\n for (var r = 0; r <= e; r++) {\n t += \"0\";\n }\n\n var n = \"\";\n\n for (r = 0; r < t.length - 1; r += 8) {\n var i = t.substr(r, 8),\n o = parseInt(i, 2).toString(16);\n 1 == o.length && (o = \"0\" + o), n += o;\n }\n\n this.hTLV = null, this.isModified = !0, this.hV = \"0\" + e + n;\n }, this.setByBooleanArray = function (t) {\n for (var e = \"\", r = 0; r < t.length; r++) {\n 1 == t[r] ? e += \"1\" : e += \"0\";\n }\n\n this.setByBinaryString(e);\n }, this.newFalseArray = function (t) {\n for (var e = new Array(t), r = 0; r < t; r++) {\n e[r] = !1;\n }\n\n return e;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, void 0 !== t && (\"string\" == typeof t && t.toLowerCase().match(/^[0-9a-f]+$/) ? this.setHexValueIncludingUnusedBits(t) : void 0 !== t.hex ? this.setHexValueIncludingUnusedBits(t.hex) : void 0 !== t.bin ? this.setByBinaryString(t.bin) : void 0 !== t.array && this.setByBooleanArray(t.array));\n }, o.lang.extend(Er.asn1.DERBitString, Er.asn1.ASN1Object), Er.asn1.DEROctetString = function (t) {\n if (void 0 !== t && void 0 !== t.obj) {\n var e = Er.asn1.ASN1Util.newObject(t.obj);\n t.hex = e.getEncodedHex();\n }\n\n Er.asn1.DEROctetString.superclass.constructor.call(this, t), this.hT = \"04\";\n }, o.lang.extend(Er.asn1.DEROctetString, Er.asn1.DERAbstractString), Er.asn1.DERNull = function () {\n Er.asn1.DERNull.superclass.constructor.call(this), this.hT = \"05\", this.hTLV = \"0500\";\n }, o.lang.extend(Er.asn1.DERNull, Er.asn1.ASN1Object), Er.asn1.DERObjectIdentifier = function (t) {\n var e = function t(e) {\n var r = e.toString(16);\n return 1 == r.length && (r = \"0\" + r), r;\n },\n r = function t(r) {\n var n = \"\",\n i = new E(r, 10).toString(2),\n o = 7 - i.length % 7;\n 7 == o && (o = 0);\n\n for (var s = \"\", a = 0; a < o; a++) {\n s += \"0\";\n }\n\n i = s + i;\n\n for (a = 0; a < i.length - 1; a += 7) {\n var u = i.substr(a, 7);\n a != i.length - 7 && (u = \"1\" + u), n += e(parseInt(u, 2));\n }\n\n return n;\n };\n\n Er.asn1.DERObjectIdentifier.superclass.constructor.call(this), this.hT = \"06\", this.setValueHex = function (t) {\n this.hTLV = null, this.isModified = !0, this.s = null, this.hV = t;\n }, this.setValueOidString = function (t) {\n if (!t.match(/^[0-9.]+$/)) throw \"malformed oid string: \" + t;\n var n = \"\",\n i = t.split(\".\"),\n o = 40 * parseInt(i[0]) + parseInt(i[1]);\n n += e(o), i.splice(0, 2);\n\n for (var s = 0; s < i.length; s++) {\n n += r(i[s]);\n }\n\n this.hTLV = null, this.isModified = !0, this.s = null, this.hV = n;\n }, this.setValueName = function (t) {\n var e = Er.asn1.x509.OID.name2oid(t);\n if (\"\" === e) throw \"DERObjectIdentifier oidName undefined: \" + t;\n this.setValueOidString(e);\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, void 0 !== t && (\"string\" == typeof t ? t.match(/^[0-2].[0-9.]+$/) ? this.setValueOidString(t) : this.setValueName(t) : void 0 !== t.oid ? this.setValueOidString(t.oid) : void 0 !== t.hex ? this.setValueHex(t.hex) : void 0 !== t.name && this.setValueName(t.name));\n }, o.lang.extend(Er.asn1.DERObjectIdentifier, Er.asn1.ASN1Object), Er.asn1.DEREnumerated = function (t) {\n Er.asn1.DEREnumerated.superclass.constructor.call(this), this.hT = \"0a\", this.setByBigInteger = function (t) {\n this.hTLV = null, this.isModified = !0, this.hV = Er.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t);\n }, this.setByInteger = function (t) {\n var e = new E(String(t), 10);\n this.setByBigInteger(e);\n }, this.setValueHex = function (t) {\n this.hV = t;\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, void 0 !== t && (void 0 !== t[\"int\"] ? this.setByInteger(t[\"int\"]) : \"number\" == typeof t ? this.setByInteger(t) : void 0 !== t.hex && this.setValueHex(t.hex));\n }, o.lang.extend(Er.asn1.DEREnumerated, Er.asn1.ASN1Object), Er.asn1.DERUTF8String = function (t) {\n Er.asn1.DERUTF8String.superclass.constructor.call(this, t), this.hT = \"0c\";\n }, o.lang.extend(Er.asn1.DERUTF8String, Er.asn1.DERAbstractString), Er.asn1.DERNumericString = function (t) {\n Er.asn1.DERNumericString.superclass.constructor.call(this, t), this.hT = \"12\";\n }, o.lang.extend(Er.asn1.DERNumericString, Er.asn1.DERAbstractString), Er.asn1.DERPrintableString = function (t) {\n Er.asn1.DERPrintableString.superclass.constructor.call(this, t), this.hT = \"13\";\n }, o.lang.extend(Er.asn1.DERPrintableString, Er.asn1.DERAbstractString), Er.asn1.DERTeletexString = function (t) {\n Er.asn1.DERTeletexString.superclass.constructor.call(this, t), this.hT = \"14\";\n }, o.lang.extend(Er.asn1.DERTeletexString, Er.asn1.DERAbstractString), Er.asn1.DERIA5String = function (t) {\n Er.asn1.DERIA5String.superclass.constructor.call(this, t), this.hT = \"16\";\n }, o.lang.extend(Er.asn1.DERIA5String, Er.asn1.DERAbstractString), Er.asn1.DERUTCTime = function (t) {\n Er.asn1.DERUTCTime.superclass.constructor.call(this, t), this.hT = \"17\", this.setByDate = function (t) {\n this.hTLV = null, this.isModified = !0, this.date = t, this.s = this.formatDate(this.date, \"utc\"), this.hV = Rr(this.s);\n }, this.getFreshValueHex = function () {\n return void 0 === this.date && void 0 === this.s && (this.date = new Date(), this.s = this.formatDate(this.date, \"utc\"), this.hV = Rr(this.s)), this.hV;\n }, void 0 !== t && (void 0 !== t.str ? this.setString(t.str) : \"string\" == typeof t && t.match(/^[0-9]{12}Z$/) ? this.setString(t) : void 0 !== t.hex ? this.setStringHex(t.hex) : void 0 !== t.date && this.setByDate(t.date));\n }, o.lang.extend(Er.asn1.DERUTCTime, Er.asn1.DERAbstractTime), Er.asn1.DERGeneralizedTime = function (t) {\n Er.asn1.DERGeneralizedTime.superclass.constructor.call(this, t), this.hT = \"18\", this.withMillis = !1, this.setByDate = function (t) {\n this.hTLV = null, this.isModified = !0, this.date = t, this.s = this.formatDate(this.date, \"gen\", this.withMillis), this.hV = Rr(this.s);\n }, this.getFreshValueHex = function () {\n return void 0 === this.date && void 0 === this.s && (this.date = new Date(), this.s = this.formatDate(this.date, \"gen\", this.withMillis), this.hV = Rr(this.s)), this.hV;\n }, void 0 !== t && (void 0 !== t.str ? this.setString(t.str) : \"string\" == typeof t && t.match(/^[0-9]{14}Z$/) ? this.setString(t) : void 0 !== t.hex ? this.setStringHex(t.hex) : void 0 !== t.date && this.setByDate(t.date), !0 === t.millis && (this.withMillis = !0));\n }, o.lang.extend(Er.asn1.DERGeneralizedTime, Er.asn1.DERAbstractTime), Er.asn1.DERSequence = function (t) {\n Er.asn1.DERSequence.superclass.constructor.call(this, t), this.hT = \"30\", this.getFreshValueHex = function () {\n for (var t = \"\", e = 0; e < this.asn1Array.length; e++) {\n t += this.asn1Array[e].getEncodedHex();\n }\n\n return this.hV = t, this.hV;\n };\n }, o.lang.extend(Er.asn1.DERSequence, Er.asn1.DERAbstractStructured), Er.asn1.DERSet = function (t) {\n Er.asn1.DERSet.superclass.constructor.call(this, t), this.hT = \"31\", this.sortFlag = !0, this.getFreshValueHex = function () {\n for (var t = new Array(), e = 0; e < this.asn1Array.length; e++) {\n var r = this.asn1Array[e];\n t.push(r.getEncodedHex());\n }\n\n return 1 == this.sortFlag && t.sort(), this.hV = t.join(\"\"), this.hV;\n }, void 0 !== t && void 0 !== t.sortflag && 0 == t.sortflag && (this.sortFlag = !1);\n }, o.lang.extend(Er.asn1.DERSet, Er.asn1.DERAbstractStructured), Er.asn1.DERTaggedObject = function (t) {\n Er.asn1.DERTaggedObject.superclass.constructor.call(this), this.hT = \"a0\", this.hV = \"\", this.isExplicit = !0, this.asn1Object = null, this.setASN1Object = function (t, e, r) {\n this.hT = e, this.isExplicit = t, this.asn1Object = r, this.isExplicit ? (this.hV = this.asn1Object.getEncodedHex(), this.hTLV = null, this.isModified = !0) : (this.hV = null, this.hTLV = r.getEncodedHex(), this.hTLV = this.hTLV.replace(/^../, e), this.isModified = !1);\n }, this.getFreshValueHex = function () {\n return this.hV;\n }, void 0 !== t && (void 0 !== t.tag && (this.hT = t.tag), void 0 !== t.explicit && (this.isExplicit = t.explicit), void 0 !== t.obj && (this.asn1Object = t.obj, this.setASN1Object(this.isExplicit, this.hT, this.asn1Object)));\n }, o.lang.extend(Er.asn1.DERTaggedObject, Er.asn1.ASN1Object);\n var Er,\n xr,\n kr,\n Ar = new function () {}();\n\n function Pr(t) {\n for (var e = new Array(), r = 0; r < t.length; r++) {\n e[r] = t.charCodeAt(r);\n }\n\n return e;\n }\n\n function Cr(t) {\n for (var e = \"\", r = 0; r < t.length; r++) {\n e += String.fromCharCode(t[r]);\n }\n\n return e;\n }\n\n function Tr(t) {\n for (var e = \"\", r = 0; r < t.length; r++) {\n var n = t[r].toString(16);\n 1 == n.length && (n = \"0\" + n), e += n;\n }\n\n return e;\n }\n\n function Rr(t) {\n return Tr(Pr(t));\n }\n\n function Ir(t) {\n return t = (t = (t = t.replace(/\\=/g, \"\")).replace(/\\+/g, \"-\")).replace(/\\//g, \"_\");\n }\n\n function Dr(t) {\n return t.length % 4 == 2 ? t += \"==\" : t.length % 4 == 3 && (t += \"=\"), t = (t = t.replace(/-/g, \"+\")).replace(/_/g, \"/\");\n }\n\n function Ur(t) {\n return t.length % 2 == 1 && (t = \"0\" + t), Ir(F(t));\n }\n\n function Lr(t) {\n return b(Dr(t));\n }\n\n function Br(t) {\n return zr($r(t));\n }\n\n function Nr(t) {\n return decodeURIComponent(Yr(t));\n }\n\n function Or(t) {\n for (var e = \"\", r = 0; r < t.length - 1; r += 2) {\n e += String.fromCharCode(parseInt(t.substr(r, 2), 16));\n }\n\n return e;\n }\n\n function jr(t) {\n for (var e = \"\", r = 0; r < t.length; r++) {\n e += (\"0\" + t.charCodeAt(r).toString(16)).slice(-2);\n }\n\n return e;\n }\n\n function Hr(t) {\n return F(t);\n }\n\n function Mr(t) {\n var e = Hr(t).replace(/(.{64})/g, \"$1\\r\\n\");\n return e = e.replace(/\\r\\n$/, \"\");\n }\n\n function Kr(t) {\n return b(t.replace(/[^0-9A-Za-z\\/+=]*/g, \"\"));\n }\n\n function Vr(t, e) {\n return \"-----BEGIN \" + e + \"-----\\r\\n\" + Mr(t) + \"\\r\\n-----END \" + e + \"-----\\r\\n\";\n }\n\n function qr(t, e) {\n if (-1 == t.indexOf(\"-----BEGIN \")) throw \"can't find PEM header: \" + e;\n return Kr(t = void 0 !== e ? (t = t.replace(\"-----BEGIN \" + e + \"-----\", \"\")).replace(\"-----END \" + e + \"-----\", \"\") : (t = t.replace(/-----BEGIN [^-]+-----/, \"\")).replace(/-----END [^-]+-----/, \"\"));\n }\n\n function Jr(t) {\n var e, r, n, i, o, s, a, u, c, h, l;\n if (l = t.match(/^(\\d{2}|\\d{4})(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(\\d\\d)(|\\.\\d+)Z$/)) return u = l[1], e = parseInt(u), 2 === u.length && (50 <= e && e < 100 ? e = 1900 + e : 0 <= e && e < 50 && (e = 2e3 + e)), r = parseInt(l[2]) - 1, n = parseInt(l[3]), i = parseInt(l[4]), o = parseInt(l[5]), s = parseInt(l[6]), a = 0, \"\" !== (c = l[7]) && (h = (c.substr(1) + \"00\").substr(0, 3), a = parseInt(h)), Date.UTC(e, r, n, i, o, s, a);\n throw \"unsupported zulu format: \" + t;\n }\n\n function Wr(t) {\n return ~~(Jr(t) / 1e3);\n }\n\n function zr(t) {\n return t.replace(/%/g, \"\");\n }\n\n function Yr(t) {\n return t.replace(/(..)/g, \"%$1\");\n }\n\n function Gr(t) {\n var e = \"malformed IPv6 address\";\n if (!t.match(/^[0-9A-Fa-f:]+$/)) throw e;\n var r = (t = t.toLowerCase()).split(\":\").length - 1;\n if (r < 2) throw e;\n var n = \":\".repeat(7 - r + 2),\n i = (t = t.replace(\"::\", n)).split(\":\");\n if (8 != i.length) throw e;\n\n for (var o = 0; o < 8; o++) {\n i[o] = (\"0000\" + i[o]).slice(-4);\n }\n\n return i.join(\"\");\n }\n\n function Xr(t) {\n if (!t.match(/^[0-9A-Fa-f]{32}$/)) throw \"malformed IPv6 address octet\";\n\n for (var e = (t = t.toLowerCase()).match(/.{1,4}/g), r = 0; r < 8; r++) {\n e[r] = e[r].replace(/^0+/, \"\"), \"\" == e[r] && (e[r] = \"0\");\n }\n\n var n = (t = \":\" + e.join(\":\") + \":\").match(/:(0:){2,}/g);\n if (null === n) return t.slice(1, -1);\n var i = \"\";\n\n for (r = 0; r < n.length; r++) {\n n[r].length > i.length && (i = n[r]);\n }\n\n return (t = t.replace(i, \"::\")).slice(1, -1);\n }\n\n function Qr(t) {\n var e = \"malformed hex value\";\n if (!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/)) throw e;\n if (8 != t.length) return 32 == t.length ? Xr(t) : t;\n\n try {\n return parseInt(t.substr(0, 2), 16) + \".\" + parseInt(t.substr(2, 2), 16) + \".\" + parseInt(t.substr(4, 2), 16) + \".\" + parseInt(t.substr(6, 2), 16);\n } catch (t) {\n throw e;\n }\n }\n\n function $r(t) {\n for (var e = encodeURIComponent(t), r = \"\", n = 0; n < e.length; n++) {\n \"%\" == e[n] ? (r += e.substr(n, 3), n += 2) : r = r + \"%\" + Rr(e[n]);\n }\n\n return r;\n }\n\n function Zr(t) {\n return t.length % 2 == 1 ? \"0\" + t : t.substr(0, 1) > \"7\" ? \"00\" + t : t;\n }\n\n Ar.getLblen = function (t, e) {\n if (\"8\" != t.substr(e + 2, 1)) return 1;\n var r = parseInt(t.substr(e + 3, 1));\n return 0 == r ? -1 : 0 < r && r < 10 ? r + 1 : -2;\n }, Ar.getL = function (t, e) {\n var r = Ar.getLblen(t, e);\n return r < 1 ? \"\" : t.substr(e + 2, 2 * r);\n }, Ar.getVblen = function (t, e) {\n var r;\n return \"\" == (r = Ar.getL(t, e)) ? -1 : (\"8\" === r.substr(0, 1) ? new E(r.substr(2), 16) : new E(r, 16)).intValue();\n }, Ar.getVidx = function (t, e) {\n var r = Ar.getLblen(t, e);\n return r < 0 ? r : e + 2 * (r + 1);\n }, Ar.getV = function (t, e) {\n var r = Ar.getVidx(t, e),\n n = Ar.getVblen(t, e);\n return t.substr(r, 2 * n);\n }, Ar.getTLV = function (t, e) {\n return t.substr(e, 2) + Ar.getL(t, e) + Ar.getV(t, e);\n }, Ar.getNextSiblingIdx = function (t, e) {\n return Ar.getVidx(t, e) + 2 * Ar.getVblen(t, e);\n }, Ar.getChildIdx = function (t, e) {\n var r = Ar,\n n = new Array(),\n i = r.getVidx(t, e);\n \"03\" == t.substr(e, 2) ? n.push(i + 2) : n.push(i);\n\n for (var o = r.getVblen(t, e), s = i, a = 0;;) {\n var u = r.getNextSiblingIdx(t, s);\n if (null == u || u - i >= 2 * o) break;\n if (a >= 200) break;\n n.push(u), s = u, a++;\n }\n\n return n;\n }, Ar.getNthChildIdx = function (t, e, r) {\n return Ar.getChildIdx(t, e)[r];\n }, Ar.getIdxbyList = function (t, e, r, n) {\n var i,\n o,\n s = Ar;\n\n if (0 == r.length) {\n if (void 0 !== n && t.substr(e, 2) !== n) throw \"checking tag doesn't match: \" + t.substr(e, 2) + \"!=\" + n;\n return e;\n }\n\n return i = r.shift(), o = s.getChildIdx(t, e), s.getIdxbyList(t, o[i], r, n);\n }, Ar.getTLVbyList = function (t, e, r, n) {\n var i = Ar,\n o = i.getIdxbyList(t, e, r);\n if (void 0 === o) throw \"can't find nthList object\";\n if (void 0 !== n && t.substr(o, 2) != n) throw \"checking tag doesn't match: \" + t.substr(o, 2) + \"!=\" + n;\n return i.getTLV(t, o);\n }, Ar.getVbyList = function (t, e, r, n, i) {\n var o,\n s,\n a = Ar;\n if (void 0 === (o = a.getIdxbyList(t, e, r, n))) throw \"can't find nthList object\";\n return s = a.getV(t, o), !0 === i && (s = s.substr(2)), s;\n }, Ar.hextooidstr = function (t) {\n var e = function t(e, r) {\n return e.length >= r ? e : new Array(r - e.length + 1).join(\"0\") + e;\n },\n r = [],\n n = t.substr(0, 2),\n i = parseInt(n, 16);\n\n r[0] = new String(Math.floor(i / 40)), r[1] = new String(i % 40);\n\n for (var o = t.substr(2), s = [], a = 0; a < o.length / 2; a++) {\n s.push(parseInt(o.substr(2 * a, 2), 16));\n }\n\n var u = [],\n c = \"\";\n\n for (a = 0; a < s.length; a++) {\n 128 & s[a] ? c += e((127 & s[a]).toString(2), 7) : (c += e((127 & s[a]).toString(2), 7), u.push(new String(parseInt(c, 2))), c = \"\");\n }\n\n var h = r.join(\".\");\n return u.length > 0 && (h = h + \".\" + u.join(\".\")), h;\n }, Ar.dump = function (t, e, r, n) {\n var i = Ar,\n o = i.getV,\n s = i.dump,\n a = i.getChildIdx,\n u = t;\n t instanceof Er.asn1.ASN1Object && (u = t.getEncodedHex());\n\n var c = function t(e, r) {\n return e.length <= 2 * r ? e : e.substr(0, r) + \"..(total \" + e.length / 2 + \"bytes)..\" + e.substr(e.length - r, r);\n };\n\n void 0 === e && (e = {\n ommit_long_octet: 32\n }), void 0 === r && (r = 0), void 0 === n && (n = \"\");\n var h = e.ommit_long_octet;\n if (\"01\" == u.substr(r, 2)) return \"00\" == (l = o(u, r)) ? n + \"BOOLEAN FALSE\\n\" : n + \"BOOLEAN TRUE\\n\";\n if (\"02\" == u.substr(r, 2)) return n + \"INTEGER \" + c(l = o(u, r), h) + \"\\n\";\n if (\"03\" == u.substr(r, 2)) return n + \"BITSTRING \" + c(l = o(u, r), h) + \"\\n\";\n\n if (\"04\" == u.substr(r, 2)) {\n var l = o(u, r);\n\n if (i.isASN1HEX(l)) {\n var f = n + \"OCTETSTRING, encapsulates\\n\";\n return f += s(l, e, 0, n + \" \");\n }\n\n return n + \"OCTETSTRING \" + c(l, h) + \"\\n\";\n }\n\n if (\"05\" == u.substr(r, 2)) return n + \"NULL\\n\";\n\n if (\"06\" == u.substr(r, 2)) {\n var d = o(u, r),\n g = Er.asn1.ASN1Util.oidHexToInt(d),\n p = Er.asn1.x509.OID.oid2name(g),\n v = g.replace(/\\./g, \" \");\n return \"\" != p ? n + \"ObjectIdentifier \" + p + \" (\" + v + \")\\n\" : n + \"ObjectIdentifier (\" + v + \")\\n\";\n }\n\n if (\"0c\" == u.substr(r, 2)) return n + \"UTF8String '\" + Nr(o(u, r)) + \"'\\n\";\n if (\"13\" == u.substr(r, 2)) return n + \"PrintableString '\" + Nr(o(u, r)) + \"'\\n\";\n if (\"14\" == u.substr(r, 2)) return n + \"TeletexString '\" + Nr(o(u, r)) + \"'\\n\";\n if (\"16\" == u.substr(r, 2)) return n + \"IA5String '\" + Nr(o(u, r)) + \"'\\n\";\n if (\"17\" == u.substr(r, 2)) return n + \"UTCTime \" + Nr(o(u, r)) + \"\\n\";\n if (\"18\" == u.substr(r, 2)) return n + \"GeneralizedTime \" + Nr(o(u, r)) + \"\\n\";\n\n if (\"30\" == u.substr(r, 2)) {\n if (\"3000\" == u.substr(r, 4)) return n + \"SEQUENCE {}\\n\";\n f = n + \"SEQUENCE\\n\";\n var y = e;\n\n if ((2 == (S = a(u, r)).length || 3 == S.length) && \"06\" == u.substr(S[0], 2) && \"04\" == u.substr(S[S.length - 1], 2)) {\n p = i.oidname(o(u, S[0]));\n var m = JSON.parse(JSON.stringify(e));\n m.x509ExtName = p, y = m;\n }\n\n for (var _ = 0; _ < S.length; _++) {\n f += s(u, y, S[_], n + \" \");\n }\n\n return f;\n }\n\n if (\"31\" == u.substr(r, 2)) {\n f = n + \"SET\\n\";\n var S = a(u, r);\n\n for (_ = 0; _ < S.length; _++) {\n f += s(u, e, S[_], n + \" \");\n }\n\n return f;\n }\n\n var F = parseInt(u.substr(r, 2), 16);\n\n if (0 != (128 & F)) {\n var b = 31 & F;\n\n if (0 != (32 & F)) {\n var f = n + \"[\" + b + \"]\\n\";\n\n for (S = a(u, r), _ = 0; _ < S.length; _++) {\n f += s(u, e, S[_], n + \" \");\n }\n\n return f;\n }\n\n return \"68747470\" == (l = o(u, r)).substr(0, 8) && (l = Nr(l)), \"subjectAltName\" === e.x509ExtName && 2 == b && (l = Nr(l)), f = n + \"[\" + b + \"] \" + l + \"\\n\";\n }\n\n return n + \"UNKNOWN(\" + u.substr(r, 2) + \") \" + o(u, r) + \"\\n\";\n }, Ar.isASN1HEX = function (t) {\n var e = Ar;\n if (t.length % 2 == 1) return !1;\n var r = e.getVblen(t, 0),\n n = t.substr(0, 2),\n i = e.getL(t, 0);\n return t.length - n.length - i.length == 2 * r;\n }, Ar.oidname = function (t) {\n var e = Er.asn1;\n Er.lang.String.isHex(t) && (t = e.ASN1Util.oidHexToInt(t));\n var r = e.x509.OID.oid2name(t);\n return \"\" === r && (r = t), r;\n }, void 0 !== Er && Er || (e.KJUR = Er = {}), void 0 !== Er.lang && Er.lang || (Er.lang = {}), Er.lang.String = function () {}, \"function\" == typeof t ? (e.utf8tob64u = xr = function e(r) {\n return Ir(new t(r, \"utf8\").toString(\"base64\"));\n }, e.b64utoutf8 = kr = function e(r) {\n return new t(Dr(r), \"base64\").toString(\"utf8\");\n }) : (e.utf8tob64u = xr = function t(e) {\n return Ur(zr($r(e)));\n }, e.b64utoutf8 = kr = function t(e) {\n return decodeURIComponent(Yr(Lr(e)));\n }), Er.lang.String.isInteger = function (t) {\n return !!t.match(/^[0-9]+$/) || !!t.match(/^-[0-9]+$/);\n }, Er.lang.String.isHex = function (t) {\n return !(t.length % 2 != 0 || !t.match(/^[0-9a-f]+$/) && !t.match(/^[0-9A-F]+$/));\n }, Er.lang.String.isBase64 = function (t) {\n return !(!(t = t.replace(/\\s+/g, \"\")).match(/^[0-9A-Za-z+\\/]+={0,3}$/) || t.length % 4 != 0);\n }, Er.lang.String.isBase64URL = function (t) {\n return !t.match(/[+/=]/) && (t = Dr(t), Er.lang.String.isBase64(t));\n }, Er.lang.String.isIntegerArray = function (t) {\n return !!(t = t.replace(/\\s+/g, \"\")).match(/^\\[[0-9,]+\\]$/);\n };\n void 0 !== Er && Er || (e.KJUR = Er = {}), void 0 !== Er.crypto && Er.crypto || (Er.crypto = {}), Er.crypto.Util = new function () {\n this.DIGESTINFOHEAD = {\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n ripemd160: \"3021300906052b2403020105000414\"\n }, this.DEFAULTPROVIDER = {\n md5: \"cryptojs\",\n sha1: \"cryptojs\",\n sha224: \"cryptojs\",\n sha256: \"cryptojs\",\n sha384: \"cryptojs\",\n sha512: \"cryptojs\",\n ripemd160: \"cryptojs\",\n hmacmd5: \"cryptojs\",\n hmacsha1: \"cryptojs\",\n hmacsha224: \"cryptojs\",\n hmacsha256: \"cryptojs\",\n hmacsha384: \"cryptojs\",\n hmacsha512: \"cryptojs\",\n hmacripemd160: \"cryptojs\",\n MD5withRSA: \"cryptojs/jsrsa\",\n SHA1withRSA: \"cryptojs/jsrsa\",\n SHA224withRSA: \"cryptojs/jsrsa\",\n SHA256withRSA: \"cryptojs/jsrsa\",\n SHA384withRSA: \"cryptojs/jsrsa\",\n SHA512withRSA: \"cryptojs/jsrsa\",\n RIPEMD160withRSA: \"cryptojs/jsrsa\",\n MD5withECDSA: \"cryptojs/jsrsa\",\n SHA1withECDSA: \"cryptojs/jsrsa\",\n SHA224withECDSA: \"cryptojs/jsrsa\",\n SHA256withECDSA: \"cryptojs/jsrsa\",\n SHA384withECDSA: \"cryptojs/jsrsa\",\n SHA512withECDSA: \"cryptojs/jsrsa\",\n RIPEMD160withECDSA: \"cryptojs/jsrsa\",\n SHA1withDSA: \"cryptojs/jsrsa\",\n SHA224withDSA: \"cryptojs/jsrsa\",\n SHA256withDSA: \"cryptojs/jsrsa\",\n MD5withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA1withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA224withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA256withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA384withRSAandMGF1: \"cryptojs/jsrsa\",\n SHA512withRSAandMGF1: \"cryptojs/jsrsa\",\n RIPEMD160withRSAandMGF1: \"cryptojs/jsrsa\"\n }, this.CRYPTOJSMESSAGEDIGESTNAME = {\n md5: y.algo.MD5,\n sha1: y.algo.SHA1,\n sha224: y.algo.SHA224,\n sha256: y.algo.SHA256,\n sha384: y.algo.SHA384,\n sha512: y.algo.SHA512,\n ripemd160: y.algo.RIPEMD160\n }, this.getDigestInfoHex = function (t, e) {\n if (void 0 === this.DIGESTINFOHEAD[e]) throw \"alg not supported in Util.DIGESTINFOHEAD: \" + e;\n return this.DIGESTINFOHEAD[e] + t;\n }, this.getPaddedDigestInfoHex = function (t, e, r) {\n var n = this.getDigestInfoHex(t, e),\n i = r / 4;\n if (n.length + 22 > i) throw \"key is too short for SigAlg: keylen=\" + r + \",\" + e;\n\n for (var o = \"0001\", s = \"00\" + n, a = \"\", u = i - o.length - s.length, c = 0; c < u; c += 2) {\n a += \"ff\";\n }\n\n return o + a + s;\n }, this.hashString = function (t, e) {\n return new Er.crypto.MessageDigest({\n alg: e\n }).digestString(t);\n }, this.hashHex = function (t, e) {\n return new Er.crypto.MessageDigest({\n alg: e\n }).digestHex(t);\n }, this.sha1 = function (t) {\n return new Er.crypto.MessageDigest({\n alg: \"sha1\",\n prov: \"cryptojs\"\n }).digestString(t);\n }, this.sha256 = function (t) {\n return new Er.crypto.MessageDigest({\n alg: \"sha256\",\n prov: \"cryptojs\"\n }).digestString(t);\n }, this.sha256Hex = function (t) {\n return new Er.crypto.MessageDigest({\n alg: \"sha256\",\n prov: \"cryptojs\"\n }).digestHex(t);\n }, this.sha512 = function (t) {\n return new Er.crypto.MessageDigest({\n alg: \"sha512\",\n prov: \"cryptojs\"\n }).digestString(t);\n }, this.sha512Hex = function (t) {\n return new Er.crypto.MessageDigest({\n alg: \"sha512\",\n prov: \"cryptojs\"\n }).digestHex(t);\n };\n }(), Er.crypto.Util.md5 = function (t) {\n return new Er.crypto.MessageDigest({\n alg: \"md5\",\n prov: \"cryptojs\"\n }).digestString(t);\n }, Er.crypto.Util.ripemd160 = function (t) {\n return new Er.crypto.MessageDigest({\n alg: \"ripemd160\",\n prov: \"cryptojs\"\n }).digestString(t);\n }, Er.crypto.Util.SECURERANDOMGEN = new Me(), Er.crypto.Util.getRandomHexOfNbytes = function (t) {\n var e = new Array(t);\n return Er.crypto.Util.SECURERANDOMGEN.nextBytes(e), Tr(e);\n }, Er.crypto.Util.getRandomBigIntegerOfNbytes = function (t) {\n return new E(Er.crypto.Util.getRandomHexOfNbytes(t), 16);\n }, Er.crypto.Util.getRandomHexOfNbits = function (t) {\n var e = t % 8,\n r = new Array((t - e) / 8 + 1);\n return Er.crypto.Util.SECURERANDOMGEN.nextBytes(r), r[0] = (255 << e & 255 ^ 255) & r[0], Tr(r);\n }, Er.crypto.Util.getRandomBigIntegerOfNbits = function (t) {\n return new E(Er.crypto.Util.getRandomHexOfNbits(t), 16);\n }, Er.crypto.Util.getRandomBigIntegerZeroToMax = function (t) {\n for (var e = t.bitLength();;) {\n var r = Er.crypto.Util.getRandomBigIntegerOfNbits(e);\n if (-1 != t.compareTo(r)) return r;\n }\n }, Er.crypto.Util.getRandomBigIntegerMinToMax = function (t, e) {\n var r = t.compareTo(e);\n if (1 == r) throw \"biMin is greater than biMax\";\n if (0 == r) return t;\n var n = e.subtract(t);\n return Er.crypto.Util.getRandomBigIntegerZeroToMax(n).add(t);\n }, Er.crypto.MessageDigest = function (t) {\n this.setAlgAndProvider = function (t, e) {\n if (null !== (t = Er.crypto.MessageDigest.getCanonicalAlgName(t)) && void 0 === e && (e = Er.crypto.Util.DEFAULTPROVIDER[t]), -1 != \":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(t) && \"cryptojs\" == e) {\n try {\n this.md = Er.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[t].create();\n } catch (e) {\n throw \"setAlgAndProvider hash alg set fail alg=\" + t + \"/\" + e;\n }\n\n this.updateString = function (t) {\n this.md.update(t);\n }, this.updateHex = function (t) {\n var e = y.enc.Hex.parse(t);\n this.md.update(e);\n }, this.digest = function () {\n return this.md.finalize().toString(y.enc.Hex);\n }, this.digestString = function (t) {\n return this.updateString(t), this.digest();\n }, this.digestHex = function (t) {\n return this.updateHex(t), this.digest();\n };\n }\n\n if (-1 != \":sha256:\".indexOf(t) && \"sjcl\" == e) {\n try {\n this.md = new sjcl.hash.sha256();\n } catch (e) {\n throw \"setAlgAndProvider hash alg set fail alg=\" + t + \"/\" + e;\n }\n\n this.updateString = function (t) {\n this.md.update(t);\n }, this.updateHex = function (t) {\n var e = sjcl.codec.hex.toBits(t);\n this.md.update(e);\n }, this.digest = function () {\n var t = this.md.finalize();\n return sjcl.codec.hex.fromBits(t);\n }, this.digestString = function (t) {\n return this.updateString(t), this.digest();\n }, this.digestHex = function (t) {\n return this.updateHex(t), this.digest();\n };\n }\n }, this.updateString = function (t) {\n throw \"updateString(str) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.updateHex = function (t) {\n throw \"updateHex(hex) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.digest = function () {\n throw \"digest() not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.digestString = function (t) {\n throw \"digestString(str) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, this.digestHex = function (t) {\n throw \"digestHex(hex) not supported for this alg/prov: \" + this.algName + \"/\" + this.provName;\n }, void 0 !== t && void 0 !== t.alg && (this.algName = t.alg, void 0 === t.prov && (this.provName = Er.crypto.Util.DEFAULTPROVIDER[this.algName]), this.setAlgAndProvider(this.algName, this.provName));\n }, Er.crypto.MessageDigest.getCanonicalAlgName = function (t) {\n return \"string\" == typeof t && (t = (t = t.toLowerCase()).replace(/-/, \"\")), t;\n }, Er.crypto.MessageDigest.getHashLength = function (t) {\n var e = Er.crypto.MessageDigest,\n r = e.getCanonicalAlgName(t);\n if (void 0 === e.HASHLENGTH[r]) throw \"not supported algorithm: \" + t;\n return e.HASHLENGTH[r];\n }, Er.crypto.MessageDigest.HASHLENGTH = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n ripemd160: 20\n }, Er.crypto.Mac = function (t) {\n this.setAlgAndProvider = function (t, e) {\n if (null == (t = t.toLowerCase()) && (t = \"hmacsha1\"), \"hmac\" != (t = t.toLowerCase()).substr(0, 4)) throw \"setAlgAndProvider unsupported HMAC alg: \" + t;\n void 0 === e && (e = Er.crypto.Util.DEFAULTPROVIDER[t]), this.algProv = t + \"/\" + e;\n var r = t.substr(4);\n\n if (-1 != \":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(r) && \"cryptojs\" == e) {\n try {\n var n = Er.crypto.Util.CRYPTOJSMESSAGEDIGESTNAME[r];\n this.mac = y.algo.HMAC.create(n, this.pass);\n } catch (t) {\n throw \"setAlgAndProvider hash alg set fail hashAlg=\" + r + \"/\" + t;\n }\n\n this.updateString = function (t) {\n this.mac.update(t);\n }, this.updateHex = function (t) {\n var e = y.enc.Hex.parse(t);\n this.mac.update(e);\n }, this.doFinal = function () {\n return this.mac.finalize().toString(y.enc.Hex);\n }, this.doFinalString = function (t) {\n return this.updateString(t), this.doFinal();\n }, this.doFinalHex = function (t) {\n return this.updateHex(t), this.doFinal();\n };\n }\n }, this.updateString = function (t) {\n throw \"updateString(str) not supported for this alg/prov: \" + this.algProv;\n }, this.updateHex = function (t) {\n throw \"updateHex(hex) not supported for this alg/prov: \" + this.algProv;\n }, this.doFinal = function () {\n throw \"digest() not supported for this alg/prov: \" + this.algProv;\n }, this.doFinalString = function (t) {\n throw \"digestString(str) not supported for this alg/prov: \" + this.algProv;\n }, this.doFinalHex = function (t) {\n throw \"digestHex(hex) not supported for this alg/prov: \" + this.algProv;\n }, this.setPassword = function (t) {\n if (\"string\" == typeof t) {\n var e = t;\n return t.length % 2 != 1 && t.match(/^[0-9A-Fa-f]+$/) || (e = jr(t)), void (this.pass = y.enc.Hex.parse(e));\n }\n\n if (\"object\" != (void 0 === t ? \"undefined\" : r(t))) throw \"KJUR.crypto.Mac unsupported password type: \" + t;\n e = null;\n\n if (void 0 !== t.hex) {\n if (t.hex.length % 2 != 0 || !t.hex.match(/^[0-9A-Fa-f]+$/)) throw \"Mac: wrong hex password: \" + t.hex;\n e = t.hex;\n }\n\n if (void 0 !== t.utf8 && (e = Br(t.utf8)), void 0 !== t.rstr && (e = jr(t.rstr)), void 0 !== t.b64 && (e = b(t.b64)), void 0 !== t.b64u && (e = Lr(t.b64u)), null == e) throw \"KJUR.crypto.Mac unsupported password type: \" + t;\n this.pass = y.enc.Hex.parse(e);\n }, void 0 !== t && (void 0 !== t.pass && this.setPassword(t.pass), void 0 !== t.alg && (this.algName = t.alg, void 0 === t.prov && (this.provName = Er.crypto.Util.DEFAULTPROVIDER[this.algName]), this.setAlgAndProvider(this.algName, this.provName)));\n }, Er.crypto.Signature = function (t) {\n var e = null;\n\n if (this._setAlgNames = function () {\n var t = this.algName.match(/^(.+)with(.+)$/);\n t && (this.mdAlgName = t[1].toLowerCase(), this.pubkeyAlgName = t[2].toLowerCase());\n }, this._zeroPaddingOfSignature = function (t, e) {\n for (var r = \"\", n = e / 4 - t.length, i = 0; i < n; i++) {\n r += \"0\";\n }\n\n return r + t;\n }, this.setAlgAndProvider = function (t, e) {\n if (this._setAlgNames(), \"cryptojs/jsrsa\" != e) throw \"provider not supported: \" + e;\n\n if (-1 != \":md5:sha1:sha224:sha256:sha384:sha512:ripemd160:\".indexOf(this.mdAlgName)) {\n try {\n this.md = new Er.crypto.MessageDigest({\n alg: this.mdAlgName\n });\n } catch (t) {\n throw \"setAlgAndProvider hash alg set fail alg=\" + this.mdAlgName + \"/\" + t;\n }\n\n this.init = function (t, e) {\n var r = null;\n\n try {\n r = void 0 === e ? tn.getKey(t) : tn.getKey(t, e);\n } catch (t) {\n throw \"init failed:\" + t;\n }\n\n if (!0 === r.isPrivate) this.prvKey = r, this.state = \"SIGN\";else {\n if (!0 !== r.isPublic) throw \"init failed.:\" + r;\n this.pubKey = r, this.state = \"VERIFY\";\n }\n }, this.updateString = function (t) {\n this.md.updateString(t);\n }, this.updateHex = function (t) {\n this.md.updateHex(t);\n }, this.sign = function () {\n if (this.sHashHex = this.md.digest(), void 0 !== this.ecprvhex && void 0 !== this.eccurvename) {\n var t = new Er.crypto.ECDSA({\n curve: this.eccurvename\n });\n this.hSign = t.signHex(this.sHashHex, this.ecprvhex);\n } else if (this.prvKey instanceof qe && \"rsaandmgf1\" === this.pubkeyAlgName) this.hSign = this.prvKey.signWithMessageHashPSS(this.sHashHex, this.mdAlgName, this.pssSaltLen);else if (this.prvKey instanceof qe && \"rsa\" === this.pubkeyAlgName) this.hSign = this.prvKey.signWithMessageHash(this.sHashHex, this.mdAlgName);else if (this.prvKey instanceof Er.crypto.ECDSA) this.hSign = this.prvKey.signWithMessageHash(this.sHashHex);else {\n if (!(this.prvKey instanceof Er.crypto.DSA)) throw \"Signature: unsupported private key alg: \" + this.pubkeyAlgName;\n this.hSign = this.prvKey.signWithMessageHash(this.sHashHex);\n }\n\n return this.hSign;\n }, this.signString = function (t) {\n return this.updateString(t), this.sign();\n }, this.signHex = function (t) {\n return this.updateHex(t), this.sign();\n }, this.verify = function (t) {\n if (this.sHashHex = this.md.digest(), void 0 !== this.ecpubhex && void 0 !== this.eccurvename) return new Er.crypto.ECDSA({\n curve: this.eccurvename\n }).verifyHex(this.sHashHex, t, this.ecpubhex);\n if (this.pubKey instanceof qe && \"rsaandmgf1\" === this.pubkeyAlgName) return this.pubKey.verifyWithMessageHashPSS(this.sHashHex, t, this.mdAlgName, this.pssSaltLen);\n if (this.pubKey instanceof qe && \"rsa\" === this.pubkeyAlgName) return this.pubKey.verifyWithMessageHash(this.sHashHex, t);\n if (void 0 !== Er.crypto.ECDSA && this.pubKey instanceof Er.crypto.ECDSA) return this.pubKey.verifyWithMessageHash(this.sHashHex, t);\n if (void 0 !== Er.crypto.DSA && this.pubKey instanceof Er.crypto.DSA) return this.pubKey.verifyWithMessageHash(this.sHashHex, t);\n throw \"Signature: unsupported public key alg: \" + this.pubkeyAlgName;\n };\n }\n }, this.init = function (t, e) {\n throw \"init(key, pass) not supported for this alg:prov=\" + this.algProvName;\n }, this.updateString = function (t) {\n throw \"updateString(str) not supported for this alg:prov=\" + this.algProvName;\n }, this.updateHex = function (t) {\n throw \"updateHex(hex) not supported for this alg:prov=\" + this.algProvName;\n }, this.sign = function () {\n throw \"sign() not supported for this alg:prov=\" + this.algProvName;\n }, this.signString = function (t) {\n throw \"digestString(str) not supported for this alg:prov=\" + this.algProvName;\n }, this.signHex = function (t) {\n throw \"digestHex(hex) not supported for this alg:prov=\" + this.algProvName;\n }, this.verify = function (t) {\n throw \"verify(hSigVal) not supported for this alg:prov=\" + this.algProvName;\n }, this.initParams = t, void 0 !== t && (void 0 !== t.alg && (this.algName = t.alg, void 0 === t.prov ? this.provName = Er.crypto.Util.DEFAULTPROVIDER[this.algName] : this.provName = t.prov, this.algProvName = this.algName + \":\" + this.provName, this.setAlgAndProvider(this.algName, this.provName), this._setAlgNames()), void 0 !== t.psssaltlen && (this.pssSaltLen = t.psssaltlen), void 0 !== t.prvkeypem)) {\n if (void 0 !== t.prvkeypas) throw \"both prvkeypem and prvkeypas parameters not supported\";\n\n try {\n e = tn.getKey(t.prvkeypem);\n this.init(e);\n } catch (t) {\n throw \"fatal error to load pem private key: \" + t;\n }\n }\n }, Er.crypto.Cipher = function (t) {}, Er.crypto.Cipher.encrypt = function (t, e, r) {\n if (e instanceof qe && e.isPublic) {\n var n = Er.crypto.Cipher.getAlgByKeyAndName(e, r);\n if (\"RSA\" === n) return e.encrypt(t);\n if (\"RSAOAEP\" === n) return e.encryptOAEP(t, \"sha1\");\n var i = n.match(/^RSAOAEP(\\d+)$/);\n if (null !== i) return e.encryptOAEP(t, \"sha\" + i[1]);\n throw \"Cipher.encrypt: unsupported algorithm for RSAKey: \" + r;\n }\n\n throw \"Cipher.encrypt: unsupported key or algorithm\";\n }, Er.crypto.Cipher.decrypt = function (t, e, r) {\n if (e instanceof qe && e.isPrivate) {\n var n = Er.crypto.Cipher.getAlgByKeyAndName(e, r);\n if (\"RSA\" === n) return e.decrypt(t);\n if (\"RSAOAEP\" === n) return e.decryptOAEP(t, \"sha1\");\n var i = n.match(/^RSAOAEP(\\d+)$/);\n if (null !== i) return e.decryptOAEP(t, \"sha\" + i[1]);\n throw \"Cipher.decrypt: unsupported algorithm for RSAKey: \" + r;\n }\n\n throw \"Cipher.decrypt: unsupported key or algorithm\";\n }, Er.crypto.Cipher.getAlgByKeyAndName = function (t, e) {\n if (t instanceof qe) {\n if (-1 != \":RSA:RSAOAEP:RSAOAEP224:RSAOAEP256:RSAOAEP384:RSAOAEP512:\".indexOf(e)) return e;\n if (null === e || void 0 === e) return \"RSA\";\n throw \"getAlgByKeyAndName: not supported algorithm name for RSAKey: \" + e;\n }\n\n throw \"getAlgByKeyAndName: not supported algorithm name: \" + e;\n }, Er.crypto.OID = new function () {\n this.oidhex2name = {\n \"2a864886f70d010101\": \"rsaEncryption\",\n \"2a8648ce3d0201\": \"ecPublicKey\",\n \"2a8648ce380401\": \"dsa\",\n \"2a8648ce3d030107\": \"secp256r1\",\n \"2b8104001f\": \"secp192k1\",\n \"2b81040021\": \"secp224r1\",\n \"2b8104000a\": \"secp256k1\",\n \"2b81040023\": \"secp521r1\",\n \"2b81040022\": \"secp384r1\",\n \"2a8648ce380403\": \"SHA1withDSA\",\n \"608648016503040301\": \"SHA224withDSA\",\n \"608648016503040302\": \"SHA256withDSA\"\n };\n }(), void 0 !== Er && Er || (e.KJUR = Er = {}), void 0 !== Er.crypto && Er.crypto || (Er.crypto = {}), Er.crypto.ECDSA = function (t) {\n var e = new Me();\n this.type = \"EC\", this.isPrivate = !1, this.isPublic = !1, this.getBigRandom = function (t) {\n return new E(t.bitLength(), e).mod(t.subtract(E.ONE)).add(E.ONE);\n }, this.setNamedCurve = function (t) {\n this.ecparams = Er.crypto.ECParameterDB.getByName(t), this.prvKeyHex = null, this.pubKeyHex = null, this.curveName = t;\n }, this.setPrivateKeyHex = function (t) {\n this.isPrivate = !0, this.prvKeyHex = t;\n }, this.setPublicKeyHex = function (t) {\n this.isPublic = !0, this.pubKeyHex = t;\n }, this.getPublicKeyXYHex = function () {\n var t = this.pubKeyHex;\n if (\"04\" !== t.substr(0, 2)) throw \"this method supports uncompressed format(04) only\";\n var e = this.ecparams.keylen / 4;\n if (t.length !== 2 + 2 * e) throw \"malformed public key hex length\";\n var r = {};\n return r.x = t.substr(2, e), r.y = t.substr(2 + e), r;\n }, this.getShortNISTPCurveName = function () {\n var t = this.curveName;\n return \"secp256r1\" === t || \"NIST P-256\" === t || \"P-256\" === t || \"prime256v1\" === t ? \"P-256\" : \"secp384r1\" === t || \"NIST P-384\" === t || \"P-384\" === t ? \"P-384\" : null;\n }, this.generateKeyPairHex = function () {\n var t = this.ecparams.n,\n e = this.getBigRandom(t),\n r = this.ecparams.G.multiply(e),\n n = r.getX().toBigInteger(),\n i = r.getY().toBigInteger(),\n o = this.ecparams.keylen / 4,\n s = (\"0000000000\" + e.toString(16)).slice(-o),\n a = \"04\" + (\"0000000000\" + n.toString(16)).slice(-o) + (\"0000000000\" + i.toString(16)).slice(-o);\n return this.setPrivateKeyHex(s), this.setPublicKeyHex(a), {\n ecprvhex: s,\n ecpubhex: a\n };\n }, this.signWithMessageHash = function (t) {\n return this.signHex(t, this.prvKeyHex);\n }, this.signHex = function (t, e) {\n var r = new E(e, 16),\n n = this.ecparams.n,\n i = new E(t, 16);\n\n do {\n var o = this.getBigRandom(n),\n s = this.ecparams.G.multiply(o).getX().toBigInteger().mod(n);\n } while (s.compareTo(E.ZERO) <= 0);\n\n var a = o.modInverse(n).multiply(i.add(r.multiply(s))).mod(n);\n return Er.crypto.ECDSA.biRSSigToASN1Sig(s, a);\n }, this.sign = function (t, e) {\n var r = e,\n n = this.ecparams.n,\n i = E.fromByteArrayUnsigned(t);\n\n do {\n var o = this.getBigRandom(n),\n s = this.ecparams.G.multiply(o).getX().toBigInteger().mod(n);\n } while (s.compareTo(E.ZERO) <= 0);\n\n var a = o.modInverse(n).multiply(i.add(r.multiply(s))).mod(n);\n return this.serializeSig(s, a);\n }, this.verifyWithMessageHash = function (t, e) {\n return this.verifyHex(t, e, this.pubKeyHex);\n }, this.verifyHex = function (t, e, r) {\n var n,\n i,\n o,\n s = Er.crypto.ECDSA.parseSigHex(e);\n n = s.r, i = s.s, o = We.decodeFromHex(this.ecparams.curve, r);\n var a = new E(t, 16);\n return this.verifyRaw(a, n, i, o);\n }, this.verify = function (t, e, n) {\n var i, o, s;\n\n if (Bitcoin.Util.isArray(e)) {\n var a = this.parseSig(e);\n i = a.r, o = a.s;\n } else {\n if (\"object\" !== (void 0 === e ? \"undefined\" : r(e)) || !e.r || !e.s) throw \"Invalid value for signature\";\n i = e.r, o = e.s;\n }\n\n if (n instanceof We) s = n;else {\n if (!Bitcoin.Util.isArray(n)) throw \"Invalid format for pubkey value, must be byte array or ECPointFp\";\n s = We.decodeFrom(this.ecparams.curve, n);\n }\n var u = E.fromByteArrayUnsigned(t);\n return this.verifyRaw(u, i, o, s);\n }, this.verifyRaw = function (t, e, r, n) {\n var i = this.ecparams.n,\n o = this.ecparams.G;\n if (e.compareTo(E.ONE) < 0 || e.compareTo(i) >= 0) return !1;\n if (r.compareTo(E.ONE) < 0 || r.compareTo(i) >= 0) return !1;\n var s = r.modInverse(i),\n a = t.multiply(s).mod(i),\n u = e.multiply(s).mod(i);\n return o.multiply(a).add(n.multiply(u)).getX().toBigInteger().mod(i).equals(e);\n }, this.serializeSig = function (t, e) {\n var r = t.toByteArraySigned(),\n n = e.toByteArraySigned(),\n i = [];\n return i.push(2), i.push(r.length), (i = i.concat(r)).push(2), i.push(n.length), (i = i.concat(n)).unshift(i.length), i.unshift(48), i;\n }, this.parseSig = function (t) {\n var e;\n if (48 != t[0]) throw new Error(\"Signature not a valid DERSequence\");\n if (2 != t[e = 2]) throw new Error(\"First element in signature must be a DERInteger\");\n var r = t.slice(e + 2, e + 2 + t[e + 1]);\n if (2 != t[e += 2 + t[e + 1]]) throw new Error(\"Second element in signature must be a DERInteger\");\n var n = t.slice(e + 2, e + 2 + t[e + 1]);\n return e += 2 + t[e + 1], {\n r: E.fromByteArrayUnsigned(r),\n s: E.fromByteArrayUnsigned(n)\n };\n }, this.parseSigCompact = function (t) {\n if (65 !== t.length) throw \"Signature has the wrong length\";\n var e = t[0] - 27;\n if (e < 0 || e > 7) throw \"Invalid signature type\";\n var r = this.ecparams.n;\n return {\n r: E.fromByteArrayUnsigned(t.slice(1, 33)).mod(r),\n s: E.fromByteArrayUnsigned(t.slice(33, 65)).mod(r),\n i: e\n };\n }, this.readPKCS5PrvKeyHex = function (t) {\n var e,\n r,\n n,\n i = Ar,\n o = Er.crypto.ECDSA.getName,\n s = i.getVbyList;\n if (!1 === i.isASN1HEX(t)) throw \"not ASN.1 hex string\";\n\n try {\n e = s(t, 0, [2, 0], \"06\"), r = s(t, 0, [1], \"04\");\n\n try {\n n = s(t, 0, [3, 0], \"03\").substr(2);\n } catch (t) {}\n } catch (t) {\n throw \"malformed PKCS#1/5 plain ECC private key\";\n }\n\n if (this.curveName = o(e), void 0 === this.curveName) throw \"unsupported curve name\";\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(n), this.setPrivateKeyHex(r), this.isPublic = !1;\n }, this.readPKCS8PrvKeyHex = function (t) {\n var e,\n r,\n n,\n i = Ar,\n o = Er.crypto.ECDSA.getName,\n s = i.getVbyList;\n if (!1 === i.isASN1HEX(t)) throw \"not ASN.1 hex string\";\n\n try {\n s(t, 0, [1, 0], \"06\"), e = s(t, 0, [1, 1], \"06\"), r = s(t, 0, [2, 0, 1], \"04\");\n\n try {\n n = s(t, 0, [2, 0, 2, 0], \"03\").substr(2);\n } catch (t) {}\n } catch (t) {\n throw \"malformed PKCS#8 plain ECC private key\";\n }\n\n if (this.curveName = o(e), void 0 === this.curveName) throw \"unsupported curve name\";\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(n), this.setPrivateKeyHex(r), this.isPublic = !1;\n }, this.readPKCS8PubKeyHex = function (t) {\n var e,\n r,\n n = Ar,\n i = Er.crypto.ECDSA.getName,\n o = n.getVbyList;\n if (!1 === n.isASN1HEX(t)) throw \"not ASN.1 hex string\";\n\n try {\n o(t, 0, [0, 0], \"06\"), e = o(t, 0, [0, 1], \"06\"), r = o(t, 0, [1], \"03\").substr(2);\n } catch (t) {\n throw \"malformed PKCS#8 ECC public key\";\n }\n\n if (this.curveName = i(e), null === this.curveName) throw \"unsupported curve name\";\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(r);\n }, this.readCertPubKeyHex = function (t, e) {\n 5 !== e && (e = 6);\n var r,\n n,\n i = Ar,\n o = Er.crypto.ECDSA.getName,\n s = i.getVbyList;\n if (!1 === i.isASN1HEX(t)) throw \"not ASN.1 hex string\";\n\n try {\n r = s(t, 0, [0, e, 0, 1], \"06\"), n = s(t, 0, [0, e, 1], \"03\").substr(2);\n } catch (t) {\n throw \"malformed X.509 certificate ECC public key\";\n }\n\n if (this.curveName = o(r), null === this.curveName) throw \"unsupported curve name\";\n this.setNamedCurve(this.curveName), this.setPublicKeyHex(n);\n }, void 0 !== t && void 0 !== t.curve && (this.curveName = t.curve), void 0 === this.curveName && (this.curveName = \"secp256r1\"), this.setNamedCurve(this.curveName), void 0 !== t && (void 0 !== t.prv && this.setPrivateKeyHex(t.prv), void 0 !== t.pub && this.setPublicKeyHex(t.pub));\n }, Er.crypto.ECDSA.parseSigHex = function (t) {\n var e = Er.crypto.ECDSA.parseSigHexInHexRS(t);\n return {\n r: new E(e.r, 16),\n s: new E(e.s, 16)\n };\n }, Er.crypto.ECDSA.parseSigHexInHexRS = function (t) {\n var e = Ar,\n r = e.getChildIdx,\n n = e.getV;\n if (\"30\" != t.substr(0, 2)) throw \"signature is not a ASN.1 sequence\";\n var i = r(t, 0);\n if (2 != i.length) throw \"number of signature ASN.1 sequence elements seem wrong\";\n var o = i[0],\n s = i[1];\n if (\"02\" != t.substr(o, 2)) throw \"1st item of sequene of signature is not ASN.1 integer\";\n if (\"02\" != t.substr(s, 2)) throw \"2nd item of sequene of signature is not ASN.1 integer\";\n return {\n r: n(t, o),\n s: n(t, s)\n };\n }, Er.crypto.ECDSA.asn1SigToConcatSig = function (t) {\n var e = Er.crypto.ECDSA.parseSigHexInHexRS(t),\n r = e.r,\n n = e.s;\n if (\"00\" == r.substr(0, 2) && r.length % 32 == 2 && (r = r.substr(2)), \"00\" == n.substr(0, 2) && n.length % 32 == 2 && (n = n.substr(2)), r.length % 32 == 30 && (r = \"00\" + r), n.length % 32 == 30 && (n = \"00\" + n), r.length % 32 != 0) throw \"unknown ECDSA sig r length error\";\n if (n.length % 32 != 0) throw \"unknown ECDSA sig s length error\";\n return r + n;\n }, Er.crypto.ECDSA.concatSigToASN1Sig = function (t) {\n if (t.length / 2 * 8 % 128 != 0) throw \"unknown ECDSA concatinated r-s sig length error\";\n var e = t.substr(0, t.length / 2),\n r = t.substr(t.length / 2);\n return Er.crypto.ECDSA.hexRSSigToASN1Sig(e, r);\n }, Er.crypto.ECDSA.hexRSSigToASN1Sig = function (t, e) {\n var r = new E(t, 16),\n n = new E(e, 16);\n return Er.crypto.ECDSA.biRSSigToASN1Sig(r, n);\n }, Er.crypto.ECDSA.biRSSigToASN1Sig = function (t, e) {\n var r = Er.asn1,\n n = new r.DERInteger({\n bigint: t\n }),\n i = new r.DERInteger({\n bigint: e\n });\n return new r.DERSequence({\n array: [n, i]\n }).getEncodedHex();\n }, Er.crypto.ECDSA.getName = function (t) {\n return \"2a8648ce3d030107\" === t ? \"secp256r1\" : \"2b8104000a\" === t ? \"secp256k1\" : \"2b81040022\" === t ? \"secp384r1\" : -1 !== \"|secp256r1|NIST P-256|P-256|prime256v1|\".indexOf(t) ? \"secp256r1\" : -1 !== \"|secp256k1|\".indexOf(t) ? \"secp256k1\" : -1 !== \"|secp384r1|NIST P-384|P-384|\".indexOf(t) ? \"secp384r1\" : null;\n }, void 0 !== Er && Er || (e.KJUR = Er = {}), void 0 !== Er.crypto && Er.crypto || (Er.crypto = {}), Er.crypto.ECParameterDB = new function () {\n var t = {},\n e = {};\n\n function r(t) {\n return new E(t, 16);\n }\n\n this.getByName = function (r) {\n var n = r;\n if (void 0 !== e[n] && (n = e[r]), void 0 !== t[n]) return t[n];\n throw \"unregistered EC curve name: \" + n;\n }, this.regist = function (n, i, o, s, a, u, c, h, l, f, d, g) {\n t[n] = {};\n\n var p = r(o),\n v = r(s),\n y = r(a),\n m = r(u),\n _ = r(c),\n S = new ze(p, v, y),\n F = S.decodePointHex(\"04\" + h + l);\n\n t[n].name = n, t[n].keylen = i, t[n].curve = S, t[n].G = F, t[n].n = m, t[n].h = _, t[n].oid = d, t[n].info = g;\n\n for (var b = 0; b < f.length; b++) {\n e[f[b]] = n;\n }\n };\n }(), Er.crypto.ECParameterDB.regist(\"secp128r1\", 128, \"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFF\", \"FFFFFFFDFFFFFFFFFFFFFFFFFFFFFFFC\", \"E87579C11079F43DD824993C2CEE5ED3\", \"FFFFFFFE0000000075A30D1B9038A115\", \"1\", \"161FF7528B899B2D0C28607CA52C5B86\", \"CF5AC8395BAFEB13C02DA292DDED7A83\", [], \"\", \"secp128r1 : SECG curve over a 128 bit prime field\"), Er.crypto.ECParameterDB.regist(\"secp160k1\", 160, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFAC73\", \"0\", \"7\", \"0100000000000000000001B8FA16DFAB9ACA16B6B3\", \"1\", \"3B4C382CE37AA192A4019E763036F4F5DD4D7EBB\", \"938CF935318FDCED6BC28286531733C3F03C4FEE\", [], \"\", \"secp160k1 : SECG curve over a 160 bit prime field\"), Er.crypto.ECParameterDB.regist(\"secp160r1\", 160, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7FFFFFFC\", \"1C97BEFC54BD7A8B65ACF89F81D4D4ADC565FA45\", \"0100000000000000000001F4C8F927AED3CA752257\", \"1\", \"4A96B5688EF573284664698968C38BB913CBFC82\", \"23A628553168947D59DCC912042351377AC5FB32\", [], \"\", \"secp160r1 : SECG curve over a 160 bit prime field\"), Er.crypto.ECParameterDB.regist(\"secp192k1\", 192, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFEE37\", \"0\", \"3\", \"FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D\", \"1\", \"DB4FF10EC057E9AE26B07D0280B7F4341DA5D1B1EAE06C7D\", \"9B2F2F6D9C5628A7844163D015BE86344082AA88D95E2F9D\", []), Er.crypto.ECParameterDB.regist(\"secp192r1\", 192, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFC\", \"64210519E59C80E70FA7E9AB72243049FEB8DEECC146B9B1\", \"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831\", \"1\", \"188DA80EB03090F67CBF20EB43A18800F4FF0AFD82FF1012\", \"07192B95FFC8DA78631011ED6B24CDD573F977A11E794811\", []), Er.crypto.ECParameterDB.regist(\"secp224r1\", 224, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFE\", \"B4050A850C04B3ABF54132565044B0B7D7BFD8BA270B39432355FFB4\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D\", \"1\", \"B70E0CBD6BB4BF7F321390B94A03C1D356C21122343280D6115C1D21\", \"BD376388B5F723FB4C22DFE6CD4375A05A07476444D5819985007E34\", []), Er.crypto.ECParameterDB.regist(\"secp256k1\", 256, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFC2F\", \"0\", \"7\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141\", \"1\", \"79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798\", \"483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8\", []), Er.crypto.ECParameterDB.regist(\"secp256r1\", 256, \"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF\", \"FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC\", \"5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B\", \"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551\", \"1\", \"6B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C296\", \"4FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5\", [\"NIST P-256\", \"P-256\", \"prime256v1\"]), Er.crypto.ECParameterDB.regist(\"secp384r1\", 384, \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFF0000000000000000FFFFFFFC\", \"B3312FA7E23EE7E4988E056BE3F82D19181D9C6EFE8141120314088F5013875AC656398D8A2ED19D2A85C8EDD3EC2AEF\", \"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973\", \"1\", \"AA87CA22BE8B05378EB1C71EF320AD746E1D3B628BA79B9859F741E082542A385502F25DBF55296C3A545E3872760AB7\", \"3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f\", [\"NIST P-384\", \"P-384\"]), Er.crypto.ECParameterDB.regist(\"secp521r1\", 521, \"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\", \"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC\", \"051953EB9618E1C9A1F929A21A0B68540EEA2DA725B99B315F3B8B489918EF109E156193951EC7E937B1652C0BD3BB1BF073573DF883D2C34F1EF451FD46B503F00\", \"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409\", \"1\", \"C6858E06B70404E9CD9E3ECB662395B4429C648139053FB521F828AF606B4D3DBAA14B5E77EFE75928FE1DC127A2FFA8DE3348B3C1856A429BF97E7E31C2E5BD66\", \"011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650\", [\"NIST P-521\", \"P-521\"]);\n\n var tn = function () {\n var t = function t(r, n, i) {\n return e(y.AES, r, n, i);\n },\n e = function t(e, r, n, i) {\n var o = y.enc.Hex.parse(r),\n s = y.enc.Hex.parse(n),\n a = y.enc.Hex.parse(i),\n u = {};\n u.key = s, u.iv = a, u.ciphertext = o;\n var c = e.decrypt(u, s, {\n iv: a\n });\n return y.enc.Hex.stringify(c);\n },\n r = function t(e, r, i) {\n return n(y.AES, e, r, i);\n },\n n = function t(e, r, n, i) {\n var o = y.enc.Hex.parse(r),\n s = y.enc.Hex.parse(n),\n a = y.enc.Hex.parse(i),\n u = e.encrypt(o, s, {\n iv: a\n }),\n c = y.enc.Hex.parse(u.toString());\n return y.enc.Base64.stringify(c);\n },\n i = {\n \"AES-256-CBC\": {\n proc: t,\n eproc: r,\n keylen: 32,\n ivlen: 16\n },\n \"AES-192-CBC\": {\n proc: t,\n eproc: r,\n keylen: 24,\n ivlen: 16\n },\n \"AES-128-CBC\": {\n proc: t,\n eproc: r,\n keylen: 16,\n ivlen: 16\n },\n \"DES-EDE3-CBC\": {\n proc: function t(r, n, i) {\n return e(y.TripleDES, r, n, i);\n },\n eproc: function t(e, r, i) {\n return n(y.TripleDES, e, r, i);\n },\n keylen: 24,\n ivlen: 8\n },\n \"DES-CBC\": {\n proc: function t(r, n, i) {\n return e(y.DES, r, n, i);\n },\n eproc: function t(e, r, i) {\n return n(y.DES, e, r, i);\n },\n keylen: 8,\n ivlen: 8\n }\n },\n o = function t(e) {\n var r = {},\n n = e.match(new RegExp(\"DEK-Info: ([^,]+),([0-9A-Fa-f]+)\", \"m\"));\n n && (r.cipher = n[1], r.ivsalt = n[2]);\n var i = e.match(new RegExp(\"-----BEGIN ([A-Z]+) PRIVATE KEY-----\"));\n i && (r.type = i[1]);\n var o = -1,\n s = 0;\n -1 != e.indexOf(\"\\r\\n\\r\\n\") && (o = e.indexOf(\"\\r\\n\\r\\n\"), s = 2), -1 != e.indexOf(\"\\n\\n\") && (o = e.indexOf(\"\\n\\n\"), s = 1);\n var a = e.indexOf(\"-----END\");\n\n if (-1 != o && -1 != a) {\n var u = e.substring(o + 2 * s, a - s);\n u = u.replace(/\\s+/g, \"\"), r.data = u;\n }\n\n return r;\n },\n s = function t(e, r, n) {\n for (var o = n.substring(0, 16), s = y.enc.Hex.parse(o), a = y.enc.Utf8.parse(r), u = i[e].keylen + i[e].ivlen, c = \"\", h = null;;) {\n var l = y.algo.MD5.create();\n if (null != h && l.update(h), l.update(a), l.update(s), h = l.finalize(), (c += y.enc.Hex.stringify(h)).length >= 2 * u) break;\n }\n\n var f = {};\n return f.keyhex = c.substr(0, 2 * i[e].keylen), f.ivhex = c.substr(2 * i[e].keylen, 2 * i[e].ivlen), f;\n },\n a = function t(e, r, n, o) {\n var s = y.enc.Base64.parse(e),\n a = y.enc.Hex.stringify(s);\n return (0, i[r].proc)(a, n, o);\n };\n\n return {\n version: \"1.0.0\",\n parsePKCS5PEM: function t(e) {\n return o(e);\n },\n getKeyAndUnusedIvByPasscodeAndIvsalt: function t(e, r, n) {\n return s(e, r, n);\n },\n decryptKeyB64: function t(e, r, n, i) {\n return a(e, r, n, i);\n },\n getDecryptedKeyHex: function t(e, r) {\n var n = o(e),\n i = (n.type, n.cipher),\n u = n.ivsalt,\n c = n.data,\n h = s(i, r, u).keyhex;\n return a(c, i, h, u);\n },\n getEncryptedPKCS5PEMFromPrvKeyHex: function t(e, r, n, o, a) {\n var u = \"\";\n if (void 0 !== o && null != o || (o = \"AES-256-CBC\"), void 0 === i[o]) throw \"KEYUTIL unsupported algorithm: \" + o;\n void 0 !== a && null != a || (a = function t(e) {\n var r = y.lib.WordArray.random(e);\n return y.enc.Hex.stringify(r);\n }(i[o].ivlen).toUpperCase());\n\n var c = function t(e, r, n, o) {\n return (0, i[r].eproc)(e, n, o);\n }(r, o, s(o, n, a).keyhex, a);\n\n u = \"-----BEGIN \" + e + \" PRIVATE KEY-----\\r\\n\";\n return u += \"Proc-Type: 4,ENCRYPTED\\r\\n\", u += \"DEK-Info: \" + o + \",\" + a + \"\\r\\n\", u += \"\\r\\n\", u += c.replace(/(.{64})/g, \"$1\\r\\n\"), u += \"\\r\\n-----END \" + e + \" PRIVATE KEY-----\\r\\n\";\n },\n parseHexOfEncryptedPKCS8: function t(e) {\n var r = Ar,\n n = r.getChildIdx,\n i = r.getV,\n o = {},\n s = n(e, 0);\n if (2 != s.length) throw \"malformed format: SEQUENCE(0).items != 2: \" + s.length;\n o.ciphertext = i(e, s[1]);\n var a = n(e, s[0]);\n if (2 != a.length) throw \"malformed format: SEQUENCE(0.0).items != 2: \" + a.length;\n if (\"2a864886f70d01050d\" != i(e, a[0])) throw \"this only supports pkcs5PBES2\";\n var u = n(e, a[1]);\n if (2 != a.length) throw \"malformed format: SEQUENCE(0.0.1).items != 2: \" + u.length;\n var c = n(e, u[1]);\n if (2 != c.length) throw \"malformed format: SEQUENCE(0.0.1.1).items != 2: \" + c.length;\n if (\"2a864886f70d0307\" != i(e, c[0])) throw \"this only supports TripleDES\";\n o.encryptionSchemeAlg = \"TripleDES\", o.encryptionSchemeIV = i(e, c[1]);\n var h = n(e, u[0]);\n if (2 != h.length) throw \"malformed format: SEQUENCE(0.0.1.0).items != 2: \" + h.length;\n if (\"2a864886f70d01050c\" != i(e, h[0])) throw \"this only supports pkcs5PBKDF2\";\n var l = n(e, h[1]);\n if (l.length < 2) throw \"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \" + l.length;\n o.pbkdf2Salt = i(e, l[0]);\n var f = i(e, l[1]);\n\n try {\n o.pbkdf2Iter = parseInt(f, 16);\n } catch (t) {\n throw \"malformed format pbkdf2Iter: \" + f;\n }\n\n return o;\n },\n getPBKDF2KeyHexFromParam: function t(e, r) {\n var n = y.enc.Hex.parse(e.pbkdf2Salt),\n i = e.pbkdf2Iter,\n o = y.PBKDF2(r, n, {\n keySize: 6,\n iterations: i\n });\n return y.enc.Hex.stringify(o);\n },\n _getPlainPKCS8HexFromEncryptedPKCS8PEM: function t(e, r) {\n var n = qr(e, \"ENCRYPTED PRIVATE KEY\"),\n i = this.parseHexOfEncryptedPKCS8(n),\n o = tn.getPBKDF2KeyHexFromParam(i, r),\n s = {};\n s.ciphertext = y.enc.Hex.parse(i.ciphertext);\n var a = y.enc.Hex.parse(o),\n u = y.enc.Hex.parse(i.encryptionSchemeIV),\n c = y.TripleDES.decrypt(s, a, {\n iv: u\n });\n return y.enc.Hex.stringify(c);\n },\n getKeyFromEncryptedPKCS8PEM: function t(e, r) {\n var n = this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e, r);\n\n return this.getKeyFromPlainPrivatePKCS8Hex(n);\n },\n parsePlainPrivatePKCS8Hex: function t(e) {\n var r = Ar,\n n = r.getChildIdx,\n i = r.getV,\n o = {\n algparam: null\n };\n if (\"30\" != e.substr(0, 2)) throw \"malformed plain PKCS8 private key(code:001)\";\n var s = n(e, 0);\n if (3 != s.length) throw \"malformed plain PKCS8 private key(code:002)\";\n if (\"30\" != e.substr(s[1], 2)) throw \"malformed PKCS8 private key(code:003)\";\n var a = n(e, s[1]);\n if (2 != a.length) throw \"malformed PKCS8 private key(code:004)\";\n if (\"06\" != e.substr(a[0], 2)) throw \"malformed PKCS8 private key(code:005)\";\n if (o.algoid = i(e, a[0]), \"06\" == e.substr(a[1], 2) && (o.algparam = i(e, a[1])), \"04\" != e.substr(s[2], 2)) throw \"malformed PKCS8 private key(code:006)\";\n return o.keyidx = r.getVidx(e, s[2]), o;\n },\n getKeyFromPlainPrivatePKCS8PEM: function t(e) {\n var r = qr(e, \"PRIVATE KEY\");\n return this.getKeyFromPlainPrivatePKCS8Hex(r);\n },\n getKeyFromPlainPrivatePKCS8Hex: function t(e) {\n var r,\n n = this.parsePlainPrivatePKCS8Hex(e);\n if (\"2a864886f70d010101\" == n.algoid) r = new qe();else if (\"2a8648ce380401\" == n.algoid) r = new Er.crypto.DSA();else {\n if (\"2a8648ce3d0201\" != n.algoid) throw \"unsupported private key algorithm\";\n r = new Er.crypto.ECDSA();\n }\n return r.readPKCS8PrvKeyHex(e), r;\n },\n _getKeyFromPublicPKCS8Hex: function t(e) {\n var r,\n n = Ar.getVbyList(e, 0, [0, 0], \"06\");\n if (\"2a864886f70d010101\" === n) r = new qe();else if (\"2a8648ce380401\" === n) r = new Er.crypto.DSA();else {\n if (\"2a8648ce3d0201\" !== n) throw \"unsupported PKCS#8 public key hex\";\n r = new Er.crypto.ECDSA();\n }\n return r.readPKCS8PubKeyHex(e), r;\n },\n parsePublicRawRSAKeyHex: function t(e) {\n var r = Ar,\n n = r.getChildIdx,\n i = r.getV,\n o = {};\n if (\"30\" != e.substr(0, 2)) throw \"malformed RSA key(code:001)\";\n var s = n(e, 0);\n if (2 != s.length) throw \"malformed RSA key(code:002)\";\n if (\"02\" != e.substr(s[0], 2)) throw \"malformed RSA key(code:003)\";\n if (o.n = i(e, s[0]), \"02\" != e.substr(s[1], 2)) throw \"malformed RSA key(code:004)\";\n return o.e = i(e, s[1]), o;\n },\n parsePublicPKCS8Hex: function t(e) {\n var r = Ar,\n n = r.getChildIdx,\n i = r.getV,\n o = {\n algparam: null\n },\n s = n(e, 0);\n if (2 != s.length) throw \"outer DERSequence shall have 2 elements: \" + s.length;\n var a = s[0];\n if (\"30\" != e.substr(a, 2)) throw \"malformed PKCS8 public key(code:001)\";\n var u = n(e, a);\n if (2 != u.length) throw \"malformed PKCS8 public key(code:002)\";\n if (\"06\" != e.substr(u[0], 2)) throw \"malformed PKCS8 public key(code:003)\";\n if (o.algoid = i(e, u[0]), \"06\" == e.substr(u[1], 2) ? o.algparam = i(e, u[1]) : \"30\" == e.substr(u[1], 2) && (o.algparam = {}, o.algparam.p = r.getVbyList(e, u[1], [0], \"02\"), o.algparam.q = r.getVbyList(e, u[1], [1], \"02\"), o.algparam.g = r.getVbyList(e, u[1], [2], \"02\")), \"03\" != e.substr(s[1], 2)) throw \"malformed PKCS8 public key(code:004)\";\n return o.key = i(e, s[1]).substr(2), o;\n }\n };\n }();\n\n tn.getKey = function (t, e, r) {\n var n = (v = Ar).getChildIdx,\n i = (v.getV, v.getVbyList),\n o = Er.crypto,\n s = o.ECDSA,\n a = o.DSA,\n u = qe,\n c = qr,\n h = tn;\n if (void 0 !== u && t instanceof u) return t;\n if (void 0 !== s && t instanceof s) return t;\n if (void 0 !== a && t instanceof a) return t;\n if (void 0 !== t.curve && void 0 !== t.xy && void 0 === t.d) return new s({\n pub: t.xy,\n curve: t.curve\n });\n if (void 0 !== t.curve && void 0 !== t.d) return new s({\n prv: t.d,\n curve: t.curve\n });\n if (void 0 === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 === t.d) return (P = new u()).setPublic(t.n, t.e), P;\n if (void 0 === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 !== t.d && void 0 !== t.p && void 0 !== t.q && void 0 !== t.dp && void 0 !== t.dq && void 0 !== t.co && void 0 === t.qi) return (P = new u()).setPrivateEx(t.n, t.e, t.d, t.p, t.q, t.dp, t.dq, t.co), P;\n if (void 0 === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 !== t.d && void 0 === t.p) return (P = new u()).setPrivate(t.n, t.e, t.d), P;\n if (void 0 !== t.p && void 0 !== t.q && void 0 !== t.g && void 0 !== t.y && void 0 === t.x) return (P = new a()).setPublic(t.p, t.q, t.g, t.y), P;\n if (void 0 !== t.p && void 0 !== t.q && void 0 !== t.g && void 0 !== t.y && void 0 !== t.x) return (P = new a()).setPrivate(t.p, t.q, t.g, t.y, t.x), P;\n if (\"RSA\" === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 === t.d) return (P = new u()).setPublic(Lr(t.n), Lr(t.e)), P;\n if (\"RSA\" === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 !== t.d && void 0 !== t.p && void 0 !== t.q && void 0 !== t.dp && void 0 !== t.dq && void 0 !== t.qi) return (P = new u()).setPrivateEx(Lr(t.n), Lr(t.e), Lr(t.d), Lr(t.p), Lr(t.q), Lr(t.dp), Lr(t.dq), Lr(t.qi)), P;\n if (\"RSA\" === t.kty && void 0 !== t.n && void 0 !== t.e && void 0 !== t.d) return (P = new u()).setPrivate(Lr(t.n), Lr(t.e), Lr(t.d)), P;\n\n if (\"EC\" === t.kty && void 0 !== t.crv && void 0 !== t.x && void 0 !== t.y && void 0 === t.d) {\n var l = (A = new s({\n curve: t.crv\n })).ecparams.keylen / 4,\n f = \"04\" + (\"0000000000\" + Lr(t.x)).slice(-l) + (\"0000000000\" + Lr(t.y)).slice(-l);\n return A.setPublicKeyHex(f), A;\n }\n\n if (\"EC\" === t.kty && void 0 !== t.crv && void 0 !== t.x && void 0 !== t.y && void 0 !== t.d) {\n l = (A = new s({\n curve: t.crv\n })).ecparams.keylen / 4, f = \"04\" + (\"0000000000\" + Lr(t.x)).slice(-l) + (\"0000000000\" + Lr(t.y)).slice(-l);\n var d = (\"0000000000\" + Lr(t.d)).slice(-l);\n return A.setPublicKeyHex(f), A.setPrivateKeyHex(d), A;\n }\n\n if (\"pkcs5prv\" === r) {\n var g,\n p = t,\n v = Ar;\n if (9 === (g = n(p, 0)).length) (P = new u()).readPKCS5PrvKeyHex(p);else if (6 === g.length) (P = new a()).readPKCS5PrvKeyHex(p);else {\n if (!(g.length > 2 && \"04\" === p.substr(g[1], 2))) throw \"unsupported PKCS#1/5 hexadecimal key\";\n (P = new s()).readPKCS5PrvKeyHex(p);\n }\n return P;\n }\n\n if (\"pkcs8prv\" === r) return P = h.getKeyFromPlainPrivatePKCS8Hex(t);\n if (\"pkcs8pub\" === r) return h._getKeyFromPublicPKCS8Hex(t);\n if (\"x509pub\" === r) return sn.getPublicKeyFromCertHex(t);\n if (-1 != t.indexOf(\"-END CERTIFICATE-\", 0) || -1 != t.indexOf(\"-END X509 CERTIFICATE-\", 0) || -1 != t.indexOf(\"-END TRUSTED CERTIFICATE-\", 0)) return sn.getPublicKeyFromCertPEM(t);\n\n if (-1 != t.indexOf(\"-END PUBLIC KEY-\")) {\n var y = qr(t, \"PUBLIC KEY\");\n return h._getKeyFromPublicPKCS8Hex(y);\n }\n\n if (-1 != t.indexOf(\"-END RSA PRIVATE KEY-\") && -1 == t.indexOf(\"4,ENCRYPTED\")) {\n var m = c(t, \"RSA PRIVATE KEY\");\n return h.getKey(m, null, \"pkcs5prv\");\n }\n\n if (-1 != t.indexOf(\"-END DSA PRIVATE KEY-\") && -1 == t.indexOf(\"4,ENCRYPTED\")) {\n var _ = i(R = c(t, \"DSA PRIVATE KEY\"), 0, [1], \"02\"),\n S = i(R, 0, [2], \"02\"),\n F = i(R, 0, [3], \"02\"),\n b = i(R, 0, [4], \"02\"),\n w = i(R, 0, [5], \"02\");\n\n return (P = new a()).setPrivate(new E(_, 16), new E(S, 16), new E(F, 16), new E(b, 16), new E(w, 16)), P;\n }\n\n if (-1 != t.indexOf(\"-END PRIVATE KEY-\")) return h.getKeyFromPlainPrivatePKCS8PEM(t);\n\n if (-1 != t.indexOf(\"-END RSA PRIVATE KEY-\") && -1 != t.indexOf(\"4,ENCRYPTED\")) {\n var x = h.getDecryptedKeyHex(t, e),\n k = new qe();\n return k.readPKCS5PrvKeyHex(x), k;\n }\n\n if (-1 != t.indexOf(\"-END EC PRIVATE KEY-\") && -1 != t.indexOf(\"4,ENCRYPTED\")) {\n var A,\n P = i(R = h.getDecryptedKeyHex(t, e), 0, [1], \"04\"),\n C = i(R, 0, [2, 0], \"06\"),\n T = i(R, 0, [3, 0], \"03\").substr(2);\n if (void 0 === Er.crypto.OID.oidhex2name[C]) throw \"undefined OID(hex) in KJUR.crypto.OID: \" + C;\n return (A = new s({\n curve: Er.crypto.OID.oidhex2name[C]\n })).setPublicKeyHex(T), A.setPrivateKeyHex(P), A.isPublic = !1, A;\n }\n\n if (-1 != t.indexOf(\"-END DSA PRIVATE KEY-\") && -1 != t.indexOf(\"4,ENCRYPTED\")) {\n var R;\n _ = i(R = h.getDecryptedKeyHex(t, e), 0, [1], \"02\"), S = i(R, 0, [2], \"02\"), F = i(R, 0, [3], \"02\"), b = i(R, 0, [4], \"02\"), w = i(R, 0, [5], \"02\");\n return (P = new a()).setPrivate(new E(_, 16), new E(S, 16), new E(F, 16), new E(b, 16), new E(w, 16)), P;\n }\n\n if (-1 != t.indexOf(\"-END ENCRYPTED PRIVATE KEY-\")) return h.getKeyFromEncryptedPKCS8PEM(t, e);\n throw \"not supported argument\";\n }, tn.generateKeypair = function (t, e) {\n if (\"RSA\" == t) {\n var r = e;\n (s = new qe()).generate(r, \"10001\"), s.isPrivate = !0, s.isPublic = !0;\n var n = new qe(),\n i = s.n.toString(16),\n o = s.e.toString(16);\n return n.setPublic(i, o), n.isPrivate = !1, n.isPublic = !0, (a = {}).prvKeyObj = s, a.pubKeyObj = n, a;\n }\n\n if (\"EC\" == t) {\n var s,\n a,\n u = e,\n c = new Er.crypto.ECDSA({\n curve: u\n }).generateKeyPairHex();\n return (s = new Er.crypto.ECDSA({\n curve: u\n })).setPublicKeyHex(c.ecpubhex), s.setPrivateKeyHex(c.ecprvhex), s.isPrivate = !0, s.isPublic = !1, (n = new Er.crypto.ECDSA({\n curve: u\n })).setPublicKeyHex(c.ecpubhex), n.isPrivate = !1, n.isPublic = !0, (a = {}).prvKeyObj = s, a.pubKeyObj = n, a;\n }\n\n throw \"unknown algorithm: \" + t;\n }, tn.getPEM = function (t, e, r, n, i, o) {\n var s = Er,\n a = s.asn1,\n u = a.DERObjectIdentifier,\n c = a.DERInteger,\n h = a.ASN1Util.newObject,\n l = a.x509.SubjectPublicKeyInfo,\n f = s.crypto,\n d = f.DSA,\n g = f.ECDSA,\n p = qe;\n\n function v(t) {\n return h({\n seq: [{\n \"int\": 0\n }, {\n \"int\": {\n bigint: t.n\n }\n }, {\n \"int\": t.e\n }, {\n \"int\": {\n bigint: t.d\n }\n }, {\n \"int\": {\n bigint: t.p\n }\n }, {\n \"int\": {\n bigint: t.q\n }\n }, {\n \"int\": {\n bigint: t.dmp1\n }\n }, {\n \"int\": {\n bigint: t.dmq1\n }\n }, {\n \"int\": {\n bigint: t.coeff\n }\n }]\n });\n }\n\n function m(t) {\n return h({\n seq: [{\n \"int\": 1\n }, {\n octstr: {\n hex: t.prvKeyHex\n }\n }, {\n tag: [\"a0\", !0, {\n oid: {\n name: t.curveName\n }\n }]\n }, {\n tag: [\"a1\", !0, {\n bitstr: {\n hex: \"00\" + t.pubKeyHex\n }\n }]\n }]\n });\n }\n\n function _(t) {\n return h({\n seq: [{\n \"int\": 0\n }, {\n \"int\": {\n bigint: t.p\n }\n }, {\n \"int\": {\n bigint: t.q\n }\n }, {\n \"int\": {\n bigint: t.g\n }\n }, {\n \"int\": {\n bigint: t.y\n }\n }, {\n \"int\": {\n bigint: t.x\n }\n }]\n });\n }\n\n if ((void 0 !== p && t instanceof p || void 0 !== d && t instanceof d || void 0 !== g && t instanceof g) && 1 == t.isPublic && (void 0 === e || \"PKCS8PUB\" == e)) return Vr(w = new l(t).getEncodedHex(), \"PUBLIC KEY\");\n if (\"PKCS1PRV\" == e && void 0 !== p && t instanceof p && (void 0 === r || null == r) && 1 == t.isPrivate) return Vr(w = v(t).getEncodedHex(), \"RSA PRIVATE KEY\");\n\n if (\"PKCS1PRV\" == e && void 0 !== g && t instanceof g && (void 0 === r || null == r) && 1 == t.isPrivate) {\n var S = new u({\n name: t.curveName\n }).getEncodedHex(),\n F = m(t).getEncodedHex(),\n b = \"\";\n return b += Vr(S, \"EC PARAMETERS\"), b += Vr(F, \"EC PRIVATE KEY\");\n }\n\n if (\"PKCS1PRV\" == e && void 0 !== d && t instanceof d && (void 0 === r || null == r) && 1 == t.isPrivate) return Vr(w = _(t).getEncodedHex(), \"DSA PRIVATE KEY\");\n\n if (\"PKCS5PRV\" == e && void 0 !== p && t instanceof p && void 0 !== r && null != r && 1 == t.isPrivate) {\n var w = v(t).getEncodedHex();\n return void 0 === n && (n = \"DES-EDE3-CBC\"), this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\", w, r, n, o);\n }\n\n if (\"PKCS5PRV\" == e && void 0 !== g && t instanceof g && void 0 !== r && null != r && 1 == t.isPrivate) {\n w = m(t).getEncodedHex();\n return void 0 === n && (n = \"DES-EDE3-CBC\"), this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\", w, r, n, o);\n }\n\n if (\"PKCS5PRV\" == e && void 0 !== d && t instanceof d && void 0 !== r && null != r && 1 == t.isPrivate) {\n w = _(t).getEncodedHex();\n return void 0 === n && (n = \"DES-EDE3-CBC\"), this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\", w, r, n, o);\n }\n\n var E = function t(e, r) {\n var n = x(e, r);\n return new h({\n seq: [{\n seq: [{\n oid: {\n name: \"pkcs5PBES2\"\n }\n }, {\n seq: [{\n seq: [{\n oid: {\n name: \"pkcs5PBKDF2\"\n }\n }, {\n seq: [{\n octstr: {\n hex: n.pbkdf2Salt\n }\n }, {\n \"int\": n.pbkdf2Iter\n }]\n }]\n }, {\n seq: [{\n oid: {\n name: \"des-EDE3-CBC\"\n }\n }, {\n octstr: {\n hex: n.encryptionSchemeIV\n }\n }]\n }]\n }]\n }, {\n octstr: {\n hex: n.ciphertext\n }\n }]\n }).getEncodedHex();\n },\n x = function t(e, r) {\n var n = y.lib.WordArray.random(8),\n i = y.lib.WordArray.random(8),\n o = y.PBKDF2(r, n, {\n keySize: 6,\n iterations: 100\n }),\n s = y.enc.Hex.parse(e),\n a = y.TripleDES.encrypt(s, o, {\n iv: i\n }) + \"\",\n u = {};\n return u.ciphertext = a, u.pbkdf2Salt = y.enc.Hex.stringify(n), u.pbkdf2Iter = 100, u.encryptionSchemeAlg = \"DES-EDE3-CBC\", u.encryptionSchemeIV = y.enc.Hex.stringify(i), u;\n };\n\n if (\"PKCS8PRV\" == e && void 0 != p && t instanceof p && 1 == t.isPrivate) {\n var k = v(t).getEncodedHex();\n w = h({\n seq: [{\n \"int\": 0\n }, {\n seq: [{\n oid: {\n name: \"rsaEncryption\"\n }\n }, {\n \"null\": !0\n }]\n }, {\n octstr: {\n hex: k\n }\n }]\n }).getEncodedHex();\n return void 0 === r || null == r ? Vr(w, \"PRIVATE KEY\") : Vr(F = E(w, r), \"ENCRYPTED PRIVATE KEY\");\n }\n\n if (\"PKCS8PRV\" == e && void 0 !== g && t instanceof g && 1 == t.isPrivate) {\n k = new h({\n seq: [{\n \"int\": 1\n }, {\n octstr: {\n hex: t.prvKeyHex\n }\n }, {\n tag: [\"a1\", !0, {\n bitstr: {\n hex: \"00\" + t.pubKeyHex\n }\n }]\n }]\n }).getEncodedHex(), w = h({\n seq: [{\n \"int\": 0\n }, {\n seq: [{\n oid: {\n name: \"ecPublicKey\"\n }\n }, {\n oid: {\n name: t.curveName\n }\n }]\n }, {\n octstr: {\n hex: k\n }\n }]\n }).getEncodedHex();\n return void 0 === r || null == r ? Vr(w, \"PRIVATE KEY\") : Vr(F = E(w, r), \"ENCRYPTED PRIVATE KEY\");\n }\n\n if (\"PKCS8PRV\" == e && void 0 !== d && t instanceof d && 1 == t.isPrivate) {\n k = new c({\n bigint: t.x\n }).getEncodedHex(), w = h({\n seq: [{\n \"int\": 0\n }, {\n seq: [{\n oid: {\n name: \"dsa\"\n }\n }, {\n seq: [{\n \"int\": {\n bigint: t.p\n }\n }, {\n \"int\": {\n bigint: t.q\n }\n }, {\n \"int\": {\n bigint: t.g\n }\n }]\n }]\n }, {\n octstr: {\n hex: k\n }\n }]\n }).getEncodedHex();\n return void 0 === r || null == r ? Vr(w, \"PRIVATE KEY\") : Vr(F = E(w, r), \"ENCRYPTED PRIVATE KEY\");\n }\n\n throw \"unsupported object nor format\";\n }, tn.getKeyFromCSRPEM = function (t) {\n var e = qr(t, \"CERTIFICATE REQUEST\");\n return tn.getKeyFromCSRHex(e);\n }, tn.getKeyFromCSRHex = function (t) {\n var e = tn.parseCSRHex(t);\n return tn.getKey(e.p8pubkeyhex, null, \"pkcs8pub\");\n }, tn.parseCSRHex = function (t) {\n var e = Ar,\n r = e.getChildIdx,\n n = e.getTLV,\n i = {},\n o = t;\n if (\"30\" != o.substr(0, 2)) throw \"malformed CSR(code:001)\";\n var s = r(o, 0);\n if (s.length < 1) throw \"malformed CSR(code:002)\";\n if (\"30\" != o.substr(s[0], 2)) throw \"malformed CSR(code:003)\";\n var a = r(o, s[0]);\n if (a.length < 3) throw \"malformed CSR(code:004)\";\n return i.p8pubkeyhex = n(o, a[2]), i;\n }, tn.getJWKFromKey = function (t) {\n var e = {};\n if (t instanceof qe && t.isPrivate) return e.kty = \"RSA\", e.n = Ur(t.n.toString(16)), e.e = Ur(t.e.toString(16)), e.d = Ur(t.d.toString(16)), e.p = Ur(t.p.toString(16)), e.q = Ur(t.q.toString(16)), e.dp = Ur(t.dmp1.toString(16)), e.dq = Ur(t.dmq1.toString(16)), e.qi = Ur(t.coeff.toString(16)), e;\n if (t instanceof qe && t.isPublic) return e.kty = \"RSA\", e.n = Ur(t.n.toString(16)), e.e = Ur(t.e.toString(16)), e;\n\n if (t instanceof Er.crypto.ECDSA && t.isPrivate) {\n if (\"P-256\" !== (n = t.getShortNISTPCurveName()) && \"P-384\" !== n) throw \"unsupported curve name for JWT: \" + n;\n var r = t.getPublicKeyXYHex();\n return e.kty = \"EC\", e.crv = n, e.x = Ur(r.x), e.y = Ur(r.y), e.d = Ur(t.prvKeyHex), e;\n }\n\n if (t instanceof Er.crypto.ECDSA && t.isPublic) {\n var n;\n if (\"P-256\" !== (n = t.getShortNISTPCurveName()) && \"P-384\" !== n) throw \"unsupported curve name for JWT: \" + n;\n r = t.getPublicKeyXYHex();\n return e.kty = \"EC\", e.crv = n, e.x = Ur(r.x), e.y = Ur(r.y), e;\n }\n\n throw \"not supported key object\";\n }, qe.getPosArrayOfChildrenFromHex = function (t) {\n return Ar.getChildIdx(t, 0);\n }, qe.getHexValueArrayOfChildrenFromHex = function (t) {\n var e,\n r = Ar.getV,\n n = r(t, (e = qe.getPosArrayOfChildrenFromHex(t))[0]),\n i = r(t, e[1]),\n o = r(t, e[2]),\n s = r(t, e[3]),\n a = r(t, e[4]),\n u = r(t, e[5]),\n c = r(t, e[6]),\n h = r(t, e[7]),\n l = r(t, e[8]);\n return (e = new Array()).push(n, i, o, s, a, u, c, h, l), e;\n }, qe.prototype.readPrivateKeyFromPEMString = function (t) {\n var e = qr(t),\n r = qe.getHexValueArrayOfChildrenFromHex(e);\n this.setPrivateEx(r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8]);\n }, qe.prototype.readPKCS5PrvKeyHex = function (t) {\n var e = qe.getHexValueArrayOfChildrenFromHex(t);\n this.setPrivateEx(e[1], e[2], e[3], e[4], e[5], e[6], e[7], e[8]);\n }, qe.prototype.readPKCS8PrvKeyHex = function (t) {\n var e,\n r,\n n,\n i,\n o,\n s,\n a,\n u,\n c = Ar,\n h = c.getVbyList;\n if (!1 === c.isASN1HEX(t)) throw \"not ASN.1 hex string\";\n\n try {\n e = h(t, 0, [2, 0, 1], \"02\"), r = h(t, 0, [2, 0, 2], \"02\"), n = h(t, 0, [2, 0, 3], \"02\"), i = h(t, 0, [2, 0, 4], \"02\"), o = h(t, 0, [2, 0, 5], \"02\"), s = h(t, 0, [2, 0, 6], \"02\"), a = h(t, 0, [2, 0, 7], \"02\"), u = h(t, 0, [2, 0, 8], \"02\");\n } catch (t) {\n throw \"malformed PKCS#8 plain RSA private key\";\n }\n\n this.setPrivateEx(e, r, n, i, o, s, a, u);\n }, qe.prototype.readPKCS5PubKeyHex = function (t) {\n var e = Ar,\n r = e.getV;\n if (!1 === e.isASN1HEX(t)) throw \"keyHex is not ASN.1 hex string\";\n var n = e.getChildIdx(t, 0);\n if (2 !== n.length || \"02\" !== t.substr(n[0], 2) || \"02\" !== t.substr(n[1], 2)) throw \"wrong hex for PKCS#5 public key\";\n var i = r(t, n[0]),\n o = r(t, n[1]);\n this.setPublic(i, o);\n }, qe.prototype.readPKCS8PubKeyHex = function (t) {\n var e = Ar;\n if (!1 === e.isASN1HEX(t)) throw \"not ASN.1 hex string\";\n if (\"06092a864886f70d010101\" !== e.getTLVbyList(t, 0, [0, 0])) throw \"not PKCS8 RSA public key\";\n var r = e.getTLVbyList(t, 0, [1, 0]);\n this.readPKCS5PubKeyHex(r);\n }, qe.prototype.readCertPubKeyHex = function (t, e) {\n var r, n;\n (r = new sn()).readCertHex(t), n = r.getPublicKeyHex(), this.readPKCS8PubKeyHex(n);\n };\n var en = new RegExp(\"\");\n\n function rn(t, e) {\n for (var r = \"\", n = e / 4 - t.length, i = 0; i < n; i++) {\n r += \"0\";\n }\n\n return r + t;\n }\n\n function nn(t, e, r) {\n for (var n = \"\", i = 0; n.length < e;) {\n n += Or(r(jr(t + String.fromCharCode.apply(String, [(4278190080 & i) >> 24, (16711680 & i) >> 16, (65280 & i) >> 8, 255 & i])))), i += 1;\n }\n\n return n;\n }\n\n function on(t) {\n for (var e in Er.crypto.Util.DIGESTINFOHEAD) {\n var r = Er.crypto.Util.DIGESTINFOHEAD[e],\n n = r.length;\n if (t.substring(0, n) == r) return [e, t.substring(n)];\n }\n\n return [];\n }\n\n function sn() {\n var t = Ar,\n e = t.getChildIdx,\n r = t.getV,\n n = t.getTLV,\n i = t.getVbyList,\n o = t.getTLVbyList,\n s = t.getIdxbyList,\n a = t.getVidx,\n u = t.oidname,\n c = sn,\n h = qr;\n this.hex = null, this.version = 0, this.foffset = 0, this.aExtInfo = null, this.getVersion = function () {\n return null === this.hex || 0 !== this.version ? this.version : \"a003020102\" !== o(this.hex, 0, [0, 0]) ? (this.version = 1, this.foffset = -1, 1) : (this.version = 3, 3);\n }, this.getSerialNumberHex = function () {\n return i(this.hex, 0, [0, 1 + this.foffset], \"02\");\n }, this.getSignatureAlgorithmField = function () {\n return u(i(this.hex, 0, [0, 2 + this.foffset, 0], \"06\"));\n }, this.getIssuerHex = function () {\n return o(this.hex, 0, [0, 3 + this.foffset], \"30\");\n }, this.getIssuerString = function () {\n return c.hex2dn(this.getIssuerHex());\n }, this.getSubjectHex = function () {\n return o(this.hex, 0, [0, 5 + this.foffset], \"30\");\n }, this.getSubjectString = function () {\n return c.hex2dn(this.getSubjectHex());\n }, this.getNotBefore = function () {\n var t = i(this.hex, 0, [0, 4 + this.foffset, 0]);\n return t = t.replace(/(..)/g, \"%$1\"), t = decodeURIComponent(t);\n }, this.getNotAfter = function () {\n var t = i(this.hex, 0, [0, 4 + this.foffset, 1]);\n return t = t.replace(/(..)/g, \"%$1\"), t = decodeURIComponent(t);\n }, this.getPublicKeyHex = function () {\n return t.getTLVbyList(this.hex, 0, [0, 6 + this.foffset], \"30\");\n }, this.getPublicKeyIdx = function () {\n return s(this.hex, 0, [0, 6 + this.foffset], \"30\");\n }, this.getPublicKeyContentIdx = function () {\n var t = this.getPublicKeyIdx();\n return s(this.hex, t, [1, 0], \"30\");\n }, this.getPublicKey = function () {\n return tn.getKey(this.getPublicKeyHex(), null, \"pkcs8pub\");\n }, this.getSignatureAlgorithmName = function () {\n return u(i(this.hex, 0, [1, 0], \"06\"));\n }, this.getSignatureValueHex = function () {\n return i(this.hex, 0, [2], \"03\", !0);\n }, this.verifySignature = function (t) {\n var e = this.getSignatureAlgorithmName(),\n r = this.getSignatureValueHex(),\n n = o(this.hex, 0, [0], \"30\"),\n i = new Er.crypto.Signature({\n alg: e\n });\n return i.init(t), i.updateHex(n), i.verify(r);\n }, this.parseExt = function () {\n if (3 !== this.version) return -1;\n var r = s(this.hex, 0, [0, 7, 0], \"30\"),\n n = e(this.hex, r);\n this.aExtInfo = new Array();\n\n for (var o = 0; o < n.length; o++) {\n var u = {\n critical: !1\n },\n c = 0;\n 3 === e(this.hex, n[o]).length && (u.critical = !0, c = 1), u.oid = t.hextooidstr(i(this.hex, n[o], [0], \"06\"));\n var h = s(this.hex, n[o], [1 + c]);\n u.vidx = a(this.hex, h), this.aExtInfo.push(u);\n }\n }, this.getExtInfo = function (t) {\n var e = this.aExtInfo,\n r = t;\n if (t.match(/^[0-9.]+$/) || (r = Er.asn1.x509.OID.name2oid(t)), \"\" !== r) for (var n = 0; n < e.length; n++) {\n if (e[n].oid === r) return e[n];\n }\n }, this.getExtBasicConstraints = function () {\n var t = this.getExtInfo(\"basicConstraints\");\n if (void 0 === t) return t;\n var e = r(this.hex, t.vidx);\n if (\"\" === e) return {};\n if (\"0101ff\" === e) return {\n cA: !0\n };\n\n if (\"0101ff02\" === e.substr(0, 8)) {\n var n = r(e, 6);\n return {\n cA: !0,\n pathLen: parseInt(n, 16)\n };\n }\n\n throw \"basicConstraints parse error\";\n }, this.getExtKeyUsageBin = function () {\n var t = this.getExtInfo(\"keyUsage\");\n if (void 0 === t) return \"\";\n var e = r(this.hex, t.vidx);\n if (e.length % 2 != 0 || e.length <= 2) throw \"malformed key usage value\";\n var n = parseInt(e.substr(0, 2)),\n i = parseInt(e.substr(2), 16).toString(2);\n return i.substr(0, i.length - n);\n }, this.getExtKeyUsageString = function () {\n for (var t = this.getExtKeyUsageBin(), e = new Array(), r = 0; r < t.length; r++) {\n \"1\" == t.substr(r, 1) && e.push(sn.KEYUSAGE_NAME[r]);\n }\n\n return e.join(\",\");\n }, this.getExtSubjectKeyIdentifier = function () {\n var t = this.getExtInfo(\"subjectKeyIdentifier\");\n return void 0 === t ? t : r(this.hex, t.vidx);\n }, this.getExtAuthorityKeyIdentifier = function () {\n var t = this.getExtInfo(\"authorityKeyIdentifier\");\n if (void 0 === t) return t;\n\n for (var i = {}, o = n(this.hex, t.vidx), s = e(o, 0), a = 0; a < s.length; a++) {\n \"80\" === o.substr(s[a], 2) && (i.kid = r(o, s[a]));\n }\n\n return i;\n }, this.getExtExtKeyUsageName = function () {\n var t = this.getExtInfo(\"extKeyUsage\");\n if (void 0 === t) return t;\n var i = new Array(),\n o = n(this.hex, t.vidx);\n if (\"\" === o) return i;\n\n for (var s = e(o, 0), a = 0; a < s.length; a++) {\n i.push(u(r(o, s[a])));\n }\n\n return i;\n }, this.getExtSubjectAltName = function () {\n for (var t = this.getExtSubjectAltName2(), e = new Array(), r = 0; r < t.length; r++) {\n \"DNS\" === t[r][0] && e.push(t[r][1]);\n }\n\n return e;\n }, this.getExtSubjectAltName2 = function () {\n var t,\n i,\n o,\n s = this.getExtInfo(\"subjectAltName\");\n if (void 0 === s) return s;\n\n for (var a = new Array(), u = n(this.hex, s.vidx), c = e(u, 0), h = 0; h < c.length; h++) {\n o = u.substr(c[h], 2), t = r(u, c[h]), \"81\" === o && (i = Nr(t), a.push([\"MAIL\", i])), \"82\" === o && (i = Nr(t), a.push([\"DNS\", i])), \"84\" === o && (i = sn.hex2dn(t, 0), a.push([\"DN\", i])), \"86\" === o && (i = Nr(t), a.push([\"URI\", i])), \"87\" === o && (i = Qr(t), a.push([\"IP\", i]));\n }\n\n return a;\n }, this.getExtCRLDistributionPointsURI = function () {\n var t = this.getExtInfo(\"cRLDistributionPoints\");\n if (void 0 === t) return t;\n\n for (var r = new Array(), n = e(this.hex, t.vidx), o = 0; o < n.length; o++) {\n try {\n var s = Nr(i(this.hex, n[o], [0, 0, 0], \"86\"));\n r.push(s);\n } catch (t) {}\n }\n\n return r;\n }, this.getExtAIAInfo = function () {\n var t = this.getExtInfo(\"authorityInfoAccess\");\n if (void 0 === t) return t;\n\n for (var r = {\n ocsp: [],\n caissuer: []\n }, n = e(this.hex, t.vidx), o = 0; o < n.length; o++) {\n var s = i(this.hex, n[o], [0], \"06\"),\n a = i(this.hex, n[o], [1], \"86\");\n \"2b06010505073001\" === s && r.ocsp.push(Nr(a)), \"2b06010505073002\" === s && r.caissuer.push(Nr(a));\n }\n\n return r;\n }, this.getExtCertificatePolicies = function () {\n var t = this.getExtInfo(\"certificatePolicies\");\n if (void 0 === t) return t;\n\n for (var o = n(this.hex, t.vidx), s = [], a = e(o, 0), c = 0; c < a.length; c++) {\n var h = {},\n l = e(o, a[c]);\n if (h.id = u(r(o, l[0])), 2 === l.length) for (var f = e(o, l[1]), d = 0; d < f.length; d++) {\n var g = i(o, f[d], [0], \"06\");\n \"2b06010505070201\" === g ? h.cps = Nr(i(o, f[d], [1])) : \"2b06010505070202\" === g && (h.unotice = Nr(i(o, f[d], [1, 0])));\n }\n s.push(h);\n }\n\n return s;\n }, this.readCertPEM = function (t) {\n this.readCertHex(h(t));\n }, this.readCertHex = function (t) {\n this.hex = t, this.getVersion();\n\n try {\n s(this.hex, 0, [0, 7], \"a3\"), this.parseExt();\n } catch (t) {}\n }, this.getInfo = function () {\n var t, e, r;\n\n if (t = \"Basic Fields\\n\", t += \" serial number: \" + this.getSerialNumberHex() + \"\\n\", t += \" signature algorithm: \" + this.getSignatureAlgorithmField() + \"\\n\", t += \" issuer: \" + this.getIssuerString() + \"\\n\", t += \" notBefore: \" + this.getNotBefore() + \"\\n\", t += \" notAfter: \" + this.getNotAfter() + \"\\n\", t += \" subject: \" + this.getSubjectString() + \"\\n\", t += \" subject public key info: \\n\", t += \" key algorithm: \" + (e = this.getPublicKey()).type + \"\\n\", \"RSA\" === e.type && (t += \" n=\" + Zr(e.n.toString(16)).substr(0, 16) + \"...\\n\", t += \" e=\" + Zr(e.e.toString(16)) + \"\\n\"), void 0 !== (r = this.aExtInfo) && null !== r) {\n t += \"X509v3 Extensions:\\n\";\n\n for (var n = 0; n < r.length; n++) {\n var i = r[n],\n o = Er.asn1.x509.OID.oid2name(i.oid);\n \"\" === o && (o = i.oid);\n var s = \"\";\n\n if (!0 === i.critical && (s = \"CRITICAL\"), t += \" \" + o + \" \" + s + \":\\n\", \"basicConstraints\" === o) {\n var a = this.getExtBasicConstraints();\n void 0 === a.cA ? t += \" {}\\n\" : (t += \" cA=true\", void 0 !== a.pathLen && (t += \", pathLen=\" + a.pathLen), t += \"\\n\");\n } else if (\"keyUsage\" === o) t += \" \" + this.getExtKeyUsageString() + \"\\n\";else if (\"subjectKeyIdentifier\" === o) t += \" \" + this.getExtSubjectKeyIdentifier() + \"\\n\";else if (\"authorityKeyIdentifier\" === o) {\n var u = this.getExtAuthorityKeyIdentifier();\n void 0 !== u.kid && (t += \" kid=\" + u.kid + \"\\n\");\n } else {\n if (\"extKeyUsage\" === o) t += \" \" + this.getExtExtKeyUsageName().join(\", \") + \"\\n\";else if (\"subjectAltName\" === o) t += \" \" + this.getExtSubjectAltName2() + \"\\n\";else if (\"cRLDistributionPoints\" === o) t += \" \" + this.getExtCRLDistributionPointsURI() + \"\\n\";else if (\"authorityInfoAccess\" === o) {\n var c = this.getExtAIAInfo();\n void 0 !== c.ocsp && (t += \" ocsp: \" + c.ocsp.join(\",\") + \"\\n\"), void 0 !== c.caissuer && (t += \" caissuer: \" + c.caissuer.join(\",\") + \"\\n\");\n } else if (\"certificatePolicies\" === o) for (var h = this.getExtCertificatePolicies(), l = 0; l < h.length; l++) {\n void 0 !== h[l].id && (t += \" policy oid: \" + h[l].id + \"\\n\"), void 0 !== h[l].cps && (t += \" cps: \" + h[l].cps + \"\\n\");\n }\n }\n }\n }\n\n return t += \"signature algorithm: \" + this.getSignatureAlgorithmName() + \"\\n\", t += \"signature: \" + this.getSignatureValueHex().substr(0, 16) + \"...\\n\";\n };\n }\n\n en.compile(\"[^0-9a-f]\", \"gi\"), qe.prototype.sign = function (t, e) {\n var r = function t(r) {\n return Er.crypto.Util.hashString(r, e);\n }(t);\n\n return this.signWithMessageHash(r, e);\n }, qe.prototype.signWithMessageHash = function (t, e) {\n var r = Ke(Er.crypto.Util.getPaddedDigestInfoHex(t, e, this.n.bitLength()), 16);\n return rn(this.doPrivate(r).toString(16), this.n.bitLength());\n }, qe.prototype.signPSS = function (t, e, r) {\n var n = function t(r) {\n return Er.crypto.Util.hashHex(r, e);\n }(jr(t));\n\n return void 0 === r && (r = -1), this.signWithMessageHashPSS(n, e, r);\n }, qe.prototype.signWithMessageHashPSS = function (t, e, r) {\n var n,\n i = Or(t),\n o = i.length,\n s = this.n.bitLength() - 1,\n a = Math.ceil(s / 8),\n u = function t(r) {\n return Er.crypto.Util.hashHex(r, e);\n };\n\n if (-1 === r || void 0 === r) r = o;else if (-2 === r) r = a - o - 2;else if (r < -2) throw \"invalid salt length\";\n if (a < o + r + 2) throw \"data too long\";\n var c = \"\";\n r > 0 && (c = new Array(r), new Me().nextBytes(c), c = String.fromCharCode.apply(String, c));\n var h = Or(u(jr(\"\\0\\0\\0\\0\\0\\0\\0\\0\" + i + c))),\n l = [];\n\n for (n = 0; n < a - r - o - 2; n += 1) {\n l[n] = 0;\n }\n\n var f = String.fromCharCode.apply(String, l) + \"\u0001\" + c,\n d = nn(h, f.length, u),\n g = [];\n\n for (n = 0; n < f.length; n += 1) {\n g[n] = f.charCodeAt(n) ^ d.charCodeAt(n);\n }\n\n var p = 65280 >> 8 * a - s & 255;\n\n for (g[0] &= ~p, n = 0; n < o; n++) {\n g.push(h.charCodeAt(n));\n }\n\n return g.push(188), rn(this.doPrivate(new E(g)).toString(16), this.n.bitLength());\n }, qe.prototype.verify = function (t, e) {\n var r = Ke(e = (e = e.replace(en, \"\")).replace(/[ \\n]+/g, \"\"), 16);\n if (r.bitLength() > this.n.bitLength()) return 0;\n var n = on(this.doPublic(r).toString(16).replace(/^1f+00/, \"\"));\n if (0 == n.length) return !1;\n var i = n[0];\n return n[1] == function t(e) {\n return Er.crypto.Util.hashString(e, i);\n }(t);\n }, qe.prototype.verifyWithMessageHash = function (t, e) {\n var r = Ke(e = (e = e.replace(en, \"\")).replace(/[ \\n]+/g, \"\"), 16);\n if (r.bitLength() > this.n.bitLength()) return 0;\n var n = on(this.doPublic(r).toString(16).replace(/^1f+00/, \"\"));\n if (0 == n.length) return !1;\n n[0];\n return n[1] == t;\n }, qe.prototype.verifyPSS = function (t, e, r, n) {\n var i = function t(e) {\n return Er.crypto.Util.hashHex(e, r);\n }(jr(t));\n\n return void 0 === n && (n = -1), this.verifyWithMessageHashPSS(i, e, r, n);\n }, qe.prototype.verifyWithMessageHashPSS = function (t, e, r, n) {\n var i = new E(e, 16);\n if (i.bitLength() > this.n.bitLength()) return !1;\n\n var o,\n s = function t(e) {\n return Er.crypto.Util.hashHex(e, r);\n },\n a = Or(t),\n u = a.length,\n c = this.n.bitLength() - 1,\n h = Math.ceil(c / 8);\n\n if (-1 === n || void 0 === n) n = u;else if (-2 === n) n = h - u - 2;else if (n < -2) throw \"invalid salt length\";\n if (h < u + n + 2) throw \"data too long\";\n var l = this.doPublic(i).toByteArray();\n\n for (o = 0; o < l.length; o += 1) {\n l[o] &= 255;\n }\n\n for (; l.length < h;) {\n l.unshift(0);\n }\n\n if (188 !== l[h - 1]) throw \"encoded message does not end in 0xbc\";\n var f = (l = String.fromCharCode.apply(String, l)).substr(0, h - u - 1),\n d = l.substr(f.length, u),\n g = 65280 >> 8 * h - c & 255;\n if (0 != (f.charCodeAt(0) & g)) throw \"bits beyond keysize not zero\";\n var p = nn(d, f.length, s),\n v = [];\n\n for (o = 0; o < f.length; o += 1) {\n v[o] = f.charCodeAt(o) ^ p.charCodeAt(o);\n }\n\n v[0] &= ~g;\n var y = h - u - n - 2;\n\n for (o = 0; o < y; o += 1) {\n if (0 !== v[o]) throw \"leftmost octets not zero\";\n }\n\n if (1 !== v[y]) throw \"0x01 marker not found\";\n return d === Or(s(jr(\"\\0\\0\\0\\0\\0\\0\\0\\0\" + a + String.fromCharCode.apply(String, v.slice(-n)))));\n }, qe.SALT_LEN_HLEN = -1, qe.SALT_LEN_MAX = -2, qe.SALT_LEN_RECOVER = -2, sn.hex2dn = function (t, e) {\n if (void 0 === e && (e = 0), \"30\" !== t.substr(e, 2)) throw \"malformed DN\";\n\n for (var r = new Array(), n = Ar.getChildIdx(t, e), i = 0; i < n.length; i++) {\n r.push(sn.hex2rdn(t, n[i]));\n }\n\n return \"/\" + (r = r.map(function (t) {\n return t.replace(\"/\", \"\\\\/\");\n })).join(\"/\");\n }, sn.hex2rdn = function (t, e) {\n if (void 0 === e && (e = 0), \"31\" !== t.substr(e, 2)) throw \"malformed RDN\";\n\n for (var r = new Array(), n = Ar.getChildIdx(t, e), i = 0; i < n.length; i++) {\n r.push(sn.hex2attrTypeValue(t, n[i]));\n }\n\n return (r = r.map(function (t) {\n return t.replace(\"+\", \"\\\\+\");\n })).join(\"+\");\n }, sn.hex2attrTypeValue = function (t, e) {\n var r = Ar,\n n = r.getV;\n if (void 0 === e && (e = 0), \"30\" !== t.substr(e, 2)) throw \"malformed attribute type and value\";\n var i = r.getChildIdx(t, e);\n 2 !== i.length || t.substr(i[0], 2);\n var o = n(t, i[0]),\n s = Er.asn1.ASN1Util.oidHexToInt(o);\n return Er.asn1.x509.OID.oid2atype(s) + \"=\" + Or(n(t, i[1]));\n }, sn.getPublicKeyFromCertHex = function (t) {\n var e = new sn();\n return e.readCertHex(t), e.getPublicKey();\n }, sn.getPublicKeyFromCertPEM = function (t) {\n var e = new sn();\n return e.readCertPEM(t), e.getPublicKey();\n }, sn.getPublicKeyInfoPropOfCertPEM = function (t) {\n var e,\n r,\n n = Ar.getVbyList,\n i = {};\n return i.algparam = null, (e = new sn()).readCertPEM(t), r = e.getPublicKeyHex(), i.keyhex = n(r, 0, [1], \"03\").substr(2), i.algoid = n(r, 0, [0, 0], \"06\"), \"2a8648ce3d0201\" === i.algoid && (i.algparam = n(r, 0, [0, 1], \"06\")), i;\n }, sn.KEYUSAGE_NAME = [\"digitalSignature\", \"nonRepudiation\", \"keyEncipherment\", \"dataEncipherment\", \"keyAgreement\", \"keyCertSign\", \"cRLSign\", \"encipherOnly\", \"decipherOnly\"], void 0 !== Er && Er || (e.KJUR = Er = {}), void 0 !== Er.jws && Er.jws || (Er.jws = {}), Er.jws.JWS = function () {\n var t = Er.jws.JWS.isSafeJSONString;\n\n this.parseJWS = function (e, r) {\n if (void 0 === this.parsedJWS || !r && void 0 === this.parsedJWS.sigvalH) {\n var n = e.match(/^([^.]+)\\.([^.]+)\\.([^.]+)$/);\n if (null == n) throw \"JWS signature is not a form of 'Head.Payload.SigValue'.\";\n var i = n[1],\n o = n[2],\n s = n[3],\n a = i + \".\" + o;\n\n if (this.parsedJWS = {}, this.parsedJWS.headB64U = i, this.parsedJWS.payloadB64U = o, this.parsedJWS.sigvalB64U = s, this.parsedJWS.si = a, !r) {\n var u = Lr(s),\n c = Ke(u, 16);\n this.parsedJWS.sigvalH = u, this.parsedJWS.sigvalBI = c;\n }\n\n var h = kr(i),\n l = kr(o);\n if (this.parsedJWS.headS = h, this.parsedJWS.payloadS = l, !t(h, this.parsedJWS, \"headP\")) throw \"malformed JSON string for JWS Head: \" + h;\n }\n };\n }, Er.jws.JWS.sign = function (t, e, n, i, o) {\n var s,\n a,\n u,\n c = Er,\n h = c.jws.JWS,\n l = h.readSafeJSONString,\n f = h.isSafeJSONString,\n d = c.crypto,\n g = (d.ECDSA, d.Mac),\n p = d.Signature,\n v = JSON;\n if (\"string\" != typeof e && \"object\" != (void 0 === e ? \"undefined\" : r(e))) throw \"spHeader must be JSON string or object: \" + e;\n\n if (\"object\" == (void 0 === e ? \"undefined\" : r(e)) && (a = e, s = v.stringify(a)), \"string\" == typeof e) {\n if (!f(s = e)) throw \"JWS Head is not safe JSON string: \" + s;\n a = l(s);\n }\n\n if (u = n, \"object\" == (void 0 === n ? \"undefined\" : r(n)) && (u = v.stringify(n)), \"\" != t && null != t || void 0 === a.alg || (t = a.alg), \"\" != t && null != t && void 0 === a.alg && (a.alg = t, s = v.stringify(a)), t !== a.alg) throw \"alg and sHeader.alg doesn't match: \" + t + \"!=\" + a.alg;\n var y = null;\n if (void 0 === h.jwsalg2sigalg[t]) throw \"unsupported alg name: \" + t;\n y = h.jwsalg2sigalg[t];\n var m = xr(s) + \".\" + xr(u),\n _ = \"\";\n\n if (\"Hmac\" == y.substr(0, 4)) {\n if (void 0 === i) throw \"mac key shall be specified for HS* alg\";\n var S = new g({\n alg: y,\n prov: \"cryptojs\",\n pass: i\n });\n S.updateString(m), _ = S.doFinal();\n } else {\n var F;\n if (-1 != y.indexOf(\"withECDSA\")) (F = new p({\n alg: y\n })).init(i, o), F.updateString(m), hASN1Sig = F.sign(), _ = Er.crypto.ECDSA.asn1SigToConcatSig(hASN1Sig);else if (\"none\" != y) (F = new p({\n alg: y\n })).init(i, o), F.updateString(m), _ = F.sign();\n }\n\n return m + \".\" + Ur(_);\n }, Er.jws.JWS.verify = function (t, e, n) {\n var i,\n o = Er,\n s = o.jws.JWS,\n a = s.readSafeJSONString,\n u = o.crypto,\n c = u.ECDSA,\n h = u.Mac,\n l = u.Signature;\n void 0 !== r(qe) && (i = qe);\n var f = t.split(\".\");\n if (3 !== f.length) return !1;\n var d = f[0] + \".\" + f[1],\n g = Lr(f[2]),\n p = a(kr(f[0])),\n v = null,\n y = null;\n if (void 0 === p.alg) throw \"algorithm not specified in header\";\n if ((y = (v = p.alg).substr(0, 2), null != n && \"[object Array]\" === Object.prototype.toString.call(n) && n.length > 0) && -1 == (\":\" + n.join(\":\") + \":\").indexOf(\":\" + v + \":\")) throw \"algorithm '\" + v + \"' not accepted in the list\";\n if (\"none\" != v && null === e) throw \"key shall be specified to verify.\";\n if (\"string\" == typeof e && -1 != e.indexOf(\"-----BEGIN \") && (e = tn.getKey(e)), !(\"RS\" != y && \"PS\" != y || e instanceof i)) throw \"key shall be a RSAKey obj for RS* and PS* algs\";\n if (\"ES\" == y && !(e instanceof c)) throw \"key shall be a ECDSA obj for ES* algs\";\n var m = null;\n if (void 0 === s.jwsalg2sigalg[p.alg]) throw \"unsupported alg name: \" + v;\n if (\"none\" == (m = s.jwsalg2sigalg[v])) throw \"not supported\";\n\n if (\"Hmac\" == m.substr(0, 4)) {\n if (void 0 === e) throw \"hexadecimal key shall be specified for HMAC\";\n\n var _ = new h({\n alg: m,\n pass: e\n });\n\n return _.updateString(d), g == _.doFinal();\n }\n\n if (-1 != m.indexOf(\"withECDSA\")) {\n var S,\n F = null;\n\n try {\n F = c.concatSigToASN1Sig(g);\n } catch (t) {\n return !1;\n }\n\n return (S = new l({\n alg: m\n })).init(e), S.updateString(d), S.verify(F);\n }\n\n return (S = new l({\n alg: m\n })).init(e), S.updateString(d), S.verify(g);\n }, Er.jws.JWS.parse = function (t) {\n var e,\n r,\n n,\n i = t.split(\".\"),\n o = {};\n if (2 != i.length && 3 != i.length) throw \"malformed sJWS: wrong number of '.' splitted elements\";\n return e = i[0], r = i[1], 3 == i.length && (n = i[2]), o.headerObj = Er.jws.JWS.readSafeJSONString(kr(e)), o.payloadObj = Er.jws.JWS.readSafeJSONString(kr(r)), o.headerPP = JSON.stringify(o.headerObj, null, \" \"), null == o.payloadObj ? o.payloadPP = kr(r) : o.payloadPP = JSON.stringify(o.payloadObj, null, \" \"), void 0 !== n && (o.sigHex = Lr(n)), o;\n }, Er.jws.JWS.verifyJWT = function (t, e, n) {\n var i = Er.jws,\n o = i.JWS,\n s = o.readSafeJSONString,\n a = o.inArray,\n u = o.includedArray,\n c = t.split(\".\"),\n h = c[0],\n l = c[1],\n f = (Lr(c[2]), s(kr(h))),\n d = s(kr(l));\n if (void 0 === f.alg) return !1;\n if (void 0 === n.alg) throw \"acceptField.alg shall be specified\";\n if (!a(f.alg, n.alg)) return !1;\n if (void 0 !== d.iss && \"object\" === r(n.iss) && !a(d.iss, n.iss)) return !1;\n if (void 0 !== d.sub && \"object\" === r(n.sub) && !a(d.sub, n.sub)) return !1;\n if (void 0 !== d.aud && \"object\" === r(n.aud)) if (\"string\" == typeof d.aud) {\n if (!a(d.aud, n.aud)) return !1;\n } else if (\"object\" == r(d.aud) && !u(d.aud, n.aud)) return !1;\n var g = i.IntDate.getNow();\n return void 0 !== n.verifyAt && \"number\" == typeof n.verifyAt && (g = n.verifyAt), void 0 !== n.gracePeriod && \"number\" == typeof n.gracePeriod || (n.gracePeriod = 0), !(void 0 !== d.exp && \"number\" == typeof d.exp && d.exp + n.gracePeriod < g) && !(void 0 !== d.nbf && \"number\" == typeof d.nbf && g < d.nbf - n.gracePeriod) && !(void 0 !== d.iat && \"number\" == typeof d.iat && g < d.iat - n.gracePeriod) && (void 0 === d.jti || void 0 === n.jti || d.jti === n.jti) && !!o.verify(t, e, n.alg);\n }, Er.jws.JWS.includedArray = function (t, e) {\n var n = Er.jws.JWS.inArray;\n if (null === t) return !1;\n if (\"object\" !== (void 0 === t ? \"undefined\" : r(t))) return !1;\n if (\"number\" != typeof t.length) return !1;\n\n for (var i = 0; i < t.length; i++) {\n if (!n(t[i], e)) return !1;\n }\n\n return !0;\n }, Er.jws.JWS.inArray = function (t, e) {\n if (null === e) return !1;\n if (\"object\" !== (void 0 === e ? \"undefined\" : r(e))) return !1;\n if (\"number\" != typeof e.length) return !1;\n\n for (var n = 0; n < e.length; n++) {\n if (e[n] == t) return !0;\n }\n\n return !1;\n }, Er.jws.JWS.jwsalg2sigalg = {\n HS256: \"HmacSHA256\",\n HS384: \"HmacSHA384\",\n HS512: \"HmacSHA512\",\n RS256: \"SHA256withRSA\",\n RS384: \"SHA384withRSA\",\n RS512: \"SHA512withRSA\",\n ES256: \"SHA256withECDSA\",\n ES384: \"SHA384withECDSA\",\n PS256: \"SHA256withRSAandMGF1\",\n PS384: \"SHA384withRSAandMGF1\",\n PS512: \"SHA512withRSAandMGF1\",\n none: \"none\"\n }, Er.jws.JWS.isSafeJSONString = function (t, e, n) {\n var i = null;\n\n try {\n return \"object\" != (void 0 === (i = wr(t)) ? \"undefined\" : r(i)) ? 0 : i.constructor === Array ? 0 : (e && (e[n] = i), 1);\n } catch (t) {\n return 0;\n }\n }, Er.jws.JWS.readSafeJSONString = function (t) {\n var e = null;\n\n try {\n return \"object\" != (void 0 === (e = wr(t)) ? \"undefined\" : r(e)) ? null : e.constructor === Array ? null : e;\n } catch (t) {\n return null;\n }\n }, Er.jws.JWS.getEncodedSignatureValueFromJWS = function (t) {\n var e = t.match(/^[^.]+\\.[^.]+\\.([^.]+)$/);\n if (null == e) throw \"JWS signature is not a form of 'Head.Payload.SigValue'.\";\n return e[1];\n }, Er.jws.JWS.getJWKthumbprint = function (t) {\n if (\"RSA\" !== t.kty && \"EC\" !== t.kty && \"oct\" !== t.kty) throw \"unsupported algorithm for JWK Thumprint\";\n var e = \"{\";\n\n if (\"RSA\" === t.kty) {\n if (\"string\" != typeof t.n || \"string\" != typeof t.e) throw \"wrong n and e value for RSA key\";\n e += '\"e\":\"' + t.e + '\",', e += '\"kty\":\"' + t.kty + '\",', e += '\"n\":\"' + t.n + '\"}';\n } else if (\"EC\" === t.kty) {\n if (\"string\" != typeof t.crv || \"string\" != typeof t.x || \"string\" != typeof t.y) throw \"wrong crv, x and y value for EC key\";\n e += '\"crv\":\"' + t.crv + '\",', e += '\"kty\":\"' + t.kty + '\",', e += '\"x\":\"' + t.x + '\",', e += '\"y\":\"' + t.y + '\"}';\n } else if (\"oct\" === t.kty) {\n if (\"string\" != typeof t.k) throw \"wrong k value for oct(symmetric) key\";\n e += '\"kty\":\"' + t.kty + '\",', e += '\"k\":\"' + t.k + '\"}';\n }\n\n var r = jr(e);\n return Ur(Er.crypto.Util.hashHex(r, \"sha256\"));\n }, Er.jws.IntDate = {}, Er.jws.IntDate.get = function (t) {\n var e = Er.jws.IntDate,\n r = e.getNow,\n n = e.getZulu;\n if (\"now\" == t) return r();\n if (\"now + 1hour\" == t) return r() + 3600;\n if (\"now + 1day\" == t) return r() + 86400;\n if (\"now + 1month\" == t) return r() + 2592e3;\n if (\"now + 1year\" == t) return r() + 31536e3;\n if (t.match(/Z$/)) return n(t);\n if (t.match(/^[0-9]+$/)) return parseInt(t);\n throw \"unsupported format: \" + t;\n }, Er.jws.IntDate.getZulu = function (t) {\n return Wr(t);\n }, Er.jws.IntDate.getNow = function () {\n return ~~(new Date() / 1e3);\n }, Er.jws.IntDate.intDate2UTCString = function (t) {\n return new Date(1e3 * t).toUTCString();\n }, Er.jws.IntDate.intDate2Zulu = function (t) {\n var e = new Date(1e3 * t);\n return (\"0000\" + e.getUTCFullYear()).slice(-4) + (\"00\" + (e.getUTCMonth() + 1)).slice(-2) + (\"00\" + e.getUTCDate()).slice(-2) + (\"00\" + e.getUTCHours()).slice(-2) + (\"00\" + e.getUTCMinutes()).slice(-2) + (\"00\" + e.getUTCSeconds()).slice(-2) + \"Z\";\n }, e.SecureRandom = Me, e.rng_seed_time = Le, e.BigInteger = E, e.RSAKey = qe;\n var an = Er.crypto.EDSA;\n e.EDSA = an;\n var un = Er.crypto.DSA;\n e.DSA = un;\n var cn = Er.crypto.Signature;\n e.Signature = cn;\n var hn = Er.crypto.MessageDigest;\n e.MessageDigest = hn;\n var ln = Er.crypto.Mac;\n e.Mac = ln;\n var fn = Er.crypto.Cipher;\n e.Cipher = fn, e.KEYUTIL = tn, e.ASN1HEX = Ar, e.X509 = sn, e.CryptoJS = y, e.b64tohex = b, e.b64toBA = w, e.stoBA = Pr, e.BAtos = Cr, e.BAtohex = Tr, e.stohex = Rr, e.stob64 = function dn(t) {\n return F(Rr(t));\n }, e.stob64u = function gn(t) {\n return Ir(F(Rr(t)));\n }, e.b64utos = function pn(t) {\n return Cr(w(Dr(t)));\n }, e.b64tob64u = Ir, e.b64utob64 = Dr, e.hex2b64 = F, e.hextob64u = Ur, e.b64utohex = Lr, e.utf8tob64u = xr, e.b64utoutf8 = kr, e.utf8tob64 = function vn(t) {\n return F(zr($r(t)));\n }, e.b64toutf8 = function yn(t) {\n return decodeURIComponent(Yr(b(t)));\n }, e.utf8tohex = Br, e.hextoutf8 = Nr, e.hextorstr = Or, e.rstrtohex = jr, e.hextob64 = Hr, e.hextob64nl = Mr, e.b64nltohex = Kr, e.hextopem = Vr, e.pemtohex = qr, e.hextoArrayBuffer = function mn(t) {\n if (t.length % 2 != 0) throw \"input is not even length\";\n if (null == t.match(/^[0-9A-Fa-f]+$/)) throw \"input is not hexadecimal\";\n\n for (var e = new ArrayBuffer(t.length / 2), r = new DataView(e), n = 0; n < t.length / 2; n++) {\n r.setUint8(n, parseInt(t.substr(2 * n, 2), 16));\n }\n\n return e;\n }, e.ArrayBuffertohex = function _n(t) {\n for (var e = \"\", r = new DataView(t), n = 0; n < t.byteLength; n++) {\n e += (\"00\" + r.getUint8(n).toString(16)).slice(-2);\n }\n\n return e;\n }, e.zulutomsec = Jr, e.zulutosec = Wr, e.zulutodate = function Sn(t) {\n return new Date(Jr(t));\n }, e.datetozulu = function Fn(t, e, r) {\n var n,\n i = t.getUTCFullYear();\n\n if (e) {\n if (i < 1950 || 2049 < i) throw \"not proper year for UTCTime: \" + i;\n n = (\"\" + i).slice(-2);\n } else n = (\"000\" + i).slice(-4);\n\n if (n += (\"0\" + (t.getUTCMonth() + 1)).slice(-2), n += (\"0\" + t.getUTCDate()).slice(-2), n += (\"0\" + t.getUTCHours()).slice(-2), n += (\"0\" + t.getUTCMinutes()).slice(-2), n += (\"0\" + t.getUTCSeconds()).slice(-2), r) {\n var o = t.getUTCMilliseconds();\n 0 !== o && (n += \".\" + (o = (o = (\"00\" + o).slice(-3)).replace(/0+$/g, \"\")));\n }\n\n return n += \"Z\";\n }, e.uricmptohex = zr, e.hextouricmp = Yr, e.ipv6tohex = Gr, e.hextoipv6 = Xr, e.hextoip = Qr, e.iptohex = function bn(t) {\n var e = \"malformed IP address\";\n\n if (!(t = t.toLowerCase(t)).match(/^[0-9.]+$/)) {\n if (t.match(/^[0-9a-f:]+$/) && -1 !== t.indexOf(\":\")) return Gr(t);\n throw e;\n }\n\n var r = t.split(\".\");\n if (4 !== r.length) throw e;\n var n = \"\";\n\n try {\n for (var i = 0; i < 4; i++) {\n n += (\"0\" + parseInt(r[i]).toString(16)).slice(-2);\n }\n\n return n;\n } catch (t) {\n throw e;\n }\n }, e.encodeURIComponentAll = $r, e.newline_toUnix = function wn(t) {\n return t = t.replace(/\\r\\n/gm, \"\\n\");\n }, e.newline_toDos = function En(t) {\n return t = (t = t.replace(/\\r\\n/gm, \"\\n\")).replace(/\\n/gm, \"\\r\\n\");\n }, e.hextoposhex = Zr, e.intarystrtohex = function xn(t) {\n t = (t = (t = t.replace(/^\\s*\\[\\s*/, \"\")).replace(/\\s*\\]\\s*$/, \"\")).replace(/\\s*/g, \"\");\n\n try {\n return t.split(/,/).map(function (t, e, r) {\n var n = parseInt(t);\n if (n < 0 || 255 < n) throw \"integer not in range 0-255\";\n return (\"00\" + n.toString(16)).slice(-2);\n }).join(\"\");\n } catch (t) {\n throw \"malformed integer array string: \" + t;\n }\n }, e.strdiffidx = function t(e, r) {\n var n = e.length;\n e.length > r.length && (n = r.length);\n\n for (var i = 0; i < n; i++) {\n if (e.charCodeAt(i) != r.charCodeAt(i)) return i;\n }\n\n return e.length != r.length ? n : -1;\n }, e.KJUR = Er;\n var kn = Er.crypto;\n e.crypto = kn;\n var An = Er.asn1;\n e.asn1 = An;\n var Pn = Er.jws;\n e.jws = Pn;\n var Cn = Er.lang;\n e.lang = Cn;\n }).call(this, r(27).Buffer);\n }, function (t, e, r) {\n \"use strict\";\n\n (function (t) {\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n var n = r(29),\n i = r(30),\n o = r(31);\n\n function s() {\n return u.TYPED_ARRAY_SUPPORT ? 2147483647 : 1073741823;\n }\n\n function a(t, e) {\n if (s() < e) throw new RangeError(\"Invalid typed array length\");\n return u.TYPED_ARRAY_SUPPORT ? (t = new Uint8Array(e)).__proto__ = u.prototype : (null === t && (t = new u(e)), t.length = e), t;\n }\n\n function u(t, e, r) {\n if (!(u.TYPED_ARRAY_SUPPORT || this instanceof u)) return new u(t, e, r);\n\n if (\"number\" == typeof t) {\n if (\"string\" == typeof e) throw new Error(\"If encoding is specified then the first argument must be a string\");\n return l(this, t);\n }\n\n return c(this, t, e, r);\n }\n\n function c(t, e, r, n) {\n if (\"number\" == typeof e) throw new TypeError('\"value\" argument must not be a number');\n return \"undefined\" != typeof ArrayBuffer && e instanceof ArrayBuffer ? function i(t, e, r, n) {\n if (e.byteLength, r < 0 || e.byteLength < r) throw new RangeError(\"'offset' is out of bounds\");\n if (e.byteLength < r + (n || 0)) throw new RangeError(\"'length' is out of bounds\");\n e = void 0 === r && void 0 === n ? new Uint8Array(e) : void 0 === n ? new Uint8Array(e, r) : new Uint8Array(e, r, n);\n u.TYPED_ARRAY_SUPPORT ? (t = e).__proto__ = u.prototype : t = f(t, e);\n return t;\n }(t, e, r, n) : \"string\" == typeof e ? function s(t, e, r) {\n \"string\" == typeof r && \"\" !== r || (r = \"utf8\");\n if (!u.isEncoding(r)) throw new TypeError('\"encoding\" must be a valid string encoding');\n var n = 0 | g(e, r),\n i = (t = a(t, n)).write(e, r);\n i !== n && (t = t.slice(0, i));\n return t;\n }(t, e, r) : function c(t, e) {\n if (u.isBuffer(e)) {\n var r = 0 | d(e.length);\n return 0 === (t = a(t, r)).length ? t : (e.copy(t, 0, 0, r), t);\n }\n\n if (e) {\n if (\"undefined\" != typeof ArrayBuffer && e.buffer instanceof ArrayBuffer || \"length\" in e) return \"number\" != typeof e.length || function n(t) {\n return t != t;\n }(e.length) ? a(t, 0) : f(t, e);\n if (\"Buffer\" === e.type && o(e.data)) return f(t, e.data);\n }\n\n throw new TypeError(\"First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.\");\n }(t, e);\n }\n\n function h(t) {\n if (\"number\" != typeof t) throw new TypeError('\"size\" argument must be a number');\n if (t < 0) throw new RangeError('\"size\" argument must not be negative');\n }\n\n function l(t, e) {\n if (h(e), t = a(t, e < 0 ? 0 : 0 | d(e)), !u.TYPED_ARRAY_SUPPORT) for (var r = 0; r < e; ++r) {\n t[r] = 0;\n }\n return t;\n }\n\n function f(t, e) {\n var r = e.length < 0 ? 0 : 0 | d(e.length);\n t = a(t, r);\n\n for (var n = 0; n < r; n += 1) {\n t[n] = 255 & e[n];\n }\n\n return t;\n }\n\n function d(t) {\n if (t >= s()) throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + s().toString(16) + \" bytes\");\n return 0 | t;\n }\n\n function g(t, e) {\n if (u.isBuffer(t)) return t.length;\n if (\"undefined\" != typeof ArrayBuffer && \"function\" == typeof ArrayBuffer.isView && (ArrayBuffer.isView(t) || t instanceof ArrayBuffer)) return t.byteLength;\n \"string\" != typeof t && (t = \"\" + t);\n var r = t.length;\n if (0 === r) return 0;\n\n for (var n = !1;;) {\n switch (e) {\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n return r;\n\n case \"utf8\":\n case \"utf-8\":\n case void 0:\n return K(t).length;\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return 2 * r;\n\n case \"hex\":\n return r >>> 1;\n\n case \"base64\":\n return V(t).length;\n\n default:\n if (n) return K(t).length;\n e = (\"\" + e).toLowerCase(), n = !0;\n }\n }\n }\n\n function p(t, e, r) {\n var n = t[e];\n t[e] = t[r], t[r] = n;\n }\n\n function v(t, e, r, n, i) {\n if (0 === t.length) return -1;\n\n if (\"string\" == typeof r ? (n = r, r = 0) : r > 2147483647 ? r = 2147483647 : r < -2147483648 && (r = -2147483648), r = +r, isNaN(r) && (r = i ? 0 : t.length - 1), r < 0 && (r = t.length + r), r >= t.length) {\n if (i) return -1;\n r = t.length - 1;\n } else if (r < 0) {\n if (!i) return -1;\n r = 0;\n }\n\n if (\"string\" == typeof e && (e = u.from(e, n)), u.isBuffer(e)) return 0 === e.length ? -1 : y(t, e, r, n, i);\n if (\"number\" == typeof e) return e &= 255, u.TYPED_ARRAY_SUPPORT && \"function\" == typeof Uint8Array.prototype.indexOf ? i ? Uint8Array.prototype.indexOf.call(t, e, r) : Uint8Array.prototype.lastIndexOf.call(t, e, r) : y(t, [e], r, n, i);\n throw new TypeError(\"val must be string, number or Buffer\");\n }\n\n function y(t, e, r, n, i) {\n var o,\n s = 1,\n a = t.length,\n u = e.length;\n\n if (void 0 !== n && (\"ucs2\" === (n = String(n).toLowerCase()) || \"ucs-2\" === n || \"utf16le\" === n || \"utf-16le\" === n)) {\n if (t.length < 2 || e.length < 2) return -1;\n s = 2, a /= 2, u /= 2, r /= 2;\n }\n\n function c(t, e) {\n return 1 === s ? t[e] : t.readUInt16BE(e * s);\n }\n\n if (i) {\n var h = -1;\n\n for (o = r; o < a; o++) {\n if (c(t, o) === c(e, -1 === h ? 0 : o - h)) {\n if (-1 === h && (h = o), o - h + 1 === u) return h * s;\n } else -1 !== h && (o -= o - h), h = -1;\n }\n } else for (r + u > a && (r = a - u), o = r; o >= 0; o--) {\n for (var l = !0, f = 0; f < u; f++) {\n if (c(t, o + f) !== c(e, f)) {\n l = !1;\n break;\n }\n }\n\n if (l) return o;\n }\n\n return -1;\n }\n\n function m(t, e, r, n) {\n r = Number(r) || 0;\n var i = t.length - r;\n n ? (n = Number(n)) > i && (n = i) : n = i;\n var o = e.length;\n if (o % 2 != 0) throw new TypeError(\"Invalid hex string\");\n n > o / 2 && (n = o / 2);\n\n for (var s = 0; s < n; ++s) {\n var a = parseInt(e.substr(2 * s, 2), 16);\n if (isNaN(a)) return s;\n t[r + s] = a;\n }\n\n return s;\n }\n\n function _(t, e, r, n) {\n return q(K(e, t.length - r), t, r, n);\n }\n\n function S(t, e, r, n) {\n return q(function i(t) {\n for (var e = [], r = 0; r < t.length; ++r) {\n e.push(255 & t.charCodeAt(r));\n }\n\n return e;\n }(e), t, r, n);\n }\n\n function F(t, e, r, n) {\n return S(t, e, r, n);\n }\n\n function b(t, e, r, n) {\n return q(V(e), t, r, n);\n }\n\n function w(t, e, r, n) {\n return q(function i(t, e) {\n for (var r, n, i, o = [], s = 0; s < t.length && !((e -= 2) < 0); ++s) {\n r = t.charCodeAt(s), n = r >> 8, i = r % 256, o.push(i), o.push(n);\n }\n\n return o;\n }(e, t.length - r), t, r, n);\n }\n\n function E(t, e, r) {\n return 0 === e && r === t.length ? n.fromByteArray(t) : n.fromByteArray(t.slice(e, r));\n }\n\n function x(t, e, r) {\n r = Math.min(t.length, r);\n\n for (var n = [], i = e; i < r;) {\n var o,\n s,\n a,\n u,\n c = t[i],\n h = null,\n l = c > 239 ? 4 : c > 223 ? 3 : c > 191 ? 2 : 1;\n if (i + l <= r) switch (l) {\n case 1:\n c < 128 && (h = c);\n break;\n\n case 2:\n 128 == (192 & (o = t[i + 1])) && (u = (31 & c) << 6 | 63 & o) > 127 && (h = u);\n break;\n\n case 3:\n o = t[i + 1], s = t[i + 2], 128 == (192 & o) && 128 == (192 & s) && (u = (15 & c) << 12 | (63 & o) << 6 | 63 & s) > 2047 && (u < 55296 || u > 57343) && (h = u);\n break;\n\n case 4:\n o = t[i + 1], s = t[i + 2], a = t[i + 3], 128 == (192 & o) && 128 == (192 & s) && 128 == (192 & a) && (u = (15 & c) << 18 | (63 & o) << 12 | (63 & s) << 6 | 63 & a) > 65535 && u < 1114112 && (h = u);\n }\n null === h ? (h = 65533, l = 1) : h > 65535 && (h -= 65536, n.push(h >>> 10 & 1023 | 55296), h = 56320 | 1023 & h), n.push(h), i += l;\n }\n\n return function f(t) {\n var e = t.length;\n if (e <= P) return String.fromCharCode.apply(String, t);\n var r = \"\",\n n = 0;\n\n for (; n < e;) {\n r += String.fromCharCode.apply(String, t.slice(n, n += P));\n }\n\n return r;\n }(n);\n }\n\n e.Buffer = u, e.SlowBuffer = function k(t) {\n +t != t && (t = 0);\n return u.alloc(+t);\n }, e.INSPECT_MAX_BYTES = 50, u.TYPED_ARRAY_SUPPORT = void 0 !== t.TYPED_ARRAY_SUPPORT ? t.TYPED_ARRAY_SUPPORT : function A() {\n try {\n var t = new Uint8Array(1);\n return t.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n }, 42 === t.foo() && \"function\" == typeof t.subarray && 0 === t.subarray(1, 1).byteLength;\n } catch (t) {\n return !1;\n }\n }(), e.kMaxLength = s(), u.poolSize = 8192, u._augment = function (t) {\n return t.__proto__ = u.prototype, t;\n }, u.from = function (t, e, r) {\n return c(null, t, e, r);\n }, u.TYPED_ARRAY_SUPPORT && (u.prototype.__proto__ = Uint8Array.prototype, u.__proto__ = Uint8Array, \"undefined\" != typeof Symbol && Symbol.species && u[Symbol.species] === u && Object.defineProperty(u, Symbol.species, {\n value: null,\n configurable: !0\n })), u.alloc = function (t, e, r) {\n return function n(t, e, r, i) {\n return h(e), e <= 0 ? a(t, e) : void 0 !== r ? \"string\" == typeof i ? a(t, e).fill(r, i) : a(t, e).fill(r) : a(t, e);\n }(null, t, e, r);\n }, u.allocUnsafe = function (t) {\n return l(null, t);\n }, u.allocUnsafeSlow = function (t) {\n return l(null, t);\n }, u.isBuffer = function t(e) {\n return !(null == e || !e._isBuffer);\n }, u.compare = function t(e, r) {\n if (!u.isBuffer(e) || !u.isBuffer(r)) throw new TypeError(\"Arguments must be Buffers\");\n if (e === r) return 0;\n\n for (var n = e.length, i = r.length, o = 0, s = Math.min(n, i); o < s; ++o) {\n if (e[o] !== r[o]) {\n n = e[o], i = r[o];\n break;\n }\n }\n\n return n < i ? -1 : i < n ? 1 : 0;\n }, u.isEncoding = function t(e) {\n switch (String(e).toLowerCase()) {\n case \"hex\":\n case \"utf8\":\n case \"utf-8\":\n case \"ascii\":\n case \"latin1\":\n case \"binary\":\n case \"base64\":\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return !0;\n\n default:\n return !1;\n }\n }, u.concat = function t(e, r) {\n if (!o(e)) throw new TypeError('\"list\" argument must be an Array of Buffers');\n if (0 === e.length) return u.alloc(0);\n var n;\n if (void 0 === r) for (r = 0, n = 0; n < e.length; ++n) {\n r += e[n].length;\n }\n var i = u.allocUnsafe(r),\n s = 0;\n\n for (n = 0; n < e.length; ++n) {\n var a = e[n];\n if (!u.isBuffer(a)) throw new TypeError('\"list\" argument must be an Array of Buffers');\n a.copy(i, s), s += a.length;\n }\n\n return i;\n }, u.byteLength = g, u.prototype._isBuffer = !0, u.prototype.swap16 = function t() {\n var e = this.length;\n if (e % 2 != 0) throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n\n for (var r = 0; r < e; r += 2) {\n p(this, r, r + 1);\n }\n\n return this;\n }, u.prototype.swap32 = function t() {\n var e = this.length;\n if (e % 4 != 0) throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n\n for (var r = 0; r < e; r += 4) {\n p(this, r, r + 3), p(this, r + 1, r + 2);\n }\n\n return this;\n }, u.prototype.swap64 = function t() {\n var e = this.length;\n if (e % 8 != 0) throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n\n for (var r = 0; r < e; r += 8) {\n p(this, r, r + 7), p(this, r + 1, r + 6), p(this, r + 2, r + 5), p(this, r + 3, r + 4);\n }\n\n return this;\n }, u.prototype.toString = function t() {\n var e = 0 | this.length;\n return 0 === e ? \"\" : 0 === arguments.length ? x(this, 0, e) : function r(t, e, n) {\n var i = !1;\n if ((void 0 === e || e < 0) && (e = 0), e > this.length) return \"\";\n if ((void 0 === n || n > this.length) && (n = this.length), n <= 0) return \"\";\n if ((n >>>= 0) <= (e >>>= 0)) return \"\";\n\n for (t || (t = \"utf8\");;) {\n switch (t) {\n case \"hex\":\n return R(this, e, n);\n\n case \"utf8\":\n case \"utf-8\":\n return x(this, e, n);\n\n case \"ascii\":\n return C(this, e, n);\n\n case \"latin1\":\n case \"binary\":\n return T(this, e, n);\n\n case \"base64\":\n return E(this, e, n);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return I(this, e, n);\n\n default:\n if (i) throw new TypeError(\"Unknown encoding: \" + t);\n t = (t + \"\").toLowerCase(), i = !0;\n }\n }\n }.apply(this, arguments);\n }, u.prototype.equals = function t(e) {\n if (!u.isBuffer(e)) throw new TypeError(\"Argument must be a Buffer\");\n return this === e || 0 === u.compare(this, e);\n }, u.prototype.inspect = function t() {\n var r = \"\",\n n = e.INSPECT_MAX_BYTES;\n return this.length > 0 && (r = this.toString(\"hex\", 0, n).match(/.{2}/g).join(\" \"), this.length > n && (r += \" ... \")), \"\";\n }, u.prototype.compare = function t(e, r, n, i, o) {\n if (!u.isBuffer(e)) throw new TypeError(\"Argument must be a Buffer\");\n if (void 0 === r && (r = 0), void 0 === n && (n = e ? e.length : 0), void 0 === i && (i = 0), void 0 === o && (o = this.length), r < 0 || n > e.length || i < 0 || o > this.length) throw new RangeError(\"out of range index\");\n if (i >= o && r >= n) return 0;\n if (i >= o) return -1;\n if (r >= n) return 1;\n if (r >>>= 0, n >>>= 0, i >>>= 0, o >>>= 0, this === e) return 0;\n\n for (var s = o - i, a = n - r, c = Math.min(s, a), h = this.slice(i, o), l = e.slice(r, n), f = 0; f < c; ++f) {\n if (h[f] !== l[f]) {\n s = h[f], a = l[f];\n break;\n }\n }\n\n return s < a ? -1 : a < s ? 1 : 0;\n }, u.prototype.includes = function t(e, r, n) {\n return -1 !== this.indexOf(e, r, n);\n }, u.prototype.indexOf = function t(e, r, n) {\n return v(this, e, r, n, !0);\n }, u.prototype.lastIndexOf = function t(e, r, n) {\n return v(this, e, r, n, !1);\n }, u.prototype.write = function t(e, r, n, i) {\n if (void 0 === r) i = \"utf8\", n = this.length, r = 0;else if (void 0 === n && \"string\" == typeof r) i = r, n = this.length, r = 0;else {\n if (!isFinite(r)) throw new Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");\n r |= 0, isFinite(n) ? (n |= 0, void 0 === i && (i = \"utf8\")) : (i = n, n = void 0);\n }\n var o = this.length - r;\n if ((void 0 === n || n > o) && (n = o), e.length > 0 && (n < 0 || r < 0) || r > this.length) throw new RangeError(\"Attempt to write outside buffer bounds\");\n i || (i = \"utf8\");\n\n for (var s = !1;;) {\n switch (i) {\n case \"hex\":\n return m(this, e, r, n);\n\n case \"utf8\":\n case \"utf-8\":\n return _(this, e, r, n);\n\n case \"ascii\":\n return S(this, e, r, n);\n\n case \"latin1\":\n case \"binary\":\n return F(this, e, r, n);\n\n case \"base64\":\n return b(this, e, r, n);\n\n case \"ucs2\":\n case \"ucs-2\":\n case \"utf16le\":\n case \"utf-16le\":\n return w(this, e, r, n);\n\n default:\n if (s) throw new TypeError(\"Unknown encoding: \" + i);\n i = (\"\" + i).toLowerCase(), s = !0;\n }\n }\n }, u.prototype.toJSON = function t() {\n return {\n type: \"Buffer\",\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n var P = 4096;\n\n function C(t, e, r) {\n var n = \"\";\n r = Math.min(t.length, r);\n\n for (var i = e; i < r; ++i) {\n n += String.fromCharCode(127 & t[i]);\n }\n\n return n;\n }\n\n function T(t, e, r) {\n var n = \"\";\n r = Math.min(t.length, r);\n\n for (var i = e; i < r; ++i) {\n n += String.fromCharCode(t[i]);\n }\n\n return n;\n }\n\n function R(t, e, r) {\n var n = t.length;\n (!e || e < 0) && (e = 0), (!r || r < 0 || r > n) && (r = n);\n\n for (var i = \"\", o = e; o < r; ++o) {\n i += M(t[o]);\n }\n\n return i;\n }\n\n function I(t, e, r) {\n for (var n = t.slice(e, r), i = \"\", o = 0; o < n.length; o += 2) {\n i += String.fromCharCode(n[o] + 256 * n[o + 1]);\n }\n\n return i;\n }\n\n function D(t, e, r) {\n if (t % 1 != 0 || t < 0) throw new RangeError(\"offset is not uint\");\n if (t + e > r) throw new RangeError(\"Trying to access beyond buffer length\");\n }\n\n function U(t, e, r, n, i, o) {\n if (!u.isBuffer(t)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (e > i || e < o) throw new RangeError('\"value\" argument is out of bounds');\n if (r + n > t.length) throw new RangeError(\"Index out of range\");\n }\n\n function L(t, e, r, n) {\n e < 0 && (e = 65535 + e + 1);\n\n for (var i = 0, o = Math.min(t.length - r, 2); i < o; ++i) {\n t[r + i] = (e & 255 << 8 * (n ? i : 1 - i)) >>> 8 * (n ? i : 1 - i);\n }\n }\n\n function B(t, e, r, n) {\n e < 0 && (e = 4294967295 + e + 1);\n\n for (var i = 0, o = Math.min(t.length - r, 4); i < o; ++i) {\n t[r + i] = e >>> 8 * (n ? i : 3 - i) & 255;\n }\n }\n\n function N(t, e, r, n, i, o) {\n if (r + n > t.length) throw new RangeError(\"Index out of range\");\n if (r < 0) throw new RangeError(\"Index out of range\");\n }\n\n function O(t, e, r, n, o) {\n return o || N(t, 0, r, 4), i.write(t, e, r, n, 23, 4), r + 4;\n }\n\n function j(t, e, r, n, o) {\n return o || N(t, 0, r, 8), i.write(t, e, r, n, 52, 8), r + 8;\n }\n\n u.prototype.slice = function t(e, r) {\n var n,\n i = this.length;\n if (e = ~~e, r = void 0 === r ? i : ~~r, e < 0 ? (e += i) < 0 && (e = 0) : e > i && (e = i), r < 0 ? (r += i) < 0 && (r = 0) : r > i && (r = i), r < e && (r = e), u.TYPED_ARRAY_SUPPORT) (n = this.subarray(e, r)).__proto__ = u.prototype;else {\n var o = r - e;\n n = new u(o, void 0);\n\n for (var s = 0; s < o; ++s) {\n n[s] = this[s + e];\n }\n }\n return n;\n }, u.prototype.readUIntLE = function t(e, r, n) {\n e |= 0, r |= 0, n || D(e, r, this.length);\n\n for (var i = this[e], o = 1, s = 0; ++s < r && (o *= 256);) {\n i += this[e + s] * o;\n }\n\n return i;\n }, u.prototype.readUIntBE = function t(e, r, n) {\n e |= 0, r |= 0, n || D(e, r, this.length);\n\n for (var i = this[e + --r], o = 1; r > 0 && (o *= 256);) {\n i += this[e + --r] * o;\n }\n\n return i;\n }, u.prototype.readUInt8 = function t(e, r) {\n return r || D(e, 1, this.length), this[e];\n }, u.prototype.readUInt16LE = function t(e, r) {\n return r || D(e, 2, this.length), this[e] | this[e + 1] << 8;\n }, u.prototype.readUInt16BE = function t(e, r) {\n return r || D(e, 2, this.length), this[e] << 8 | this[e + 1];\n }, u.prototype.readUInt32LE = function t(e, r) {\n return r || D(e, 4, this.length), (this[e] | this[e + 1] << 8 | this[e + 2] << 16) + 16777216 * this[e + 3];\n }, u.prototype.readUInt32BE = function t(e, r) {\n return r || D(e, 4, this.length), 16777216 * this[e] + (this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3]);\n }, u.prototype.readIntLE = function t(e, r, n) {\n e |= 0, r |= 0, n || D(e, r, this.length);\n\n for (var i = this[e], o = 1, s = 0; ++s < r && (o *= 256);) {\n i += this[e + s] * o;\n }\n\n return i >= (o *= 128) && (i -= Math.pow(2, 8 * r)), i;\n }, u.prototype.readIntBE = function t(e, r, n) {\n e |= 0, r |= 0, n || D(e, r, this.length);\n\n for (var i = r, o = 1, s = this[e + --i]; i > 0 && (o *= 256);) {\n s += this[e + --i] * o;\n }\n\n return s >= (o *= 128) && (s -= Math.pow(2, 8 * r)), s;\n }, u.prototype.readInt8 = function t(e, r) {\n return r || D(e, 1, this.length), 128 & this[e] ? -1 * (255 - this[e] + 1) : this[e];\n }, u.prototype.readInt16LE = function t(e, r) {\n r || D(e, 2, this.length);\n var n = this[e] | this[e + 1] << 8;\n return 32768 & n ? 4294901760 | n : n;\n }, u.prototype.readInt16BE = function t(e, r) {\n r || D(e, 2, this.length);\n var n = this[e + 1] | this[e] << 8;\n return 32768 & n ? 4294901760 | n : n;\n }, u.prototype.readInt32LE = function t(e, r) {\n return r || D(e, 4, this.length), this[e] | this[e + 1] << 8 | this[e + 2] << 16 | this[e + 3] << 24;\n }, u.prototype.readInt32BE = function t(e, r) {\n return r || D(e, 4, this.length), this[e] << 24 | this[e + 1] << 16 | this[e + 2] << 8 | this[e + 3];\n }, u.prototype.readFloatLE = function t(e, r) {\n return r || D(e, 4, this.length), i.read(this, e, !0, 23, 4);\n }, u.prototype.readFloatBE = function t(e, r) {\n return r || D(e, 4, this.length), i.read(this, e, !1, 23, 4);\n }, u.prototype.readDoubleLE = function t(e, r) {\n return r || D(e, 8, this.length), i.read(this, e, !0, 52, 8);\n }, u.prototype.readDoubleBE = function t(e, r) {\n return r || D(e, 8, this.length), i.read(this, e, !1, 52, 8);\n }, u.prototype.writeUIntLE = function t(e, r, n, i) {\n (e = +e, r |= 0, n |= 0, i) || U(this, e, r, n, Math.pow(2, 8 * n) - 1, 0);\n var o = 1,\n s = 0;\n\n for (this[r] = 255 & e; ++s < n && (o *= 256);) {\n this[r + s] = e / o & 255;\n }\n\n return r + n;\n }, u.prototype.writeUIntBE = function t(e, r, n, i) {\n (e = +e, r |= 0, n |= 0, i) || U(this, e, r, n, Math.pow(2, 8 * n) - 1, 0);\n var o = n - 1,\n s = 1;\n\n for (this[r + o] = 255 & e; --o >= 0 && (s *= 256);) {\n this[r + o] = e / s & 255;\n }\n\n return r + n;\n }, u.prototype.writeUInt8 = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 1, 255, 0), u.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), this[r] = 255 & e, r + 1;\n }, u.prototype.writeUInt16LE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[r] = 255 & e, this[r + 1] = e >>> 8) : L(this, e, r, !0), r + 2;\n }, u.prototype.writeUInt16BE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 2, 65535, 0), u.TYPED_ARRAY_SUPPORT ? (this[r] = e >>> 8, this[r + 1] = 255 & e) : L(this, e, r, !1), r + 2;\n }, u.prototype.writeUInt32LE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[r + 3] = e >>> 24, this[r + 2] = e >>> 16, this[r + 1] = e >>> 8, this[r] = 255 & e) : B(this, e, r, !0), r + 4;\n }, u.prototype.writeUInt32BE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 4, 4294967295, 0), u.TYPED_ARRAY_SUPPORT ? (this[r] = e >>> 24, this[r + 1] = e >>> 16, this[r + 2] = e >>> 8, this[r + 3] = 255 & e) : B(this, e, r, !1), r + 4;\n }, u.prototype.writeIntLE = function t(e, r, n, i) {\n if (e = +e, r |= 0, !i) {\n var o = Math.pow(2, 8 * n - 1);\n U(this, e, r, n, o - 1, -o);\n }\n\n var s = 0,\n a = 1,\n u = 0;\n\n for (this[r] = 255 & e; ++s < n && (a *= 256);) {\n e < 0 && 0 === u && 0 !== this[r + s - 1] && (u = 1), this[r + s] = (e / a >> 0) - u & 255;\n }\n\n return r + n;\n }, u.prototype.writeIntBE = function t(e, r, n, i) {\n if (e = +e, r |= 0, !i) {\n var o = Math.pow(2, 8 * n - 1);\n U(this, e, r, n, o - 1, -o);\n }\n\n var s = n - 1,\n a = 1,\n u = 0;\n\n for (this[r + s] = 255 & e; --s >= 0 && (a *= 256);) {\n e < 0 && 0 === u && 0 !== this[r + s + 1] && (u = 1), this[r + s] = (e / a >> 0) - u & 255;\n }\n\n return r + n;\n }, u.prototype.writeInt8 = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 1, 127, -128), u.TYPED_ARRAY_SUPPORT || (e = Math.floor(e)), e < 0 && (e = 255 + e + 1), this[r] = 255 & e, r + 1;\n }, u.prototype.writeInt16LE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[r] = 255 & e, this[r + 1] = e >>> 8) : L(this, e, r, !0), r + 2;\n }, u.prototype.writeInt16BE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 2, 32767, -32768), u.TYPED_ARRAY_SUPPORT ? (this[r] = e >>> 8, this[r + 1] = 255 & e) : L(this, e, r, !1), r + 2;\n }, u.prototype.writeInt32LE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 4, 2147483647, -2147483648), u.TYPED_ARRAY_SUPPORT ? (this[r] = 255 & e, this[r + 1] = e >>> 8, this[r + 2] = e >>> 16, this[r + 3] = e >>> 24) : B(this, e, r, !0), r + 4;\n }, u.prototype.writeInt32BE = function t(e, r, n) {\n return e = +e, r |= 0, n || U(this, e, r, 4, 2147483647, -2147483648), e < 0 && (e = 4294967295 + e + 1), u.TYPED_ARRAY_SUPPORT ? (this[r] = e >>> 24, this[r + 1] = e >>> 16, this[r + 2] = e >>> 8, this[r + 3] = 255 & e) : B(this, e, r, !1), r + 4;\n }, u.prototype.writeFloatLE = function t(e, r, n) {\n return O(this, e, r, !0, n);\n }, u.prototype.writeFloatBE = function t(e, r, n) {\n return O(this, e, r, !1, n);\n }, u.prototype.writeDoubleLE = function t(e, r, n) {\n return j(this, e, r, !0, n);\n }, u.prototype.writeDoubleBE = function t(e, r, n) {\n return j(this, e, r, !1, n);\n }, u.prototype.copy = function t(e, r, n, i) {\n if (n || (n = 0), i || 0 === i || (i = this.length), r >= e.length && (r = e.length), r || (r = 0), i > 0 && i < n && (i = n), i === n) return 0;\n if (0 === e.length || 0 === this.length) return 0;\n if (r < 0) throw new RangeError(\"targetStart out of bounds\");\n if (n < 0 || n >= this.length) throw new RangeError(\"sourceStart out of bounds\");\n if (i < 0) throw new RangeError(\"sourceEnd out of bounds\");\n i > this.length && (i = this.length), e.length - r < i - n && (i = e.length - r + n);\n var o,\n s = i - n;\n if (this === e && n < r && r < i) for (o = s - 1; o >= 0; --o) {\n e[o + r] = this[o + n];\n } else if (s < 1e3 || !u.TYPED_ARRAY_SUPPORT) for (o = 0; o < s; ++o) {\n e[o + r] = this[o + n];\n } else Uint8Array.prototype.set.call(e, this.subarray(n, n + s), r);\n return s;\n }, u.prototype.fill = function t(e, r, n, i) {\n if (\"string\" == typeof e) {\n if (\"string\" == typeof r ? (i = r, r = 0, n = this.length) : \"string\" == typeof n && (i = n, n = this.length), 1 === e.length) {\n var o = e.charCodeAt(0);\n o < 256 && (e = o);\n }\n\n if (void 0 !== i && \"string\" != typeof i) throw new TypeError(\"encoding must be a string\");\n if (\"string\" == typeof i && !u.isEncoding(i)) throw new TypeError(\"Unknown encoding: \" + i);\n } else \"number\" == typeof e && (e &= 255);\n\n if (r < 0 || this.length < r || this.length < n) throw new RangeError(\"Out of range index\");\n if (n <= r) return this;\n var s;\n if (r >>>= 0, n = void 0 === n ? this.length : n >>> 0, e || (e = 0), \"number\" == typeof e) for (s = r; s < n; ++s) {\n this[s] = e;\n } else {\n var a = u.isBuffer(e) ? e : K(new u(e, i).toString()),\n c = a.length;\n\n for (s = 0; s < n - r; ++s) {\n this[s + r] = a[s % c];\n }\n }\n return this;\n };\n var H = /[^+\\/0-9A-Za-z-_]/g;\n\n function M(t) {\n return t < 16 ? \"0\" + t.toString(16) : t.toString(16);\n }\n\n function K(t, e) {\n var r;\n e = e || 1 / 0;\n\n for (var n = t.length, i = null, o = [], s = 0; s < n; ++s) {\n if ((r = t.charCodeAt(s)) > 55295 && r < 57344) {\n if (!i) {\n if (r > 56319) {\n (e -= 3) > -1 && o.push(239, 191, 189);\n continue;\n }\n\n if (s + 1 === n) {\n (e -= 3) > -1 && o.push(239, 191, 189);\n continue;\n }\n\n i = r;\n continue;\n }\n\n if (r < 56320) {\n (e -= 3) > -1 && o.push(239, 191, 189), i = r;\n continue;\n }\n\n r = 65536 + (i - 55296 << 10 | r - 56320);\n } else i && (e -= 3) > -1 && o.push(239, 191, 189);\n\n if (i = null, r < 128) {\n if ((e -= 1) < 0) break;\n o.push(r);\n } else if (r < 2048) {\n if ((e -= 2) < 0) break;\n o.push(r >> 6 | 192, 63 & r | 128);\n } else if (r < 65536) {\n if ((e -= 3) < 0) break;\n o.push(r >> 12 | 224, r >> 6 & 63 | 128, 63 & r | 128);\n } else {\n if (!(r < 1114112)) throw new Error(\"Invalid code point\");\n if ((e -= 4) < 0) break;\n o.push(r >> 18 | 240, r >> 12 & 63 | 128, r >> 6 & 63 | 128, 63 & r | 128);\n }\n }\n\n return o;\n }\n\n function V(t) {\n return n.toByteArray(function e(t) {\n if ((t = function e(t) {\n return t.trim ? t.trim() : t.replace(/^\\s+|\\s+$/g, \"\");\n }(t).replace(H, \"\")).length < 2) return \"\";\n\n for (; t.length % 4 != 0;) {\n t += \"=\";\n }\n\n return t;\n }(t));\n }\n\n function q(t, e, r, n) {\n for (var i = 0; i < n && !(i + r >= e.length || i >= t.length); ++i) {\n e[i + r] = t[i];\n }\n\n return i;\n }\n }).call(this, r(28));\n }, function (t, e) {\n var r;\n\n r = function () {\n return this;\n }();\n\n try {\n r = r || new Function(\"return this\")();\n } catch (t) {\n \"object\" == typeof window && (r = window);\n }\n\n t.exports = r;\n }, function (t, e, r) {\n \"use strict\";\n\n e.byteLength = function n(t) {\n var e = f(t),\n r = e[0],\n n = e[1];\n return 3 * (r + n) / 4 - n;\n }, e.toByteArray = function i(t) {\n for (var e, r = f(t), n = r[0], i = r[1], o = new u(function s(t, e, r) {\n return 3 * (e + r) / 4 - r;\n }(0, n, i)), c = 0, h = i > 0 ? n - 4 : n, l = 0; l < h; l += 4) {\n e = a[t.charCodeAt(l)] << 18 | a[t.charCodeAt(l + 1)] << 12 | a[t.charCodeAt(l + 2)] << 6 | a[t.charCodeAt(l + 3)], o[c++] = e >> 16 & 255, o[c++] = e >> 8 & 255, o[c++] = 255 & e;\n }\n\n 2 === i && (e = a[t.charCodeAt(l)] << 2 | a[t.charCodeAt(l + 1)] >> 4, o[c++] = 255 & e);\n 1 === i && (e = a[t.charCodeAt(l)] << 10 | a[t.charCodeAt(l + 1)] << 4 | a[t.charCodeAt(l + 2)] >> 2, o[c++] = e >> 8 & 255, o[c++] = 255 & e);\n return o;\n }, e.fromByteArray = function o(t) {\n for (var e, r = t.length, n = r % 3, i = [], o = 0, a = r - n; o < a; o += 16383) {\n i.push(d(t, o, o + 16383 > a ? a : o + 16383));\n }\n\n 1 === n ? (e = t[r - 1], i.push(s[e >> 2] + s[e << 4 & 63] + \"==\")) : 2 === n && (e = (t[r - 2] << 8) + t[r - 1], i.push(s[e >> 10] + s[e >> 4 & 63] + s[e << 2 & 63] + \"=\"));\n return i.join(\"\");\n };\n\n for (var s = [], a = [], u = \"undefined\" != typeof Uint8Array ? Uint8Array : Array, c = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\", h = 0, l = c.length; h < l; ++h) {\n s[h] = c[h], a[c.charCodeAt(h)] = h;\n }\n\n function f(t) {\n var e = t.length;\n if (e % 4 > 0) throw new Error(\"Invalid string. Length must be a multiple of 4\");\n var r = t.indexOf(\"=\");\n return -1 === r && (r = e), [r, r === e ? 0 : 4 - r % 4];\n }\n\n function d(t, e, r) {\n for (var n, i, o = [], a = e; a < r; a += 3) {\n n = (t[a] << 16 & 16711680) + (t[a + 1] << 8 & 65280) + (255 & t[a + 2]), o.push(s[(i = n) >> 18 & 63] + s[i >> 12 & 63] + s[i >> 6 & 63] + s[63 & i]);\n }\n\n return o.join(\"\");\n }\n\n a[\"-\".charCodeAt(0)] = 62, a[\"_\".charCodeAt(0)] = 63;\n }, function (t, e) {\n e.read = function (t, e, r, n, i) {\n var o,\n s,\n a = 8 * i - n - 1,\n u = (1 << a) - 1,\n c = u >> 1,\n h = -7,\n l = r ? i - 1 : 0,\n f = r ? -1 : 1,\n d = t[e + l];\n\n for (l += f, o = d & (1 << -h) - 1, d >>= -h, h += a; h > 0; o = 256 * o + t[e + l], l += f, h -= 8) {\n ;\n }\n\n for (s = o & (1 << -h) - 1, o >>= -h, h += n; h > 0; s = 256 * s + t[e + l], l += f, h -= 8) {\n ;\n }\n\n if (0 === o) o = 1 - c;else {\n if (o === u) return s ? NaN : 1 / 0 * (d ? -1 : 1);\n s += Math.pow(2, n), o -= c;\n }\n return (d ? -1 : 1) * s * Math.pow(2, o - n);\n }, e.write = function (t, e, r, n, i, o) {\n var s,\n a,\n u,\n c = 8 * o - i - 1,\n h = (1 << c) - 1,\n l = h >> 1,\n f = 23 === i ? Math.pow(2, -24) - Math.pow(2, -77) : 0,\n d = n ? 0 : o - 1,\n g = n ? 1 : -1,\n p = e < 0 || 0 === e && 1 / e < 0 ? 1 : 0;\n\n for (e = Math.abs(e), isNaN(e) || e === 1 / 0 ? (a = isNaN(e) ? 1 : 0, s = h) : (s = Math.floor(Math.log(e) / Math.LN2), e * (u = Math.pow(2, -s)) < 1 && (s--, u *= 2), (e += s + l >= 1 ? f / u : f * Math.pow(2, 1 - l)) * u >= 2 && (s++, u /= 2), s + l >= h ? (a = 0, s = h) : s + l >= 1 ? (a = (e * u - 1) * Math.pow(2, i), s += l) : (a = e * Math.pow(2, l - 1) * Math.pow(2, i), s = 0)); i >= 8; t[r + d] = 255 & a, d += g, a /= 256, i -= 8) {\n ;\n }\n\n for (s = s << i | a, c += i; c > 0; t[r + d] = 255 & s, d += g, s /= 256, c -= 8) {\n ;\n }\n\n t[r + d - g] |= 128 * p;\n };\n }, function (t, e) {\n var r = {}.toString;\n\n t.exports = Array.isArray || function (t) {\n return \"[object Array]\" == r.call(t);\n };\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e[\"default\"] = function n(t) {\n var e = t.jws,\n r = t.KeyUtil,\n n = t.X509,\n o = t.crypto,\n s = t.hextob64u,\n a = t.b64tohex,\n u = t.AllowedSigningAlgs;\n return function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.parseJwt = function t(r) {\n i.Log.debug(\"JoseUtil.parseJwt\");\n\n try {\n var n = e.JWS.parse(r);\n return {\n header: n.headerObj,\n payload: n.payloadObj\n };\n } catch (t) {\n i.Log.error(t);\n }\n }, t.validateJwt = function e(o, s, u, c, h, l, f) {\n i.Log.debug(\"JoseUtil.validateJwt\");\n\n try {\n if (\"RSA\" === s.kty) {\n if (s.e && s.n) s = r.getKey(s);else {\n if (!s.x5c || !s.x5c.length) return i.Log.error(\"JoseUtil.validateJwt: RSA key missing key material\", s), Promise.reject(new Error(\"RSA key missing key material\"));\n var d = a(s.x5c[0]);\n s = n.getPublicKeyFromCertHex(d);\n }\n } else {\n if (\"EC\" !== s.kty) return i.Log.error(\"JoseUtil.validateJwt: Unsupported key type\", s && s.kty), Promise.reject(new Error(s.kty));\n if (!(s.crv && s.x && s.y)) return i.Log.error(\"JoseUtil.validateJwt: EC key missing key material\", s), Promise.reject(new Error(\"EC key missing key material\"));\n s = r.getKey(s);\n }\n return t._validateJwt(o, s, u, c, h, l, f);\n } catch (t) {\n return i.Log.error(t && t.message || t), Promise.reject(\"JWT validation failed\");\n }\n }, t.validateJwtAttributes = function e(r, n, o, s, a, u) {\n s || (s = 0), a || (a = parseInt(Date.now() / 1e3));\n var c = t.parseJwt(r).payload;\n if (!c.iss) return i.Log.error(\"JoseUtil._validateJwt: issuer was not provided\"), Promise.reject(new Error(\"issuer was not provided\"));\n if (c.iss !== n) return i.Log.error(\"JoseUtil._validateJwt: Invalid issuer in token\", c.iss), Promise.reject(new Error(\"Invalid issuer in token: \" + c.iss));\n if (!c.aud) return i.Log.error(\"JoseUtil._validateJwt: aud was not provided\"), Promise.reject(new Error(\"aud was not provided\"));\n var h = c.aud === o || Array.isArray(c.aud) && c.aud.indexOf(o) >= 0;\n if (!h) return i.Log.error(\"JoseUtil._validateJwt: Invalid audience in token\", c.aud), Promise.reject(new Error(\"Invalid audience in token: \" + c.aud));\n if (c.azp && c.azp !== o) return i.Log.error(\"JoseUtil._validateJwt: Invalid azp in token\", c.azp), Promise.reject(new Error(\"Invalid azp in token: \" + c.azp));\n\n if (!u) {\n var l = a + s,\n f = a - s;\n if (!c.iat) return i.Log.error(\"JoseUtil._validateJwt: iat was not provided\"), Promise.reject(new Error(\"iat was not provided\"));\n if (l < c.iat) return i.Log.error(\"JoseUtil._validateJwt: iat is in the future\", c.iat), Promise.reject(new Error(\"iat is in the future: \" + c.iat));\n if (c.nbf && l < c.nbf) return i.Log.error(\"JoseUtil._validateJwt: nbf is in the future\", c.nbf), Promise.reject(new Error(\"nbf is in the future: \" + c.nbf));\n if (!c.exp) return i.Log.error(\"JoseUtil._validateJwt: exp was not provided\"), Promise.reject(new Error(\"exp was not provided\"));\n if (c.exp < f) return i.Log.error(\"JoseUtil._validateJwt: exp is in the past\", c.exp), Promise.reject(new Error(\"exp is in the past:\" + c.exp));\n }\n\n return Promise.resolve(c);\n }, t._validateJwt = function r(n, o, s, a, c, h, l) {\n return t.validateJwtAttributes(n, s, a, c, h, l).then(function (t) {\n try {\n return e.JWS.verify(n, o, u) ? t : (i.Log.error(\"JoseUtil._validateJwt: signature validation failed\"), Promise.reject(new Error(\"signature validation failed\")));\n } catch (t) {\n return i.Log.error(t && t.message || t), Promise.reject(new Error(\"signature validation failed\"));\n }\n });\n }, t.hashString = function t(e, r) {\n try {\n return o.Util.hashString(e, r);\n } catch (t) {\n i.Log.error(t);\n }\n }, t.hexToBase64Url = function t(e) {\n try {\n return s(e);\n } catch (t) {\n i.Log.error(t);\n }\n }, t;\n }();\n };\n var i = r(0);\n t.exports = e[\"default\"];\n }, function (t, e, r) {\n var n = r(34),\n i = r(35);\n\n t.exports = function o(t, e, r) {\n var o = e && r || 0;\n \"string\" == typeof t && (e = \"binary\" === t ? new Array(16) : null, t = null);\n var s = (t = t || {}).random || (t.rng || n)();\n if (s[6] = 15 & s[6] | 64, s[8] = 63 & s[8] | 128, e) for (var a = 0; a < 16; ++a) {\n e[o + a] = s[a];\n }\n return e || i(s);\n };\n }, function (t, e) {\n var r = \"undefined\" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || \"undefined\" != typeof msCrypto && \"function\" == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto);\n\n if (r) {\n var n = new Uint8Array(16);\n\n t.exports = function t() {\n return r(n), n;\n };\n } else {\n var i = new Array(16);\n\n t.exports = function t() {\n for (var e, r = 0; r < 16; r++) {\n 0 == (3 & r) && (e = 4294967296 * Math.random()), i[r] = e >>> ((3 & r) << 3) & 255;\n }\n\n return i;\n };\n }\n }, function (t, e) {\n for (var r = [], n = 0; n < 256; ++n) {\n r[n] = (n + 256).toString(16).substr(1);\n }\n\n t.exports = function i(t, e) {\n var n = e || 0,\n i = r;\n return [i[t[n++]], i[t[n++]], i[t[n++]], i[t[n++]], \"-\", i[t[n++]], i[t[n++]], \"-\", i[t[n++]], i[t[n++]], \"-\", i[t[n++]], i[t[n++]], \"-\", i[t[n++]], i[t[n++]], i[t[n++]], i[t[n++]], i[t[n++]], i[t[n++]]].join(\"\");\n };\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SigninResponse = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(3);\n\n e.SigninResponse = function () {\n function t(e) {\n var r = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"#\";\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n var o = i.UrlUtility.parseUrlFragment(e, r);\n this.error = o.error, this.error_description = o.error_description, this.error_uri = o.error_uri, this.code = o.code, this.state = o.state, this.id_token = o.id_token, this.session_state = o.session_state, this.access_token = o.access_token, this.token_type = o.token_type, this.scope = o.scope, this.profile = void 0, this.expires_in = o.expires_in;\n }\n\n return n(t, [{\n key: \"expires_in\",\n get: function t() {\n if (this.expires_at) {\n var e = parseInt(Date.now() / 1e3);\n return this.expires_at - e;\n }\n },\n set: function t(e) {\n var r = parseInt(e);\n\n if (\"number\" == typeof r && r > 0) {\n var n = parseInt(Date.now() / 1e3);\n this.expires_at = n + r;\n }\n }\n }, {\n key: \"expired\",\n get: function t() {\n var e = this.expires_in;\n if (void 0 !== e) return e <= 0;\n }\n }, {\n key: \"scopes\",\n get: function t() {\n return (this.scope || \"\").split(\" \");\n }\n }, {\n key: \"isOpenIdConnect\",\n get: function t() {\n return this.scopes.indexOf(\"openid\") >= 0 || !!this.id_token;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SignoutRequest = void 0;\n var n = r(0),\n i = r(3),\n o = r(8);\n\n e.SignoutRequest = function t(e) {\n var r = e.url,\n s = e.id_token_hint,\n a = e.post_logout_redirect_uri,\n u = e.data,\n c = e.extraQueryParams,\n h = e.request_type;\n if (function l(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), !r) throw n.Log.error(\"SignoutRequest.ctor: No url passed\"), new Error(\"url\");\n\n for (var f in s && (r = i.UrlUtility.addQueryParam(r, \"id_token_hint\", s)), a && (r = i.UrlUtility.addQueryParam(r, \"post_logout_redirect_uri\", a), u && (this.state = new o.State({\n data: u,\n request_type: h\n }), r = i.UrlUtility.addQueryParam(r, \"state\", this.state.id))), c) {\n r = i.UrlUtility.addQueryParam(r, f, c[f]);\n }\n\n this.url = r;\n };\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SignoutResponse = void 0;\n var n = r(3);\n\n e.SignoutResponse = function t(e) {\n !function r(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n var i = n.UrlUtility.parseUrlFragment(e, \"?\");\n this.error = i.error, this.error_description = i.error_description, this.error_uri = i.error_uri, this.state = i.state;\n };\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.InMemoryWebStorage = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.InMemoryWebStorage = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._data = {};\n }\n\n return t.prototype.getItem = function t(e) {\n return i.Log.debug(\"InMemoryWebStorage.getItem\", e), this._data[e];\n }, t.prototype.setItem = function t(e, r) {\n i.Log.debug(\"InMemoryWebStorage.setItem\", e), this._data[e] = r;\n }, t.prototype.removeItem = function t(e) {\n i.Log.debug(\"InMemoryWebStorage.removeItem\", e), delete this._data[e];\n }, t.prototype.key = function t(e) {\n return Object.getOwnPropertyNames(this._data)[e];\n }, n(t, [{\n key: \"length\",\n get: function t() {\n return Object.getOwnPropertyNames(this._data).length;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserManager = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(9),\n s = r(41),\n a = r(15),\n u = r(47),\n c = r(49),\n h = r(18),\n l = r(20),\n f = r(10),\n d = r(4);\n\n e.UserManager = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : c.SilentRenewService,\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : h.SessionMonitor,\n a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : l.TokenRevocationClient,\n g = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : f.TokenClient,\n p = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : d.JoseUtil;\n !function v(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e), r instanceof s.UserManagerSettings || (r = new s.UserManagerSettings(r));\n\n var y = function m(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, t.call(this, r));\n\n return y._events = new u.UserManagerEvents(r), y._silentRenewService = new n(y), y.settings.automaticSilentRenew && (i.Log.debug(\"UserManager.ctor: automaticSilentRenew is configured, setting up silent renew\"), y.startSilentRenew()), y.settings.monitorSession && (i.Log.debug(\"UserManager.ctor: monitorSession is configured, setting up session monitor\"), y._sessionMonitor = new o(y)), y._tokenRevocationClient = new a(y._settings), y._tokenClient = new g(y._settings), y._joseUtil = p, y;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.getUser = function t() {\n var e = this;\n return this._loadUser().then(function (t) {\n return t ? (i.Log.info(\"UserManager.getUser: user loaded\"), e._events.load(t, !1), t) : (i.Log.info(\"UserManager.getUser: user not found in storage\"), null);\n });\n }, e.prototype.removeUser = function t() {\n var e = this;\n return this.storeUser(null).then(function () {\n i.Log.info(\"UserManager.removeUser: user removed from storage\"), e._events.unload();\n });\n }, e.prototype.signinRedirect = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"si:r\";\n var r = {\n useReplaceToNavigate: e.useReplaceToNavigate\n };\n return this._signinStart(e, this._redirectNavigator, r).then(function () {\n i.Log.info(\"UserManager.signinRedirect: successful\");\n });\n }, e.prototype.signinRedirectCallback = function t(e) {\n return this._signinEnd(e || this._redirectNavigator.url).then(function (t) {\n return t.profile && t.profile.sub ? i.Log.info(\"UserManager.signinRedirectCallback: successful, signed in sub: \", t.profile.sub) : i.Log.info(\"UserManager.signinRedirectCallback: no sub\"), t;\n });\n }, e.prototype.signinPopup = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"si:p\";\n var r = e.redirect_uri || this.settings.popup_redirect_uri || this.settings.redirect_uri;\n return r ? (e.redirect_uri = r, e.display = \"popup\", this._signin(e, this._popupNavigator, {\n startUrl: r,\n popupWindowFeatures: e.popupWindowFeatures || this.settings.popupWindowFeatures,\n popupWindowTarget: e.popupWindowTarget || this.settings.popupWindowTarget\n }).then(function (t) {\n return t && (t.profile && t.profile.sub ? i.Log.info(\"UserManager.signinPopup: signinPopup successful, signed in sub: \", t.profile.sub) : i.Log.info(\"UserManager.signinPopup: no sub\")), t;\n })) : (i.Log.error(\"UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured\"), Promise.reject(new Error(\"No popup_redirect_uri or redirect_uri configured\")));\n }, e.prototype.signinPopupCallback = function t(e) {\n return this._signinCallback(e, this._popupNavigator).then(function (t) {\n return t && (t.profile && t.profile.sub ? i.Log.info(\"UserManager.signinPopupCallback: successful, signed in sub: \", t.profile.sub) : i.Log.info(\"UserManager.signinPopupCallback: no sub\")), t;\n })[\"catch\"](function (t) {\n i.Log.error(t.message);\n });\n }, e.prototype.signinSilent = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return (r = Object.assign({}, r)).request_type = \"si:s\", this._loadUser().then(function (t) {\n return t && t.refresh_token ? (r.refresh_token = t.refresh_token, e._useRefreshToken(r)) : (r.id_token_hint = r.id_token_hint || e.settings.includeIdTokenInSilentRenew && t && t.id_token, t && e._settings.validateSubOnSilentRenew && (i.Log.debug(\"UserManager.signinSilent, subject prior to silent renew: \", t.profile.sub), r.current_sub = t.profile.sub), e._signinSilentIframe(r));\n });\n }, e.prototype._useRefreshToken = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n return this._tokenClient.exchangeRefreshToken(r).then(function (t) {\n return t ? t.access_token ? e._loadUser().then(function (r) {\n if (r) {\n var n = Promise.resolve();\n return t.id_token && (n = e._validateIdTokenFromTokenRefreshToken(r.profile, t.id_token)), n.then(function () {\n return i.Log.debug(\"UserManager._useRefreshToken: refresh token response success\"), r.id_token = t.id_token, r.access_token = t.access_token, r.refresh_token = t.refresh_token || r.refresh_token, r.expires_in = t.expires_in, e.storeUser(r).then(function () {\n return e._events.load(r), r;\n });\n });\n }\n\n return null;\n }) : (i.Log.error(\"UserManager._useRefreshToken: No access token returned from token endpoint\"), Promise.reject(\"No access token returned from token endpoint\")) : (i.Log.error(\"UserManager._useRefreshToken: No response returned from token endpoint\"), Promise.reject(\"No response returned from token endpoint\"));\n });\n }, e.prototype._validateIdTokenFromTokenRefreshToken = function t(e, r) {\n var n = this;\n return this._metadataService.getIssuer().then(function (t) {\n return n._joseUtil.validateJwtAttributes(r, t, n._settings.client_id, n._settings.clockSkew).then(function (t) {\n return t ? t.sub !== e.sub ? (i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub\"), Promise.reject(new Error(\"sub in id_token does not match current sub\"))) : t.auth_time && t.auth_time !== e.auth_time ? (i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time\"), Promise.reject(new Error(\"auth_time in id_token does not match original auth_time\"))) : t.azp && t.azp !== e.azp ? (i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp\"), Promise.reject(new Error(\"azp in id_token does not match original azp\"))) : !t.azp && e.azp ? (i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token\"), Promise.reject(new Error(\"azp not in id_token, but present in original id_token\"))) : void 0 : (i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token\"), Promise.reject(new Error(\"Failed to validate id_token\")));\n });\n });\n }, e.prototype._signinSilentIframe = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = e.redirect_uri || this.settings.silent_redirect_uri || this.settings.redirect_uri;\n return r ? (e.redirect_uri = r, e.prompt = e.prompt || \"none\", this._signin(e, this._iframeNavigator, {\n startUrl: r,\n silentRequestTimeout: e.silentRequestTimeout || this.settings.silentRequestTimeout\n }).then(function (t) {\n return t && (t.profile && t.profile.sub ? i.Log.info(\"UserManager.signinSilent: successful, signed in sub: \", t.profile.sub) : i.Log.info(\"UserManager.signinSilent: no sub\")), t;\n })) : (i.Log.error(\"UserManager.signinSilent: No silent_redirect_uri configured\"), Promise.reject(new Error(\"No silent_redirect_uri configured\")));\n }, e.prototype.signinSilentCallback = function t(e) {\n return this._signinCallback(e, this._iframeNavigator).then(function (t) {\n return t && (t.profile && t.profile.sub ? i.Log.info(\"UserManager.signinSilentCallback: successful, signed in sub: \", t.profile.sub) : i.Log.info(\"UserManager.signinSilentCallback: no sub\")), t;\n });\n }, e.prototype.signinCallback = function t(e) {\n var r = this;\n return this.readSigninResponseState(e).then(function (t) {\n var n = t.state;\n t.response;\n return \"si:r\" === n.request_type ? r.signinRedirectCallback(e) : \"si:p\" === n.request_type ? r.signinPopupCallback(e) : \"si:s\" === n.request_type ? r.signinSilentCallback(e) : Promise.reject(new Error(\"invalid response_type in state\"));\n });\n }, e.prototype.signoutCallback = function t(e, r) {\n var n = this;\n return this.readSignoutResponseState(e).then(function (t) {\n var i = t.state,\n o = t.response;\n return i ? \"so:r\" === i.request_type ? n.signoutRedirectCallback(e) : \"so:p\" === i.request_type ? n.signoutPopupCallback(e, r) : Promise.reject(new Error(\"invalid response_type in state\")) : o;\n });\n }, e.prototype.querySessionStatus = function t() {\n var e = this,\n r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (r = Object.assign({}, r)).request_type = \"si:s\";\n var n = r.redirect_uri || this.settings.silent_redirect_uri || this.settings.redirect_uri;\n return n ? (r.redirect_uri = n, r.prompt = \"none\", r.response_type = r.response_type || this.settings.query_status_response_type, r.scope = r.scope || \"openid\", r.skipUserInfo = !0, this._signinStart(r, this._iframeNavigator, {\n startUrl: n,\n silentRequestTimeout: r.silentRequestTimeout || this.settings.silentRequestTimeout\n }).then(function (t) {\n return e.processSigninResponse(t.url).then(function (t) {\n if (i.Log.debug(\"UserManager.querySessionStatus: got signin response\"), t.session_state && t.profile.sub) return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for sub: \", t.profile.sub), {\n session_state: t.session_state,\n sub: t.profile.sub,\n sid: t.profile.sid\n };\n i.Log.info(\"querySessionStatus successful, user not authenticated\");\n })[\"catch\"](function (t) {\n if (t.session_state && e.settings.monitorAnonymousSession && (\"login_required\" == t.message || \"consent_required\" == t.message || \"interaction_required\" == t.message || \"account_selection_required\" == t.message)) return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for anonymous user\"), {\n session_state: t.session_state\n };\n throw t;\n });\n })) : (i.Log.error(\"UserManager.querySessionStatus: No silent_redirect_uri configured\"), Promise.reject(new Error(\"No silent_redirect_uri configured\")));\n }, e.prototype._signin = function t(e, r) {\n var n = this,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return this._signinStart(e, r, i).then(function (t) {\n return n._signinEnd(t.url, e);\n });\n }, e.prototype._signinStart = function t(e, r) {\n var n = this,\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return r.prepare(o).then(function (t) {\n return i.Log.debug(\"UserManager._signinStart: got navigator window handle\"), n.createSigninRequest(e).then(function (e) {\n return i.Log.debug(\"UserManager._signinStart: got signin request\"), o.url = e.url, o.id = e.state.id, t.navigate(o);\n })[\"catch\"](function (e) {\n throw t.close && (i.Log.debug(\"UserManager._signinStart: Error after preparing navigator, closing navigator window\"), t.close()), e;\n });\n });\n }, e.prototype._signinEnd = function t(e) {\n var r = this,\n n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\n return this.processSigninResponse(e).then(function (t) {\n i.Log.debug(\"UserManager._signinEnd: got signin response\");\n var e = new a.User(t);\n\n if (n.current_sub) {\n if (n.current_sub !== e.profile.sub) return i.Log.debug(\"UserManager._signinEnd: current user does not match user returned from signin. sub from signin: \", e.profile.sub), Promise.reject(new Error(\"login_required\"));\n i.Log.debug(\"UserManager._signinEnd: current user matches user returned from signin\");\n }\n\n return r.storeUser(e).then(function () {\n return i.Log.debug(\"UserManager._signinEnd: user stored\"), r._events.load(e), e;\n });\n });\n }, e.prototype._signinCallback = function t(e, r) {\n return i.Log.debug(\"UserManager._signinCallback\"), r.callback(e);\n }, e.prototype.signoutRedirect = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"so:r\";\n var r = e.post_logout_redirect_uri || this.settings.post_logout_redirect_uri;\n r && (e.post_logout_redirect_uri = r);\n var n = {\n useReplaceToNavigate: e.useReplaceToNavigate\n };\n return this._signoutStart(e, this._redirectNavigator, n).then(function () {\n i.Log.info(\"UserManager.signoutRedirect: successful\");\n });\n }, e.prototype.signoutRedirectCallback = function t(e) {\n return this._signoutEnd(e || this._redirectNavigator.url).then(function (t) {\n return i.Log.info(\"UserManager.signoutRedirectCallback: successful\"), t;\n });\n }, e.prototype.signoutPopup = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\n (e = Object.assign({}, e)).request_type = \"so:p\";\n var r = e.post_logout_redirect_uri || this.settings.popup_post_logout_redirect_uri || this.settings.post_logout_redirect_uri;\n return e.post_logout_redirect_uri = r, e.display = \"popup\", e.post_logout_redirect_uri && (e.state = e.state || {}), this._signout(e, this._popupNavigator, {\n startUrl: r,\n popupWindowFeatures: e.popupWindowFeatures || this.settings.popupWindowFeatures,\n popupWindowTarget: e.popupWindowTarget || this.settings.popupWindowTarget\n }).then(function () {\n i.Log.info(\"UserManager.signoutPopup: successful\");\n });\n }, e.prototype.signoutPopupCallback = function t(e, r) {\n void 0 === r && \"boolean\" == typeof e && (r = e, e = null);\n return this._popupNavigator.callback(e, r, \"?\").then(function () {\n i.Log.info(\"UserManager.signoutPopupCallback: successful\");\n });\n }, e.prototype._signout = function t(e, r) {\n var n = this,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return this._signoutStart(e, r, i).then(function (t) {\n return n._signoutEnd(t.url);\n });\n }, e.prototype._signoutStart = function t() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n r = this,\n n = arguments[1],\n o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\n return n.prepare(o).then(function (t) {\n return i.Log.debug(\"UserManager._signoutStart: got navigator window handle\"), r._loadUser().then(function (n) {\n return i.Log.debug(\"UserManager._signoutStart: loaded current user from storage\"), (r._settings.revokeAccessTokenOnSignout ? r._revokeInternal(n) : Promise.resolve()).then(function () {\n var s = e.id_token_hint || n && n.id_token;\n return s && (i.Log.debug(\"UserManager._signoutStart: Setting id_token into signout request\"), e.id_token_hint = s), r.removeUser().then(function () {\n return i.Log.debug(\"UserManager._signoutStart: user removed, creating signout request\"), r.createSignoutRequest(e).then(function (e) {\n return i.Log.debug(\"UserManager._signoutStart: got signout request\"), o.url = e.url, e.state && (o.id = e.state.id), t.navigate(o);\n });\n });\n });\n })[\"catch\"](function (e) {\n throw t.close && (i.Log.debug(\"UserManager._signoutStart: Error after preparing navigator, closing navigator window\"), t.close()), e;\n });\n });\n }, e.prototype._signoutEnd = function t(e) {\n return this.processSignoutResponse(e).then(function (t) {\n return i.Log.debug(\"UserManager._signoutEnd: got signout response\"), t;\n });\n }, e.prototype.revokeAccessToken = function t() {\n var e = this;\n return this._loadUser().then(function (t) {\n return e._revokeInternal(t, !0).then(function (r) {\n if (r) return i.Log.debug(\"UserManager.revokeAccessToken: removing token properties from user and re-storing\"), t.access_token = null, t.refresh_token = null, t.expires_at = null, t.token_type = null, e.storeUser(t).then(function () {\n i.Log.debug(\"UserManager.revokeAccessToken: user stored\"), e._events.load(t);\n });\n });\n }).then(function () {\n i.Log.info(\"UserManager.revokeAccessToken: access token revoked successfully\");\n });\n }, e.prototype._revokeInternal = function t(e, r) {\n var n = this;\n\n if (e) {\n var o = e.access_token,\n s = e.refresh_token;\n return this._revokeAccessTokenInternal(o, r).then(function (t) {\n return n._revokeRefreshTokenInternal(s, r).then(function (e) {\n return t || e || i.Log.debug(\"UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format\"), t || e;\n });\n });\n }\n\n return Promise.resolve(!1);\n }, e.prototype._revokeAccessTokenInternal = function t(e, r) {\n return !e || e.indexOf(\".\") >= 0 ? Promise.resolve(!1) : this._tokenRevocationClient.revoke(e, r).then(function () {\n return !0;\n });\n }, e.prototype._revokeRefreshTokenInternal = function t(e, r) {\n return e ? this._tokenRevocationClient.revoke(e, r, \"refresh_token\").then(function () {\n return !0;\n }) : Promise.resolve(!1);\n }, e.prototype.startSilentRenew = function t() {\n this._silentRenewService.start();\n }, e.prototype.stopSilentRenew = function t() {\n this._silentRenewService.stop();\n }, e.prototype._loadUser = function t() {\n return this._userStore.get(this._userStoreKey).then(function (t) {\n return t ? (i.Log.debug(\"UserManager._loadUser: user storageString loaded\"), a.User.fromStorageString(t)) : (i.Log.debug(\"UserManager._loadUser: no user storageString\"), null);\n });\n }, e.prototype.storeUser = function t(e) {\n if (e) {\n i.Log.debug(\"UserManager.storeUser: storing user\");\n var r = e.toStorageString();\n return this._userStore.set(this._userStoreKey, r);\n }\n\n return i.Log.debug(\"storeUser.storeUser: removing user\"), this._userStore.remove(this._userStoreKey);\n }, n(e, [{\n key: \"_redirectNavigator\",\n get: function t() {\n return this.settings.redirectNavigator;\n }\n }, {\n key: \"_popupNavigator\",\n get: function t() {\n return this.settings.popupNavigator;\n }\n }, {\n key: \"_iframeNavigator\",\n get: function t() {\n return this.settings.iframeNavigator;\n }\n }, {\n key: \"_userStore\",\n get: function t() {\n return this.settings.userStore;\n }\n }, {\n key: \"events\",\n get: function t() {\n return this._events;\n }\n }, {\n key: \"_userStoreKey\",\n get: function t() {\n return \"user:\" + this.settings.authority + \":\" + this.settings.client_id;\n }\n }]), e;\n }(o.OidcClient);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserManagerSettings = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = (r(0), r(5)),\n o = r(42),\n s = r(43),\n a = r(45),\n u = r(6),\n c = r(1),\n h = r(12);\n\n var l = 60,\n f = 2e3;\n\n e.UserManagerSettings = function (t) {\n function e() {\n var r = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},\n n = r.popup_redirect_uri,\n i = r.popup_post_logout_redirect_uri,\n d = r.popupWindowFeatures,\n g = r.popupWindowTarget,\n p = r.silent_redirect_uri,\n v = r.silentRequestTimeout,\n y = r.automaticSilentRenew,\n m = void 0 !== y && y,\n _ = r.validateSubOnSilentRenew,\n S = void 0 !== _ && _,\n F = r.includeIdTokenInSilentRenew,\n b = void 0 === F || F,\n w = r.monitorSession,\n E = void 0 === w || w,\n x = r.monitorAnonymousSession,\n k = void 0 !== x && x,\n A = r.checkSessionInterval,\n P = void 0 === A ? f : A,\n C = r.stopCheckSessionOnError,\n T = void 0 === C || C,\n R = r.query_status_response_type,\n I = r.revokeAccessTokenOnSignout,\n D = void 0 !== I && I,\n U = r.accessTokenExpiringNotificationTime,\n L = void 0 === U ? l : U,\n B = r.redirectNavigator,\n N = void 0 === B ? new o.RedirectNavigator() : B,\n O = r.popupNavigator,\n j = void 0 === O ? new s.PopupNavigator() : O,\n H = r.iframeNavigator,\n M = void 0 === H ? new a.IFrameNavigator() : H,\n K = r.userStore,\n V = void 0 === K ? new u.WebStorageStateStore({\n store: c.Global.sessionStorage\n }) : K;\n !function q(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n\n var J = function W(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, t.call(this, arguments[0]));\n\n return J._popup_redirect_uri = n, J._popup_post_logout_redirect_uri = i, J._popupWindowFeatures = d, J._popupWindowTarget = g, J._silent_redirect_uri = p, J._silentRequestTimeout = v, J._automaticSilentRenew = m, J._validateSubOnSilentRenew = S, J._includeIdTokenInSilentRenew = b, J._accessTokenExpiringNotificationTime = L, J._monitorSession = E, J._monitorAnonymousSession = k, J._checkSessionInterval = P, J._stopCheckSessionOnError = T, R ? J._query_status_response_type = R : arguments[0] && arguments[0].response_type ? J._query_status_response_type = h.SigninRequest.isOidc(arguments[0].response_type) ? \"id_token\" : \"code\" : J._query_status_response_type = \"id_token\", J._revokeAccessTokenOnSignout = D, J._redirectNavigator = N, J._popupNavigator = j, J._iframeNavigator = M, J._userStore = V, J;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), n(e, [{\n key: \"popup_redirect_uri\",\n get: function t() {\n return this._popup_redirect_uri;\n }\n }, {\n key: \"popup_post_logout_redirect_uri\",\n get: function t() {\n return this._popup_post_logout_redirect_uri;\n }\n }, {\n key: \"popupWindowFeatures\",\n get: function t() {\n return this._popupWindowFeatures;\n }\n }, {\n key: \"popupWindowTarget\",\n get: function t() {\n return this._popupWindowTarget;\n }\n }, {\n key: \"silent_redirect_uri\",\n get: function t() {\n return this._silent_redirect_uri;\n }\n }, {\n key: \"silentRequestTimeout\",\n get: function t() {\n return this._silentRequestTimeout;\n }\n }, {\n key: \"automaticSilentRenew\",\n get: function t() {\n return this._automaticSilentRenew;\n }\n }, {\n key: \"validateSubOnSilentRenew\",\n get: function t() {\n return this._validateSubOnSilentRenew;\n }\n }, {\n key: \"includeIdTokenInSilentRenew\",\n get: function t() {\n return this._includeIdTokenInSilentRenew;\n }\n }, {\n key: \"accessTokenExpiringNotificationTime\",\n get: function t() {\n return this._accessTokenExpiringNotificationTime;\n }\n }, {\n key: \"monitorSession\",\n get: function t() {\n return this._monitorSession;\n }\n }, {\n key: \"monitorAnonymousSession\",\n get: function t() {\n return this._monitorAnonymousSession;\n }\n }, {\n key: \"checkSessionInterval\",\n get: function t() {\n return this._checkSessionInterval;\n }\n }, {\n key: \"stopCheckSessionOnError\",\n get: function t() {\n return this._stopCheckSessionOnError;\n }\n }, {\n key: \"query_status_response_type\",\n get: function t() {\n return this._query_status_response_type;\n }\n }, {\n key: \"revokeAccessTokenOnSignout\",\n get: function t() {\n return this._revokeAccessTokenOnSignout;\n }\n }, {\n key: \"redirectNavigator\",\n get: function t() {\n return this._redirectNavigator;\n }\n }, {\n key: \"popupNavigator\",\n get: function t() {\n return this._popupNavigator;\n }\n }, {\n key: \"iframeNavigator\",\n get: function t() {\n return this._iframeNavigator;\n }\n }, {\n key: \"userStore\",\n get: function t() {\n return this._userStore;\n }\n }]), e;\n }(i.OidcClientSettings);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.RedirectNavigator = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.RedirectNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t() {\n return Promise.resolve(this);\n }, t.prototype.navigate = function t(e) {\n return e && e.url ? (e.useReplaceToNavigate ? window.location.replace(e.url) : window.location = e.url, Promise.resolve()) : (i.Log.error(\"RedirectNavigator.navigate: No url provided\"), Promise.reject(new Error(\"No url provided\")));\n }, n(t, [{\n key: \"url\",\n get: function t() {\n return window.location.href;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.PopupNavigator = void 0;\n var n = r(0),\n i = r(44);\n\n e.PopupNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n var r = new i.PopupWindow(e);\n return Promise.resolve(r);\n }, t.prototype.callback = function t(e, r, o) {\n n.Log.debug(\"PopupNavigator.callback\");\n\n try {\n return i.PopupWindow.notifyOpener(e, r, o), Promise.resolve();\n } catch (t) {\n return Promise.reject(t);\n }\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.PopupWindow = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(3);\n\n var s = 500,\n a = \"location=no,toolbar=no,width=500,height=500,left=100,top=100;\",\n u = \"_blank\";\n\n e.PopupWindow = function () {\n function t(e) {\n var r = this;\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._promise = new Promise(function (t, e) {\n r._resolve = t, r._reject = e;\n });\n var o = e.popupWindowTarget || u,\n c = e.popupWindowFeatures || a;\n this._popup = window.open(\"\", o, c), this._popup && (i.Log.debug(\"PopupWindow.ctor: popup successfully created\"), this._checkForPopupClosedTimer = window.setInterval(this._checkForPopupClosed.bind(this), s));\n }\n\n return t.prototype.navigate = function t(e) {\n return this._popup ? e && e.url ? (i.Log.debug(\"PopupWindow.navigate: Setting URL in popup\"), this._id = e.id, this._id && (window[\"popupCallback_\" + e.id] = this._callback.bind(this)), this._popup.focus(), this._popup.window.location = e.url) : (this._error(\"PopupWindow.navigate: no url provided\"), this._error(\"No url provided\")) : this._error(\"PopupWindow.navigate: Error opening popup window\"), this.promise;\n }, t.prototype._success = function t(e) {\n i.Log.debug(\"PopupWindow.callback: Successful response from popup window\"), this._cleanup(), this._resolve(e);\n }, t.prototype._error = function t(e) {\n i.Log.error(\"PopupWindow.error: \", e), this._cleanup(), this._reject(new Error(e));\n }, t.prototype.close = function t() {\n this._cleanup(!1);\n }, t.prototype._cleanup = function t(e) {\n i.Log.debug(\"PopupWindow.cleanup\"), window.clearInterval(this._checkForPopupClosedTimer), this._checkForPopupClosedTimer = null, delete window[\"popupCallback_\" + this._id], this._popup && !e && this._popup.close(), this._popup = null;\n }, t.prototype._checkForPopupClosed = function t() {\n this._popup && !this._popup.closed || this._error(\"Popup window closed\");\n }, t.prototype._callback = function t(e, r) {\n this._cleanup(r), e ? (i.Log.debug(\"PopupWindow.callback success\"), this._success({\n url: e\n })) : (i.Log.debug(\"PopupWindow.callback: Invalid response from popup\"), this._error(\"Invalid response from popup\"));\n }, t.notifyOpener = function t(e, r, n) {\n if (window.opener) {\n if (e = e || window.location.href) {\n var s = o.UrlUtility.parseUrlFragment(e, n);\n\n if (s.state) {\n var a = \"popupCallback_\" + s.state,\n u = window.opener[a];\n u ? (i.Log.debug(\"PopupWindow.notifyOpener: passing url message to opener\"), u(e, r)) : i.Log.warn(\"PopupWindow.notifyOpener: no matching callback found on opener\");\n } else i.Log.warn(\"PopupWindow.notifyOpener: no state found in response url\");\n }\n } else i.Log.warn(\"PopupWindow.notifyOpener: no window.opener. Can't complete notification.\");\n }, n(t, [{\n key: \"promise\",\n get: function t() {\n return this._promise;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.IFrameNavigator = void 0;\n var n = r(0),\n i = r(46);\n\n e.IFrameNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n var r = new i.IFrameWindow(e);\n return Promise.resolve(r);\n }, t.prototype.callback = function t(e) {\n n.Log.debug(\"IFrameNavigator.callback\");\n\n try {\n return i.IFrameWindow.notifyParent(e), Promise.resolve();\n } catch (t) {\n return Promise.reject(t);\n }\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.IFrameWindow = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0);\n\n e.IFrameWindow = function () {\n function t(e) {\n var r = this;\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._promise = new Promise(function (t, e) {\n r._resolve = t, r._reject = e;\n }), this._boundMessageEvent = this._message.bind(this), window.addEventListener(\"message\", this._boundMessageEvent, !1), this._frame = window.document.createElement(\"iframe\"), this._frame.style.visibility = \"hidden\", this._frame.style.position = \"absolute\", this._frame.style.display = \"none\", this._frame.style.width = 0, this._frame.style.height = 0, window.document.body.appendChild(this._frame);\n }\n\n return t.prototype.navigate = function t(e) {\n if (e && e.url) {\n var r = e.silentRequestTimeout || 1e4;\n i.Log.debug(\"IFrameWindow.navigate: Using timeout of:\", r), this._timer = window.setTimeout(this._timeout.bind(this), r), this._frame.src = e.url;\n } else this._error(\"No url provided\");\n\n return this.promise;\n }, t.prototype._success = function t(e) {\n this._cleanup(), i.Log.debug(\"IFrameWindow: Successful response from frame window\"), this._resolve(e);\n }, t.prototype._error = function t(e) {\n this._cleanup(), i.Log.error(e), this._reject(new Error(e));\n }, t.prototype.close = function t() {\n this._cleanup();\n }, t.prototype._cleanup = function t() {\n this._frame && (i.Log.debug(\"IFrameWindow: cleanup\"), window.removeEventListener(\"message\", this._boundMessageEvent, !1), window.clearTimeout(this._timer), window.document.body.removeChild(this._frame), this._timer = null, this._frame = null, this._boundMessageEvent = null);\n }, t.prototype._timeout = function t() {\n i.Log.debug(\"IFrameWindow.timeout\"), this._error(\"Frame window timed out\");\n }, t.prototype._message = function t(e) {\n if (i.Log.debug(\"IFrameWindow.message\"), this._timer && e.origin === this._origin && e.source === this._frame.contentWindow) {\n var r = e.data;\n r ? this._success({\n url: r\n }) : this._error(\"Invalid response from frame\");\n }\n }, t.notifyParent = function t(e) {\n i.Log.debug(\"IFrameWindow.notifyParent\"), window.frameElement && (e = e || window.location.href) && (i.Log.debug(\"IFrameWindow.notifyParent: posting url message to parent\"), window.parent.postMessage(e, location.protocol + \"//\" + location.host));\n }, n(t, [{\n key: \"promise\",\n get: function t() {\n return this._promise;\n }\n }, {\n key: \"_origin\",\n get: function t() {\n return location.protocol + \"//\" + location.host;\n }\n }]), t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.UserManagerEvents = void 0;\n var n = r(0),\n i = r(16),\n o = r(17);\n\n e.UserManagerEvents = function (t) {\n function e(r) {\n !function n(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n\n var i = function s(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, t.call(this, r));\n\n return i._userLoaded = new o.Event(\"User loaded\"), i._userUnloaded = new o.Event(\"User unloaded\"), i._silentRenewError = new o.Event(\"Silent renew error\"), i._userSignedIn = new o.Event(\"User signed in\"), i._userSignedOut = new o.Event(\"User signed out\"), i._userSessionChanged = new o.Event(\"User session changed\"), i;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.load = function e(r) {\n var i = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1];\n n.Log.debug(\"UserManagerEvents.load\"), t.prototype.load.call(this, r), i && this._userLoaded.raise(r);\n }, e.prototype.unload = function e() {\n n.Log.debug(\"UserManagerEvents.unload\"), t.prototype.unload.call(this), this._userUnloaded.raise();\n }, e.prototype.addUserLoaded = function t(e) {\n this._userLoaded.addHandler(e);\n }, e.prototype.removeUserLoaded = function t(e) {\n this._userLoaded.removeHandler(e);\n }, e.prototype.addUserUnloaded = function t(e) {\n this._userUnloaded.addHandler(e);\n }, e.prototype.removeUserUnloaded = function t(e) {\n this._userUnloaded.removeHandler(e);\n }, e.prototype.addSilentRenewError = function t(e) {\n this._silentRenewError.addHandler(e);\n }, e.prototype.removeSilentRenewError = function t(e) {\n this._silentRenewError.removeHandler(e);\n }, e.prototype._raiseSilentRenewError = function t(e) {\n n.Log.debug(\"UserManagerEvents._raiseSilentRenewError\", e.message), this._silentRenewError.raise(e);\n }, e.prototype.addUserSignedIn = function t(e) {\n this._userSignedIn.addHandler(e);\n }, e.prototype.removeUserSignedIn = function t(e) {\n this._userSignedIn.removeHandler(e);\n }, e.prototype._raiseUserSignedIn = function t() {\n n.Log.debug(\"UserManagerEvents._raiseUserSignedIn\"), this._userSignedIn.raise();\n }, e.prototype.addUserSignedOut = function t(e) {\n this._userSignedOut.addHandler(e);\n }, e.prototype.removeUserSignedOut = function t(e) {\n this._userSignedOut.removeHandler(e);\n }, e.prototype._raiseUserSignedOut = function t() {\n n.Log.debug(\"UserManagerEvents._raiseUserSignedOut\"), this._userSignedOut.raise();\n }, e.prototype.addUserSessionChanged = function t(e) {\n this._userSessionChanged.addHandler(e);\n }, e.prototype.removeUserSessionChanged = function t(e) {\n this._userSessionChanged.removeHandler(e);\n }, e.prototype._raiseUserSessionChanged = function t() {\n n.Log.debug(\"UserManagerEvents._raiseUserSessionChanged\"), this._userSessionChanged.raise();\n }, e;\n }(i.AccessTokenEvents);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.Timer = void 0;\n\n var n = function () {\n function t(t, e) {\n for (var r = 0; r < e.length; r++) {\n var n = e[r];\n n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n);\n }\n }\n\n return function (e, r, n) {\n return r && t(e.prototype, r), n && t(e, n), e;\n };\n }(),\n i = r(0),\n o = r(1),\n s = r(17);\n\n e.Timer = function (t) {\n function e(r) {\n var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : o.Global.timer,\n i = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0;\n !function s(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, e);\n\n var a = function u(t, e) {\n if (!t) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return !e || \"object\" != typeof e && \"function\" != typeof e ? t : e;\n }(this, t.call(this, r));\n\n return a._timer = n, a._nowFunc = i || function () {\n return Date.now() / 1e3;\n }, a;\n }\n\n return function r(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function, not \" + typeof e);\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), e && (Object.setPrototypeOf ? Object.setPrototypeOf(t, e) : t.__proto__ = e);\n }(e, t), e.prototype.init = function t(e) {\n e <= 0 && (e = 1), e = parseInt(e);\n var r = this.now + e;\n if (this.expiration === r && this._timerHandle) i.Log.debug(\"Timer.init timer \" + this._name + \" skipping initialization since already initialized for expiration:\", this.expiration);else {\n this.cancel(), i.Log.debug(\"Timer.init timer \" + this._name + \" for duration:\", e), this._expiration = r;\n var n = 5;\n e < n && (n = e), this._timerHandle = this._timer.setInterval(this._callback.bind(this), 1e3 * n);\n }\n }, e.prototype.cancel = function t() {\n this._timerHandle && (i.Log.debug(\"Timer.cancel: \", this._name), this._timer.clearInterval(this._timerHandle), this._timerHandle = null);\n }, e.prototype._callback = function e() {\n var r = this._expiration - this.now;\n i.Log.debug(\"Timer.callback; \" + this._name + \" timer expires in:\", r), this._expiration <= this.now && (this.cancel(), t.prototype.raise.call(this));\n }, n(e, [{\n key: \"now\",\n get: function t() {\n return parseInt(this._nowFunc());\n }\n }, {\n key: \"expiration\",\n get: function t() {\n return this._expiration;\n }\n }]), e;\n }(s.Event);\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.SilentRenewService = void 0;\n var n = r(0);\n\n e.SilentRenewService = function () {\n function t(e) {\n !function r(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t), this._userManager = e;\n }\n\n return t.prototype.start = function t() {\n this._callback || (this._callback = this._tokenExpiring.bind(this), this._userManager.events.addAccessTokenExpiring(this._callback), this._userManager.getUser().then(function (t) {})[\"catch\"](function (t) {\n n.Log.error(\"SilentRenewService.start: Error from getUser:\", t.message);\n }));\n }, t.prototype.stop = function t() {\n this._callback && (this._userManager.events.removeAccessTokenExpiring(this._callback), delete this._callback);\n }, t.prototype._tokenExpiring = function t() {\n var e = this;\n\n this._userManager.signinSilent().then(function (t) {\n n.Log.debug(\"SilentRenewService._tokenExpiring: Silent token renewal successful\");\n }, function (t) {\n n.Log.error(\"SilentRenewService._tokenExpiring: Error from signinSilent:\", t.message), e._userManager.events._raiseSilentRenewError(t);\n });\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CordovaPopupNavigator = void 0;\n var n = r(21);\n\n e.CordovaPopupNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n var r = new n.CordovaPopupWindow(e);\n return Promise.resolve(r);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.CordovaIFrameNavigator = void 0;\n var n = r(21);\n\n e.CordovaIFrameNavigator = function () {\n function t() {\n !function e(t, r) {\n if (!(t instanceof r)) throw new TypeError(\"Cannot call a class as a function\");\n }(this, t);\n }\n\n return t.prototype.prepare = function t(e) {\n e.popupWindowFeatures = \"hidden=yes\";\n var r = new n.CordovaPopupWindow(e);\n return Promise.resolve(r);\n }, t;\n }();\n }, function (t, e, r) {\n \"use strict\";\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n e.Version = \"1.10.1\";\n }]);\n});"],"sourceRoot":""}