{"version":3,"sources":["webpack:///./node_modules/@aspnet/signalr/dist/esm/TextMessageFormat.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HandshakeProtocol.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/NodeHttpClient.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./src/views/Logs/Index.vue?11e8","webpack:///./node_modules/@aspnet/signalr/dist/esm/ILogger.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Loggers.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HttpClient.js","webpack:///./src/views/Logs/Index.vue","webpack:///./node_modules/@aspnet/signalr/dist/esm/IHubProtocol.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/XhrHttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/DefaultHttpClient.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HubConnection.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ITransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/AbortController.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/LongPollingTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/ServerSentEventsTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/WebSocketTransport.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HttpConnection.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/JsonHubProtocol.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/HubConnectionBuilder.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/index.js","webpack:///src/views/Logs/Index.vue","webpack:///./src/views/Logs/Index.vue?3ea8","webpack:///./src/views/Logs/Index.vue?6b7a","webpack:///./util/date.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Errors.js","webpack:///./node_modules/@aspnet/signalr/dist/esm/Utils.js"],"names":["TextMessageFormat","write","output","RecordSeparator","parse","input","length","Error","messages","split","pop","RecordSeparatorCode","String","fromCharCode","HandshakeProtocol","prototype","writeHandshakeRequest","handshakeRequest","JSON","stringify","parseHandshakeResponse","data","responseMessage","messageData","remainingData","Buffer","binaryData","Uint8Array","separatorIndex","indexOf","responseLength","apply","slice","byteLength","buffer","textData","substring","response","type","anObject","sameValue","regExpExec","defined","SEARCH","$search","maybeCallNative","regexp","O","this","fn","undefined","call","RegExp","res","done","value","rx","S","previousLastIndex","lastIndex","result","index","requestModule","__extends","extendStatics","Object","setPrototypeOf","__proto__","Array","d","b","p","hasOwnProperty","__","constructor","create","__assign","assign","t","s","i","n","arguments","XMLHttpRequest","requireFunc","NodeHttpClient","_super","logger","_this","cookieJar","jar","request","defaults","send","httpRequest","Promise","resolve","reject","requestBody","content","from","currentRequest","url","body","encoding","responseType","headers","method","timeout","error","abortSignal","onabort","code","log","Warning","statusCode","statusMessage","abort","getCookieString","global","inheritIfRequired","dP","f","gOPN","isRegExp","$flags","$RegExp","Base","proto","re1","re2","CORRECT_NEW","tiRE","piRE","fiU","source","proxy","key","configurable","get","set","it","keys","toLength","advanceStringIndex","MATCH","$match","fullUnicode","unicode","A","matchStr","LogLevel","NullLogger","_logLevel","_message","instance","module","exports","is","x","y","HttpResponse","statusText","HttpClient","options","post","delete","MessageType","render","_vm","_c","_self","staticStyle","ref","attrs","on","$event","preventDefault","onSubmit","model","userName","callback","$$v","expression","userMessage","_l","item","_v","_s","user","message","submitCard","getLogs","directives","name","rawName","listLoading","tableData","scopedSlots","_u","props","staticClass","row","datetime","domProps","scope","class","logColor","staticRenderFns","XhrHttpClient","aborted","xhr","open","withCredentials","setRequestHeader","forEach","header","onload","status","responseText","onerror","ontimeout","DefaultHttpClient","httpClient","HubConnectionState","__awaiter","thisArg","_arguments","P","generator","fulfilled","step","next","e","rejected","then","__generator","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","TypeError","push","DEFAULT_TIMEOUT_IN_MS","DEFAULT_PING_INTERVAL_IN_MS","HttpTransportType","TransferFormat","HubConnection","connection","protocol","isRequired","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","handshakeProtocol","onreceive","processIncomingData","onclose","connectionClosed","callbacks","methods","closedCallbacks","id","receivedHandshakeResponse","connectionState","Disconnected","cachedPingMessage","writeMessage","Ping","defineProperty","enumerable","start","handshakePromise","_a","version","Debug","handshakeResolver","handshakeRejecter","transferFormat","sendMessage","Information","cleanupTimeout","resetTimeoutPeriod","resetKeepAliveInterval","Connected","stop","cleanupPingTimer","stream","methodName","args","_i","promiseQueue","invocationDescriptor","createStreamInvocation","subject","cancelCallback","cancelInvocation","createCancelInvocation","invocationId","cancelMessage","invocationEvent","Completion","complete","catch","createInvocation","invoke","newMethod","toLowerCase","off","handlers","removeIdx","splice","processHandshakeResponse","parseMessages","messages_1","Invocation","invokeClientMethod","StreamItem","Close","pingServerHandle","setTimeout","_b","features","inherentKeepAlive","timeoutHandle","serverTimeout","invocationMessage","target","m","c","clearTimeout","nonblocking","toString","StreamInvocation","CancelInvocation","AbortController","isAborted","LongPollingTransport","accessTokenFactory","logMessageContent","pollAbort","running","connect","pollOptions","token","pollUrl","isIn","Trace","Binary","signal","getAccessToken","updateHeaderToken","Date","now","closeError","receiving","poll","e_1","pollAborted","raiseOnClose","deleteOptions","logMessage","ServerSentEventsTransport","eventSourceConstructor","encodeURIComponent","opened","Text","eventSource","window","cookies","Cookie","onmessage","close","onopen","WebSocketTransport","webSocketConstructor","webSocket","replace","binaryType","_event","event","ErrorEvent","readyState","OPEN","wasClean","reason","MAX_REDIRECTS","WebSocketModule","EventSourceModule","HttpConnection","baseUrl","resolveUrl","isNode","WebSocket","EventSource","startPromise","startInternal","transport","stopError","negotiateResponse","redirects","_loop_1","this_1","state_1","e_2","skipNegotiation","WebSockets","constructTransport","accessToken_1","getNegotiationResponse","ProtocolVersion","accessToken","createTransport","stopConnection","changeState","negotiateUrl","e_3","resolveNegotiateUrl","createConnectUrl","connectionId","requestedTransport","requestedTransferFormat","connectUrl","transports","transports_1","endpoint","ex_1","isITransport","availableTransports","resolveTransport","ServerSentEvents","LongPolling","transferFormats","map","transportMatches","to","lastIndexOf","document","aTag","createElement","href","actualTransport","JSON_HUB_PROTOCOL_NAME","JsonHubProtocol","hubMessages","parsedMessage","isInvocationMessage","isStreamItemMessage","isCompletionMessage","assertNotEmptyString","errorMessage","HubConnectionBuilder","configureLogging","logging","isLogger","withUrl","transportTypeOrOptions","httpConnectionOptions","withHubProtocol","build","filters","LinkUrl","formattdDetail","column","tdDetail","formatCreateTime","tdCreatetime","util","formatDate","format","handleCurrentChange","val","page","getRoles","thisvue","para","err","console","created","thisVue","signalR","concat","BaseApiUrl","localStorage","Token","update","info","clearInterval","mounted","beforeDestroy","component","SIGN_REGEXP","DEFAULT_PATTERN","padding","len","getQueryStringByName","reg","r","location","search","substr","match","context","date","pattern","$0","charAt","getFullYear","getMonth","getDate","getDay","getHours","getMinutes","getSeconds","dateString","matchs1","matchs2","_date","_int","parseInt","sign","setFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","isEmt","obj","HttpError","_newTarget","trueProto","TimeoutError","AbortError","Arg","values","getDataDetail","includeContent","detail","isArrayBuffer","formatArrayBuffer","view","str","num","pad","ArrayBuffer","transportName","createLogger","ConsoleLogger","Subject","observers","observer","subscribe","SubjectSubscription","dispose","minimumLogLevel","logLevel","Critical","toISOString","warn"],"mappings":"gHAAA,kCAIA,IAAIA,EAAmC,WACnC,SAASA,KAeT,OAbAA,EAAkBC,MAAQ,SAAUC,GAChC,MAAO,GAAKA,EAASF,EAAkBG,iBAE3CH,EAAkBI,MAAQ,SAAUC,GAChC,GAAIA,EAAMA,EAAMC,OAAS,KAAON,EAAkBG,gBAC9C,MAAM,IAAII,MAAM,0BAEpB,IAAIC,EAAWH,EAAMI,MAAMT,EAAkBG,iBAE7C,OADAK,EAASE,MACFF,GAEXR,EAAkBW,oBAAsB,GACxCX,EAAkBG,gBAAkBS,OAAOC,aAAab,EAAkBW,qBACnEX,EAhB2B,I,qCCJtC,0EAKIc,EAAmC,WACnC,SAASA,KA8CT,OA3CAA,EAAkBC,UAAUC,sBAAwB,SAAUC,GAC1D,OAAO,OAAkBhB,MAAMiB,KAAKC,UAAUF,KAElDH,EAAkBC,UAAUK,uBAAyB,SAAUC,GAC3D,IAAIC,EACAC,EACAC,EACJ,GAAI,eAAcH,IAA4B,qBAAXI,GAA0BJ,aAAgBI,EAAS,CAElF,IAAIC,EAAa,IAAIC,WAAWN,GAC5BO,EAAiBF,EAAWG,QAAQ,OAAkBlB,qBAC1D,IAAwB,IAApBiB,EACA,MAAM,IAAIrB,MAAM,0BAIpB,IAAIuB,EAAiBF,EAAiB,EACtCL,EAAcX,OAAOC,aAAakB,MAAM,KAAML,EAAWM,MAAM,EAAGF,IAClEN,EAAiBE,EAAWO,WAAaH,EAAkBJ,EAAWM,MAAMF,GAAgBI,OAAS,SAEpG,CACD,IAAIC,EAAWd,EACXO,EAAiBO,EAASN,QAAQ,OAAkB1B,iBACxD,IAAwB,IAApByB,EACA,MAAM,IAAIrB,MAAM,0BAIhBuB,EAAiBF,EAAiB,EACtCL,EAAcY,EAASC,UAAU,EAAGN,GACpCN,EAAiBW,EAAS7B,OAASwB,EAAkBK,EAASC,UAAUN,GAAkB,KAG9F,IAAItB,EAAW,OAAkBJ,MAAMmB,GACnCc,EAAWnB,KAAKd,MAAMI,EAAS,IACnC,GAAI6B,EAASC,KACT,MAAM,IAAI/B,MAAM,kDAKpB,OAHAe,EAAkBe,EAGX,CAACb,EAAeF,IAEpBR,EA/C2B,K,iECHtC,IAAIyB,EAAW,EAAQ,QACnBC,EAAY,EAAQ,QACpBC,EAAa,EAAQ,QAGzB,EAAQ,OAAR,CAAyB,SAAU,GAAG,SAAUC,EAASC,EAAQC,EAASC,GACxE,MAAO,CAGL,SAAgBC,GACd,IAAIC,EAAIL,EAAQM,MACZC,OAAeC,GAAVJ,OAAsBI,EAAYJ,EAAOH,GAClD,YAAcO,IAAPD,EAAmBA,EAAGE,KAAKL,EAAQC,GAAK,IAAIK,OAAON,GAAQH,GAAQ/B,OAAOmC,KAInF,SAAUD,GACR,IAAIO,EAAMR,EAAgBD,EAASE,EAAQE,MAC3C,GAAIK,EAAIC,KAAM,OAAOD,EAAIE,MACzB,IAAIC,EAAKjB,EAASO,GACdW,EAAI7C,OAAOoC,MACXU,EAAoBF,EAAGG,UACtBnB,EAAUkB,EAAmB,KAAIF,EAAGG,UAAY,GACrD,IAAIC,EAASnB,EAAWe,EAAIC,GAE5B,OADKjB,EAAUgB,EAAGG,UAAWD,KAAoBF,EAAGG,UAAYD,GAC9C,OAAXE,GAAmB,EAAIA,EAAOC,Y,qCC3B3C,kDAwBIC,EAxBJ,gDAEIC,EAAwC,WACxC,IAAIC,EAAgBC,OAAOC,gBACtB,CAAEC,UAAW,cAAgBC,OAAS,SAAUC,EAAGC,GAAKD,EAAEF,UAAYG,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIC,KAAKD,EAAOA,EAAEE,eAAeD,KAAIF,EAAEE,GAAKD,EAAEC,KACzE,OAAO,SAAUF,EAAGC,GAEhB,SAASG,IAAOzB,KAAK0B,YAAcL,EADnCL,EAAcK,EAAGC,GAEjBD,EAAEtD,UAAkB,OAANuD,EAAaL,OAAOU,OAAOL,IAAMG,EAAG1D,UAAYuD,EAAEvD,UAAW,IAAI0D,IAP3C,GAUxCG,EAAsCX,OAAOY,QAAU,SAASC,GAChE,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAU5E,OAAQ0E,EAAIC,EAAGD,IAE5C,IAAK,IAAIT,KADTQ,EAAIG,UAAUF,GACAD,EAAOd,OAAOlD,UAAUyD,eAAerB,KAAK4B,EAAGR,KACzDO,EAAEP,GAAKQ,EAAER,IAEjB,OAAOO,GAOX,GAA8B,qBAAnBK,eAAgC,CAGvC,IAAIC,EAA0D,QAC9DtB,EAAgBsB,EAAY,WAEhC,IAAIC,EAAgC,SAAUC,GAE1C,SAASD,EAAeE,GACpB,IAAIC,EAAQF,EAAOnC,KAAKH,OAASA,KACjC,GAA6B,qBAAlBc,EACP,MAAM,IAAIvD,MAAM,6CAKpB,OAHAiF,EAAMD,OAASA,EACfC,EAAMC,UAAY3B,EAAc4B,MAChCF,EAAMG,QAAU7B,EAAc8B,SAAS,CAAEF,IAAKF,EAAMC,YAC7CD,EAoDX,OA7DAzB,EAAUsB,EAAgBC,GAW1BD,EAAetE,UAAU8E,KAAO,SAAUC,GACtC,IAAIN,EAAQxC,KACZ,OAAO,IAAI+C,SAAQ,SAAUC,EAASC,GAClC,IAAIC,EAEAA,EADA,eAAcJ,EAAYK,SACZ1E,EAAO2E,KAAKN,EAAYK,SAGxBL,EAAYK,SAAW,GAEzC,IAAIE,EAAiBb,EAAMG,QAAQG,EAAYQ,IAAK,CAChDC,KAAML,EAENM,SAAuC,gBAA7BV,EAAYW,aAAiC,KAAO,OAC9DC,QAAS9B,EAAS,CAEd,mBAAoB,kBAAoBkB,EAAYY,SACxDC,OAAQb,EAAYa,OACpBC,QAASd,EAAYc,UACtB,SAAUC,EAAOxE,EAAUkE,GAI1B,GAHIT,EAAYgB,cACZhB,EAAYgB,YAAYC,QAAU,MAElCF,EAOA,MANmB,cAAfA,EAAMG,OACNxB,EAAMD,OAAO0B,IAAI,OAASC,QAAS,8BACnCjB,EAAO,IAAI,SAEfT,EAAMD,OAAO0B,IAAI,OAASC,QAAS,4BAA8BL,QACjEZ,EAAOY,GAGPxE,EAAS8E,YAAc,KAAO9E,EAAS8E,WAAa,IACpDnB,EAAQ,IAAI,OAAa3D,EAAS8E,WAAY9E,EAAS+E,eAAiB,GAAIb,IAG5EN,EAAO,IAAI,OAAU5D,EAAS+E,eAAiB,GAAI/E,EAAS8E,YAAc,OAG9ErB,EAAYgB,cACZhB,EAAYgB,YAAYC,QAAU,WAC9BV,EAAegB,QACfpB,EAAO,IAAI,cAK3BZ,EAAetE,UAAUuG,gBAAkB,SAAUhB,GACjD,OAAOtD,KAAKyC,UAAU6B,gBAAgBhB,IAEnCjB,EA9DwB,CA+DjC,U,oDC9FF,IAAIkC,EAAS,EAAQ,QACjBC,EAAoB,EAAQ,QAC5BC,EAAK,EAAQ,QAAgBC,EAC7BC,EAAO,EAAQ,QAAkBD,EACjCE,EAAW,EAAQ,QACnBC,EAAS,EAAQ,QACjBC,EAAUP,EAAOnE,OACjB2E,EAAOD,EACPE,EAAQF,EAAQ/G,UAChBkH,EAAM,KACNC,EAAM,KAENC,EAAc,IAAIL,EAAQG,KAASA,EAEvC,GAAI,EAAQ,WAAuBE,GAAe,EAAQ,OAAR,EAAoB,WAGpE,OAFAD,EAAI,EAAQ,OAAR,CAAkB,WAAY,EAE3BJ,EAAQG,IAAQA,GAAOH,EAAQI,IAAQA,GAA4B,QAArBJ,EAAQG,EAAK,SAC/D,CACHH,EAAU,SAAgBvD,EAAGmD,GAC3B,IAAIU,EAAOpF,gBAAgB8E,EACvBO,EAAOT,EAASrD,GAChB+D,OAAYpF,IAANwE,EACV,OAAQU,GAAQC,GAAQ9D,EAAEG,cAAgBoD,GAAWQ,EAAM/D,EACvDiD,EAAkBW,EAChB,IAAIJ,EAAKM,IAASC,EAAM/D,EAAEgE,OAAShE,EAAGmD,GACtCK,GAAMM,EAAO9D,aAAauD,GAAWvD,EAAEgE,OAAShE,EAAG8D,GAAQC,EAAMT,EAAO1E,KAAKoB,GAAKmD,GACpFU,EAAOpF,KAAOgF,EAAOF,IAS3B,IAPA,IAAIU,EAAQ,SAAUC,GACpBA,KAAOX,GAAWL,EAAGK,EAASW,EAAK,CACjCC,cAAc,EACdC,IAAK,WAAc,OAAOZ,EAAKU,IAC/BG,IAAK,SAAUC,GAAMd,EAAKU,GAAOI,MAG5BC,EAAOnB,EAAKI,GAAO/C,EAAI,EAAG8D,EAAKxI,OAAS0E,GAAIwD,EAAMM,EAAK9D,MAChEgD,EAAMtD,YAAcoD,EACpBA,EAAQ/G,UAAYiH,EACpB,EAAQ,OAAR,CAAuBT,EAAQ,SAAUO,GAG3C,EAAQ,OAAR,CAA0B,W,kCCxC1B,IAAIvF,EAAW,EAAQ,QACnBwG,EAAW,EAAQ,QACnBC,EAAqB,EAAQ,QAC7BvG,EAAa,EAAQ,QAGzB,EAAQ,OAAR,CAAyB,QAAS,GAAG,SAAUC,EAASuG,EAAOC,EAAQrG,GACrE,MAAO,CAGL,SAAeC,GACb,IAAIC,EAAIL,EAAQM,MACZC,OAAeC,GAAVJ,OAAsBI,EAAYJ,EAAOmG,GAClD,YAAc/F,IAAPD,EAAmBA,EAAGE,KAAKL,EAAQC,GAAK,IAAIK,OAAON,GAAQmG,GAAOrI,OAAOmC,KAIlF,SAAUD,GACR,IAAIO,EAAMR,EAAgBqG,EAAQpG,EAAQE,MAC1C,GAAIK,EAAIC,KAAM,OAAOD,EAAIE,MACzB,IAAIC,EAAKjB,EAASO,GACdW,EAAI7C,OAAOoC,MACf,IAAKQ,EAAG+D,OAAQ,OAAO9E,EAAWe,EAAIC,GACtC,IAAI0F,EAAc3F,EAAG4F,QACrB5F,EAAGG,UAAY,EACf,IAEIC,EAFAyF,EAAI,GACJpE,EAAI,EAER,MAAwC,QAAhCrB,EAASnB,EAAWe,EAAIC,IAAc,CAC5C,IAAI6F,EAAW1I,OAAOgD,EAAO,IAC7ByF,EAAEpE,GAAKqE,EACU,KAAbA,IAAiB9F,EAAGG,UAAYqF,EAAmBvF,EAAGsF,EAASvF,EAAGG,WAAYwF,IAClFlE,IAEF,OAAa,IAANA,EAAU,KAAOoE,Q,oCCpC9B,W,kCCOO,IAAIE,EAPX,kCAQA,SAAWA,GAEPA,EAASA,EAAS,SAAW,GAAK,QAElCA,EAASA,EAAS,SAAW,GAAK,QAElCA,EAASA,EAAS,eAAiB,GAAK,cAExCA,EAASA,EAAS,WAAa,GAAK,UAEpCA,EAASA,EAAS,SAAW,GAAK,QAElCA,EAASA,EAAS,YAAc,GAAK,WAErCA,EAASA,EAAS,QAAU,GAAK,OAdrC,CAeGA,IAAaA,EAAW,M,oCCvB3B,kCAGA,IAAIC,EAA4B,WAC5B,SAASA,KAQT,OAJAA,EAAWzI,UAAUkG,IAAM,SAAUwC,EAAWC,KAGhDF,EAAWG,SAAW,IAAIH,EACnBA,EAToB,I,qBCF/BI,EAAOC,QAAU5F,OAAO6F,IAAM,SAAYC,EAAGC,GAE3C,OAAOD,IAAMC,EAAU,IAAND,GAAW,EAAIA,IAAM,EAAIC,EAAID,GAAKA,GAAKC,GAAKA,I,oCCH/D,oEAEA,IAAIpF,EAAsCX,OAAOY,QAAU,SAASC,GAChE,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAU5E,OAAQ0E,EAAIC,EAAGD,IAE5C,IAAK,IAAIT,KADTQ,EAAIG,UAAUF,GACAD,EAAOd,OAAOlD,UAAUyD,eAAerB,KAAK4B,EAAGR,KACzDO,EAAEP,GAAKQ,EAAER,IAEjB,OAAOO,GAGPmF,EAA8B,WAC9B,SAASA,EAAa9C,EAAY+C,EAAY/D,GAC1CnD,KAAKmE,WAAaA,EAClBnE,KAAKkH,WAAaA,EAClBlH,KAAKmD,QAAUA,EAEnB,OAAO8D,EANsB,GAa7BE,EAA4B,WAC5B,SAASA,KAoBT,OAlBAA,EAAWpJ,UAAU4H,IAAM,SAAUrC,EAAK8D,GACtC,OAAOpH,KAAK6C,KAAKjB,EAAS,GAAIwF,EAAS,CAAEzD,OAAQ,MAAOL,IAAKA,MAEjE6D,EAAWpJ,UAAUsJ,KAAO,SAAU/D,EAAK8D,GACvC,OAAOpH,KAAK6C,KAAKjB,EAAS,GAAIwF,EAAS,CAAEzD,OAAQ,OAAQL,IAAKA,MAElE6D,EAAWpJ,UAAUuJ,OAAS,SAAUhE,EAAK8D,GACzC,OAAOpH,KAAK6C,KAAKjB,EAAS,GAAIwF,EAAS,CAAEzD,OAAQ,SAAUL,IAAKA,MAQpE6D,EAAWpJ,UAAUuG,gBAAkB,SAAUhB,GAC7C,MAAO,IAEJ6D,EArBoB,I,kECxB/B,ICGWI,EDHPC,EAAS,WAAkB,IAAIC,EAAIzH,KAAK0H,EAAGD,EAAIE,MAAMD,GAAG,OAAOA,EAAG,UAAU,CAACA,EAAG,MAAM,CAACE,YAAY,CAAC,QAAU,UAAU,CAACF,EAAG,UAAU,CAACG,IAAI,OAAOD,YAAY,CAAC,OAAS,OAAO,MAAQ,MAAM,YAAY,SAASE,MAAM,CAAC,cAAc,QAAQC,GAAG,CAAC,OAAS,SAASC,GAAgC,OAAxBA,EAAOC,iBAAwBR,EAAIS,SAASnJ,MAAM,KAAMmD,cAAc,CAACwF,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,QAAQ,CAACJ,EAAG,WAAW,CAACS,MAAM,CAAC5H,MAAOkH,EAAIW,SAAUC,SAAS,SAAUC,GAAMb,EAAIW,SAASE,GAAKC,WAAW,eAAe,GAAGb,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,OAAO,CAACJ,EAAG,WAAW,CAACS,MAAM,CAAC5H,MAAOkH,EAAIe,YAAaH,SAAS,SAAUC,GAAMb,EAAIe,YAAYF,GAAKC,WAAW,kBAAkB,IAAI,GAAGd,EAAIgB,GAAIhB,EAAIjK,UAAU,SAASkL,EAAK7H,GAAO,OAAO6G,EAAG,KAAK,CAACjC,IAAI5E,EAAQ,eAAe,CAAC6G,EAAG,KAAK,CAACA,EAAG,IAAI,CAACD,EAAIkB,GAAG,YAAYlB,EAAIkB,GAAGlB,EAAImB,GAAGF,EAAKG,SAASnB,EAAG,KAAK,CAACA,EAAG,IAAI,CAACD,EAAIkB,GAAG,eAAelB,EAAIkB,GAAGlB,EAAImB,GAAGF,EAAKI,iBAAgBpB,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,WAAWC,GAAG,CAAC,MAAQN,EAAIsB,aAAa,CAACtB,EAAIkB,GAAG,QAAQjB,EAAG,YAAY,CAACI,MAAM,CAAC,KAAO,WAAWC,GAAG,CAAC,MAAQN,EAAIuB,UAAU,CAACvB,EAAIkB,GAAG,SAAS,GAAGjB,EAAG,WAAW,CAACuB,WAAW,CAAC,CAACC,KAAK,UAAUC,QAAQ,YAAY5I,MAAOkH,EAAI2B,YAAab,WAAW,gBAAgBX,YAAY,CAAC,MAAQ,QAAQE,MAAM,CAAC,KAAOL,EAAI4B,YAAY,CAAC3B,EAAG,kBAAkB,CAACI,MAAM,CAAC,KAAO,UAAUwB,YAAY7B,EAAI8B,GAAG,CAAC,CAAC9D,IAAI,UAAUxF,GAAG,SAASuJ,GAAO,MAAO,CAAC9B,EAAG,UAAU,CAAC+B,YAAY,oBAAoB3B,MAAM,CAAC,iBAAiB,OAAO,OAAS,KAAK,CAACJ,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,aAAa,CAACJ,EAAG,OAAO,CAACD,EAAIkB,GAAGlB,EAAImB,GAAGY,EAAME,IAAIC,eAAejC,EAAG,eAAe,CAACI,MAAM,CAAC,MAAQ,YAAY,CAACJ,EAAG,OAAO,CAACkC,SAAS,CAAC,UAAYnC,EAAImB,GAAGY,EAAME,IAAIvG,eAAe,UAAUuE,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,WAAW,KAAO,cAAcJ,EAAG,kBAAkB,CAACI,MAAM,CAAC,MAAQ,WAAWwB,YAAY7B,EAAI8B,GAAG,CAAC,CAAC9D,IAAI,UAAUxF,GAAG,SAAS4J,GAAO,MAAO,CAACnC,EAAG,OAAO,CAACoC,MAAMD,EAAMH,IAAIK,SAASH,SAAS,CAAC,UAAYnC,EAAImB,GAAGiB,EAAMH,IAAIvG,oBAAoB,IAAI,IAEl5D6G,EAAkB,G,wEEAlBjJ,EAAwC,WACxC,IAAIC,EAAgBC,OAAOC,gBACtB,CAAEC,UAAW,cAAgBC,OAAS,SAAUC,EAAGC,GAAKD,EAAEF,UAAYG,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIC,KAAKD,EAAOA,EAAEE,eAAeD,KAAIF,EAAEE,GAAKD,EAAEC,KACzE,OAAO,SAAUF,EAAGC,GAEhB,SAASG,IAAOzB,KAAK0B,YAAcL,EADnCL,EAAcK,EAAGC,GAEjBD,EAAEtD,UAAkB,OAANuD,EAAaL,OAAOU,OAAOL,IAAMG,EAAG1D,UAAYuD,EAAEvD,UAAW,IAAI0D,IAP3C,GAaxC,EAA+B,SAAUa,GAEzC,SAAS2H,EAAc1H,GACnB,IAAIC,EAAQF,EAAOnC,KAAKH,OAASA,KAEjC,OADAwC,EAAMD,OAASA,EACRC,EA+DX,OAnEAzB,EAAUkJ,EAAe3H,GAOzB2H,EAAclM,UAAU8E,KAAO,SAAUF,GACrC,IAAIH,EAAQxC,KAEZ,OAAI2C,EAAQmB,aAAenB,EAAQmB,YAAYoG,QACpCnH,QAAQE,OAAO,IAAI,QAEzBN,EAAQgB,OAGRhB,EAAQW,IAGN,IAAIP,SAAQ,SAAUC,EAASC,GAClC,IAAIkH,EAAM,IAAIhI,eACdgI,EAAIC,KAAKzH,EAAQgB,OAAQhB,EAAQW,KAAK,GACtC6G,EAAIE,iBAAkB,EACtBF,EAAIG,iBAAiB,mBAAoB,kBAEzCH,EAAIG,iBAAiB,eAAgB,4BACrC,IAAI5G,EAAUf,EAAQe,QAClBA,GACAzC,OAAO6E,KAAKpC,GACP6G,SAAQ,SAAUC,GACnBL,EAAIG,iBAAiBE,EAAQ9G,EAAQ8G,OAGzC7H,EAAQc,eACR0G,EAAI1G,aAAed,EAAQc,cAE3Bd,EAAQmB,cACRnB,EAAQmB,YAAYC,QAAU,WAC1BoG,EAAI9F,QACJpB,EAAO,IAAI,UAGfN,EAAQiB,UACRuG,EAAIvG,QAAUjB,EAAQiB,SAE1BuG,EAAIM,OAAS,WACL9H,EAAQmB,cACRnB,EAAQmB,YAAYC,QAAU,MAE9BoG,EAAIO,QAAU,KAAOP,EAAIO,OAAS,IAClC1H,EAAQ,IAAI,OAAamH,EAAIO,OAAQP,EAAIjD,WAAYiD,EAAI9K,UAAY8K,EAAIQ,eAGzE1H,EAAO,IAAI,OAAUkH,EAAIjD,WAAYiD,EAAIO,UAGjDP,EAAIS,QAAU,WACVpI,EAAMD,OAAO0B,IAAI,OAASC,QAAS,4BAA8BiG,EAAIO,OAAS,KAAOP,EAAIjD,WAAa,KACtGjE,EAAO,IAAI,OAAUkH,EAAIjD,WAAYiD,EAAIO,UAE7CP,EAAIU,UAAY,WACZrI,EAAMD,OAAO0B,IAAI,OAASC,QAAS,8BACnCjB,EAAO,IAAI,SAEfkH,EAAItH,KAAKF,EAAQQ,SAAW,OA/CrBJ,QAAQE,OAAO,IAAI1F,MAAM,oBAHzBwF,QAAQE,OAAO,IAAI1F,MAAM,wBAqDjC0M,EApEuB,CAqEhC9C,EAAA,MClFE,EAAwC,WACxC,IAAInG,EAAgBC,OAAOC,gBACtB,CAAEC,UAAW,cAAgBC,OAAS,SAAUC,EAAGC,GAAKD,EAAEF,UAAYG,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIC,KAAKD,EAAOA,EAAEE,eAAeD,KAAIF,EAAEE,GAAKD,EAAEC,KACzE,OAAO,SAAUF,EAAGC,GAEhB,SAASG,IAAOzB,KAAK0B,YAAcL,EADnCL,EAAcK,EAAGC,GAEjBD,EAAEtD,UAAkB,OAANuD,EAAaL,OAAOU,OAAOL,IAAMG,EAAG1D,UAAYuD,EAAEvD,UAAW,IAAI0D,IAP3C,GAexC,EAAmC,SAAUa,GAG7C,SAASwI,EAAkBvI,GACvB,IAAIC,EAAQF,EAAOnC,KAAKH,OAASA,KAOjC,MAN8B,qBAAnBmC,eACPK,EAAMuI,WAAa,IAAI,EAAcxI,GAGrCC,EAAMuI,WAAa,IAAI1I,EAAA,KAAeE,GAEnCC,EAmBX,OA7BA,EAAUsI,EAAmBxI,GAa7BwI,EAAkB/M,UAAU8E,KAAO,SAAUF,GAEzC,OAAIA,EAAQmB,aAAenB,EAAQmB,YAAYoG,QACpCnH,QAAQE,OAAO,IAAI,QAEzBN,EAAQgB,OAGRhB,EAAQW,IAGNtD,KAAK+K,WAAWlI,KAAKF,GAFjBI,QAAQE,OAAO,IAAI1F,MAAM,oBAHzBwF,QAAQE,OAAO,IAAI1F,MAAM,wBAOxCuN,EAAkB/M,UAAUuG,gBAAkB,SAAUhB,GACpD,OAAOtD,KAAK+K,WAAWzG,gBAAgBhB,IAEpCwH,EA9B2B,CA+BpC3D,EAAA,M,aF5CF,SAAWI,GAEPA,EAAYA,EAAY,cAAgB,GAAK,aAE7CA,EAAYA,EAAY,cAAgB,GAAK,aAE7CA,EAAYA,EAAY,cAAgB,GAAK,aAE7CA,EAAYA,EAAY,oBAAsB,GAAK,mBAEnDA,EAAYA,EAAY,oBAAsB,GAAK,mBAEnDA,EAAYA,EAAY,QAAU,GAAK,OAEvCA,EAAYA,EAAY,SAAW,GAAK,SAd5C,CAeGA,IAAgBA,EAAc,K,IGyBtByD,E,YA1CPC,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAIrI,WAAU,SAAUC,EAASC,GAC/C,SAASqI,EAAU/K,GAAS,IAAMgL,EAAKF,EAAUG,KAAKjL,IAAW,MAAOkL,GAAKxI,EAAOwI,IACpF,SAASC,EAASnL,GAAS,IAAMgL,EAAKF,EAAU,SAAS9K,IAAW,MAAOkL,GAAKxI,EAAOwI,IACvF,SAASF,EAAK3K,GAAUA,EAAON,KAAO0C,EAAQpC,EAAOL,OAAS,IAAI6K,GAAE,SAAUpI,GAAWA,EAAQpC,EAAOL,UAAWoL,KAAKL,EAAWI,GACnIH,GAAMF,EAAYA,EAAUtM,MAAMmM,EAASC,GAAc,KAAKK,YAGlEI,EAA4C,SAAUV,EAAS3H,GAC/D,IAAsGmB,EAAGsC,EAAGlF,EAAG+J,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPlK,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOmK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEL,KAAMW,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOrM,OAAU6L,EACvJ,SAASM,EAAKlK,GAAK,OAAO,SAAUqK,GAAK,OAAOf,EAAK,CAACtJ,EAAGqK,KACzD,SAASf,EAAKgB,GACV,GAAI7H,EAAG,MAAM,IAAI8H,UAAU,mCAC3B,MAAOV,EAAG,IACN,GAAIpH,EAAI,EAAGsC,IAAMlF,EAAY,EAARyK,EAAG,GAASvF,EAAE,UAAYuF,EAAG,GAAKvF,EAAE,YAAclF,EAAIkF,EAAE,YAAclF,EAAE3B,KAAK6G,GAAI,GAAKA,EAAEwE,SAAW1J,EAAIA,EAAE3B,KAAK6G,EAAGuF,EAAG,KAAKjM,KAAM,OAAOwB,EAE3J,OADIkF,EAAI,EAAGlF,IAAGyK,EAAK,CAAS,EAARA,EAAG,GAAQzK,EAAEvB,QACzBgM,EAAG,IACP,KAAK,EAAG,KAAK,EAAGzK,EAAIyK,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAExL,MAAOgM,EAAG,GAAIjM,MAAM,GAChD,KAAK,EAAGwL,EAAEC,QAAS/E,EAAIuF,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIxO,MAAOoO,EAAEG,KAAKvO,MAAO,SACxC,QACI,GAAMoE,EAAIgK,EAAEG,OAAMnK,EAAIA,EAAExE,OAAS,GAAKwE,EAAEA,EAAExE,OAAS,MAAkB,IAAViP,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAczK,GAAMyK,EAAG,GAAKzK,EAAE,IAAMyK,EAAG,GAAKzK,EAAE,IAAM,CAAEgK,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIA,EAAIyK,EAAI,MAC7D,GAAIzK,GAAKgK,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIgK,EAAEI,IAAIO,KAAKF,GAAK,MACvDzK,EAAE,IAAIgK,EAAEI,IAAIxO,MAChBoO,EAAEG,KAAKvO,MAAO,SAEtB6O,EAAKhJ,EAAKpD,KAAK+K,EAASY,GAC1B,MAAOL,GAAKc,EAAK,CAAC,EAAGd,GAAIzE,EAAI,EAAK,QAAUtC,EAAI5C,EAAI,EACtD,GAAY,EAARyK,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhM,MAAOgM,EAAG,GAAKA,EAAG,QAAK,EAAQjM,MAAM,KAO9EoM,EAAwB,IACxBC,EAA8B,MAGlC,SAAW3B,GAEPA,EAAmBA,EAAmB,gBAAkB,GAAK,eAE7DA,EAAmBA,EAAmB,aAAe,GAAK,aAJ9D,CAKGA,IAAuBA,EAAqB,KAE/C,IChDW4B,EAYAC,EDoCP,EAA+B,WAC/B,SAASC,EAAcC,EAAYxK,EAAQyK,GACvC,IAAIxK,EAAQxC,KACZ,OAAIiN,WAAWF,EAAY,cAC3B,OAAIE,WAAW1K,EAAQ,UACvB,OAAI0K,WAAWD,EAAU,YACzBhN,KAAKkN,4BAA8BR,EACnC1M,KAAKmN,gCAAkCR,EACvC3M,KAAKuC,OAASA,EACdvC,KAAKgN,SAAWA,EAChBhN,KAAK+M,WAAaA,EAClB/M,KAAKoN,kBAAoB,IAAItP,EAAA,KAC7BkC,KAAK+M,WAAWM,UAAY,SAAUhP,GAAQ,OAAOmE,EAAM8K,oBAAoBjP,IAC/E2B,KAAK+M,WAAWQ,QAAU,SAAU1J,GAAS,OAAOrB,EAAMgL,iBAAiB3J,IAC3E7D,KAAKyN,UAAY,GACjBzN,KAAK0N,QAAU,GACf1N,KAAK2N,gBAAkB,GACvB3N,KAAK4N,GAAK,EACV5N,KAAK6N,2BAA4B,EACjC7N,KAAK8N,gBAAkB9C,EAAmB+C,aAC1C/N,KAAKgO,kBAAoBhO,KAAKgN,SAASiB,aAAa,CAAE3O,KAAMiI,EAAY2G,OA2b5E,OApbApB,EAAcnL,OAAS,SAAUoL,EAAYxK,EAAQyK,GACjD,OAAO,IAAIF,EAAcC,EAAYxK,EAAQyK,IAEjD/L,OAAOkN,eAAerB,EAAc/O,UAAW,QAAS,CAEpD4H,IAAK,WACD,OAAO3F,KAAK8N,iBAEhBM,YAAY,EACZ1I,cAAc,IAMlBoH,EAAc/O,UAAUsQ,MAAQ,WAC5B,OAAOpD,EAAUjL,UAAM,OAAQ,GAAQ,WACnC,IAAI/B,EAAkBqQ,EAClB9L,EAAQxC,KACZ,OAAO4L,EAAY5L,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EAWD,OAVA9N,EAAmB,CACf+O,SAAUhN,KAAKgN,SAAS9D,KACxBsF,QAASxO,KAAKgN,SAASwB,SAE3BxO,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,2BAChCzO,KAAK6N,2BAA4B,EACjCS,EAAmB,IAAIvL,SAAQ,SAAUC,EAASC,GAC9CT,EAAMkM,kBAAoB1L,EAC1BR,EAAMmM,kBAAoB1L,KAEvB,CAAC,EAAajD,KAAK+M,WAAWsB,MAAMrO,KAAKgN,SAAS4B,iBAC7D,KAAK,EAGD,OAFAL,EAAGvC,OACHhM,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,8BACzB,CAAC,EAAazO,KAAK6O,YAAY7O,KAAKoN,kBAAkBpP,sBAAsBC,KACvF,KAAK,EAQD,OAPAsQ,EAAGvC,OACHhM,KAAKuC,OAAO0B,IAAI,OAAS6K,YAAa,sBAAwB9O,KAAKgN,SAAS9D,KAAO,MAEnFlJ,KAAK+O,iBACL/O,KAAKgP,qBACLhP,KAAKiP,yBAEE,CAAC,EAAaX,GACzB,KAAK,EAID,OAFAC,EAAGvC,OACHhM,KAAK8N,gBAAkB9C,EAAmBkE,UACnC,CAAC,WAS5BpC,EAAc/O,UAAUoR,KAAO,WAI3B,OAHAnP,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,2BAChCzO,KAAK+O,iBACL/O,KAAKoP,mBACEpP,KAAK+M,WAAWoC,QAS3BrC,EAAc/O,UAAUsR,OAAS,SAAUC,GAGvC,IAFA,IAAI9M,EAAQxC,KACRuP,EAAO,GACFC,EAAK,EAAGA,EAAKtN,UAAU5E,OAAQkS,IACpCD,EAAKC,EAAK,GAAKtN,UAAUsN,GAE7B,IACIC,EADAC,EAAuB1P,KAAK2P,uBAAuBL,EAAYC,GAE/DK,EAAU,IAAI,OAClBA,EAAQC,eAAiB,WACrB,IAAIC,EAAmBtN,EAAMuN,uBAAuBL,EAAqBM,cACrEC,EAAgBzN,EAAMwK,SAASiB,aAAa6B,GAEhD,cADOtN,EAAMiL,UAAUiC,EAAqBM,cACrCP,EAAa9D,MAAK,WACrB,OAAOnJ,EAAMqM,YAAYoB,OAGjCjQ,KAAKyN,UAAUiC,EAAqBM,cAAgB,SAAUE,EAAiBrM,GACvEA,EACA+L,EAAQ/L,MAAMA,GAGTqM,IAEDA,EAAgB5Q,OAASiI,EAAY4I,WACjCD,EAAgBrM,MAChB+L,EAAQ/L,MAAM,IAAItG,MAAM2S,EAAgBrM,QAGxC+L,EAAQQ,WAIZR,EAAQpE,KAAM0E,EAAoB,QAI9C,IAAIpH,EAAU9I,KAAKgN,SAASiB,aAAayB,GAMzC,OALAD,EAAezP,KAAK6O,YAAY/F,GAC3BuH,OAAM,SAAU5E,GACjBmE,EAAQ/L,MAAM4H,UACPjJ,EAAMiL,UAAUiC,EAAqBM,iBAEzCJ,GAEX9C,EAAc/O,UAAU8Q,YAAc,SAAU/F,GAE5C,OADA9I,KAAKiP,yBACEjP,KAAK+M,WAAWlK,KAAKiG,IAWhCgE,EAAc/O,UAAU8E,KAAO,SAAUyM,GAErC,IADA,IAAIC,EAAO,GACFC,EAAK,EAAGA,EAAKtN,UAAU5E,OAAQkS,IACpCD,EAAKC,EAAK,GAAKtN,UAAUsN,GAE7B,IAAIE,EAAuB1P,KAAKsQ,iBAAiBhB,EAAYC,GAAM,GAC/DzG,EAAU9I,KAAKgN,SAASiB,aAAayB,GACzC,OAAO1P,KAAK6O,YAAY/F,IAa5BgE,EAAc/O,UAAUwS,OAAS,SAAUjB,GAGvC,IAFA,IAAI9M,EAAQxC,KACRuP,EAAO,GACFC,EAAK,EAAGA,EAAKtN,UAAU5E,OAAQkS,IACpCD,EAAKC,EAAK,GAAKtN,UAAUsN,GAE7B,IAAIE,EAAuB1P,KAAKsQ,iBAAiBhB,EAAYC,GAAM,GAC/DhO,EAAI,IAAIwB,SAAQ,SAAUC,EAASC,GAEnCT,EAAMiL,UAAUiC,EAAqBM,cAAgB,SAAUE,EAAiBrM,GACxEA,EACAZ,EAAOY,GAGFqM,IAEDA,EAAgB5Q,OAASiI,EAAY4I,WACjCD,EAAgBrM,MAChBZ,EAAO,IAAI1F,MAAM2S,EAAgBrM,QAGjCb,EAAQkN,EAAgBtP,QAI5BqC,EAAO,IAAI1F,MAAM,4BAA8B2S,EAAgB5Q,SAI3E,IAAIwJ,EAAUtG,EAAMwK,SAASiB,aAAayB,GAC1ClN,EAAMqM,YAAY/F,GACbuH,OAAM,SAAU5E,GACjBxI,EAAOwI,UAEAjJ,EAAMiL,UAAUiC,EAAqBM,oBAGpD,OAAOzO,GAOXuL,EAAc/O,UAAUgK,GAAK,SAAUuH,EAAYkB,GAC1ClB,GAAekB,IAGpBlB,EAAaA,EAAWmB,cACnBzQ,KAAK0N,QAAQ4B,KACdtP,KAAK0N,QAAQ4B,GAAc,KAGsB,IAAjDtP,KAAK0N,QAAQ4B,GAAYzQ,QAAQ2R,IAGrCxQ,KAAK0N,QAAQ4B,GAAY7C,KAAK+D,KAElC1D,EAAc/O,UAAU2S,IAAM,SAAUpB,EAAY3L,GAChD,GAAK2L,EAAL,CAGAA,EAAaA,EAAWmB,cACxB,IAAIE,EAAW3Q,KAAK0N,QAAQ4B,GAC5B,GAAKqB,EAGL,GAAIhN,EAAQ,CACR,IAAIiN,EAAYD,EAAS9R,QAAQ8E,IACd,IAAfiN,IACAD,EAASE,OAAOD,EAAW,GACH,IAApBD,EAASrT,eACF0C,KAAK0N,QAAQ4B,gBAKrBtP,KAAK0N,QAAQ4B,KAO5BxC,EAAc/O,UAAUwP,QAAU,SAAUlF,GACpCA,GACArI,KAAK2N,gBAAgBlB,KAAKpE,IAGlCyE,EAAc/O,UAAUuP,oBAAsB,SAAUjP,GAOpD,GANA2B,KAAK+O,iBACA/O,KAAK6N,4BACNxP,EAAO2B,KAAK8Q,yBAAyBzS,GACrC2B,KAAK6N,2BAA4B,GAGjCxP,EAGA,IADA,IAAIb,EAAWwC,KAAKgN,SAAS+D,cAAc1S,EAAM2B,KAAKuC,QAC7CiN,EAAK,EAAGwB,EAAaxT,EAAUgS,EAAKwB,EAAW1T,OAAQkS,IAAM,CAClE,IAAI1G,EAAUkI,EAAWxB,GACzB,OAAQ1G,EAAQxJ,MACZ,KAAKiI,EAAY0J,WACbjR,KAAKkR,mBAAmBpI,GACxB,MACJ,KAAKvB,EAAY4J,WACjB,KAAK5J,EAAY4I,WACb,IAAI9H,EAAWrI,KAAKyN,UAAU3E,EAAQkH,cACtB,MAAZ3H,IACIS,EAAQxJ,OAASiI,EAAY4I,mBACtBnQ,KAAKyN,UAAU3E,EAAQkH,cAElC3H,EAASS,IAEb,MACJ,KAAKvB,EAAY2G,KAEb,MACJ,KAAK3G,EAAY6J,MACbpR,KAAKuC,OAAO0B,IAAI,OAAS6K,YAAa,uCAGtC9O,KAAK+M,WAAWoC,KAAKrG,EAAQjF,MAAQ,IAAItG,MAAM,sCAAwCuL,EAAQjF,YAAS3D,GACxG,MACJ,QACIF,KAAKuC,OAAO0B,IAAI,OAASC,QAAS,yBAA2B4E,EAAQxJ,KAAO,KAC5E,OAIhBU,KAAKgP,sBAETlC,EAAc/O,UAAU+S,yBAA2B,SAAUzS,GACzD,IAAIkQ,EACAjQ,EACAE,EACJ,IACI+P,EAAKvO,KAAKoN,kBAAkBhP,uBAAuBC,GAAOG,EAAgB+P,EAAG,GAAIjQ,EAAkBiQ,EAAG,GAE1G,MAAO9C,GACH,IAAI3C,EAAU,qCAAuC2C,EACrDzL,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAOuL,GAChC,IAAIjF,EAAQ,IAAItG,MAAMuL,GAKtB,MAFA9I,KAAK+M,WAAWoC,KAAKtL,GACrB7D,KAAK2O,kBAAkB9K,GACjBA,EAEV,GAAIvF,EAAgBuF,MAAO,CACnBiF,EAAU,oCAAsCxK,EAAgBuF,MAMpE,MALA7D,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAOuL,GAChC9I,KAAK2O,kBAAkB7F,GAGvB9I,KAAK+M,WAAWoC,KAAK,IAAI5R,MAAMuL,IACzB,IAAIvL,MAAMuL,GAMpB,OAHI9I,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,8BAEpCzO,KAAK0O,oBACElQ,GAEXsO,EAAc/O,UAAUkR,uBAAyB,WAC7C,IAAIzM,EAAQxC,KACZA,KAAKoP,mBACLpP,KAAKqR,iBAAmBC,YAAW,WAAc,OAAOrG,EAAUzI,OAAO,OAAQ,GAAQ,WAErF,OAAOoJ,EAAY5L,MAAM,SAAUuR,GAC/B,OAAQA,EAAGxF,OACP,KAAK,EACD,GAAM/L,KAAK8N,kBAAoB9C,EAAmBkE,UAAY,MAAO,CAAC,EAAa,GACnFqC,EAAGxF,MAAQ,EACf,KAAK,EAED,OADAwF,EAAGtF,KAAKQ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAazM,KAAK6O,YAAY7O,KAAKgO,oBAC/C,KAAK,EAED,OADAuD,EAAGvF,OACI,CAAC,EAAa,GACzB,KAAK,EAKD,OAJKuF,EAAGvF,OAGRhM,KAAKoP,mBACE,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,YAGrBpP,KAAKmN,kCAEhBL,EAAc/O,UAAUiR,mBAAqB,WACzC,IAAIxM,EAAQxC,KACPA,KAAK+M,WAAWyE,UAAaxR,KAAK+M,WAAWyE,SAASC,oBAEvDzR,KAAK0R,cAAgBJ,YAAW,WAAc,OAAO9O,EAAMmP,kBAAoB3R,KAAKkN,+BAG5FJ,EAAc/O,UAAU4T,cAAgB,WAIpC3R,KAAK+M,WAAWoC,KAAK,IAAI5R,MAAM,yEAEnCuP,EAAc/O,UAAUmT,mBAAqB,SAAUU,GACnD,IAAIpP,EAAQxC,KACR0N,EAAU1N,KAAK0N,QAAQkE,EAAkBC,OAAOpB,eACpD,GAAI/C,GAEA,GADAA,EAAQnD,SAAQ,SAAUuH,GAAK,OAAOA,EAAE/S,MAAMyD,EAAOoP,EAAkB1P,cACnE0P,EAAkB5B,aAAc,CAEhC,IAAIlH,EAAU,qFACd9I,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAOuL,GAGhC9I,KAAK+M,WAAWoC,KAAK,IAAI5R,MAAMuL,UAInC9I,KAAKuC,OAAO0B,IAAI,OAASC,QAAS,mCAAqC0N,EAAkBC,OAAS,aAG1G/E,EAAc/O,UAAUyP,iBAAmB,SAAU3J,GACjD,IAAIrB,EAAQxC,KACRyN,EAAYzN,KAAKyN,UACrBzN,KAAKyN,UAAY,GACjBzN,KAAK8N,gBAAkB9C,EAAmB+C,aAGtC/N,KAAK2O,mBACL3O,KAAK2O,kBAAkB9K,GAE3B5C,OAAO6E,KAAK2H,GACPlD,SAAQ,SAAU9E,GACnB,IAAI4C,EAAWoF,EAAUhI,GACzB4C,EAAS,KAAMxE,GAAgB,IAAItG,MAAM,2DAE7CyC,KAAK+O,iBACL/O,KAAKoP,mBACLpP,KAAK2N,gBAAgBpD,SAAQ,SAAUwH,GAAK,OAAOA,EAAEhT,MAAMyD,EAAO,CAACqB,QAEvEiJ,EAAc/O,UAAUqR,iBAAmB,WACnCpP,KAAKqR,kBACLW,aAAahS,KAAKqR,mBAG1BvE,EAAc/O,UAAUgR,eAAiB,WACjC/O,KAAK0R,eACLM,aAAahS,KAAK0R,gBAG1B5E,EAAc/O,UAAUuS,iBAAmB,SAAUhB,EAAYC,EAAM0C,GACnE,GAAIA,EACA,MAAO,CACH/P,UAAWqN,EACXsC,OAAQvC,EACRhQ,KAAMiI,EAAY0J,YAItB,IAAIrD,EAAK5N,KAAK4N,GAEd,OADA5N,KAAK4N,KACE,CACH1L,UAAWqN,EACXS,aAAcpC,EAAGsE,WACjBL,OAAQvC,EACRhQ,KAAMiI,EAAY0J,aAI9BnE,EAAc/O,UAAU4R,uBAAyB,SAAUL,EAAYC,GACnE,IAAI3B,EAAK5N,KAAK4N,GAEd,OADA5N,KAAK4N,KACE,CACH1L,UAAWqN,EACXS,aAAcpC,EAAGsE,WACjBL,OAAQvC,EACRhQ,KAAMiI,EAAY4K,mBAG1BrF,EAAc/O,UAAUgS,uBAAyB,SAAUnC,GACvD,MAAO,CACHoC,aAAcpC,EACdtO,KAAMiI,EAAY6K,mBAGnBtF,EA/cuB,IC/ClC,SAAWF,GAEPA,EAAkBA,EAAkB,QAAU,GAAK,OAEnDA,EAAkBA,EAAkB,cAAgB,GAAK,aAEzDA,EAAkBA,EAAkB,oBAAsB,GAAK,mBAE/DA,EAAkBA,EAAkB,eAAiB,GAAK,eAR9D,CASGA,IAAsBA,EAAoB,KAG7C,SAAWC,GAEPA,EAAeA,EAAe,QAAU,GAAK,OAE7CA,EAAeA,EAAe,UAAY,GAAK,SAJnD,CAKGA,IAAmBA,EAAiB,KCfvC,IAAIwF,EAAiC,WACjC,SAASA,IACLrS,KAAKsS,WAAY,EACjBtS,KAAK+D,QAAU,KAwBnB,OAtBAsO,EAAgBtU,UAAUsG,MAAQ,WACzBrE,KAAKsS,YACNtS,KAAKsS,WAAY,EACbtS,KAAK+D,SACL/D,KAAK+D,YAIjB9C,OAAOkN,eAAekE,EAAgBtU,UAAW,SAAU,CACvD4H,IAAK,WACD,OAAO3F,MAEXoO,YAAY,EACZ1I,cAAc,IAElBzE,OAAOkN,eAAekE,EAAgBtU,UAAW,UAAW,CACxD4H,IAAK,WACD,OAAO3F,KAAKsS,WAEhBlE,YAAY,EACZ1I,cAAc,IAEX2M,EA3ByB,GCLhC,EAAwC,SAAUnH,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAIrI,WAAU,SAAUC,EAASC,GAC/C,SAASqI,EAAU/K,GAAS,IAAMgL,EAAKF,EAAUG,KAAKjL,IAAW,MAAOkL,GAAKxI,EAAOwI,IACpF,SAASC,EAASnL,GAAS,IAAMgL,EAAKF,EAAU,SAAS9K,IAAW,MAAOkL,GAAKxI,EAAOwI,IACvF,SAASF,EAAK3K,GAAUA,EAAON,KAAO0C,EAAQpC,EAAOL,OAAS,IAAI6K,GAAE,SAAUpI,GAAWA,EAAQpC,EAAOL,UAAWoL,KAAKL,EAAWI,GACnIH,GAAMF,EAAYA,EAAUtM,MAAMmM,EAASC,GAAc,KAAKK,YAGlE,EAA4C,SAAUN,EAAS3H,GAC/D,IAAsGmB,EAAGsC,EAAGlF,EAAG+J,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPlK,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOmK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEL,KAAMW,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOrM,OAAU6L,EACvJ,SAASM,EAAKlK,GAAK,OAAO,SAAUqK,GAAK,OAAOf,EAAK,CAACtJ,EAAGqK,KACzD,SAASf,EAAKgB,GACV,GAAI7H,EAAG,MAAM,IAAI8H,UAAU,mCAC3B,MAAOV,EAAG,IACN,GAAIpH,EAAI,EAAGsC,IAAMlF,EAAY,EAARyK,EAAG,GAASvF,EAAE,UAAYuF,EAAG,GAAKvF,EAAE,YAAclF,EAAIkF,EAAE,YAAclF,EAAE3B,KAAK6G,GAAI,GAAKA,EAAEwE,SAAW1J,EAAIA,EAAE3B,KAAK6G,EAAGuF,EAAG,KAAKjM,KAAM,OAAOwB,EAE3J,OADIkF,EAAI,EAAGlF,IAAGyK,EAAK,CAAS,EAARA,EAAG,GAAQzK,EAAEvB,QACzBgM,EAAG,IACP,KAAK,EAAG,KAAK,EAAGzK,EAAIyK,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAExL,MAAOgM,EAAG,GAAIjM,MAAM,GAChD,KAAK,EAAGwL,EAAEC,QAAS/E,EAAIuF,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIxO,MAAOoO,EAAEG,KAAKvO,MAAO,SACxC,QACI,GAAMoE,EAAIgK,EAAEG,OAAMnK,EAAIA,EAAExE,OAAS,GAAKwE,EAAEA,EAAExE,OAAS,MAAkB,IAAViP,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAczK,GAAMyK,EAAG,GAAKzK,EAAE,IAAMyK,EAAG,GAAKzK,EAAE,IAAM,CAAEgK,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIA,EAAIyK,EAAI,MAC7D,GAAIzK,GAAKgK,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIgK,EAAEI,IAAIO,KAAKF,GAAK,MACvDzK,EAAE,IAAIgK,EAAEI,IAAIxO,MAChBoO,EAAEG,KAAKvO,MAAO,SAEtB6O,EAAKhJ,EAAKpD,KAAK+K,EAASY,GAC1B,MAAOL,GAAKc,EAAK,CAAC,EAAGd,GAAIzE,EAAI,EAAK,QAAUtC,EAAI5C,EAAI,EACtD,GAAY,EAARyK,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhM,MAAOgM,EAAG,GAAKA,EAAG,QAAK,EAAQjM,MAAM,KAU9E,EAAsC,WACtC,SAASiS,EAAqBxH,EAAYyH,EAAoBjQ,EAAQkQ,GAClEzS,KAAK+K,WAAaA,EAClB/K,KAAKwS,mBAAqBA,EAC1BxS,KAAKuC,OAASA,EACdvC,KAAK0S,UAAY,IAAIL,EACrBrS,KAAKyS,kBAAoBA,EACzBzS,KAAK2S,SAAU,EACf3S,KAAKqN,UAAY,KACjBrN,KAAKuN,QAAU,KAkOnB,OAhOAtM,OAAOkN,eAAeoE,EAAqBxU,UAAW,cAAe,CAEjE4H,IAAK,WACD,OAAO3F,KAAK0S,UAAUxI,SAE1BkE,YAAY,EACZ1I,cAAc,IAElB6M,EAAqBxU,UAAU6U,QAAU,SAAUtP,EAAKsL,GACpD,OAAO,EAAU5O,UAAM,OAAQ,GAAQ,WACnC,IAAI6S,EAAaC,EAAOC,EAAS1T,EACjC,OAAO,EAAYW,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EAOD,GANA,OAAIkB,WAAW3J,EAAK,OACpB,OAAI2J,WAAW2B,EAAgB,kBAC/B,OAAIoE,KAAKpE,EAAgB/B,EAAgB,kBACzC7M,KAAKsD,IAAMA,EACXtD,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,uCAE5BrE,IAAmB/B,EAAeqG,QACP,qBAAnB/Q,gBAA+E,kBAAtC,IAAIA,gBAAiBsB,aACtE,MAAM,IAAIlG,MAAM,8FAUpB,OARAsV,EAAc,CACV/O,YAAa9D,KAAK0S,UAAUS,OAC5BzP,QAAS,GACTE,QAAS,KAETgL,IAAmB/B,EAAeqG,SAClCL,EAAYpP,aAAe,eAExB,CAAC,EAAazD,KAAKoT,kBAC9B,KAAK,EAKD,OAJAN,EAAQvE,EAAGvC,OACXhM,KAAKqT,kBAAkBR,EAAaC,GACpCC,EAAUzP,EAAM,MAAQgQ,KAAKC,MAC7BvT,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,oCAAsCF,EAAU,KACzE,CAAC,EAAa/S,KAAK+K,WAAWpF,IAAIoN,EAASF,IACtD,KAAK,EAYD,OAXAxT,EAAWkP,EAAGvC,OACc,MAAxB3M,EAAS8E,YACTnE,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAO,qDAAuD8B,EAAS8E,WAAa,KAE7GnE,KAAKwT,WAAa,IAAI,OAAUnU,EAAS6H,YAAc,GAAI7H,EAAS8E,YACpEnE,KAAK2S,SAAU,GAGf3S,KAAK2S,SAAU,EAEnB3S,KAAKyT,UAAYzT,KAAK0T,KAAK1T,KAAKsD,IAAKuP,GAC9B,CAAC,WAK5BN,EAAqBxU,UAAUqV,eAAiB,WAC5C,OAAO,EAAUpT,UAAM,OAAQ,GAAQ,WACnC,OAAO,EAAYA,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EACD,OAAK/L,KAAKwS,mBACH,CAAC,EAAaxS,KAAKwS,sBADW,CAAC,EAAa,GAEvD,KAAK,EAAG,MAAO,CAAC,EAAcjE,EAAGvC,QACjC,KAAK,EAAG,MAAO,CAAC,EAAc,cAK9CuG,EAAqBxU,UAAUsV,kBAAoB,SAAU1Q,EAASmQ,GAC7DnQ,EAAQe,UACTf,EAAQe,QAAU,IAElBoP,EAEAnQ,EAAQe,QAAQ,iBAAmB,UAAYoP,EAI/CnQ,EAAQe,QAAQ,yBAETf,EAAQe,QAAQ,kBAG/B6O,EAAqBxU,UAAU2V,KAAO,SAAUpQ,EAAKuP,GACjD,OAAO,EAAU7S,UAAM,OAAQ,GAAQ,WACnC,IAAI8S,EAAOC,EAAS1T,EAAUsU,EAC9B,OAAO,EAAY3T,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EACDwC,EAAGtC,KAAKQ,KAAK,CAAC,EAAG,CAAE,EAAG,IACtB8B,EAAGxC,MAAQ,EACf,KAAK,EACD,OAAK/L,KAAK2S,QACH,CAAC,EAAa3S,KAAKoT,kBADA,CAAC,EAAa,GAE5C,KAAK,EACDN,EAAQvE,EAAGvC,OACXhM,KAAKqT,kBAAkBR,EAAaC,GACpCvE,EAAGxC,MAAQ,EACf,KAAK,EAID,OAHAwC,EAAGtC,KAAKQ,KAAK,CAAC,EAAG,EAAG,CAAE,IACtBsG,EAAUzP,EAAM,MAAQgQ,KAAKC,MAC7BvT,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,oCAAsCF,EAAU,KACzE,CAAC,EAAa/S,KAAK+K,WAAWpF,IAAIoN,EAASF,IACtD,KAAK,EAyBD,OAxBAxT,EAAWkP,EAAGvC,OACc,MAAxB3M,EAAS8E,YACTnE,KAAKuC,OAAO0B,IAAI,OAAS6K,YAAa,sDACtC9O,KAAK2S,SAAU,GAEc,MAAxBtT,EAAS8E,YACdnE,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAO,qDAAuD8B,EAAS8E,WAAa,KAE7GnE,KAAKwT,WAAa,IAAI,OAAUnU,EAAS6H,YAAc,GAAI7H,EAAS8E,YACpEnE,KAAK2S,SAAU,GAIXtT,EAAS8D,SACTnD,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,0CAA4C,eAAc5T,EAAS8D,QAASnD,KAAKyS,mBAAqB,KAClIzS,KAAKqN,WACLrN,KAAKqN,UAAUhO,EAAS8D,UAK5BnD,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,sDAGjC,CAAC,EAAa,GACzB,KAAK,EAiBD,OAhBAU,EAAMpF,EAAGvC,OACJhM,KAAK2S,QAKFgB,aAAe,OAEf3T,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,uDAIhCjT,KAAKwT,WAAaG,EAClB3T,KAAK2S,SAAU,GAVnB3S,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,wDAA0DU,EAAI7K,SAa3F,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAOD,OANA9I,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,6CAG3BjT,KAAK4T,aACN5T,KAAK6T,eAEF,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,WAKhCtB,EAAqBxU,UAAU8E,KAAO,SAAUxE,GAC5C,OAAO,EAAU2B,UAAM,OAAQ,GAAQ,WACnC,OAAO,EAAYA,MAAM,SAAUuO,GAC/B,OAAKvO,KAAK2S,QAGH,CAAC,EAAc,eAAY3S,KAAKuC,OAAQ,cAAevC,KAAK+K,WAAY/K,KAAKsD,IAAKtD,KAAKwS,mBAAoBnU,EAAM2B,KAAKyS,oBAFlH,CAAC,EAAc1P,QAAQE,OAAO,IAAI1F,MAAM,yDAM/DgV,EAAqBxU,UAAUoR,KAAO,WAClC,OAAO,EAAUnP,UAAM,OAAQ,GAAQ,WACnC,IAAI8T,EAAehB,EACnB,OAAO,EAAY9S,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EACD/L,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,6CAEhCjT,KAAK2S,SAAU,EACf3S,KAAK0S,UAAUrO,QACfkK,EAAGxC,MAAQ,EACf,KAAK,EAED,OADAwC,EAAGtC,KAAKQ,KAAK,CAAC,EAAG,CAAE,EAAG,IACf,CAAC,EAAazM,KAAKyT,WAC9B,KAAK,EAOD,OANAlF,EAAGvC,OAEHhM,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,qDAAuDjT,KAAKsD,IAAM,KAClGwQ,EAAgB,CACZpQ,QAAS,IAEN,CAAC,EAAa1D,KAAKoT,kBAC9B,KAAK,EAGD,OAFAN,EAAQvE,EAAGvC,OACXhM,KAAKqT,kBAAkBS,EAAehB,GAC/B,CAAC,EAAa9S,KAAK+K,WAAWzD,OAAOtH,KAAKsD,IAAKwQ,IAC1D,KAAK,EAGD,OAFAvF,EAAGvC,OACHhM,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,gDACzB,CAAC,EAAa,GACzB,KAAK,EAKD,OAJAjT,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,0CAGhCjT,KAAK6T,eACE,CAAC,GACZ,KAAK,EAAG,MAAO,CAAC,WAKhCtB,EAAqBxU,UAAU8V,aAAe,WAC1C,GAAI7T,KAAKuN,QAAS,CACd,IAAIwG,EAAa,gDACb/T,KAAKwT,aACLO,GAAc,WAAa/T,KAAKwT,YAEpCxT,KAAKuC,OAAO0B,IAAI,OAASgP,MAAOc,GAChC/T,KAAKuN,QAAQvN,KAAKwT,cAGnBjB,EA3O8B,GC1CrC,EAAwC,SAAUrH,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAIrI,WAAU,SAAUC,EAASC,GAC/C,SAASqI,EAAU/K,GAAS,IAAMgL,EAAKF,EAAUG,KAAKjL,IAAW,MAAOkL,GAAKxI,EAAOwI,IACpF,SAASC,EAASnL,GAAS,IAAMgL,EAAKF,EAAU,SAAS9K,IAAW,MAAOkL,GAAKxI,EAAOwI,IACvF,SAASF,EAAK3K,GAAUA,EAAON,KAAO0C,EAAQpC,EAAOL,OAAS,IAAI6K,GAAE,SAAUpI,GAAWA,EAAQpC,EAAOL,UAAWoL,KAAKL,EAAWI,GACnIH,GAAMF,EAAYA,EAAUtM,MAAMmM,EAASC,GAAc,KAAKK,YAGlE,EAA4C,SAAUN,EAAS3H,GAC/D,IAAsGmB,EAAGsC,EAAGlF,EAAG+J,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPlK,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOmK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEL,KAAMW,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOrM,OAAU6L,EACvJ,SAASM,EAAKlK,GAAK,OAAO,SAAUqK,GAAK,OAAOf,EAAK,CAACtJ,EAAGqK,KACzD,SAASf,EAAKgB,GACV,GAAI7H,EAAG,MAAM,IAAI8H,UAAU,mCAC3B,MAAOV,EAAG,IACN,GAAIpH,EAAI,EAAGsC,IAAMlF,EAAY,EAARyK,EAAG,GAASvF,EAAE,UAAYuF,EAAG,GAAKvF,EAAE,YAAclF,EAAIkF,EAAE,YAAclF,EAAE3B,KAAK6G,GAAI,GAAKA,EAAEwE,SAAW1J,EAAIA,EAAE3B,KAAK6G,EAAGuF,EAAG,KAAKjM,KAAM,OAAOwB,EAE3J,OADIkF,EAAI,EAAGlF,IAAGyK,EAAK,CAAS,EAARA,EAAG,GAAQzK,EAAEvB,QACzBgM,EAAG,IACP,KAAK,EAAG,KAAK,EAAGzK,EAAIyK,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAExL,MAAOgM,EAAG,GAAIjM,MAAM,GAChD,KAAK,EAAGwL,EAAEC,QAAS/E,EAAIuF,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIxO,MAAOoO,EAAEG,KAAKvO,MAAO,SACxC,QACI,GAAMoE,EAAIgK,EAAEG,OAAMnK,EAAIA,EAAExE,OAAS,GAAKwE,EAAEA,EAAExE,OAAS,MAAkB,IAAViP,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAczK,GAAMyK,EAAG,GAAKzK,EAAE,IAAMyK,EAAG,GAAKzK,EAAE,IAAM,CAAEgK,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIA,EAAIyK,EAAI,MAC7D,GAAIzK,GAAKgK,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIgK,EAAEI,IAAIO,KAAKF,GAAK,MACvDzK,EAAE,IAAIgK,EAAEI,IAAIxO,MAChBoO,EAAEG,KAAKvO,MAAO,SAEtB6O,EAAKhJ,EAAKpD,KAAK+K,EAASY,GAC1B,MAAOL,GAAKc,EAAK,CAAC,EAAGd,GAAIzE,EAAI,EAAK,QAAUtC,EAAI5C,EAAI,EACtD,GAAY,EAARyK,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhM,MAAOgM,EAAG,GAAKA,EAAG,QAAK,EAAQjM,MAAM,KAO9E,EAA2C,WAC3C,SAAS0T,EAA0BjJ,EAAYyH,EAAoBjQ,EAAQkQ,EAAmBwB,GAC1FjU,KAAK+K,WAAaA,EAClB/K,KAAKwS,mBAAqBA,EAC1BxS,KAAKuC,OAASA,EACdvC,KAAKyS,kBAAoBA,EACzBzS,KAAKiU,uBAAyBA,EAC9BjU,KAAKqN,UAAY,KACjBrN,KAAKuN,QAAU,KAmGnB,OAjGAyG,EAA0BjW,UAAU6U,QAAU,SAAUtP,EAAKsL,GACzD,OAAO,EAAU5O,UAAM,OAAQ,GAAQ,WACnC,IAAI8S,EACAtQ,EAAQxC,KACZ,OAAO,EAAYA,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EAOD,OANA,OAAIkB,WAAW3J,EAAK,OACpB,OAAI2J,WAAW2B,EAAgB,kBAC/B,OAAIoE,KAAKpE,EAAgB/B,EAAgB,kBACzC7M,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,+BAEhCjT,KAAKsD,IAAMA,EACNtD,KAAKwS,mBACH,CAAC,EAAaxS,KAAKwS,sBADW,CAAC,EAAa,GAEvD,KAAK,EACDM,EAAQvE,EAAGvC,OACP8G,IACAxP,IAAQA,EAAIzE,QAAQ,KAAO,EAAI,IAAM,KAAQ,gBAAkBqV,mBAAmBpB,IAEtFvE,EAAGxC,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAc,IAAIhJ,SAAQ,SAAUC,EAASC,GACrD,IAAIkR,GAAS,EACb,GAAIvF,IAAmB/B,EAAeuH,KAAtC,CAIA,IAAIC,EACJ,GAAsB,qBAAXC,OACPD,EAAc,IAAI7R,EAAMyR,uBAAuB3Q,EAAK,CAAE+G,iBAAiB,QAEtE,CAED,IAAIkK,EAAU/R,EAAMuI,WAAWzG,gBAAgBhB,GAC/C+Q,EAAc,IAAI7R,EAAMyR,uBAAuB3Q,EAAK,CAAE+G,iBAAiB,EAAM3G,QAAS,CAAE8Q,OAAQD,KAEpG,IACIF,EAAYI,UAAY,SAAUhJ,GAC9B,GAAIjJ,EAAM6K,UACN,IACI7K,EAAMD,OAAO0B,IAAI,OAASgP,MAAO,kCAAoC,eAAcxH,EAAEpN,KAAMmE,EAAMiQ,mBAAqB,KACtHjQ,EAAM6K,UAAU5B,EAAEpN,MAEtB,MAAOwF,GAEH,YADArB,EAAMkS,MAAM7Q,KAKxBwQ,EAAYzJ,QAAU,SAAUa,GAC5B,IAAI5H,EAAQ,IAAItG,MAAMkO,EAAEpN,MAAQ,kBAC5B8V,EACA3R,EAAMkS,MAAM7Q,GAGZZ,EAAOY,IAGfwQ,EAAYM,OAAS,WACjBnS,EAAMD,OAAO0B,IAAI,OAAS6K,YAAa,oBAAsBtM,EAAMc,KACnEd,EAAM6R,YAAcA,EACpBF,GAAS,EACTnR,KAGR,MAAOyI,GAEH,YADAxI,EAAOwI,SA1CPxI,EAAO,IAAI1F,MAAM,0FAkD7CyW,EAA0BjW,UAAU8E,KAAO,SAAUxE,GACjD,OAAO,EAAU2B,UAAM,OAAQ,GAAQ,WACnC,OAAO,EAAYA,MAAM,SAAUuO,GAC/B,OAAKvO,KAAKqU,YAGH,CAAC,EAAc,eAAYrU,KAAKuC,OAAQ,MAAOvC,KAAK+K,WAAY/K,KAAKsD,IAAKtD,KAAKwS,mBAAoBnU,EAAM2B,KAAKyS,oBAF1G,CAAC,EAAc1P,QAAQE,OAAO,IAAI1F,MAAM,yDAM/DyW,EAA0BjW,UAAUoR,KAAO,WAEvC,OADAnP,KAAK0U,QACE3R,QAAQC,WAEnBgR,EAA0BjW,UAAU2W,MAAQ,SAAUjJ,GAC9CzL,KAAKqU,cACLrU,KAAKqU,YAAYK,QACjB1U,KAAKqU,iBAAcnU,EACfF,KAAKuN,SACLvN,KAAKuN,QAAQ9B,KAIlBuI,EA3GmC,GCvC1C,EAAwC,SAAU9I,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAIrI,WAAU,SAAUC,EAASC,GAC/C,SAASqI,EAAU/K,GAAS,IAAMgL,EAAKF,EAAUG,KAAKjL,IAAW,MAAOkL,GAAKxI,EAAOwI,IACpF,SAASC,EAASnL,GAAS,IAAMgL,EAAKF,EAAU,SAAS9K,IAAW,MAAOkL,GAAKxI,EAAOwI,IACvF,SAASF,EAAK3K,GAAUA,EAAON,KAAO0C,EAAQpC,EAAOL,OAAS,IAAI6K,GAAE,SAAUpI,GAAWA,EAAQpC,EAAOL,UAAWoL,KAAKL,EAAWI,GACnIH,GAAMF,EAAYA,EAAUtM,MAAMmM,EAASC,GAAc,KAAKK,YAGlE,EAA4C,SAAUN,EAAS3H,GAC/D,IAAsGmB,EAAGsC,EAAGlF,EAAG+J,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPlK,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOmK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEL,KAAMW,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOrM,OAAU6L,EACvJ,SAASM,EAAKlK,GAAK,OAAO,SAAUqK,GAAK,OAAOf,EAAK,CAACtJ,EAAGqK,KACzD,SAASf,EAAKgB,GACV,GAAI7H,EAAG,MAAM,IAAI8H,UAAU,mCAC3B,MAAOV,EAAG,IACN,GAAIpH,EAAI,EAAGsC,IAAMlF,EAAY,EAARyK,EAAG,GAASvF,EAAE,UAAYuF,EAAG,GAAKvF,EAAE,YAAclF,EAAIkF,EAAE,YAAclF,EAAE3B,KAAK6G,GAAI,GAAKA,EAAEwE,SAAW1J,EAAIA,EAAE3B,KAAK6G,EAAGuF,EAAG,KAAKjM,KAAM,OAAOwB,EAE3J,OADIkF,EAAI,EAAGlF,IAAGyK,EAAK,CAAS,EAARA,EAAG,GAAQzK,EAAEvB,QACzBgM,EAAG,IACP,KAAK,EAAG,KAAK,EAAGzK,EAAIyK,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAExL,MAAOgM,EAAG,GAAIjM,MAAM,GAChD,KAAK,EAAGwL,EAAEC,QAAS/E,EAAIuF,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIxO,MAAOoO,EAAEG,KAAKvO,MAAO,SACxC,QACI,GAAMoE,EAAIgK,EAAEG,OAAMnK,EAAIA,EAAExE,OAAS,GAAKwE,EAAEA,EAAExE,OAAS,MAAkB,IAAViP,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAczK,GAAMyK,EAAG,GAAKzK,EAAE,IAAMyK,EAAG,GAAKzK,EAAE,IAAM,CAAEgK,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIA,EAAIyK,EAAI,MAC7D,GAAIzK,GAAKgK,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIgK,EAAEI,IAAIO,KAAKF,GAAK,MACvDzK,EAAE,IAAIgK,EAAEI,IAAIxO,MAChBoO,EAAEG,KAAKvO,MAAO,SAEtB6O,EAAKhJ,EAAKpD,KAAK+K,EAASY,GAC1B,MAAOL,GAAKc,EAAK,CAAC,EAAGd,GAAIzE,EAAI,EAAK,QAAUtC,EAAI5C,EAAI,EACtD,GAAY,EAARyK,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhM,MAAOgM,EAAG,GAAKA,EAAG,QAAK,EAAQjM,MAAM,KAO9E,EAAoC,WACpC,SAASsU,EAAmB7J,EAAYyH,EAAoBjQ,EAAQkQ,EAAmBoC,GACnF7U,KAAKuC,OAASA,EACdvC,KAAKwS,mBAAqBA,EAC1BxS,KAAKyS,kBAAoBA,EACzBzS,KAAK6U,qBAAuBA,EAC5B7U,KAAK+K,WAAaA,EAClB/K,KAAKqN,UAAY,KACjBrN,KAAKuN,QAAU,KAoGnB,OAlGAqH,EAAmB7W,UAAU6U,QAAU,SAAUtP,EAAKsL,GAClD,OAAO,EAAU5O,UAAM,OAAQ,GAAQ,WACnC,IAAI8S,EACAtQ,EAAQxC,KACZ,OAAO,EAAYA,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EAKD,OAJA,OAAIkB,WAAW3J,EAAK,OACpB,OAAI2J,WAAW2B,EAAgB,kBAC/B,OAAIoE,KAAKpE,EAAgB/B,EAAgB,kBACzC7M,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,sCAC3BjT,KAAKwS,mBACH,CAAC,EAAaxS,KAAKwS,sBADW,CAAC,EAAa,GAEvD,KAAK,EACDM,EAAQvE,EAAGvC,OACP8G,IACAxP,IAAQA,EAAIzE,QAAQ,KAAO,EAAI,IAAM,KAAQ,gBAAkBqV,mBAAmBpB,IAEtFvE,EAAGxC,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAc,IAAIhJ,SAAQ,SAAUC,EAASC,GAErD,IAAI6R,EADJxR,EAAMA,EAAIyR,QAAQ,QAAS,MAE3B,IAAIR,EAAU/R,EAAMuI,WAAWzG,gBAAgBhB,GACzB,qBAAXgR,QAA0BC,IAEjCO,EAAY,IAAItS,EAAMqS,qBAAqBvR,OAAKpD,EAAW,CACvDwD,QAAS,CACL8Q,OAAQ,GAAKD,MAIpBO,IAEDA,EAAY,IAAItS,EAAMqS,qBAAqBvR,IAE3CsL,IAAmB/B,EAAeqG,SAClC4B,EAAUE,WAAa,eAG3BF,EAAUH,OAAS,SAAUM,GACzBzS,EAAMD,OAAO0B,IAAI,OAAS6K,YAAa,0BAA4BxL,EAAM,KACzEd,EAAMsS,UAAYA,EAClB9R,KAEJ8R,EAAUlK,QAAU,SAAUsK,GAC1B,IAAIrR,EAAQ,KAEc,qBAAfsR,YAA8BD,aAAiBC,aACtDtR,EAAQqR,EAAMrR,OAElBZ,EAAOY,IAEXiR,EAAUL,UAAY,SAAU3L,GAC5BtG,EAAMD,OAAO0B,IAAI,OAASgP,MAAO,yCAA2C,eAAcnK,EAAQzK,KAAMmE,EAAMiQ,mBAAqB,KAC/HjQ,EAAM6K,WACN7K,EAAM6K,UAAUvE,EAAQzK,OAGhCyW,EAAUvH,QAAU,SAAU2H,GAAS,OAAO1S,EAAMkS,MAAMQ,gBAMlFN,EAAmB7W,UAAU8E,KAAO,SAAUxE,GAC1C,OAAI2B,KAAK8U,WAAa9U,KAAK8U,UAAUM,aAAepV,KAAK6U,qBAAqBQ,MAC1ErV,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,wCAA0C,eAAc5U,EAAM2B,KAAKyS,mBAAqB,KACxHzS,KAAK8U,UAAUjS,KAAKxE,GACb0E,QAAQC,WAEZD,QAAQE,OAAO,uCAE1B2R,EAAmB7W,UAAUoR,KAAO,WAYhC,OAXInP,KAAK8U,YAEL9U,KAAK8U,UAAUvH,QAAU,aACzBvN,KAAK8U,UAAUL,UAAY,aAC3BzU,KAAK8U,UAAUlK,QAAU,aACzB5K,KAAK8U,UAAUJ,QACf1U,KAAK8U,eAAY5U,EAGjBF,KAAK0U,WAAMxU,IAER6C,QAAQC,WAEnB4R,EAAmB7W,UAAU2W,MAAQ,SAAUQ,GAE3ClV,KAAKuC,OAAO0B,IAAI,OAASgP,MAAO,yCAC5BjT,KAAKuN,WACD2H,IAA6B,IAAnBA,EAAMI,UAAqC,MAAfJ,EAAMlR,KAI5ChE,KAAKuN,UAHLvN,KAAKuN,QAAQ,IAAIhQ,MAAM,sCAAwC2X,EAAMlR,KAAO,KAAOkR,EAAMK,OAAS,SAOvGX,EA5G4B,GCvCnC,EAAwC,SAAU1J,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAIrI,WAAU,SAAUC,EAASC,GAC/C,SAASqI,EAAU/K,GAAS,IAAMgL,EAAKF,EAAUG,KAAKjL,IAAW,MAAOkL,GAAKxI,EAAOwI,IACpF,SAASC,EAASnL,GAAS,IAAMgL,EAAKF,EAAU,SAAS9K,IAAW,MAAOkL,GAAKxI,EAAOwI,IACvF,SAASF,EAAK3K,GAAUA,EAAON,KAAO0C,EAAQpC,EAAOL,OAAS,IAAI6K,GAAE,SAAUpI,GAAWA,EAAQpC,EAAOL,UAAWoL,KAAKL,EAAWI,GACnIH,GAAMF,EAAYA,EAAUtM,MAAMmM,EAASC,GAAc,KAAKK,YAGlE,EAA4C,SAAUN,EAAS3H,GAC/D,IAAsGmB,EAAGsC,EAAGlF,EAAG+J,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPlK,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOmK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEL,KAAMW,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOrM,OAAU6L,EACvJ,SAASM,EAAKlK,GAAK,OAAO,SAAUqK,GAAK,OAAOf,EAAK,CAACtJ,EAAGqK,KACzD,SAASf,EAAKgB,GACV,GAAI7H,EAAG,MAAM,IAAI8H,UAAU,mCAC3B,MAAOV,EAAG,IACN,GAAIpH,EAAI,EAAGsC,IAAMlF,EAAY,EAARyK,EAAG,GAASvF,EAAE,UAAYuF,EAAG,GAAKvF,EAAE,YAAclF,EAAIkF,EAAE,YAAclF,EAAE3B,KAAK6G,GAAI,GAAKA,EAAEwE,SAAW1J,EAAIA,EAAE3B,KAAK6G,EAAGuF,EAAG,KAAKjM,KAAM,OAAOwB,EAE3J,OADIkF,EAAI,EAAGlF,IAAGyK,EAAK,CAAS,EAARA,EAAG,GAAQzK,EAAEvB,QACzBgM,EAAG,IACP,KAAK,EAAG,KAAK,EAAGzK,EAAIyK,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAExL,MAAOgM,EAAG,GAAIjM,MAAM,GAChD,KAAK,EAAGwL,EAAEC,QAAS/E,EAAIuF,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIxO,MAAOoO,EAAEG,KAAKvO,MAAO,SACxC,QACI,GAAMoE,EAAIgK,EAAEG,OAAMnK,EAAIA,EAAExE,OAAS,GAAKwE,EAAEA,EAAExE,OAAS,MAAkB,IAAViP,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAczK,GAAMyK,EAAG,GAAKzK,EAAE,IAAMyK,EAAG,GAAKzK,EAAE,IAAM,CAAEgK,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIA,EAAIyK,EAAI,MAC7D,GAAIzK,GAAKgK,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIgK,EAAEI,IAAIO,KAAKF,GAAK,MACvDzK,EAAE,IAAIgK,EAAEI,IAAIxO,MAChBoO,EAAEG,KAAKvO,MAAO,SAEtB6O,EAAKhJ,EAAKpD,KAAK+K,EAASY,GAC1B,MAAOL,GAAKc,EAAK,CAAC,EAAGd,GAAIzE,EAAI,EAAK,QAAUtC,EAAI5C,EAAI,EACtD,GAAY,EAARyK,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhM,MAAOgM,EAAG,GAAKA,EAAG,QAAK,EAAQjM,MAAM,KAU9EkV,EAAgB,IAChBC,EAAkB,KAClBC,EAAoB,KACxB,GAAsB,qBAAXpB,OAA0D,CAGjE,IAAIlS,EAA0D,QAC9DqT,EAAkBrT,EAAY,MAC9BsT,EAAoBtT,EAAY,eAGpC,IAAI,EAAgC,WAChC,SAASuT,EAAerS,EAAK8D,QACT,IAAZA,IAAsBA,EAAU,IACpCpH,KAAKwR,SAAW,GAChB,OAAIvE,WAAW3J,EAAK,OACpBtD,KAAKuC,OAAS,eAAa6E,EAAQ7E,QACnCvC,KAAK4V,QAAU5V,KAAK6V,WAAWvS,GAC/B8D,EAAUA,GAAW,GACrBA,EAAQqL,kBAAoBrL,EAAQqL,oBAAqB,EACzD,IAAIqD,EAA2B,qBAAXxB,OACfwB,GAA+B,qBAAdC,WAA8B3O,EAAQ2O,UAGnDD,IAAW1O,EAAQ2O,WACpBN,IACArO,EAAQ2O,UAAYN,GAJxBrO,EAAQ2O,UAAYA,UAOnBD,GAAiC,qBAAhBE,aAAgC5O,EAAQ4O,YAGrDF,IAAW1O,EAAQ4O,aACS,qBAAtBN,IACPtO,EAAQ4O,YAAcN,GAJ1BtO,EAAQ4O,YAAcA,YAO1BhW,KAAK+K,WAAa3D,EAAQ2D,YAAc,IAAI,EAAkB/K,KAAKuC,QACnEvC,KAAK8N,gBAAkB,EACvB9N,KAAKoH,QAAUA,EACfpH,KAAKqN,UAAY,KACjBrN,KAAKuN,QAAU,KAgWnB,OA9VAoI,EAAe5X,UAAUsQ,MAAQ,SAAUO,GAIvC,OAHAA,EAAiBA,GAAkB/B,EAAeqG,OAClD,OAAIF,KAAKpE,EAAgB/B,EAAgB,kBACzC7M,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,6CAA+C5B,EAAe+B,GAAkB,MACnF,IAAzB5O,KAAK8N,gBACE/K,QAAQE,OAAO,IAAI1F,MAAM,wEAEpCyC,KAAK8N,gBAAkB,EACvB9N,KAAKiW,aAAejW,KAAKkW,cAActH,GAChC5O,KAAKiW,eAEhBN,EAAe5X,UAAU8E,KAAO,SAAUxE,GACtC,GAA6B,IAAzB2B,KAAK8N,gBACL,MAAM,IAAIvQ,MAAM,uEAGpB,OAAOyC,KAAKmW,UAAUtT,KAAKxE,IAE/BsX,EAAe5X,UAAUoR,KAAO,SAAUtL,GACtC,OAAO,EAAU7D,UAAM,OAAQ,GAAQ,WAEnC,OAAO,EAAYA,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EACD/L,KAAK8N,gBAAkB,EAIvB9N,KAAKoW,UAAYvS,EACjB0K,EAAGxC,MAAQ,EACf,KAAK,EAED,OADAwC,EAAGtC,KAAKQ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAazM,KAAKiW,cAC9B,KAAK,EAED,OADA1H,EAAGvC,OACI,CAAC,EAAa,GACzB,KAAK,EAED,OADMuC,EAAGvC,OACF,CAAC,EAAa,GACzB,KAAK,EACD,OAAKhM,KAAKmW,UACH,CAAC,EAAanW,KAAKmW,UAAUhH,QADR,CAAC,EAAa,GAE9C,KAAK,EACDZ,EAAGvC,OACHhM,KAAKmW,eAAYjW,EACjBqO,EAAGxC,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,WAKhC4J,EAAe5X,UAAUmY,cAAgB,SAAUtH,GAC/C,OAAO,EAAU5O,UAAM,OAAQ,GAAQ,WACnC,IAAIsD,EAAK+S,EAAmBC,EAAWC,EAASC,EAAQC,EAASC,EAC7DlU,EAAQxC,KACZ,OAAO,EAAYA,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EACDzI,EAAMtD,KAAK4V,QACX5V,KAAKwS,mBAAqBxS,KAAKoH,QAAQoL,mBACvCjE,EAAGxC,MAAQ,EACf,KAAK,EAED,OADAwC,EAAGtC,KAAKQ,KAAK,CAAC,EAAG,GAAI,CAAE,KAClBzM,KAAKoH,QAAQuP,gBACZ3W,KAAKoH,QAAQ+O,YAAcvJ,EAAkBgK,WAAoB,CAAC,EAAa,IAErF5W,KAAKmW,UAAYnW,KAAK6W,mBAAmBjK,EAAkBgK,YAGpD,CAAC,EAAa5W,KAAKmW,UAAUvD,QAAQtP,EAAKsL,KANP,CAAC,EAAa,GAO5D,KAAK,EAID,OADAL,EAAGvC,OACI,CAAC,EAAa,GACzB,KAAK,EAAG,MAAMzO,MAAM,gFACpB,KAAK,EAAG,MAAO,CAAC,EAAa,IAC7B,KAAK,EACD8Y,EAAoB,KACpBC,EAAY,EACZC,EAAU,WACN,IAAIO,EACJ,OAAO,EAAY9W,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EAAG,MAAO,CAAC,EAAayK,EAAOO,uBAAuBzT,IAC3D,KAAK,EAGD,GAFA+S,EAAoB9H,EAAGvC,OAEQ,IAA3BwK,EAAO1I,gBACP,MAAO,CAAC,EAAc,CAAEvN,WAAO,IAEnC,GAAI8V,EAAkBxS,MAClB,MAAMtG,MAAM8Y,EAAkBxS,OAElC,GAAIwS,EAAkBW,gBAClB,MAAMzZ,MAAM,gMAUhB,OARI8Y,EAAkB/S,MAClBA,EAAM+S,EAAkB/S,KAExB+S,EAAkBY,cAClBH,EAAgBT,EAAkBY,YAClCT,EAAOhE,mBAAqB,WAAc,OAAOsE,IAErDR,IACO,CAAC,QAIxBE,EAASxW,KACTuO,EAAGxC,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAcwK,KAC9B,KAAK,EAED,GADAE,EAAUlI,EAAGvC,OACU,kBAAZyK,EACP,MAAO,CAAC,EAAcA,EAAQlW,OAClCgO,EAAGxC,MAAQ,EACf,KAAK,EACD,GAAIsK,EAAkB/S,KAAOgT,EAAYd,EAAe,MAAO,CAAC,EAAa,GAC7EjH,EAAGxC,MAAQ,EACf,KAAK,EACD,GAAIuK,IAAcd,GAAiBa,EAAkB/S,IACjD,MAAM/F,MAAM,yCAEhB,MAAO,CAAC,EAAayC,KAAKkX,gBAAgB5T,EAAKtD,KAAKoH,QAAQ+O,UAAWE,EAAmBzH,IAC9F,KAAK,GACDL,EAAGvC,OACHuC,EAAGxC,MAAQ,GACf,KAAK,GASD,OARI/L,KAAKmW,qBAAqB,IAC1BnW,KAAKwR,SAASC,mBAAoB,GAEtCzR,KAAKmW,UAAU9I,UAAYrN,KAAKqN,UAChCrN,KAAKmW,UAAU5I,QAAU,SAAU9B,GAAK,OAAOjJ,EAAM2U,eAAe1L,IAGpEzL,KAAKoX,YAAY,EAAoB,GAC9B,CAAC,EAAa,IACzB,KAAK,GAKD,MAJAV,EAAMnI,EAAGvC,OACThM,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAO,mCAAqCmZ,GACrE1W,KAAK8N,gBAAkB,EACvB9N,KAAKmW,eAAYjW,EACXwW,EACV,KAAK,GAAI,MAAO,CAAC,WAKjCf,EAAe5X,UAAUgZ,uBAAyB,SAAUzT,GACxD,OAAO,EAAUtD,UAAM,OAAQ,GAAQ,WACnC,IAAIuO,EAAI7K,EAASoP,EAAOuE,EAAchY,EAAUiY,EAChD,OAAO,EAAYtX,MAAM,SAAUuR,GAC/B,OAAQA,EAAGxF,OACP,KAAK,EACD,OAAK/L,KAAKwS,mBACH,CAAC,EAAaxS,KAAKwS,sBADW,CAAC,EAAa,GAEvD,KAAK,EACDM,EAAQvB,EAAGvF,OACP8G,IACWvE,EAAK,GACZA,EAAG,iBAAmB,UAAYuE,EADtCpP,EAEI6K,GAERgD,EAAGxF,MAAQ,EACf,KAAK,EACDsL,EAAerX,KAAKuX,oBAAoBjU,GACxCtD,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,gCAAkC4I,EAAe,KACjF9F,EAAGxF,MAAQ,EACf,KAAK,EAED,OADAwF,EAAGtF,KAAKQ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAazM,KAAK+K,WAAW1D,KAAKgQ,EAAc,CAChDlU,QAAS,GACTO,QAASA,KAErB,KAAK,EAED,GADArE,EAAWkS,EAAGvF,OACc,MAAxB3M,EAAS8E,WACT,MAAM5G,MAAM,kDAAoD8B,EAAS8E,YAE7E,MAAO,CAAC,EAAcjG,KAAKd,MAAMiC,EAAS8D,UAC9C,KAAK,EAGD,MAFAmU,EAAM/F,EAAGvF,OACThM,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAO,mDAAqD+Z,GAC/EA,EACV,KAAK,EAAG,MAAO,CAAC,WAKhC3B,EAAe5X,UAAUyZ,iBAAmB,SAAUlU,EAAKmU,GACvD,OAAKA,EAGEnU,IAA6B,IAAtBA,EAAIzE,QAAQ,KAAc,IAAM,KAAQ,MAAQ4Y,EAFnDnU,GAIfqS,EAAe5X,UAAUmZ,gBAAkB,SAAU5T,EAAKoU,EAAoBrB,EAAmBsB,GAC7F,OAAO,EAAU3X,UAAM,OAAQ,GAAQ,WACnC,IAAI4X,EAAYC,EAAYrI,EAAIsI,EAAcC,EAAU5B,EAAW6B,EACnE,OAAO,EAAYhY,MAAM,SAAUuO,GAC/B,OAAQA,EAAGxC,OACP,KAAK,EAED,OADA6L,EAAa5X,KAAKwX,iBAAiBlU,EAAK+S,EAAkBoB,cACrDzX,KAAKiY,aAAaP,IACvB1X,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,2EAChCzO,KAAKmW,UAAYuB,EACV,CAAC,EAAa1X,KAAKmW,UAAUvD,QAAQgF,EAAYD,KAHL,CAAC,EAAa,GAIrE,KAAK,EAKD,OAJApJ,EAAGvC,OAGHhM,KAAKoX,YAAY,EAAoB,GAC9B,CAAC,GACZ,KAAK,EACDS,EAAaxB,EAAkB6B,qBAAuB,GACtD1I,EAAK,EAAGsI,EAAeD,EACvBtJ,EAAGxC,MAAQ,EACf,KAAK,EACD,OAAMyD,EAAKsI,EAAaxa,QACxBya,EAAWD,EAAatI,GACxBxP,KAAK8N,gBAAkB,EACvBqI,EAAYnW,KAAKmY,iBAAiBJ,EAAUL,EAAoBC,GACrC,kBAAdxB,EAAgC,CAAC,EAAa,IAC3DnW,KAAKmW,UAAYnW,KAAK6W,mBAAmBV,GACnCE,EAAkBoB,aAAqB,CAAC,EAAa,GACpD,CAAC,EAAazX,KAAK+W,uBAAuBzT,MAPT,CAAC,EAAa,GAQ1D,KAAK,EACD+S,EAAoB9H,EAAGvC,OACvB4L,EAAa5X,KAAKwX,iBAAiBlU,EAAK+S,EAAkBoB,cAC1DlJ,EAAGxC,MAAQ,EACf,KAAK,EAED,OADAwC,EAAGtC,KAAKQ,KAAK,CAAC,EAAG,EAAG,CAAE,IACf,CAAC,EAAazM,KAAKmW,UAAUvD,QAAQgF,EAAYD,IAC5D,KAAK,EAGD,OAFApJ,EAAGvC,OACHhM,KAAKoX,YAAY,EAAoB,GAC9B,CAAC,GACZ,KAAK,EAKD,OAJAY,EAAOzJ,EAAGvC,OACVhM,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAO,kCAAoCqP,EAAkBuJ,GAAa,MAAQ6B,GAC3GhY,KAAK8N,gBAAkB,EACvBuI,EAAkBoB,kBAAevX,EAC1B,CAAC,EAAa,GACzB,KAAK,EAED,OADAsP,IACO,CAAC,EAAa,GACzB,KAAK,EAAG,MAAM,IAAIjS,MAAM,iEAKxCoY,EAAe5X,UAAU8Y,mBAAqB,SAAUV,GACpD,OAAQA,GACJ,KAAKvJ,EAAkBgK,WACnB,IAAK5W,KAAKoH,QAAQ2O,UACd,MAAM,IAAIxY,MAAM,qDAEpB,OAAO,IAAI,EAAmByC,KAAK+K,WAAY/K,KAAKwS,mBAAoBxS,KAAKuC,OAAQvC,KAAKoH,QAAQqL,oBAAqB,EAAOzS,KAAKoH,QAAQ2O,WAC/I,KAAKnJ,EAAkBwL,iBACnB,IAAKpY,KAAKoH,QAAQ4O,YACd,MAAM,IAAIzY,MAAM,uDAEpB,OAAO,IAAI,EAA0ByC,KAAK+K,WAAY/K,KAAKwS,mBAAoBxS,KAAKuC,OAAQvC,KAAKoH,QAAQqL,oBAAqB,EAAOzS,KAAKoH,QAAQ4O,aACtJ,KAAKpJ,EAAkByL,YACnB,OAAO,IAAI,EAAqBrY,KAAK+K,WAAY/K,KAAKwS,mBAAoBxS,KAAKuC,OAAQvC,KAAKoH,QAAQqL,oBAAqB,GAC7H,QACI,MAAM,IAAIlV,MAAM,sBAAwB4Y,EAAY,OAGhER,EAAe5X,UAAUoa,iBAAmB,SAAUJ,EAAUL,EAAoBC,GAChF,IAAIxB,EAAYvJ,EAAkBmL,EAAS5B,WAC3C,GAAkB,OAAdA,QAAoCjW,IAAdiW,EACtBnW,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,uBAAyBsJ,EAAS5B,UAAY,qDAE7E,CACD,IAAImC,EAAkBP,EAASO,gBAAgBC,KAAI,SAAUxW,GAAK,OAAO8K,EAAe9K,MACxF,GAAIyW,EAAiBd,EAAoBvB,GACrC,GAAImC,EAAgBzZ,QAAQ8Y,IAA4B,EAAG,CACvD,IAAKxB,IAAcvJ,EAAkBgK,YAAe5W,KAAKoH,QAAQ2O,aAC5DI,IAAcvJ,EAAkBwL,kBAAqBpY,KAAKoH,QAAQ4O,aAKnE,OADAhW,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,wBAA0B7B,EAAkBuJ,GAAa,MAClFA,EAJPnW,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,uBAAyB7B,EAAkBuJ,GAAa,4DAQ5FnW,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,uBAAyB7B,EAAkBuJ,GAAa,gEAAkEtJ,EAAe8K,GAA2B,WAIxM3X,KAAKuC,OAAO0B,IAAI,OAASwK,MAAO,uBAAyB7B,EAAkBuJ,GAAa,4CAGhG,OAAO,MAEXR,EAAe5X,UAAUka,aAAe,SAAU9B,GAC9C,OAAOA,GAAoC,kBAAhB,GAA4B,YAAaA,GAExER,EAAe5X,UAAUqZ,YAAc,SAAUhU,EAAMqV,GACnD,OAAIzY,KAAK8N,kBAAoB1K,IACzBpD,KAAK8N,gBAAkB2K,GAChB,IAIf9C,EAAe5X,UAAUoZ,eAAiB,SAAUtT,GAChD7D,KAAKmW,eAAYjW,EAEjB2D,EAAQ7D,KAAKoW,WAAavS,EACtBA,EACA7D,KAAKuC,OAAO0B,IAAI,OAAS1G,MAAO,uCAAyCsG,EAAQ,MAGjF7D,KAAKuC,OAAO0B,IAAI,OAAS6K,YAAa,4BAE1C9O,KAAK8N,gBAAkB,EACnB9N,KAAKuN,SACLvN,KAAKuN,QAAQ1J,IAGrB8R,EAAe5X,UAAU8X,WAAa,SAAUvS,GAE5C,GAAuC,IAAnCA,EAAIoV,YAAY,WAAY,IAA8C,IAAlCpV,EAAIoV,YAAY,UAAW,GACnE,OAAOpV,EAEX,GAAsB,qBAAXgR,SAA2BA,SAAWA,OAAOqE,SACpD,MAAM,IAAIpb,MAAM,mBAAqB+F,EAAM,MAO/C,IAAIsV,EAAOtE,OAAOqE,SAASE,cAAc,KAGzC,OAFAD,EAAKE,KAAOxV,EACZtD,KAAKuC,OAAO0B,IAAI,OAAS6K,YAAa,gBAAkBxL,EAAM,SAAWsV,EAAKE,KAAO,MAC9EF,EAAKE,MAEhBnD,EAAe5X,UAAUwZ,oBAAsB,SAAUjU,GACrD,IAAIzC,EAAQyC,EAAIzE,QAAQ,KACpBwY,EAAe/T,EAAIlE,UAAU,GAAc,IAAXyB,EAAeyC,EAAIhG,OAASuD,GAMhE,MAL8C,MAA1CwW,EAAaA,EAAa/Z,OAAS,KACnC+Z,GAAgB,KAEpBA,GAAgB,YAChBA,IAA2B,IAAXxW,EAAe,GAAKyC,EAAIlE,UAAUyB,GAC3CwW,GAEJ1B,EA9XwB,GAiYnC,SAAS6C,EAAiBd,EAAoBqB,GAC1C,OAAQrB,GAAkE,KAA1CqB,EAAkBrB,G,4BClblDsB,EAAyB,OAEzB,EAAiC,WACjC,SAASC,IAELjZ,KAAKkJ,KAAO8P,EAEZhZ,KAAKwO,QAAU,EAEfxO,KAAK4O,eAAiB/B,EAAeuH,KAsFzC,OA/EA6E,EAAgBlb,UAAUgT,cAAgB,SAAU1T,EAAOkF,GAEvD,GAAqB,kBAAVlF,EACP,MAAM,IAAIE,MAAM,2DAEpB,IAAKF,EACD,MAAO,GAEI,OAAXkF,IACAA,EAAS,OAAWoE,UAKxB,IAFA,IAAInJ,EAAWR,EAAA,KAAkBI,MAAMC,GACnC6b,EAAc,GACT1J,EAAK,EAAGwB,EAAaxT,EAAUgS,EAAKwB,EAAW1T,OAAQkS,IAAM,CAClE,IAAI1G,EAAUkI,EAAWxB,GACrB2J,EAAgBjb,KAAKd,MAAM0L,GAC/B,GAAkC,kBAAvBqQ,EAAc7Z,KACrB,MAAM,IAAI/B,MAAM,oBAEpB,OAAQ4b,EAAc7Z,MAClB,KAAKiI,EAAY0J,WACbjR,KAAKoZ,oBAAoBD,GACzB,MACJ,KAAK5R,EAAY4J,WACbnR,KAAKqZ,oBAAoBF,GACzB,MACJ,KAAK5R,EAAY4I,WACbnQ,KAAKsZ,oBAAoBH,GACzB,MACJ,KAAK5R,EAAY2G,KAEb,MACJ,KAAK3G,EAAY6J,MAEb,MACJ,QAEI7O,EAAO0B,IAAI,OAAS6K,YAAa,yBAA2BqK,EAAc7Z,KAAO,cACjF,SAER4Z,EAAYzM,KAAK0M,GAErB,OAAOD,GAOXD,EAAgBlb,UAAUkQ,aAAe,SAAUnF,GAC/C,OAAO9L,EAAA,KAAkBC,MAAMiB,KAAKC,UAAU2K,KAElDmQ,EAAgBlb,UAAUqb,oBAAsB,SAAUtQ,GACtD9I,KAAKuZ,qBAAqBzQ,EAAQ+I,OAAQ,gDACb3R,IAAzB4I,EAAQkH,cACRhQ,KAAKuZ,qBAAqBzQ,EAAQkH,aAAc,4CAGxDiJ,EAAgBlb,UAAUsb,oBAAsB,SAAUvQ,GAEtD,GADA9I,KAAKuZ,qBAAqBzQ,EAAQkH,aAAc,gDAC3B9P,IAAjB4I,EAAQJ,KACR,MAAM,IAAInL,MAAM,4CAGxB0b,EAAgBlb,UAAUub,oBAAsB,SAAUxQ,GACtD,GAAIA,EAAQlI,QAAUkI,EAAQjF,MAC1B,MAAM,IAAItG,MAAM,4CAEfuL,EAAQlI,QAAUkI,EAAQjF,OAC3B7D,KAAKuZ,qBAAqBzQ,EAAQjF,MAAO,2CAE7C7D,KAAKuZ,qBAAqBzQ,EAAQkH,aAAc,4CAEpDiJ,EAAgBlb,UAAUwb,qBAAuB,SAAUhZ,EAAOiZ,GAC9D,GAAqB,kBAAVjZ,GAAgC,KAAVA,EAC7B,MAAM,IAAIhD,MAAMic,IAGjBP,EA7FyB,GCDhC,EAAsC,WACtC,SAASQ,KAwDT,OAtDAA,EAAqB1b,UAAU2b,iBAAmB,SAAUC,GAQxD,OAPA,OAAI1M,WAAW0M,EAAS,WACpBC,EAASD,GACT3Z,KAAKuC,OAASoX,EAGd3Z,KAAKuC,OAAS,IAAI,OAAcoX,GAE7B3Z,MAEXyZ,EAAqB1b,UAAU8b,QAAU,SAAUvW,EAAKwW,GAapD,OAZA,OAAI7M,WAAW3J,EAAK,OACpBtD,KAAKsD,IAAMA,EAIPtD,KAAK+Z,sBAD6B,kBAA3BD,EACsBA,EAGA,CACzB3D,UAAW2D,GAGZ9Z,MAMXyZ,EAAqB1b,UAAUic,gBAAkB,SAAUhN,GAGvD,OAFA,OAAIC,WAAWD,EAAU,YACzBhN,KAAKgN,SAAWA,EACThN,MAMXyZ,EAAqB1b,UAAUkc,MAAQ,WAGnC,IAAIF,EAAwB/Z,KAAK+Z,uBAAyB,GAO1D,QALqC7Z,IAAjC6Z,EAAsBxX,SAEtBwX,EAAsBxX,OAASvC,KAAKuC,SAGnCvC,KAAKsD,IACN,MAAM,IAAI/F,MAAM,4FAEpB,IAAIwP,EAAa,IAAI,EAAe/M,KAAKsD,IAAKyW,GAC9C,OAAO,EAAcpY,OAAOoL,EAAY/M,KAAKuC,QAAU,OAAWoE,SAAU3G,KAAKgN,UAAY,IAAI,IAE9FyM,EAzD8B,GA4DzC,SAASG,EAASrX,GACd,YAAsBrC,IAAfqC,EAAO0B,ICjEX,IC2DP,GACA5F,KAAA,WACA,OACA6b,QAAA,CACAC,QAAA,IAEA/Q,aAAA,EACAC,UAAA,GACAjB,SAAA,MACAI,YAAA,MACAuE,WAAA,GACAvP,SAAA,GACAsE,EAAA,KAIA4L,QAAA,CAEA0M,eAAA,SAAA1Q,EAAA2Q,GACA,OAAA3Q,EAAA4Q,SAAA5Q,EAAA4Q,SAAAlb,UAAA,aAEAmb,iBAAA,SAAA7Q,EAAA2Q,GACA,OAAA3Q,EAAA8Q,cAAA,IAAA9Q,EAAA8Q,aAAAC,OAAAC,WAAAC,OAAA,IAAArH,KAAA5J,EAAA8Q,cAAA,kBAEAI,oBAAA,SAAAC,GACA,KAAAC,KAAAD,EACA,KAAAE,YAGAA,SAAA,WACA,IAAAC,EAAA,KACAC,EAAA,CACAH,KAAA,KAAAA,KACArV,IAAA,KAAAyU,QAAAC,SAEA,KAAA/Q,aAAA,EAEAJ,eAAAiS,GAAAtP,MAAA,SAAAtL,GAEA2a,EAAAjO,WAAAsB,QAAA1C,MAAA,WAEAqP,EAAAjO,WAAAwD,OAAA,oBAAAF,OAAA,SAAA6K,GACA,OAAAC,QAAAtX,MAAAqX,aAUAnS,WAAA,WACA,KAAAX,UAAA,KAAAI,aACA,KAAAuE,WAAAwD,OAAA,mBAAAnI,SAAA,KAAAI,aAAA6H,OAAA,SAAA6K,GACA,OAAAC,QAAAtX,MAAAqX,OAKAlS,QAAA,WACA,KAAAI,aAAA,EACA,KAAA2D,WAAAwD,OAAA,oBAAAF,OAAA,SAAA6K,GACA,OAAAC,QAAAtX,MAAAqX,QAMAE,QAAA,WACA,IAAAC,EAAA,KAEAA,EAAAtO,YAAA,IAAAuO,GACAzB,QAAA,GAAA0B,OAAAC,OAAA,kBAAAhJ,mBAAA,kBAAA8B,OAAAmH,aAAAC,SACAhC,iBAAA4B,OAAAxM,aACAmL,QAEAoB,EAAAtO,WAAAhF,GAAA,2BAAAc,EAAAC,GACAuS,EAAA7d,SAAAiP,KAAA,CAAA5D,OAAAC,eAGAuS,EAAAtO,WAAAhF,GAAA,0BAAA4T,GACAR,QAAAS,KAAA,mBACAP,EAAAjS,aAAA,EACAiS,EAAAhS,UAAAsS,EACArH,OAAAuH,cAAA,KAAA/Z,OAGAga,QAAA,WACA,KAAAf,YAOAgB,cAAA,WACAzH,OAAAuH,cAAA,KAAA/Z,GACA,KAAAiL,WAAAoC,SCjK6V,I,wBCQzV6M,EAAY,eACd,EACAxU,EACAwC,GACA,EACA,KACA,WACA,MAIa,aAAAgS,E,uFCnBXC,EAAc,mBACdC,EAAkB,aACtB,SAASC,EAAQpa,EAAGqa,GACZA,IAAara,EAAI,IAAIzE,OACzB,IADA,IACS0E,EAAI,EAAGA,EAAIoa,EAAKpa,IAAOD,EAAI,IAAMA,EAC1C,OAAOA,EAGI,QACXsa,qBAAsB,SAAUnT,GAC5B,IAAIoT,EAAM,IAAIlc,OAAO,QAAU8I,EAAO,gBAAiB,KACnDqT,EAAIjI,OAAOkI,SAASC,OAAOC,OAAO,GAAGC,MAAML,GAC3CM,EAAU,GAKd,OAJS,MAALL,IACAK,EAAUL,EAAE,IAChBD,EAAM,KACNC,EAAI,KACc,MAAXK,GAA8B,IAAXA,GAA4B,aAAXA,EAAyB,GAAKA,GAE7ElC,WAAY,CAGRC,OAAQ,SAAUkC,EAAMC,GAEpB,OADAA,EAAUA,GAAWZ,EACdY,EAAQ/H,QAAQkH,GAAa,SAAUc,GAC1C,OAAQA,EAAGC,OAAO,IACd,IAAK,IAAK,OAAOb,EAAQU,EAAKI,cAAeF,EAAGzf,QAChD,IAAK,IAAK,OAAO6e,EAAQU,EAAKK,WAAa,EAAGH,EAAGzf,QACjD,IAAK,IAAK,OAAO6e,EAAQU,EAAKM,UAAWJ,EAAGzf,QAC5C,IAAK,IAAK,OAAOuf,EAAKO,SAAW,EACjC,IAAK,IAAK,OAAOjB,EAAQU,EAAKQ,WAAYN,EAAGzf,QAC7C,IAAK,IAAK,OAAO6e,EAAQU,EAAKS,aAAcP,EAAGzf,QAC/C,IAAK,IAAK,OAAO6e,EAAQU,EAAKU,aAAcR,EAAGzf,aAI3DF,MAAO,SAAUogB,EAAYV,GACzB,IAAIW,EAAUX,EAAQH,MAAMV,GACxByB,EAAUF,EAAWb,MAAM,UAC/B,GAAIc,EAAQngB,QAAUogB,EAAQpgB,OAAQ,CAElC,IADA,IAAIqgB,EAAQ,IAAIrK,KAAK,KAAM,EAAG,GACrBtR,EAAI,EAAGA,EAAIyb,EAAQngB,OAAQ0E,IAAK,CACrC,IAAI4b,EAAOC,SAASH,EAAQ1b,IACxB8b,EAAOL,EAAQzb,GACnB,OAAQ8b,EAAKd,OAAO,IAChB,IAAK,IAAKW,EAAMI,YAAYH,GAAO,MACnC,IAAK,IAAKD,EAAMK,SAASJ,EAAO,GAAI,MACpC,IAAK,IAAKD,EAAMM,QAAQL,GAAO,MAC/B,IAAK,IAAKD,EAAMO,SAASN,GAAO,MAChC,IAAK,IAAKD,EAAMQ,WAAWP,GAAO,MAClC,IAAK,IAAKD,EAAMS,WAAWR,GAAO,OAG1C,OAAOD,EAEX,OAAO,OAIfU,MAAM,CACF1D,OAAQ,SAAU2D,GACd,MAAiB,oBAAPA,GAA6B,MAAPA,GAAsB,IAAPA,M,kCC7D3D,sGAEA,IAAIvd,EAAwC,WACxC,IAAIC,EAAgBC,OAAOC,gBACtB,CAAEC,UAAW,cAAgBC,OAAS,SAAUC,EAAGC,GAAKD,EAAEF,UAAYG,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIC,KAAKD,EAAOA,EAAEE,eAAeD,KAAIF,EAAEE,GAAKD,EAAEC,KACzE,OAAO,SAAUF,EAAGC,GAEhB,SAASG,IAAOzB,KAAK0B,YAAcL,EADnCL,EAAcK,EAAGC,GAEjBD,EAAEtD,UAAkB,OAANuD,EAAaL,OAAOU,OAAOL,IAAMG,EAAG1D,UAAYuD,EAAEvD,UAAW,IAAI0D,IAP3C,GAWxC8c,EAA2B,SAAUjc,GAOrC,SAASic,EAAU/E,EAAcrV,GAC7B,IAAIqa,EAAaxe,KAAK0B,YAClBc,EAAQxC,KACRye,EAAYD,EAAWzgB,UAM3B,OALAyE,EAAQF,EAAOnC,KAAKH,KAAMwZ,IAAiBxZ,KAC3CwC,EAAM2B,WAAaA,EAGnB3B,EAAMrB,UAAYsd,EACXjc,EAEX,OAjBAzB,EAAUwd,EAAWjc,GAiBdic,EAlBmB,CAmB5BhhB,OAGEmhB,EAA8B,SAAUpc,GAMxC,SAASoc,EAAalF,GAClB,IAAIgF,EAAaxe,KAAK0B,iBACD,IAAjB8X,IAA2BA,EAAe,uBAC9C,IAAIhX,EAAQxC,KACRye,EAAYD,EAAWzgB,UAK3B,OAJAyE,EAAQF,EAAOnC,KAAKH,KAAMwZ,IAAiBxZ,KAG3CwC,EAAMrB,UAAYsd,EACXjc,EAEX,OAhBAzB,EAAU2d,EAAcpc,GAgBjBoc,EAjBsB,CAkB/BnhB,OAGEohB,EAA4B,SAAUrc,GAMtC,SAASqc,EAAWnF,GAChB,IAAIgF,EAAaxe,KAAK0B,iBACD,IAAjB8X,IAA2BA,EAAe,sBAC9C,IAAIhX,EAAQxC,KACRye,EAAYD,EAAWzgB,UAK3B,OAJAyE,EAAQF,EAAOnC,KAAKH,KAAMwZ,IAAiBxZ,KAG3CwC,EAAMrB,UAAYsd,EACXjc,EAEX,OAhBAzB,EAAU4d,EAAYrc,GAgBfqc,EAjBoB,CAkB7BphB,Q,kCC1EF,0QAEI0N,EAAwC,SAAUC,EAASC,EAAYC,EAAGC,GAC1E,OAAO,IAAKD,IAAMA,EAAIrI,WAAU,SAAUC,EAASC,GAC/C,SAASqI,EAAU/K,GAAS,IAAMgL,EAAKF,EAAUG,KAAKjL,IAAW,MAAOkL,GAAKxI,EAAOwI,IACpF,SAASC,EAASnL,GAAS,IAAMgL,EAAKF,EAAU,SAAS9K,IAAW,MAAOkL,GAAKxI,EAAOwI,IACvF,SAASF,EAAK3K,GAAUA,EAAON,KAAO0C,EAAQpC,EAAOL,OAAS,IAAI6K,GAAE,SAAUpI,GAAWA,EAAQpC,EAAOL,UAAWoL,KAAKL,EAAWI,GACnIH,GAAMF,EAAYA,EAAUtM,MAAMmM,EAASC,GAAc,KAAKK,YAGlEI,EAA4C,SAAUV,EAAS3H,GAC/D,IAAsGmB,EAAGsC,EAAGlF,EAAG+J,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPlK,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOmK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEL,KAAMW,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXC,SAA0BP,EAAEO,OAAOC,UAAY,WAAa,OAAOrM,OAAU6L,EACvJ,SAASM,EAAKlK,GAAK,OAAO,SAAUqK,GAAK,OAAOf,EAAK,CAACtJ,EAAGqK,KACzD,SAASf,EAAKgB,GACV,GAAI7H,EAAG,MAAM,IAAI8H,UAAU,mCAC3B,MAAOV,EAAG,IACN,GAAIpH,EAAI,EAAGsC,IAAMlF,EAAY,EAARyK,EAAG,GAASvF,EAAE,UAAYuF,EAAG,GAAKvF,EAAE,YAAclF,EAAIkF,EAAE,YAAclF,EAAE3B,KAAK6G,GAAI,GAAKA,EAAEwE,SAAW1J,EAAIA,EAAE3B,KAAK6G,EAAGuF,EAAG,KAAKjM,KAAM,OAAOwB,EAE3J,OADIkF,EAAI,EAAGlF,IAAGyK,EAAK,CAAS,EAARA,EAAG,GAAQzK,EAAEvB,QACzBgM,EAAG,IACP,KAAK,EAAG,KAAK,EAAGzK,EAAIyK,EAAI,MACxB,KAAK,EAAc,OAAXT,EAAEC,QAAgB,CAAExL,MAAOgM,EAAG,GAAIjM,MAAM,GAChD,KAAK,EAAGwL,EAAEC,QAAS/E,EAAIuF,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKT,EAAEI,IAAIxO,MAAOoO,EAAEG,KAAKvO,MAAO,SACxC,QACI,GAAMoE,EAAIgK,EAAEG,OAAMnK,EAAIA,EAAExE,OAAS,GAAKwE,EAAEA,EAAExE,OAAS,MAAkB,IAAViP,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAET,EAAI,EAAG,SACjG,GAAc,IAAVS,EAAG,MAAczK,GAAMyK,EAAG,GAAKzK,EAAE,IAAMyK,EAAG,GAAKzK,EAAE,IAAM,CAAEgK,EAAEC,MAAQQ,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYT,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIA,EAAIyK,EAAI,MAC7D,GAAIzK,GAAKgK,EAAEC,MAAQjK,EAAE,GAAI,CAAEgK,EAAEC,MAAQjK,EAAE,GAAIgK,EAAEI,IAAIO,KAAKF,GAAK,MACvDzK,EAAE,IAAIgK,EAAEI,IAAIxO,MAChBoO,EAAEG,KAAKvO,MAAO,SAEtB6O,EAAKhJ,EAAKpD,KAAK+K,EAASY,GAC1B,MAAOL,GAAKc,EAAK,CAAC,EAAGd,GAAIzE,EAAI,EAAK,QAAUtC,EAAI5C,EAAI,EACtD,GAAY,EAARyK,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEhM,MAAOgM,EAAG,GAAKA,EAAG,QAAK,EAAQjM,MAAM,KAM9Ese,EAAqB,WACrB,SAASA,KAaT,OAXAA,EAAI3R,WAAa,SAAU4N,EAAK3R,GAC5B,GAAY,OAAR2R,QAAwB3a,IAAR2a,EAChB,MAAM,IAAItd,MAAM,QAAU2L,EAAO,4BAGzC0V,EAAI5L,KAAO,SAAU6H,EAAKgE,EAAQ3V,GAE9B,KAAM2R,KAAOgE,GACT,MAAM,IAAIthB,MAAM,WAAa2L,EAAO,WAAa2R,EAAM,MAGxD+D,EAda,GAkBjB,SAASE,EAAczgB,EAAM0gB,GAChC,IAAIC,EAAS,GAab,OAZIC,EAAc5gB,IACd2gB,EAAS,yBAA2B3gB,EAAKY,WACrC8f,IACAC,GAAU,eAAiBE,EAAkB7gB,GAAQ,MAGpC,kBAATA,IACZ2gB,EAAS,yBAA2B3gB,EAAKf,OACrCyhB,IACAC,GAAU,eAAiB3gB,EAAO,MAGnC2gB,EAGJ,SAASE,EAAkB7gB,GAC9B,IAAI8gB,EAAO,IAAIxgB,WAAWN,GAEtB+gB,EAAM,GAMV,OALAD,EAAK5U,SAAQ,SAAU8U,GACnB,IAAIC,EAAMD,EAAM,GAAK,IAAM,GAC3BD,GAAO,KAAOE,EAAMD,EAAInN,SAAS,IAAM,OAGpCkN,EAAI1C,OAAO,EAAG0C,EAAI9hB,OAAS,GAI/B,SAAS2hB,EAAcpE,GAC1B,OAAOA,GAA8B,qBAAhB0E,cAChB1E,aAAe0E,aAEX1E,EAAInZ,aAAwC,gBAAzBmZ,EAAInZ,YAAYwH,MAGzC,SAAS2F,EAAYtM,EAAQid,EAAezU,EAAYzH,EAAKkP,EAAoBrP,EAASsP,GAC7F,OAAOxH,EAAUjL,UAAM,OAAQ,GAAQ,WACnC,IAAIuO,EAAI7K,EAASoP,EAAOrP,EAAcpE,EACtC,OAAOuM,EAAY5L,MAAM,SAAUuR,GAC/B,OAAQA,EAAGxF,OACP,KAAK,EACD,OAAKyG,EACE,CAAC,EAAaA,KADW,CAAC,EAAa,GAElD,KAAK,EACDM,EAAQvB,EAAGvF,OACP8G,IACWvE,EAAK,GACZA,EAAG,iBAAmB,UAAYuE,EADtCpP,EAEI6K,GAERgD,EAAGxF,MAAQ,EACf,KAAK,EAGD,OAFAxJ,EAAO0B,IAAI,OAASgP,MAAO,IAAMuM,EAAgB,6BAA+BV,EAAc3b,EAASsP,GAAqB,KAC5HhP,EAAewb,EAAc9b,GAAW,cAAgB,OACjD,CAAC,EAAa4H,EAAW1D,KAAK/D,EAAK,CAClCH,QAASA,EACTO,QAASA,EACTD,aAAcA,KAE1B,KAAK,EAGD,OAFApE,EAAWkS,EAAGvF,OACdzJ,EAAO0B,IAAI,OAASgP,MAAO,IAAMuM,EAAgB,kDAAoDngB,EAAS8E,WAAa,KACpH,CAAC,UAMrB,SAASsb,EAAald,GACzB,YAAerC,IAAXqC,EACO,IAAImd,EAAc,OAAS5Q,aAEvB,OAAXvM,EACO,OAAWoE,SAElBpE,EAAO0B,IACA1B,EAEJ,IAAImd,EAAcnd,GAG7B,IAAIod,EAAyB,WACzB,SAASA,IACL3f,KAAK4f,UAAY,GA4BrB,OA1BAD,EAAQ5hB,UAAUyN,KAAO,SAAU9C,GAC/B,IAAK,IAAI8G,EAAK,EAAGjB,EAAKvO,KAAK4f,UAAWpQ,EAAKjB,EAAGjR,OAAQkS,IAAM,CACxD,IAAIqQ,EAAWtR,EAAGiB,GAClBqQ,EAASrU,KAAK9C,KAGtBiX,EAAQ5hB,UAAU8F,MAAQ,SAAUqX,GAChC,IAAK,IAAI1L,EAAK,EAAGjB,EAAKvO,KAAK4f,UAAWpQ,EAAKjB,EAAGjR,OAAQkS,IAAM,CACxD,IAAIqQ,EAAWtR,EAAGiB,GACdqQ,EAAShc,OACTgc,EAAShc,MAAMqX,KAI3ByE,EAAQ5hB,UAAUqS,SAAW,WACzB,IAAK,IAAIZ,EAAK,EAAGjB,EAAKvO,KAAK4f,UAAWpQ,EAAKjB,EAAGjR,OAAQkS,IAAM,CACxD,IAAIqQ,EAAWtR,EAAGiB,GACdqQ,EAASzP,UACTyP,EAASzP,aAIrBuP,EAAQ5hB,UAAU+hB,UAAY,SAAUD,GAEpC,OADA7f,KAAK4f,UAAUnT,KAAKoT,GACb,IAAIE,EAAoB/f,KAAM6f,IAElCF,EA9BiB,GAkCxBI,EAAqC,WACrC,SAASA,EAAoBnQ,EAASiQ,GAClC7f,KAAK4P,QAAUA,EACf5P,KAAK6f,SAAWA,EAWpB,OATAE,EAAoBhiB,UAAUiiB,QAAU,WACpC,IAAInf,EAAQb,KAAK4P,QAAQgQ,UAAU/gB,QAAQmB,KAAK6f,UAC5Chf,GAAS,GACTb,KAAK4P,QAAQgQ,UAAU/O,OAAOhQ,EAAO,GAEH,IAAlCb,KAAK4P,QAAQgQ,UAAUtiB,QAAgB0C,KAAK4P,QAAQC,gBACpD7P,KAAK4P,QAAQC,iBAAiBQ,OAAM,SAAUvE,QAG/CiU,EAd6B,GAkBpCL,EAA+B,WAC/B,SAASA,EAAcO,GACnBjgB,KAAKigB,gBAAkBA,EAsB3B,OApBAP,EAAc3hB,UAAUkG,IAAM,SAAUic,EAAUpX,GAC9C,GAAIoX,GAAYlgB,KAAKigB,gBACjB,OAAQC,GACJ,KAAK,OAASC,SACd,KAAK,OAAS5iB,MACV4d,QAAQtX,MAAM,KAAM,IAAIyP,MAAO8M,cAAgB,KAAO,OAASF,GAAY,KAAOpX,GAClF,MACJ,KAAK,OAAS5E,QACViX,QAAQkF,KAAK,KAAM,IAAI/M,MAAO8M,cAAgB,KAAO,OAASF,GAAY,KAAOpX,GACjF,MACJ,KAAK,OAASgG,YACVqM,QAAQS,KAAK,KAAM,IAAItI,MAAO8M,cAAgB,KAAO,OAASF,GAAY,KAAOpX,GACjF,MACJ,QAEIqS,QAAQlX,IAAI,KAAM,IAAIqP,MAAO8M,cAAgB,KAAO,OAASF,GAAY,KAAOpX,GAChF,QAIT4W,EAxBuB","file":"js/chunk-e74f83fa.a131e3dc.js","sourcesContent":["// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Not exported from index\r\n/** @private */\r\nvar TextMessageFormat = /** @class */ (function () {\r\n function TextMessageFormat() {\r\n }\r\n TextMessageFormat.write = function (output) {\r\n return \"\" + output + TextMessageFormat.RecordSeparator;\r\n };\r\n TextMessageFormat.parse = function (input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n var messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n };\r\n TextMessageFormat.RecordSeparatorCode = 0x1e;\r\n TextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n return TextMessageFormat;\r\n}());\r\nexport { TextMessageFormat };\r\n//# sourceMappingURL=TextMessageFormat.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nvar HandshakeProtocol = /** @class */ (function () {\r\n function HandshakeProtocol() {\r\n }\r\n // Handshake request is always JSON\r\n HandshakeProtocol.prototype.writeHandshakeRequest = function (handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n };\r\n HandshakeProtocol.prototype.parseHandshakeResponse = function (data) {\r\n var responseMessage;\r\n var messageData;\r\n var remainingData;\r\n if (isArrayBuffer(data) || (typeof Buffer !== \"undefined\" && data instanceof Buffer)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n var binaryData = new Uint8Array(data);\r\n var separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, binaryData.slice(0, responseLength));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n var textData = data;\r\n var separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n var responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n var messages = TextMessageFormat.parse(messageData);\r\n var response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n };\r\n return HandshakeProtocol;\r\n}());\r\nexport { HandshakeProtocol };\r\n//# sourceMappingURL=HandshakeProtocol.js.map","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nvar requestModule;\r\nif (typeof XMLHttpRequest === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n requestModule = requireFunc(\"request\");\r\n}\r\nvar NodeHttpClient = /** @class */ (function (_super) {\r\n __extends(NodeHttpClient, _super);\r\n function NodeHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n if (typeof requestModule === \"undefined\") {\r\n throw new Error(\"The 'request' module could not be loaded.\");\r\n }\r\n _this.logger = logger;\r\n _this.cookieJar = requestModule.jar();\r\n _this.request = requestModule.defaults({ jar: _this.cookieJar });\r\n return _this;\r\n }\r\n NodeHttpClient.prototype.send = function (httpRequest) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var requestBody;\r\n if (isArrayBuffer(httpRequest.content)) {\r\n requestBody = Buffer.from(httpRequest.content);\r\n }\r\n else {\r\n requestBody = httpRequest.content || \"\";\r\n }\r\n var currentRequest = _this.request(httpRequest.url, {\r\n body: requestBody,\r\n // If binary is expected 'null' should be used, otherwise for text 'utf8'\r\n encoding: httpRequest.responseType === \"arraybuffer\" ? null : \"utf8\",\r\n headers: __assign({ \r\n // Tell auth middleware to 401 instead of redirecting\r\n \"X-Requested-With\": \"XMLHttpRequest\" }, httpRequest.headers),\r\n method: httpRequest.method,\r\n timeout: httpRequest.timeout,\r\n }, function (error, response, body) {\r\n if (httpRequest.abortSignal) {\r\n httpRequest.abortSignal.onabort = null;\r\n }\r\n if (error) {\r\n if (error.code === \"ETIMEDOUT\") {\r\n _this.logger.log(LogLevel.Warning, \"Timeout from HTTP request.\");\r\n reject(new TimeoutError());\r\n }\r\n _this.logger.log(LogLevel.Warning, \"Error from HTTP request. \" + error);\r\n reject(error);\r\n return;\r\n }\r\n if (response.statusCode >= 200 && response.statusCode < 300) {\r\n resolve(new HttpResponse(response.statusCode, response.statusMessage || \"\", body));\r\n }\r\n else {\r\n reject(new HttpError(response.statusMessage || \"\", response.statusCode || 0));\r\n }\r\n });\r\n if (httpRequest.abortSignal) {\r\n httpRequest.abortSignal.onabort = function () {\r\n currentRequest.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n });\r\n };\r\n NodeHttpClient.prototype.getCookieString = function (url) {\r\n return this.cookieJar.getCookieString(url);\r\n };\r\n return NodeHttpClient;\r\n}(HttpClient));\r\nexport { NodeHttpClient };\r\n//# sourceMappingURL=NodeHttpClient.js.map","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=style&index=0&id=621d980b&prod&scoped=true&lang=css\"","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n//# sourceMappingURL=ILogger.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nvar NullLogger = /** @class */ (function () {\r\n function NullLogger() {\r\n }\r\n /** @inheritDoc */\r\n // tslint:disable-next-line\r\n NullLogger.prototype.log = function (_logLevel, _message) {\r\n };\r\n /** The singleton instance of the {@link @aspnet/signalr.NullLogger}. */\r\n NullLogger.instance = new NullLogger();\r\n return NullLogger;\r\n}());\r\nexport { NullLogger };\r\n//# sourceMappingURL=Loggers.js.map","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\r\n t[p] = s[p];\r\n }\r\n return t;\r\n};\r\n/** Represents an HTTP response. */\r\nvar HttpResponse = /** @class */ (function () {\r\n function HttpResponse(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n return HttpResponse;\r\n}());\r\nexport { HttpResponse };\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nvar HttpClient = /** @class */ (function () {\r\n function HttpClient() {\r\n }\r\n HttpClient.prototype.get = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"GET\", url: url }));\r\n };\r\n HttpClient.prototype.post = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"POST\", url: url }));\r\n };\r\n HttpClient.prototype.delete = function (url, options) {\r\n return this.send(__assign({}, options, { method: \"DELETE\", url: url }));\r\n };\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n HttpClient.prototype.getCookieString = function (url) {\r\n return \"\";\r\n };\r\n return HttpClient;\r\n}());\r\nexport { HttpClient };\r\n//# sourceMappingURL=HttpClient.js.map","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',[_c('div',{staticStyle:{\"display\":\"none1\"}},[_c('el-form',{ref:\"form\",staticStyle:{\"margin\":\"20px\",\"width\":\"60%\",\"min-width\":\"600px\"},attrs:{\"label-width\":\"80px\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}}},[_c('el-form-item',{attrs:{\"label\":\"用户名\"}},[_c('el-input',{model:{value:(_vm.userName),callback:function ($$v) {_vm.userName=$$v},expression:\"userName\"}})],1),_c('el-form-item',{attrs:{\"label\":\"密码\"}},[_c('el-input',{model:{value:(_vm.userMessage),callback:function ($$v) {_vm.userMessage=$$v},expression:\"userMessage\"}})],1)],1),_vm._l((_vm.messages),function(item,index){return _c('ul',{key:index + 'itemMessage'},[_c('li',[_c('b',[_vm._v(\"Name: \")]),_vm._v(_vm._s(item.user))]),_c('li',[_c('b',[_vm._v(\"Message: \")]),_vm._v(_vm._s(item.message))])])}),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.submitCard}},[_vm._v(\"登录\")]),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.getLogs}},[_vm._v(\"查询\")])],2),_c('el-table',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.listLoading),expression:\"listLoading\"}],staticStyle:{\"width\":\"100%\"},attrs:{\"data\":_vm.tableData}},[_c('el-table-column',{attrs:{\"type\":\"expand\"},scopedSlots:_vm._u([{key:\"default\",fn:function(props){return [_c('el-form',{staticClass:\"demo-table-expand\",attrs:{\"label-position\":\"left\",\"inline\":\"\"}},[_c('el-form-item',{attrs:{\"label\":\"Datetime\"}},[_c('span',[_vm._v(_vm._s(props.row.datetime))])]),_c('el-form-item',{attrs:{\"label\":\"Content\"}},[_c('span',{domProps:{\"innerHTML\":_vm._s(props.row.content)}})])],1)]}}])}),_c('el-table-column',{attrs:{\"label\":\"Datetime\",\"prop\":\"datetime\"}}),_c('el-table-column',{attrs:{\"label\":\"Content\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('span',{class:scope.row.logColor,domProps:{\"innerHTML\":_vm._s(scope.row.content)}})]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @aspnet/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @aspnet/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @aspnet/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @aspnet/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @aspnet/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @aspnet/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @aspnet/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n//# sourceMappingURL=IHubProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nvar XhrHttpClient = /** @class */ (function (_super) {\r\n __extends(XhrHttpClient, _super);\r\n function XhrHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n _this.logger = logger;\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n XhrHttpClient.prototype.send = function (request) {\r\n var _this = this;\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = true;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n var headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach(function (header) {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = function () {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = function () {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n _this.logger.log(LogLevel.Warning, \"Error from HTTP request. \" + xhr.status + \": \" + xhr.statusText + \".\");\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = function () {\r\n _this.logger.log(LogLevel.Warning, \"Timeout from HTTP request.\");\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content || \"\");\r\n });\r\n };\r\n return XhrHttpClient;\r\n}(HttpClient));\r\nexport { XhrHttpClient };\r\n//# sourceMappingURL=XhrHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nimport { AbortError } from \"./Errors\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { NodeHttpClient } from \"./NodeHttpClient\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @aspnet/signalr.HttpClient}. */\r\nvar DefaultHttpClient = /** @class */ (function (_super) {\r\n __extends(DefaultHttpClient, _super);\r\n /** Creates a new instance of the {@link @aspnet/signalr.DefaultHttpClient}, using the provided {@link @aspnet/signalr.ILogger} to log messages. */\r\n function DefaultHttpClient(logger) {\r\n var _this = _super.call(this) || this;\r\n if (typeof XMLHttpRequest !== \"undefined\") {\r\n _this.httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n _this.httpClient = new NodeHttpClient(logger);\r\n }\r\n return _this;\r\n }\r\n /** @inheritDoc */\r\n DefaultHttpClient.prototype.send = function (request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this.httpClient.send(request);\r\n };\r\n DefaultHttpClient.prototype.getCookieString = function (url) {\r\n return this.httpClient.getCookieString(url);\r\n };\r\n return DefaultHttpClient;\r\n}(HttpClient));\r\nexport { DefaultHttpClient };\r\n//# sourceMappingURL=DefaultHttpClient.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Arg, Subject } from \"./Utils\";\r\nvar DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nvar DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[HubConnectionState[\"Disconnected\"] = 0] = \"Disconnected\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[HubConnectionState[\"Connected\"] = 1] = \"Connected\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nvar HubConnection = /** @class */ (function () {\r\n function HubConnection(connection, logger, protocol) {\r\n var _this = this;\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this.logger = logger;\r\n this.protocol = protocol;\r\n this.connection = connection;\r\n this.handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = function (data) { return _this.processIncomingData(data); };\r\n this.connection.onclose = function (error) { return _this.connectionClosed(error); };\r\n this.callbacks = {};\r\n this.methods = {};\r\n this.closedCallbacks = [];\r\n this.id = 0;\r\n this.receivedHandshakeResponse = false;\r\n this.connectionState = HubConnectionState.Disconnected;\r\n this.cachedPingMessage = this.protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n HubConnection.create = function (connection, logger, protocol) {\r\n return new HubConnection(connection, logger, protocol);\r\n };\r\n Object.defineProperty(HubConnection.prototype, \"state\", {\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get: function () {\r\n return this.connectionState;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n HubConnection.prototype.start = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var handshakeRequest, handshakePromise;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n handshakeRequest = {\r\n protocol: this.protocol.name,\r\n version: this.protocol.version,\r\n };\r\n this.logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n this.receivedHandshakeResponse = false;\r\n handshakePromise = new Promise(function (resolve, reject) {\r\n _this.handshakeResolver = resolve;\r\n _this.handshakeRejecter = reject;\r\n });\r\n return [4 /*yield*/, this.connection.start(this.protocol.transferFormat)];\r\n case 1:\r\n _a.sent();\r\n this.logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n return [4 /*yield*/, this.sendMessage(this.handshakeProtocol.writeHandshakeRequest(handshakeRequest))];\r\n case 2:\r\n _a.sent();\r\n this.logger.log(LogLevel.Information, \"Using HubProtocol '\" + this.protocol.name + \"'.\");\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this.cleanupTimeout();\r\n this.resetTimeoutPeriod();\r\n this.resetKeepAliveInterval();\r\n // Wait for the handshake to complete before marking connection as connected\r\n return [4 /*yield*/, handshakePromise];\r\n case 3:\r\n // Wait for the handshake to complete before marking connection as connected\r\n _a.sent();\r\n this.connectionState = HubConnectionState.Connected;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n HubConnection.prototype.stop = function () {\r\n this.logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n return this.connection.stop();\r\n };\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n HubConnection.prototype.stream = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createStreamInvocation(methodName, args);\r\n var promiseQueue;\r\n var subject = new Subject();\r\n subject.cancelCallback = function () {\r\n var cancelInvocation = _this.createCancelInvocation(invocationDescriptor.invocationId);\r\n var cancelMessage = _this.protocol.writeMessage(cancelInvocation);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(function () {\r\n return _this.sendMessage(cancelMessage);\r\n });\r\n };\r\n this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n promiseQueue = this.sendMessage(message)\r\n .catch(function (e) {\r\n subject.error(e);\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n return subject;\r\n };\r\n HubConnection.prototype.sendMessage = function (message) {\r\n this.resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n HubConnection.prototype.send = function (methodName) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, true);\r\n var message = this.protocol.writeMessage(invocationDescriptor);\r\n return this.sendMessage(message);\r\n };\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n HubConnection.prototype.invoke = function (methodName) {\r\n var _this = this;\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n var invocationDescriptor = this.createInvocation(methodName, args, false);\r\n var p = new Promise(function (resolve, reject) {\r\n // invocationId will always have a value for a non-blocking invocation\r\n _this.callbacks[invocationDescriptor.invocationId] = function (invocationEvent, error) {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(\"Unexpected message type: \" + invocationEvent.type));\r\n }\r\n }\r\n };\r\n var message = _this.protocol.writeMessage(invocationDescriptor);\r\n _this.sendMessage(message)\r\n .catch(function (e) {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete _this.callbacks[invocationDescriptor.invocationId];\r\n });\r\n });\r\n return p;\r\n };\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n HubConnection.prototype.on = function (methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this.methods[methodName]) {\r\n this.methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this.methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this.methods[methodName].push(newMethod);\r\n };\r\n HubConnection.prototype.off = function (methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n var handlers = this.methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n var removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this.methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this.methods[methodName];\r\n }\r\n };\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n HubConnection.prototype.onclose = function (callback) {\r\n if (callback) {\r\n this.closedCallbacks.push(callback);\r\n }\r\n };\r\n HubConnection.prototype.processIncomingData = function (data) {\r\n this.cleanupTimeout();\r\n if (!this.receivedHandshakeResponse) {\r\n data = this.processHandshakeResponse(data);\r\n this.receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n var messages = this.protocol.parseMessages(data, this.logger);\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this.invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n var callback = this.callbacks[message.invocationId];\r\n if (callback != null) {\r\n if (message.type === MessageType.Completion) {\r\n delete this.callbacks[message.invocationId];\r\n }\r\n callback(message);\r\n }\r\n break;\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close:\r\n this.logger.log(LogLevel.Information, \"Close message received from server.\");\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined);\r\n break;\r\n default:\r\n this.logger.log(LogLevel.Warning, \"Invalid message type: \" + message.type + \".\");\r\n break;\r\n }\r\n }\r\n }\r\n this.resetTimeoutPeriod();\r\n };\r\n HubConnection.prototype.processHandshakeResponse = function (data) {\r\n var _a;\r\n var responseMessage;\r\n var remainingData;\r\n try {\r\n _a = this.handshakeProtocol.parseHandshakeResponse(data), remainingData = _a[0], responseMessage = _a[1];\r\n }\r\n catch (e) {\r\n var message = \"Error parsing handshake response: \" + e;\r\n this.logger.log(LogLevel.Error, message);\r\n var error = new Error(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(error);\r\n this.handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n var message = \"Server returned handshake error: \" + responseMessage.error;\r\n this.logger.log(LogLevel.Error, message);\r\n this.handshakeRejecter(message);\r\n // We don't want to wait on the stop itself.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n throw new Error(message);\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this.handshakeResolver();\r\n return remainingData;\r\n };\r\n HubConnection.prototype.resetKeepAliveInterval = function () {\r\n var _this = this;\r\n this.cleanupPingTimer();\r\n this.pingServerHandle = setTimeout(function () { return __awaiter(_this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!(this.connectionState === HubConnectionState.Connected)) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.sendMessage(this.cachedPingMessage)];\r\n case 2:\r\n _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a = _b.sent();\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this.cleanupPingTimer();\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n }); }, this.keepAliveIntervalInMilliseconds);\r\n };\r\n HubConnection.prototype.resetTimeoutPeriod = function () {\r\n var _this = this;\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this.timeoutHandle = setTimeout(function () { return _this.serverTimeout(); }, this.serverTimeoutInMilliseconds);\r\n }\r\n };\r\n HubConnection.prototype.serverTimeout = function () {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n };\r\n HubConnection.prototype.invokeClientMethod = function (invocationMessage) {\r\n var _this = this;\r\n var methods = this.methods[invocationMessage.target.toLowerCase()];\r\n if (methods) {\r\n methods.forEach(function (m) { return m.apply(_this, invocationMessage.arguments); });\r\n if (invocationMessage.invocationId) {\r\n // This is not supported in v1. So we return an error to avoid blocking the server waiting for the response.\r\n var message = \"Server requested a response, which is not supported in this version of the client.\";\r\n this.logger.log(LogLevel.Error, message);\r\n // We don't need to wait on this Promise.\r\n // tslint:disable-next-line:no-floating-promises\r\n this.connection.stop(new Error(message));\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Warning, \"No client method with the name '\" + invocationMessage.target + \"' found.\");\r\n }\r\n };\r\n HubConnection.prototype.connectionClosed = function (error) {\r\n var _this = this;\r\n var callbacks = this.callbacks;\r\n this.callbacks = {};\r\n this.connectionState = HubConnectionState.Disconnected;\r\n // if handshake is in progress start will be waiting for the handshake promise, so we complete it\r\n // if it has already completed this should just noop\r\n if (this.handshakeRejecter) {\r\n this.handshakeRejecter(error);\r\n }\r\n Object.keys(callbacks)\r\n .forEach(function (key) {\r\n var callback = callbacks[key];\r\n callback(null, error ? error : new Error(\"Invocation canceled due to connection being closed.\"));\r\n });\r\n this.cleanupTimeout();\r\n this.cleanupPingTimer();\r\n this.closedCallbacks.forEach(function (c) { return c.apply(_this, [error]); });\r\n };\r\n HubConnection.prototype.cleanupPingTimer = function () {\r\n if (this.pingServerHandle) {\r\n clearTimeout(this.pingServerHandle);\r\n }\r\n };\r\n HubConnection.prototype.cleanupTimeout = function () {\r\n if (this.timeoutHandle) {\r\n clearTimeout(this.timeoutHandle);\r\n }\r\n };\r\n HubConnection.prototype.createInvocation = function (methodName, args, nonblocking) {\r\n if (nonblocking) {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n };\r\n HubConnection.prototype.createStreamInvocation = function (methodName, args) {\r\n var id = this.id;\r\n this.id++;\r\n return {\r\n arguments: args,\r\n invocationId: id.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n };\r\n HubConnection.prototype.createCancelInvocation = function (id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n };\r\n return HubConnection;\r\n}());\r\nexport { HubConnection };\r\n//# sourceMappingURL=HubConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n//# sourceMappingURL=ITransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nvar AbortController = /** @class */ (function () {\r\n function AbortController() {\r\n this.isAborted = false;\r\n this.onabort = null;\r\n }\r\n AbortController.prototype.abort = function () {\r\n if (!this.isAborted) {\r\n this.isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n };\r\n Object.defineProperty(AbortController.prototype, \"signal\", {\r\n get: function () {\r\n return this;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Object.defineProperty(AbortController.prototype, \"aborted\", {\r\n get: function () {\r\n return this.isAborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n return AbortController;\r\n}());\r\nexport { AbortController };\r\n//# sourceMappingURL=AbortController.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nvar LongPollingTransport = /** @class */ (function () {\r\n function LongPollingTransport(httpClient, accessTokenFactory, logger, logMessageContent) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.pollAbort = new AbortController();\r\n this.logMessageContent = logMessageContent;\r\n this.running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n Object.defineProperty(LongPollingTransport.prototype, \"pollAborted\", {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get: function () {\r\n return this.pollAbort.aborted;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n LongPollingTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pollOptions, token, pollUrl, response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.url = url;\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n pollOptions = {\r\n abortSignal: this.pollAbort.signal,\r\n headers: {},\r\n timeout: 100000,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 1:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 2:\r\n response = _a.sent();\r\n if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n this.running = true;\r\n }\r\n this.receiving = this.poll(this.url, pollOptions);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.getAccessToken = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, null];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.updateHeaderToken = function (request, token) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (token) {\r\n // tslint:disable-next-line:no-string-literal\r\n request.headers[\"Authorization\"] = \"Bearer \" + token;\r\n return;\r\n }\r\n // tslint:disable-next-line:no-string-literal\r\n if (request.headers[\"Authorization\"]) {\r\n // tslint:disable-next-line:no-string-literal\r\n delete request.headers[\"Authorization\"];\r\n }\r\n };\r\n LongPollingTransport.prototype.poll = function (url, pollOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token, pollUrl, response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, , 8, 9]);\r\n _a.label = 1;\r\n case 1:\r\n if (!this.running) return [3 /*break*/, 7];\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 2:\r\n token = _a.sent();\r\n this.updateHeaderToken(pollOptions, token);\r\n _a.label = 3;\r\n case 3:\r\n _a.trys.push([3, 5, , 6]);\r\n pollUrl = url + \"&_=\" + Date.now();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) polling: \" + pollUrl + \".\");\r\n return [4 /*yield*/, this.httpClient.get(pollUrl, pollOptions)];\r\n case 4:\r\n response = _a.sent();\r\n if (response.statusCode === 204) {\r\n this.logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this.running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this.logger.log(LogLevel.Error, \"(LongPolling transport) Unexpected response code: \" + response.statusCode + \".\");\r\n // Unexpected status code\r\n this.closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this.running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) data received. \" + getDataDetail(response.content, this.logMessageContent) + \".\");\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (!this.running) {\r\n // Log but disregard errors that occur after stopping\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll errored after shutdown: \" + e_1.message);\r\n }\r\n else {\r\n if (e_1 instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this.closeError = e_1;\r\n this.running = false;\r\n }\r\n }\r\n return [3 /*break*/, 6];\r\n case 6: return [3 /*break*/, 1];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this.raiseOnClose();\r\n }\r\n return [7 /*endfinally*/];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.running) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"LongPolling\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.stop = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var deleteOptions, token;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this.running = false;\r\n this.pollAbort.abort();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, , 5, 6]);\r\n return [4 /*yield*/, this.receiving];\r\n case 2:\r\n _a.sent();\r\n // Send DELETE to clean up long polling on the server\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) sending DELETE request to \" + this.url + \".\");\r\n deleteOptions = {\r\n headers: {},\r\n };\r\n return [4 /*yield*/, this.getAccessToken()];\r\n case 3:\r\n token = _a.sent();\r\n this.updateHeaderToken(deleteOptions, token);\r\n return [4 /*yield*/, this.httpClient.delete(this.url, deleteOptions)];\r\n case 4:\r\n _a.sent();\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n return [3 /*break*/, 6];\r\n case 5:\r\n this.logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this.raiseOnClose();\r\n return [7 /*endfinally*/];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n LongPollingTransport.prototype.raiseOnClose = function () {\r\n if (this.onclose) {\r\n var logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this.closeError) {\r\n logMessage += \" Error: \" + this.closeError;\r\n }\r\n this.logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this.closeError);\r\n }\r\n };\r\n return LongPollingTransport;\r\n}());\r\nexport { LongPollingTransport };\r\n//# sourceMappingURL=LongPollingTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, sendMessage } from \"./Utils\";\r\n/** @private */\r\nvar ServerSentEventsTransport = /** @class */ (function () {\r\n function ServerSentEventsTransport(httpClient, accessTokenFactory, logger, logMessageContent, eventSourceConstructor) {\r\n this.httpClient = httpClient;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logger = logger;\r\n this.logMessageContent = logMessageContent;\r\n this.eventSourceConstructor = eventSourceConstructor;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n ServerSentEventsTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this.url is only for send and we set the auth header instead of the query string for send\r\n this.url = url;\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n var eventSource;\r\n if (typeof window !== \"undefined\") {\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n var cookies = _this.httpClient.getCookieString(url);\r\n eventSource = new _this.eventSourceConstructor(url, { withCredentials: true, headers: { Cookie: cookies } });\r\n }\r\n try {\r\n eventSource.onmessage = function (e) {\r\n if (_this.onreceive) {\r\n try {\r\n _this.logger.log(LogLevel.Trace, \"(SSE transport) data received. \" + getDataDetail(e.data, _this.logMessageContent) + \".\");\r\n _this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n _this.close(error);\r\n return;\r\n }\r\n }\r\n };\r\n eventSource.onerror = function (e) {\r\n var error = new Error(e.data || \"Error occurred\");\r\n if (opened) {\r\n _this.close(error);\r\n }\r\n else {\r\n reject(error);\r\n }\r\n };\r\n eventSource.onopen = function () {\r\n _this.logger.log(LogLevel.Information, \"SSE connected to \" + _this.url);\r\n _this.eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.send = function (data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n if (!this.eventSource) {\r\n return [2 /*return*/, Promise.reject(new Error(\"Cannot send until the transport is connected\"))];\r\n }\r\n return [2 /*return*/, sendMessage(this.logger, \"SSE\", this.httpClient, this.url, this.accessTokenFactory, data, this.logMessageContent)];\r\n });\r\n });\r\n };\r\n ServerSentEventsTransport.prototype.stop = function () {\r\n this.close();\r\n return Promise.resolve();\r\n };\r\n ServerSentEventsTransport.prototype.close = function (e) {\r\n if (this.eventSource) {\r\n this.eventSource.close();\r\n this.eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n };\r\n return ServerSentEventsTransport;\r\n}());\r\nexport { ServerSentEventsTransport };\r\n//# sourceMappingURL=ServerSentEventsTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail } from \"./Utils\";\r\n/** @private */\r\nvar WebSocketTransport = /** @class */ (function () {\r\n function WebSocketTransport(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor) {\r\n this.logger = logger;\r\n this.accessTokenFactory = accessTokenFactory;\r\n this.logMessageContent = logMessageContent;\r\n this.webSocketConstructor = webSocketConstructor;\r\n this.httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n WebSocketTransport.prototype.connect = function (url, transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var token;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _a.sent();\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + (\"access_token=\" + encodeURIComponent(token));\r\n }\r\n _a.label = 2;\r\n case 2: return [2 /*return*/, new Promise(function (resolve, reject) {\r\n url = url.replace(/^http/, \"ws\");\r\n var webSocket;\r\n var cookies = _this.httpClient.getCookieString(url);\r\n if (typeof window === \"undefined\" && cookies) {\r\n // Only pass cookies when in non-browser environments\r\n webSocket = new _this.webSocketConstructor(url, undefined, {\r\n headers: {\r\n Cookie: \"\" + cookies,\r\n },\r\n });\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new _this.webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n // tslint:disable-next-line:variable-name\r\n webSocket.onopen = function (_event) {\r\n _this.logger.log(LogLevel.Information, \"WebSocket connected to \" + url + \".\");\r\n _this.webSocket = webSocket;\r\n resolve();\r\n };\r\n webSocket.onerror = function (event) {\r\n var error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n reject(error);\r\n };\r\n webSocket.onmessage = function (message) {\r\n _this.logger.log(LogLevel.Trace, \"(WebSockets transport) data received. \" + getDataDetail(message.data, _this.logMessageContent) + \".\");\r\n if (_this.onreceive) {\r\n _this.onreceive(message.data);\r\n }\r\n };\r\n webSocket.onclose = function (event) { return _this.close(event); };\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n WebSocketTransport.prototype.send = function (data) {\r\n if (this.webSocket && this.webSocket.readyState === this.webSocketConstructor.OPEN) {\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) sending data. \" + getDataDetail(data, this.logMessageContent) + \".\");\r\n this.webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n };\r\n WebSocketTransport.prototype.stop = function () {\r\n if (this.webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this.webSocket.onclose = function () { };\r\n this.webSocket.onmessage = function () { };\r\n this.webSocket.onerror = function () { };\r\n this.webSocket.close();\r\n this.webSocket = undefined;\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this.close(undefined);\r\n }\r\n return Promise.resolve();\r\n };\r\n WebSocketTransport.prototype.close = function (event) {\r\n // webSocket will be null if the transport did not start successfully\r\n this.logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (event && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(\"WebSocket closed with status code: \" + event.code + \" (\" + event.reason + \").\"));\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n };\r\n return WebSocketTransport;\r\n}());\r\nexport { WebSocketTransport };\r\n//# sourceMappingURL=WebSocketTransport.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nvar MAX_REDIRECTS = 100;\r\nvar WebSocketModule = null;\r\nvar EventSourceModule = null;\r\nif (typeof window === \"undefined\" && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n var requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n WebSocketModule = requireFunc(\"ws\");\r\n EventSourceModule = requireFunc(\"eventsource\");\r\n}\r\n/** @private */\r\nvar HttpConnection = /** @class */ (function () {\r\n function HttpConnection(url, options) {\r\n if (options === void 0) { options = {}; }\r\n this.features = {};\r\n Arg.isRequired(url, \"url\");\r\n this.logger = createLogger(options.logger);\r\n this.baseUrl = this.resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent || false;\r\n var isNode = typeof window === \"undefined\";\r\n if (!isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (isNode && !options.WebSocket) {\r\n if (WebSocketModule) {\r\n options.WebSocket = WebSocketModule;\r\n }\r\n }\r\n if (!isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (isNode && !options.EventSource) {\r\n if (typeof EventSourceModule !== \"undefined\") {\r\n options.EventSource = EventSourceModule;\r\n }\r\n }\r\n this.httpClient = options.httpClient || new DefaultHttpClient(this.logger);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n HttpConnection.prototype.start = function (transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this.logger.log(LogLevel.Debug, \"Starting connection with transfer format '\" + TransferFormat[transferFormat] + \"'.\");\r\n if (this.connectionState !== 2 /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start a connection that is not in the 'Disconnected' state.\"));\r\n }\r\n this.connectionState = 0 /* Connecting */;\r\n this.startPromise = this.startInternal(transferFormat);\r\n return this.startPromise;\r\n };\r\n HttpConnection.prototype.send = function (data) {\r\n if (this.connectionState !== 1 /* Connected */) {\r\n throw new Error(\"Cannot send data if the connection is not in the 'Connected' State.\");\r\n }\r\n // Transport will not be null if state is connected\r\n return this.transport.send(data);\r\n };\r\n HttpConnection.prototype.stop = function (error) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.connectionState = 2 /* Disconnected */;\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this.stopError = error;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.startPromise];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 4:\r\n if (!this.transport) return [3 /*break*/, 6];\r\n return [4 /*yield*/, this.transport.stop()];\r\n case 5:\r\n _a.sent();\r\n this.transport = undefined;\r\n _a.label = 6;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.startInternal = function (transferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var url, negotiateResponse, redirects, _loop_1, this_1, state_1, e_2;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n url = this.baseUrl;\r\n this.accessTokenFactory = this.options.accessTokenFactory;\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 12, , 13]);\r\n if (!this.options.skipNegotiation) return [3 /*break*/, 5];\r\n if (!(this.options.transport === HttpTransportType.WebSockets)) return [3 /*break*/, 3];\r\n // No need to add a connection ID in this case\r\n this.transport = this.constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n return [4 /*yield*/, this.transport.connect(url, transferFormat)];\r\n case 2:\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3: throw Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n case 4: return [3 /*break*/, 11];\r\n case 5:\r\n negotiateResponse = null;\r\n redirects = 0;\r\n _loop_1 = function () {\r\n var accessToken_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this_1.getNegotiationResponse(url)];\r\n case 1:\r\n negotiateResponse = _a.sent();\r\n // the user tries to stop the connection when it is being started\r\n if (this_1.connectionState === 2 /* Disconnected */) {\r\n return [2 /*return*/, { value: void 0 }];\r\n }\r\n if (negotiateResponse.error) {\r\n throw Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n accessToken_1 = negotiateResponse.accessToken;\r\n this_1.accessTokenFactory = function () { return accessToken_1; };\r\n }\r\n redirects++;\r\n return [2 /*return*/];\r\n }\r\n });\r\n };\r\n this_1 = this;\r\n _a.label = 6;\r\n case 6: return [5 /*yield**/, _loop_1()];\r\n case 7:\r\n state_1 = _a.sent();\r\n if (typeof state_1 === \"object\")\r\n return [2 /*return*/, state_1.value];\r\n _a.label = 8;\r\n case 8:\r\n if (negotiateResponse.url && redirects < MAX_REDIRECTS) return [3 /*break*/, 6];\r\n _a.label = 9;\r\n case 9:\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n return [4 /*yield*/, this.createTransport(url, this.options.transport, negotiateResponse, transferFormat)];\r\n case 10:\r\n _a.sent();\r\n _a.label = 11;\r\n case 11:\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = function (e) { return _this.stopConnection(e); };\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [3 /*break*/, 13];\r\n case 12:\r\n e_2 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the connection: \" + e_2);\r\n this.connectionState = 2 /* Disconnected */;\r\n this.transport = undefined;\r\n throw e_2;\r\n case 13: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.getNegotiationResponse = function (url) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, negotiateUrl, response, e_3;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!this.accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n negotiateUrl = this.resolveNegotiateUrl(url);\r\n this.logger.log(LogLevel.Debug, \"Sending negotiation request: \" + negotiateUrl + \".\");\r\n _b.label = 3;\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n return [4 /*yield*/, this.httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: headers,\r\n })];\r\n case 4:\r\n response = _b.sent();\r\n if (response.statusCode !== 200) {\r\n throw Error(\"Unexpected status code returned from negotiate \" + response.statusCode);\r\n }\r\n return [2 /*return*/, JSON.parse(response.content)];\r\n case 5:\r\n e_3 = _b.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to complete negotiation with the server: \" + e_3);\r\n throw e_3;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.createConnectUrl = function (url, connectionId) {\r\n if (!connectionId) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + (\"id=\" + connectionId);\r\n };\r\n HttpConnection.prototype.createTransport = function (url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var connectUrl, transports, _i, transports_1, endpoint, transport, ex_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n if (!this.isITransport(requestedTransport)) return [3 /*break*/, 2];\r\n this.logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 1:\r\n _a.sent();\r\n // only change the state if we were connecting to not overwrite\r\n // the state if the connection is already marked as Disconnected\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 2:\r\n transports = negotiateResponse.availableTransports || [];\r\n _i = 0, transports_1 = transports;\r\n _a.label = 3;\r\n case 3:\r\n if (!(_i < transports_1.length)) return [3 /*break*/, 9];\r\n endpoint = transports_1[_i];\r\n this.connectionState = 0 /* Connecting */;\r\n transport = this.resolveTransport(endpoint, requestedTransport, requestedTransferFormat);\r\n if (!(typeof transport === \"number\")) return [3 /*break*/, 8];\r\n this.transport = this.constructTransport(transport);\r\n if (!!negotiateResponse.connectionId) return [3 /*break*/, 5];\r\n return [4 /*yield*/, this.getNegotiationResponse(url)];\r\n case 4:\r\n negotiateResponse = _a.sent();\r\n connectUrl = this.createConnectUrl(url, negotiateResponse.connectionId);\r\n _a.label = 5;\r\n case 5:\r\n _a.trys.push([5, 7, , 8]);\r\n return [4 /*yield*/, this.transport.connect(connectUrl, requestedTransferFormat)];\r\n case 6:\r\n _a.sent();\r\n this.changeState(0 /* Connecting */, 1 /* Connected */);\r\n return [2 /*return*/];\r\n case 7:\r\n ex_1 = _a.sent();\r\n this.logger.log(LogLevel.Error, \"Failed to start the transport '\" + HttpTransportType[transport] + \"': \" + ex_1);\r\n this.connectionState = 2 /* Disconnected */;\r\n negotiateResponse.connectionId = undefined;\r\n return [3 /*break*/, 8];\r\n case 8:\r\n _i++;\r\n return [3 /*break*/, 3];\r\n case 9: throw new Error(\"Unable to initialize any of the available transports.\");\r\n }\r\n });\r\n });\r\n };\r\n HttpConnection.prototype.constructTransport = function (transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this.options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.WebSocket);\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this.options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false, this.options.EventSource);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this.httpClient, this.accessTokenFactory, this.logger, this.options.logMessageContent || false);\r\n default:\r\n throw new Error(\"Unknown transport: \" + transport + \".\");\r\n }\r\n };\r\n HttpConnection.prototype.resolveTransport = function (endpoint, requestedTransport, requestedTransferFormat) {\r\n var transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + endpoint.transport + \"' because it is not supported by this client.\");\r\n }\r\n else {\r\n var transferFormats = endpoint.transferFormats.map(function (s) { return TransferFormat[s]; });\r\n if (transportMatches(requestedTransport, transport)) {\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this.options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this.options.EventSource)) {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it is not supported in your environment.'\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Selecting transport '\" + HttpTransportType[transport] + \"'.\");\r\n return transport;\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it does not support the requested transfer format '\" + TransferFormat[requestedTransferFormat] + \"'.\");\r\n }\r\n }\r\n else {\r\n this.logger.log(LogLevel.Debug, \"Skipping transport '\" + HttpTransportType[transport] + \"' because it was disabled by the client.\");\r\n }\r\n }\r\n return null;\r\n };\r\n HttpConnection.prototype.isITransport = function (transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n };\r\n HttpConnection.prototype.changeState = function (from, to) {\r\n if (this.connectionState === from) {\r\n this.connectionState = to;\r\n return true;\r\n }\r\n return false;\r\n };\r\n HttpConnection.prototype.stopConnection = function (error) {\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this.stopError || error;\r\n if (error) {\r\n this.logger.log(LogLevel.Error, \"Connection disconnected with error '\" + error + \"'.\");\r\n }\r\n else {\r\n this.logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n this.connectionState = 2 /* Disconnected */;\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n };\r\n HttpConnection.prototype.resolveUrl = function (url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (typeof window === \"undefined\" || !window || !window.document) {\r\n throw new Error(\"Cannot resolve '\" + url + \"'.\");\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n var aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this.logger.log(LogLevel.Information, \"Normalizing '\" + url + \"' to '\" + aTag.href + \"'.\");\r\n return aTag.href;\r\n };\r\n HttpConnection.prototype.resolveNegotiateUrl = function (url) {\r\n var index = url.indexOf(\"?\");\r\n var negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n return negotiateUrl;\r\n };\r\n return HttpConnection;\r\n}());\r\nexport { HttpConnection };\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n//# sourceMappingURL=HttpConnection.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nvar JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nvar JsonHubProtocol = /** @class */ (function () {\r\n function JsonHubProtocol() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @aspnet/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n JsonHubProtocol.prototype.parseMessages = function (input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n var messages = TextMessageFormat.parse(input);\r\n var hubMessages = [];\r\n for (var _i = 0, messages_1 = messages; _i < messages_1.length; _i++) {\r\n var message = messages_1[_i];\r\n var parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this.isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this.isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this.isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n };\r\n /** Writes the specified {@link @aspnet/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n JsonHubProtocol.prototype.writeMessage = function (message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n };\r\n JsonHubProtocol.prototype.isInvocationMessage = function (message) {\r\n this.assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isStreamItemMessage = function (message) {\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n };\r\n JsonHubProtocol.prototype.isCompletionMessage = function (message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this.assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this.assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n };\r\n JsonHubProtocol.prototype.assertNotEmptyString = function (value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n };\r\n return JsonHubProtocol;\r\n}());\r\nexport { JsonHubProtocol };\r\n//# sourceMappingURL=JsonHubProtocol.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\n/** A builder for configuring {@link @aspnet/signalr.HubConnection} instances. */\r\nvar HubConnectionBuilder = /** @class */ (function () {\r\n function HubConnectionBuilder() {\r\n }\r\n HubConnectionBuilder.prototype.configureLogging = function (logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n };\r\n HubConnectionBuilder.prototype.withUrl = function (url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = transportTypeOrOptions;\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n };\r\n /** Configures the {@link @aspnet/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @aspnet/signalr.IHubProtocol} implementation to use.\r\n */\r\n HubConnectionBuilder.prototype.withHubProtocol = function (protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n };\r\n /** Creates a {@link @aspnet/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @aspnet/signalr.HubConnection}.\r\n */\r\n HubConnectionBuilder.prototype.build = function () {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n var httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n var connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol());\r\n };\r\n return HubConnectionBuilder;\r\n}());\r\nexport { HubConnectionBuilder };\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n//# sourceMappingURL=HubConnectionBuilder.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport var VERSION = \"1.1.4\";\r\nexport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nexport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nexport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nexport { HubConnection, HubConnectionState } from \"./HubConnection\";\r\nexport { HubConnectionBuilder } from \"./HubConnectionBuilder\";\r\nexport { MessageType } from \"./IHubProtocol\";\r\nexport { LogLevel } from \"./ILogger\";\r\nexport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nexport { NullLogger } from \"./Loggers\";\r\nexport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\n//# sourceMappingURL=index.js.map","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=621d980b&scoped=true\"\nimport script from \"./Index.vue?vue&type=script&lang=js\"\nexport * from \"./Index.vue?vue&type=script&lang=js\"\nimport style0 from \"./Index.vue?vue&type=style&index=0&id=621d980b&prod&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"621d980b\",\n null\n \n)\n\nexport default component.exports","var SIGN_REGEXP = /([yMdhsm])(\\1*)/g;\r\nvar DEFAULT_PATTERN = 'yyyy-MM-dd';\r\nfunction padding(s, len) {\r\n var len = len - (s + '').length;\r\n for (var i = 0; i < len; i++) { s = '0' + s; }\r\n return s;\r\n};\r\n\r\nexport default {\r\n getQueryStringByName: function (name) {\r\n var reg = new RegExp(\"(^|&)\" + name + \"=([^&]*)(&|$)\", \"i\");\r\n var r = window.location.search.substr(1).match(reg);\r\n var context = \"\";\r\n if (r != null)\r\n context = r[2];\r\n reg = null;\r\n r = null;\r\n return context == null || context == \"\" || context == \"undefined\" ? \"\" : context;\r\n },\r\n formatDate: {\r\n\r\n\r\n format: function (date, pattern) {\r\n pattern = pattern || DEFAULT_PATTERN;\r\n return pattern.replace(SIGN_REGEXP, function ($0) {\r\n switch ($0.charAt(0)) {\r\n case 'y': return padding(date.getFullYear(), $0.length);\r\n case 'M': return padding(date.getMonth() + 1, $0.length);\r\n case 'd': return padding(date.getDate(), $0.length);\r\n case 'w': return date.getDay() + 1;\r\n case 'h': return padding(date.getHours(), $0.length);\r\n case 'm': return padding(date.getMinutes(), $0.length);\r\n case 's': return padding(date.getSeconds(), $0.length);\r\n }\r\n });\r\n },\r\n parse: function (dateString, pattern) {\r\n var matchs1 = pattern.match(SIGN_REGEXP);\r\n var matchs2 = dateString.match(/(\\d)+/g);\r\n if (matchs1.length == matchs2.length) {\r\n var _date = new Date(1970, 0, 1);\r\n for (var i = 0; i < matchs1.length; i++) {\r\n var _int = parseInt(matchs2[i]);\r\n var sign = matchs1[i];\r\n switch (sign.charAt(0)) {\r\n case 'y': _date.setFullYear(_int); break;\r\n case 'M': _date.setMonth(_int - 1); break;\r\n case 'd': _date.setDate(_int); break;\r\n case 'h': _date.setHours(_int); break;\r\n case 'm': _date.setMinutes(_int); break;\r\n case 's': _date.setSeconds(_int); break;\r\n }\r\n }\r\n return _date;\r\n }\r\n return null;\r\n }\r\n\r\n },\r\n isEmt:{\r\n format: function (obj) {\r\n if(typeof obj == \"undefined\" || obj == null || obj == \"\"){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n },\r\n }\r\n\r\n};\r\n","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __extends = (this && this.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n/** Error thrown when an HTTP request fails. */\r\nvar HttpError = /** @class */ (function (_super) {\r\n __extends(HttpError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n function HttpError(errorMessage, statusCode) {\r\n var _newTarget = this.constructor;\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n _this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return HttpError;\r\n}(Error));\r\nexport { HttpError };\r\n/** Error thrown when a timeout elapses. */\r\nvar TimeoutError = /** @class */ (function (_super) {\r\n __extends(TimeoutError, _super);\r\n /** Constructs a new instance of {@link @aspnet/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function TimeoutError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"A timeout occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return TimeoutError;\r\n}(Error));\r\nexport { TimeoutError };\r\n/** Error thrown when an action is aborted. */\r\nvar AbortError = /** @class */ (function (_super) {\r\n __extends(AbortError, _super);\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n function AbortError(errorMessage) {\r\n var _newTarget = this.constructor;\r\n if (errorMessage === void 0) { errorMessage = \"An abort occurred.\"; }\r\n var _this = this;\r\n var trueProto = _newTarget.prototype;\r\n _this = _super.call(this, errorMessage) || this;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n _this.__proto__ = trueProto;\r\n return _this;\r\n }\r\n return AbortError;\r\n}(Error));\r\nexport { AbortError };\r\n//# sourceMappingURL=Errors.js.map","// Copyright (c) .NET Foundation. All rights reserved.\r\n// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.\r\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n};\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n/** @private */\r\nvar Arg = /** @class */ (function () {\r\n function Arg() {\r\n }\r\n Arg.isRequired = function (val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(\"The '\" + name + \"' argument is required.\");\r\n }\r\n };\r\n Arg.isIn = function (val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(\"Unknown \" + name + \" value: \" + val + \".\");\r\n }\r\n };\r\n return Arg;\r\n}());\r\nexport { Arg };\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n var detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = \"Binary data of length \" + data.byteLength;\r\n if (includeContent) {\r\n detail += \". Content: '\" + formatArrayBuffer(data) + \"'\";\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = \"String data of length \" + data.length;\r\n if (includeContent) {\r\n detail += \". Content: '\" + data + \"'\";\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n var view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n var str = \"\";\r\n view.forEach(function (num) {\r\n var pad = num < 16 ? \"0\" : \"\";\r\n str += \"0x\" + pad + num.toString(16) + \" \";\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport function sendMessage(logger, transportName, httpClient, url, accessTokenFactory, content, logMessageContent) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a, headers, token, responseType, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n if (!accessTokenFactory) return [3 /*break*/, 2];\r\n return [4 /*yield*/, accessTokenFactory()];\r\n case 1:\r\n token = _b.sent();\r\n if (token) {\r\n headers = (_a = {},\r\n _a[\"Authorization\"] = \"Bearer \" + token,\r\n _a);\r\n }\r\n _b.label = 2;\r\n case 2:\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) sending data. \" + getDataDetail(content, logMessageContent) + \".\");\r\n responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n return [4 /*yield*/, httpClient.post(url, {\r\n content: content,\r\n headers: headers,\r\n responseType: responseType,\r\n })];\r\n case 3:\r\n response = _b.sent();\r\n logger.log(LogLevel.Trace, \"(\" + transportName + \" transport) request complete. Response status: \" + response.statusCode + \".\");\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nvar Subject = /** @class */ (function () {\r\n function Subject() {\r\n this.observers = [];\r\n }\r\n Subject.prototype.next = function (item) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n observer.next(item);\r\n }\r\n };\r\n Subject.prototype.error = function (err) {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n };\r\n Subject.prototype.complete = function () {\r\n for (var _i = 0, _a = this.observers; _i < _a.length; _i++) {\r\n var observer = _a[_i];\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n };\r\n Subject.prototype.subscribe = function (observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n };\r\n return Subject;\r\n}());\r\nexport { Subject };\r\n/** @private */\r\nvar SubjectSubscription = /** @class */ (function () {\r\n function SubjectSubscription(subject, observer) {\r\n this.subject = subject;\r\n this.observer = observer;\r\n }\r\n SubjectSubscription.prototype.dispose = function () {\r\n var index = this.subject.observers.indexOf(this.observer);\r\n if (index > -1) {\r\n this.subject.observers.splice(index, 1);\r\n }\r\n if (this.subject.observers.length === 0 && this.subject.cancelCallback) {\r\n this.subject.cancelCallback().catch(function (_) { });\r\n }\r\n };\r\n return SubjectSubscription;\r\n}());\r\nexport { SubjectSubscription };\r\n/** @private */\r\nvar ConsoleLogger = /** @class */ (function () {\r\n function ConsoleLogger(minimumLogLevel) {\r\n this.minimumLogLevel = minimumLogLevel;\r\n }\r\n ConsoleLogger.prototype.log = function (logLevel, message) {\r\n if (logLevel >= this.minimumLogLevel) {\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n console.error(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Warning:\r\n console.warn(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n case LogLevel.Information:\r\n console.info(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n console.log(\"[\" + new Date().toISOString() + \"] \" + LogLevel[logLevel] + \": \" + message);\r\n break;\r\n }\r\n }\r\n };\r\n return ConsoleLogger;\r\n}());\r\nexport { ConsoleLogger };\r\n//# sourceMappingURL=Utils.js.map"],"sourceRoot":""}