@formo/analytics 1.11.12 → 1.11.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/387.index.umd.min.js +125 -0
- package/dist/387.index.umd.min.js.map +1 -0
- package/dist/cjs/src/FormoAnalytics.d.ts +94 -0
- package/dist/cjs/src/FormoAnalytics.d.ts.map +1 -0
- package/dist/cjs/src/FormoAnalytics.js +507 -0
- package/dist/cjs/src/FormoAnalytics.js.map +1 -0
- package/dist/cjs/src/FormoAnalyticsProvider.d.ts +7 -0
- package/dist/cjs/src/FormoAnalyticsProvider.d.ts.map +1 -0
- package/dist/cjs/src/FormoAnalyticsProvider.js +127 -0
- package/dist/cjs/src/FormoAnalyticsProvider.js.map +1 -0
- package/dist/cjs/src/constants/config.d.ts +559 -0
- package/dist/cjs/src/constants/config.d.ts.map +1 -0
- package/dist/cjs/src/constants/config.js +570 -0
- package/dist/cjs/src/constants/config.js.map +1 -0
- package/dist/cjs/src/constants/events.d.ts +8 -0
- package/dist/cjs/src/constants/events.d.ts.map +1 -0
- package/dist/cjs/src/constants/events.js +12 -0
- package/dist/cjs/src/constants/events.js.map +1 -0
- package/dist/cjs/src/constants/index.d.ts +3 -0
- package/dist/cjs/src/constants/index.d.ts.map +1 -0
- package/dist/cjs/src/constants/index.js +19 -0
- package/dist/cjs/src/constants/index.js.map +1 -0
- package/dist/cjs/src/index.d.ts +4 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/types/base.d.ts +12 -0
- package/dist/cjs/src/types/base.d.ts.map +1 -0
- package/dist/cjs/src/types/base.js +3 -0
- package/dist/cjs/src/types/base.js.map +1 -0
- package/dist/cjs/src/types/index.d.ts +3 -0
- package/dist/cjs/src/types/index.d.ts.map +1 -0
- package/dist/cjs/src/types/index.js +19 -0
- package/dist/cjs/src/types/index.js.map +1 -0
- package/dist/cjs/src/types/wallet.d.ts +11 -0
- package/dist/cjs/src/types/wallet.d.ts.map +1 -0
- package/dist/cjs/src/types/wallet.js +3 -0
- package/dist/cjs/src/types/wallet.js.map +1 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/src/FormoAnalytics.d.ts +94 -0
- package/dist/esm/src/FormoAnalytics.d.ts.map +1 -0
- package/dist/esm/src/FormoAnalytics.js +501 -0
- package/dist/esm/src/FormoAnalytics.js.map +1 -0
- package/dist/esm/src/FormoAnalyticsProvider.d.ts +7 -0
- package/dist/esm/src/FormoAnalyticsProvider.d.ts.map +1 -0
- package/dist/esm/src/FormoAnalyticsProvider.js +122 -0
- package/dist/esm/src/FormoAnalyticsProvider.js.map +1 -0
- package/dist/esm/src/constants/config.d.ts +559 -0
- package/dist/esm/src/constants/config.d.ts.map +1 -0
- package/dist/esm/src/constants/config.js +567 -0
- package/dist/esm/src/constants/config.js.map +1 -0
- package/dist/esm/src/constants/events.d.ts +8 -0
- package/dist/esm/src/constants/events.d.ts.map +1 -0
- package/dist/esm/src/constants/events.js +9 -0
- package/dist/esm/src/constants/events.js.map +1 -0
- package/dist/esm/src/constants/index.d.ts +3 -0
- package/dist/esm/src/constants/index.d.ts.map +1 -0
- package/dist/esm/src/constants/index.js +3 -0
- package/dist/esm/src/constants/index.js.map +1 -0
- package/dist/esm/src/index.d.ts +4 -0
- package/dist/esm/src/index.d.ts.map +1 -0
- package/dist/esm/src/index.js +4 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/types/base.d.ts +12 -0
- package/dist/esm/src/types/base.d.ts.map +1 -0
- package/dist/esm/src/types/base.js +2 -0
- package/dist/esm/src/types/base.js.map +1 -0
- package/dist/esm/src/types/index.d.ts +3 -0
- package/dist/esm/src/types/index.d.ts.map +1 -0
- package/dist/esm/src/types/index.js +3 -0
- package/dist/esm/src/types/index.js.map +1 -0
- package/dist/esm/src/types/wallet.d.ts +11 -0
- package/dist/esm/src/types/wallet.d.ts.map +1 -0
- package/dist/esm/src/types/wallet.js +2 -0
- package/dist/esm/src/types/wallet.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/dist/index.umd.min.js +3 -0
- package/dist/index.umd.min.js.LICENSE.txt +31 -0
- package/dist/index.umd.min.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkFormoAnalytics=self.webpackChunkFormoAnalytics||[]).push([[387],{387:(e,t,i)=>{i.r(t),i.d(t,{FirstLoadListeners:()=>s.F,GenerateSecureID:()=>s.G,Highlight:()=>gu,HighlightWarning:()=>bu,MetricCategory:()=>s.n,getPreviousSessionData:()=>s.f,getTracer:()=>s.x,setupBrowserTracing:()=>s.y});var s=i(767),n=Object.defineProperty,r=Object.defineProperties,o=Object.getOwnPropertyDescriptors,l=Object.getOwnPropertySymbols,a=Object.prototype.hasOwnProperty,c=Object.prototype.propertyIsEnumerable,d=(e,t,i)=>t in e?n(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i,u=(e,t)=>{for(var i in t||(t={}))a.call(t,i)&&d(e,i,t[i]);if(l)for(var i of l(t))c.call(t,i)&&d(e,i,t[i]);return e},h=(e,t)=>r(e,o(t)),p=(e,t)=>{var i={};for(var s in e)a.call(e,s)&&t.indexOf(s)<0&&(i[s]=e[s]);if(null!=e&&l)for(var s of l(e))t.indexOf(s)<0&&c.call(e,s)&&(i[s]=e[s]);return i},m=(e,t,i)=>d(e,"symbol"!=typeof t?t+"":t,i),b=(e,t,i)=>new Promise(((s,n)=>{var r=e=>{try{l(i.next(e))}catch(e){n(e)}},o=e=>{try{l(i.throw(e))}catch(e){n(e)}},l=e=>e.done?s(e.value):Promise.resolve(e.value).then(r,o);l((i=i.apply(e,t)).next())}));function y(e,t){for(var i=0;i<t.length;i++){const s=t[i];if("string"!=typeof s&&!Array.isArray(s))for(const t in s)if("default"!==t&&!(t in e)){const i=Object.getOwnPropertyDescriptor(s,t);i&&Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>s[t]})}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}const g=/[\x00-\x1f\x22\x5c\x7f-\x9f]/g;function Z(e){return f[e.charCodeAt(0)]}const f=["\\u0000","\\u0001","\\u0002","\\u0003","\\u0004","\\u0005","\\u0006","\\u0007","\\b","\\t","\\n","\\u000B","\\f","\\r","\\u000E","\\u000F","\\u0010","\\u0011","\\u0012","\\u0013","\\u0014","\\u0015","\\u0016","\\u0017","\\u0018","\\u0019","\\u001A","\\u001B","\\u001C","\\u001D","\\u001E","\\u001F","","",'\\"',"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\\\","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","\\u007F","\\u0080","\\u0081","\\u0082","\\u0083","\\u0084","\\u0085","\\u0086","\\u0087","\\u0088","\\u0089","\\u008A","\\u008B","\\u008C","\\u008D","\\u008E","\\u008F","\\u0090","\\u0091","\\u0092","\\u0093","\\u0094","\\u0095","\\u0096","\\u0097","\\u0098","\\u0099","\\u009A","\\u009B","\\u009C","\\u009D","\\u009E","\\u009F"],G=Object.freeze({});function I(e,t){const i=e[t];return"object"==typeof i?i:"function"==typeof i?{enter:i,leave:void 0}:{enter:e.enter,leave:e.leave}}function V(e){return function(e,t,i=s.Q){const n=new Map;for(const e of Object.values(s.K))n.set(e,I(t,e));let r,o,l,a=Array.isArray(e),c=[e],d=-1,u=[],h=e;const p=[],m=[];do{d++;const e=d===c.length,Z=e&&0!==u.length;if(e){if(o=0===m.length?void 0:p[p.length-1],h=l,l=m.pop(),Z)if(a){h=h.slice();let e=0;for(const[t,i]of u){const s=t-e;null===i?(h.splice(s,1),e++):h[s]=i}}else{h=Object.defineProperties({},Object.getOwnPropertyDescriptors(h));for(const[e,t]of u)h[e]=t}d=r.index,c=r.keys,u=r.edits,a=r.inArray,r=r.prev}else if(l){if(o=a?d:c[d],h=l[o],null==h)continue;p.push(o)}let f;if(!Array.isArray(h)){var b,y;(0,s.i)(h)||(0,s.d)(!1,`Invalid AST Node: ${(0,s.a)(h)}.`);const i=e?null===(b=n.get(h.kind))||void 0===b?void 0:b.leave:null===(y=n.get(h.kind))||void 0===y?void 0:y.enter;if(f=null==i?void 0:i.call(t,h,o,l,p,m),f===G)break;if(!1===f){if(!e){p.pop();continue}}else if(void 0!==f&&(u.push([o,f]),!e)){if(!(0,s.i)(f)){p.pop();continue}h=f}}var g;void 0===f&&Z&&u.push([o,h]),e?p.pop():(r={inArray:a,index:d,keys:c,edits:u,prev:r},a=Array.isArray(h),c=a?h:null!==(g=i[h.kind])&&void 0!==g?g:[],d=-1,u=[],l&&m.push(l),l=h)}while(void 0!==r);return 0!==u.length?u[u.length-1][1]:e}(e,W)}const W={Name:{leave:e=>e.value},Variable:{leave:e=>"$"+e.name},Document:{leave:e=>X(e.definitions,"\n\n")},OperationDefinition:{leave(e){const t=R("(",X(e.variableDefinitions,", "),")"),i=X([e.operation,X([e.name,t]),X(e.directives," ")]," ");return("query"===i?"":i+" ")+e.selectionSet}},VariableDefinition:{leave:({variable:e,type:t,defaultValue:i,directives:s})=>e+": "+t+R(" = ",i)+R(" ",X(s," "))},SelectionSet:{leave:({selections:e})=>S(e)},Field:{leave({alias:e,name:t,arguments:i,directives:s,selectionSet:n}){const r=R("",e,": ")+t;let o=r+R("(",X(i,", "),")");return o.length>80&&(o=r+R("(\n",w(X(i,"\n")),"\n)")),X([o,X(s," "),n]," ")}},Argument:{leave:({name:e,value:t})=>e+": "+t},FragmentSpread:{leave:({name:e,directives:t})=>"..."+e+R(" ",X(t," "))},InlineFragment:{leave:({typeCondition:e,directives:t,selectionSet:i})=>X(["...",R("on ",e),X(t," "),i]," ")},FragmentDefinition:{leave:({name:e,typeCondition:t,variableDefinitions:i,directives:s,selectionSet:n})=>`fragment ${e}${R("(",X(i,", "),")")} on ${t} ${R("",X(s," ")," ")}`+n},IntValue:{leave:({value:e})=>e},FloatValue:{leave:({value:e})=>e},StringValue:{leave:({value:e,block:t})=>t?(0,s.p)(e):function(e){return`"${e.replace(g,Z)}"`}(e)},BooleanValue:{leave:({value:e})=>e?"true":"false"},NullValue:{leave:()=>"null"},EnumValue:{leave:({value:e})=>e},ListValue:{leave:({values:e})=>"["+X(e,", ")+"]"},ObjectValue:{leave:({fields:e})=>"{"+X(e,", ")+"}"},ObjectField:{leave:({name:e,value:t})=>e+": "+t},Directive:{leave:({name:e,arguments:t})=>"@"+e+R("(",X(t,", "),")")},NamedType:{leave:({name:e})=>e},ListType:{leave:({type:e})=>"["+e+"]"},NonNullType:{leave:({type:e})=>e+"!"},SchemaDefinition:{leave:({description:e,directives:t,operationTypes:i})=>R("",e,"\n")+X(["schema",X(t," "),S(i)]," ")},OperationTypeDefinition:{leave:({operation:e,type:t})=>e+": "+t},ScalarTypeDefinition:{leave:({description:e,name:t,directives:i})=>R("",e,"\n")+X(["scalar",t,X(i," ")]," ")},ObjectTypeDefinition:{leave:({description:e,name:t,interfaces:i,directives:s,fields:n})=>R("",e,"\n")+X(["type",t,R("implements ",X(i," & ")),X(s," "),S(n)]," ")},FieldDefinition:{leave:({description:e,name:t,arguments:i,type:s,directives:n})=>R("",e,"\n")+t+(v(i)?R("(\n",w(X(i,"\n")),"\n)"):R("(",X(i,", "),")"))+": "+s+R(" ",X(n," "))},InputValueDefinition:{leave:({description:e,name:t,type:i,defaultValue:s,directives:n})=>R("",e,"\n")+X([t+": "+i,R("= ",s),X(n," ")]," ")},InterfaceTypeDefinition:{leave:({description:e,name:t,interfaces:i,directives:s,fields:n})=>R("",e,"\n")+X(["interface",t,R("implements ",X(i," & ")),X(s," "),S(n)]," ")},UnionTypeDefinition:{leave:({description:e,name:t,directives:i,types:s})=>R("",e,"\n")+X(["union",t,X(i," "),R("= ",X(s," | "))]," ")},EnumTypeDefinition:{leave:({description:e,name:t,directives:i,values:s})=>R("",e,"\n")+X(["enum",t,X(i," "),S(s)]," ")},EnumValueDefinition:{leave:({description:e,name:t,directives:i})=>R("",e,"\n")+X([t,X(i," ")]," ")},InputObjectTypeDefinition:{leave:({description:e,name:t,directives:i,fields:s})=>R("",e,"\n")+X(["input",t,X(i," "),S(s)]," ")},DirectiveDefinition:{leave:({description:e,name:t,arguments:i,repeatable:s,locations:n})=>R("",e,"\n")+"directive @"+t+(v(i)?R("(\n",w(X(i,"\n")),"\n)"):R("(",X(i,", "),")"))+(s?" repeatable":"")+" on "+X(n," | ")},SchemaExtension:{leave:({directives:e,operationTypes:t})=>X(["extend schema",X(e," "),S(t)]," ")},ScalarTypeExtension:{leave:({name:e,directives:t})=>X(["extend scalar",e,X(t," ")]," ")},ObjectTypeExtension:{leave:({name:e,interfaces:t,directives:i,fields:s})=>X(["extend type",e,R("implements ",X(t," & ")),X(i," "),S(s)]," ")},InterfaceTypeExtension:{leave:({name:e,interfaces:t,directives:i,fields:s})=>X(["extend interface",e,R("implements ",X(t," & ")),X(i," "),S(s)]," ")},UnionTypeExtension:{leave:({name:e,directives:t,types:i})=>X(["extend union",e,X(t," "),R("= ",X(i," | "))]," ")},EnumTypeExtension:{leave:({name:e,directives:t,values:i})=>X(["extend enum",e,X(t," "),S(i)]," ")},InputObjectTypeExtension:{leave:({name:e,directives:t,fields:i})=>X(["extend input",e,X(t," "),S(i)]," ")}};function X(e,t=""){var i;return null!==(i=null==e?void 0:e.filter((e=>e)).join(t))&&void 0!==i?i:""}function S(e){return R("{\n",w(X(e,"\n")),"\n}")}function R(e,t,i=""){return null!=t&&""!==t?e+t+i:""}function w(e){return R(" ",e.replace(/\n/g,"\n "))}function v(e){var t;return null!==(t=null==e?void 0:e.some((e=>e.includes("\n"))))&&void 0!==t&&t}const C={key:"_sid"},k=e=>{const t=e?Object.assign({},C,e):C;let i=0;return{name:"rrweb/sequential-id@1",eventProcessor:e=>(Object.assign(e,{[t.key]:++i}),e),options:t}},x=JSON,L=e=>{var t,i;let s;const n=e.definitions.filter((e=>"OperationDefinition"===e.kind));return 1===n.length&&(s=null==(i=null==(t=n[0])?void 0:t.name)?void 0:i.value),s},Y=e=>{if("string"==typeof e){let t;try{const i=(0,s.b)(e);t=L(i)}catch(e){}return{query:e,operationName:t}}const t=L(e);return{query:V(e),operationName:t}};class J extends Error{constructor(e,t){super(`${J.extractMessage(e)}: ${JSON.stringify({response:e,request:t})}`),Object.setPrototypeOf(this,J.prototype),this.response=e,this.request=t,"function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,J)}static extractMessage(e){var t,i,s;return null!=(s=null==(i=null==(t=e.errors)?void 0:t[0])?void 0:i.message)?s:`GraphQL Error (Code: ${e.status})`}}var T={exports:{}};!function(e,t){var i,n="undefined"!=typeof self?self:s.c,r=function(){function e(){this.fetch=!1,this.DOMException=n.DOMException}return e.prototype=n,new e}();i=r,function(e){var t="URLSearchParams"in i,s="Symbol"in i&&"iterator"in Symbol,n="FileReader"in i&&"Blob"in i&&function(){try{return new Blob,!0}catch(e){return!1}}(),r="FormData"in i,o="ArrayBuffer"in i;if(o)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],a=ArrayBuffer.isView||function(e){return e&&l.indexOf(Object.prototype.toString.call(e))>-1};function c(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function d(e){return"string"!=typeof e&&(e=String(e)),e}function u(e){var t={next:function(){var t=e.shift();return{done:void 0===t,value:t}}};return s&&(t[Symbol.iterator]=function(){return t}),t}function h(e){this.map={},e instanceof h?e.forEach((function(e,t){this.append(t,e)}),this):Array.isArray(e)?e.forEach((function(e){this.append(e[0],e[1])}),this):e&&Object.getOwnPropertyNames(e).forEach((function(t){this.append(t,e[t])}),this)}function p(e){if(e.bodyUsed)return Promise.reject(new TypeError("Already read"));e.bodyUsed=!0}function m(e){return new Promise((function(t,i){e.onload=function(){t(e.result)},e.onerror=function(){i(e.error)}}))}function b(e){var t=new FileReader,i=m(t);return t.readAsArrayBuffer(e),i}function y(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function g(){return this.bodyUsed=!1,this._initBody=function(e){this._bodyInit=e,e?"string"==typeof e?this._bodyText=e:n&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:r&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:t&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():o&&n&&function(e){return e&&DataView.prototype.isPrototypeOf(e)}(e)?(this._bodyArrayBuffer=y(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):o&&(ArrayBuffer.prototype.isPrototypeOf(e)||a(e))?this._bodyArrayBuffer=y(e):this._bodyText=e=Object.prototype.toString.call(e):this._bodyText="",this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):t&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},n&&(this.blob=function(){var e=p(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?p(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(b)}),this.text=function(){var e=p(this);if(e)return e;if(this._bodyBlob)return function(e){var t=new FileReader,i=m(t);return t.readAsText(e),i}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(e){for(var t=new Uint8Array(e),i=new Array(t.length),s=0;s<t.length;s++)i[s]=String.fromCharCode(t[s]);return i.join("")}(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},r&&(this.formData=function(){return this.text().then(G)}),this.json=function(){return this.text().then(JSON.parse)},this}h.prototype.append=function(e,t){e=c(e),t=d(t);var i=this.map[e];this.map[e]=i?i+", "+t:t},h.prototype.delete=function(e){delete this.map[c(e)]},h.prototype.get=function(e){return e=c(e),this.has(e)?this.map[e]:null},h.prototype.has=function(e){return this.map.hasOwnProperty(c(e))},h.prototype.set=function(e,t){this.map[c(e)]=d(t)},h.prototype.forEach=function(e,t){for(var i in this.map)this.map.hasOwnProperty(i)&&e.call(t,this.map[i],i,this)},h.prototype.keys=function(){var e=[];return this.forEach((function(t,i){e.push(i)})),u(e)},h.prototype.values=function(){var e=[];return this.forEach((function(t){e.push(t)})),u(e)},h.prototype.entries=function(){var e=[];return this.forEach((function(t,i){e.push([i,t])})),u(e)},s&&(h.prototype[Symbol.iterator]=h.prototype.entries);var Z=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function f(e,t){var i=(t=t||{}).body;if(e instanceof f){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new h(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,!i&&null!=e._bodyInit&&(i=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||"same-origin",(t.headers||!this.headers)&&(this.headers=new h(t.headers)),this.method=function(e){var t=e.toUpperCase();return Z.indexOf(t)>-1?t:e}(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&i)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(i)}function G(e){var t=new FormData;return e.trim().split("&").forEach((function(e){if(e){var i=e.split("="),s=i.shift().replace(/\+/g," "),n=i.join("=").replace(/\+/g," ");t.append(decodeURIComponent(s),decodeURIComponent(n))}})),t}function I(e){var t=new h;return e.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach((function(e){var i=e.split(":"),s=i.shift().trim();if(s){var n=i.join(":").trim();t.append(s,n)}})),t}function V(e,t){t||(t={}),this.type="default",this.status=void 0===t.status?200:t.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in t?t.statusText:"OK",this.headers=new h(t.headers),this.url=t.url||"",this._initBody(e)}f.prototype.clone=function(){return new f(this,{body:this._bodyInit})},g.call(f.prototype),g.call(V.prototype),V.prototype.clone=function(){return new V(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new h(this.headers),url:this.url})},V.error=function(){var e=new V(null,{status:0,statusText:""});return e.type="error",e};var W=[301,302,303,307,308];V.redirect=function(e,t){if(-1===W.indexOf(t))throw new RangeError("Invalid status code");return new V(null,{status:t,headers:{location:e}})},e.DOMException=i.DOMException;try{new e.DOMException}catch(t){e.DOMException=function(e,t){this.message=e,this.name=t;var i=Error(e);this.stack=i.stack},e.DOMException.prototype=Object.create(Error.prototype),e.DOMException.prototype.constructor=e.DOMException}function X(t,i){return new Promise((function(s,r){var o=new f(t,i);if(o.signal&&o.signal.aborted)return r(new e.DOMException("Aborted","AbortError"));var l=new XMLHttpRequest;function a(){l.abort()}l.onload=function(){var e={status:l.status,statusText:l.statusText,headers:I(l.getAllResponseHeaders()||"")};e.url="responseURL"in l?l.responseURL:e.headers.get("X-Request-URL");var t="response"in l?l.response:l.responseText;s(new V(t,e))},l.onerror=function(){r(new TypeError("Network request failed"))},l.ontimeout=function(){r(new TypeError("Network request failed"))},l.onabort=function(){r(new e.DOMException("Aborted","AbortError"))},l.open(o.method,o.url,!0),"include"===o.credentials?l.withCredentials=!0:"omit"===o.credentials&&(l.withCredentials=!1),"responseType"in l&&n&&(l.responseType="blob"),o.headers.forEach((function(e,t){l.setRequestHeader(t,e)})),o.signal&&(o.signal.addEventListener("abort",a),l.onreadystatechange=function(){4===l.readyState&&o.signal.removeEventListener("abort",a)}),l.send(void 0===o._bodyInit?null:o._bodyInit)}))}X.polyfill=!0,i.fetch||(i.fetch=X,i.Headers=h,i.Request=f,i.Response=V),e.Headers=h,e.Request=f,e.Response=V,e.fetch=X,Object.defineProperty(e,"__esModule",{value:!0})}({}),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var o=r;(t=o.fetch).default=o.fetch,t.fetch=o.fetch,t.Headers=o.Headers,t.Request=o.Request,t.Response=o.Response,e.exports=t}(T,T.exports);var U=T.exports;const N=(0,s.g)(U),F=y({__proto__:null,default:N},[U]),K=e=>{let t={};return e&&("undefined"!=typeof Headers&&e instanceof Headers||F&&U.Headers&&e instanceof U.Headers?t=(e=>{const t={};return e.forEach(((e,i)=>{t[i]=e})),t})(e):Array.isArray(e)?e.forEach((([e,i])=>{e&&void 0!==i&&(t[e]=i)})):t=e),t},M=e=>e.replace(/([\s,]|#[^\n\r]+)+/g," ").trim();class H{constructor(e,t={}){this.url=e,this.requestConfig=t,this.rawRequest=(...e)=>b(this,null,(function*(){const[t,i,s]=e,n=((e,t,i)=>e.query?e:{query:e,variables:t,requestHeaders:i,signal:void 0})(t,i,s),r=this.requestConfig,{headers:o,fetch:l=N,method:a="POST",requestMiddleware:c,responseMiddleware:d}=r,h=p(r,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:m}=this;void 0!==n.signal&&(h.signal=n.signal);const{operationName:b}=Y(n.query);return z({url:m,query:n.query,variables:n.variables,headers:u(u({},K(B(o))),K(n.requestHeaders)),operationName:b,fetch:l,method:a,fetchOptions:h,middleware:c}).then((e=>(d&&d(e),e))).catch((e=>{throw d&&d(e),e}))}))}request(e,...t){return b(this,null,(function*(){const[i,s]=t,n=((e,t,i)=>e.document?e:{document:e,variables:t,requestHeaders:i,signal:void 0})(e,i,s),r=this.requestConfig,{headers:o,fetch:l=N,method:a="POST",requestMiddleware:c,responseMiddleware:d}=r,h=p(r,["headers","fetch","method","requestMiddleware","responseMiddleware"]),{url:m}=this;void 0!==n.signal&&(h.signal=n.signal);const{query:b,operationName:y}=Y(n.document);return z({url:m,query:b,variables:n.variables,headers:u(u({},K(B(o))),K(n.requestHeaders)),operationName:y,fetch:l,method:a,fetchOptions:h,middleware:c}).then((e=>(d&&d(e),e.data))).catch((e=>{throw d&&d(e),e}))}))}batchRequests(e,t){var i;const s=((e,t)=>e.documents?e:{documents:e,requestHeaders:t,signal:void 0})(e,t),n=this.requestConfig,{headers:r}=n,o=p(n,["headers"]);void 0!==s.signal&&(o.signal=s.signal);const l=s.documents.map((({document:e})=>Y(e).query)),a=s.documents.map((({variables:e})=>e));return z({url:this.url,query:l,variables:a,headers:u(u({},K(B(r))),K(s.requestHeaders)),operationName:void 0,fetch:null!=(i=this.requestConfig.fetch)?i:N,method:this.requestConfig.method||"POST",fetchOptions:o,middleware:this.requestConfig.requestMiddleware}).then((e=>(this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(e),e.data))).catch((e=>{throw this.requestConfig.responseMiddleware&&this.requestConfig.responseMiddleware(e),e}))}setHeaders(e){return this.requestConfig.headers=e,this}setHeader(e,t){const{headers:i}=this.requestConfig;return i?i[e]=t:this.requestConfig.headers={[e]:t},this}setEndpoint(e){return this.url=e,this}}const z=e=>b(void 0,null,(function*(){var t,i;const{query:s,variables:n,fetchOptions:r}=e,o=(e=>t=>b(void 0,null,(function*(){var i;const{url:s,query:n,variables:r,operationName:o,fetch:l,fetchOptions:a,middleware:c}=t,d=u({},t.headers);let m,b="";"POST"===e?(m=O(n,r,o,a.jsonSerializer),"string"==typeof m&&(d["Content-Type"]="application/json")):b=(e=>{if(!Array.isArray(e.query)){const t=e,i=[`query=${encodeURIComponent(M(t.query))}`];return e.variables&&i.push(`variables=${encodeURIComponent(t.jsonSerializer.stringify(t.variables))}`),t.operationName&&i.push(`operationName=${encodeURIComponent(t.operationName)}`),i.join("&")}if(void 0!==e.variables&&!Array.isArray(e.variables))throw new Error("Cannot create query with given variable type, array expected");const t=e,i=e.query.reduce(((e,i,s)=>(e.push({query:M(i),variables:t.variables?t.jsonSerializer.stringify(t.variables[s]):void 0}),e)),[]);return`query=${encodeURIComponent(t.jsonSerializer.stringify(i))}`})({query:n,variables:r,operationName:o,jsonSerializer:null!=(i=a.jsonSerializer)?i:x});const y=u({method:e,headers:d,body:m},a);let g=s,Z=y;if(c){const e=yield Promise.resolve(c(h(u({},y),{url:s,operationName:o,variables:r}))),{url:t}=e;g=t,Z=p(e,["url"])}return b&&(g=`${g}?${b}`),yield l(g,Z)})))((e=>e.toUpperCase())(null!=(t=e.method)?t:"post")),l=Array.isArray(e.query),a=yield o(e),c=yield P(a,null!=(i=r.jsonSerializer)?i:x),d=Array.isArray(c)?!c.some((({data:e})=>!e)):!!c.data,m=Array.isArray(c)||!c.errors||Array.isArray(c.errors)&&!c.errors.length||"all"===r.errorPolicy||"ignore"===r.errorPolicy;if(a.ok&&m&&d){const e=(Array.isArray(c),c),{errors:t}=e,i=p(e,["errors"]),s="ignore"===r.errorPolicy?i:c;return h(u({},l?{data:s}:s),{headers:a.headers,status:a.status})}throw new J(h(u({},"string"==typeof c?{error:c}:c),{status:a.status,headers:a.headers}),{query:s,variables:n})})),O=(e,t,i,s)=>{const n=null!=s?s:x;if(!Array.isArray(e))return n.stringify({query:e,variables:t,operationName:i});if(void 0!==t&&!Array.isArray(t))throw new Error("Cannot create request body with given variable type, array expected");const r=e.reduce(((e,i,s)=>(e.push({query:i,variables:t?t[s]:void 0}),e)),[]);return n.stringify(r)},P=(e,t)=>b(void 0,null,(function*(){let i;return e.headers.forEach(((e,t)=>{"content-type"===t.toLowerCase()&&(i=e)})),i&&(i.toLowerCase().startsWith("application/json")||i.toLowerCase().startsWith("application/graphql+json")||i.toLowerCase().startsWith("application/graphql-response+json"))?t.parse(yield e.text()):e.text()})),B=e=>"function"==typeof e?e():e;var E,j=Object.defineProperty,D=(e,t,i)=>((e,t,i)=>t in e?j(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i),Q=Object.defineProperty,A=(e,t,i)=>((e,t,i)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i),_=(e=>(e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment",e))(_||{});const $={Node:["childNodes","parentNode","parentElement","textContent"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},q={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},ee={};function te(e){if(ee[e])return ee[e];const t=globalThis[e],i=t.prototype,s=e in $?$[e]:void 0,n=!(!s||!s.every((e=>{var t,s;return!(null==(s=null==(t=Object.getOwnPropertyDescriptor(i,e))?void 0:t.get)||!s.toString().includes("[native code]"))}))),r=e in q?q[e]:void 0,o=!(!r||!r.every((e=>{var t;return"function"==typeof i[e]&&(null==(t=i[e])?void 0:t.toString().includes("[native code]"))})));if(n&&o)return ee[e]=t.prototype,t.prototype;try{const s=document.createElement("iframe");document.body.appendChild(s);const n=s.contentWindow;if(!n)return t.prototype;const r=n[e].prototype;return document.body.removeChild(s),r?ee[e]=r:i}catch(e){return i}}const ie={};function se(e,t,i){var s;const n=`${e}.${String(i)}`;if(ie[n])return ie[n].call(t);const r=te(e),o=null==(s=Object.getOwnPropertyDescriptor(r,i))?void 0:s.get;return o?(ie[n]=o,o.call(t)):t[i]}const ne=function(e){return se("Node",e,"childNodes")},re=function(e){return se("Node",e,"parentNode")},oe=function(e){return se("Node",e,"parentElement")},le=function(e){return se("Node",e,"textContent")},ae=function(e){return e&&"host"in e?se("ShadowRoot",e,"host"):null},ce=function(e){return e&&"shadowRoot"in e?se("Element",e,"shadowRoot"):null};function de(e){return e.nodeType===e.ELEMENT_NODE}function ue(e){const t=e&&"host"in e&&"mode"in e&&ae(e)||null;return!(!t||!("shadowRoot"in t)||ce(t)!==e)}function he(e){return"[object ShadowRoot]"===Object.prototype.toString.call(e)}function pe(e){try{const t=e.rules||e.cssRules;return t?function(e){return e.includes(" background-clip: text;")&&!e.includes(" -webkit-background-clip: text;")&&(e=e.replace(/\sbackground-clip:\s*text;/g," -webkit-background-clip: text; background-clip: text;")),e}(Array.from(t,(t=>me(t,e.href))).join("")):null}catch(e){return null}}function me(e,t){if(function(e){return"styleSheet"in e}(e)){let t;try{t=pe(e.styleSheet)||function(e){const{cssText:t}=e;if(t.split('"').length<3)return t;const i=["@import",`url(${JSON.stringify(e.href)})`];return""===e.layerName?i.push("layer"):e.layerName&&i.push(`layer(${e.layerName})`),e.supportsText&&i.push(`supports(${e.supportsText})`),e.media.length&&i.push(e.media.mediaText),i.join(" ")+";"}(e)}catch(i){t=e.cssText}return e.styleSheet.href?Se(t,e.styleSheet.href):t}{let i=e.cssText;return function(e){return"selectorText"in e}(e)&&e.selectorText.includes(":")&&(i=function(e){return e.replace(/(\[(?:[\w-]+)[^\\])(:(?:[\w-]+)\])/gm,"$1\\$2")}(i)),t?Se(i,t):i}}class be{constructor(){A(this,"idNodeMap",new Map),A(this,"nodeMetaMap",new WeakMap)}getId(e){var t;if(!e)return-1;const i=null==(t=this.getMeta(e))?void 0:t.id;return null!=i?i:-1}getNode(e){return this.idNodeMap.get(e)||null}getIds(){return Array.from(this.idNodeMap.keys())}getMeta(e){return this.nodeMetaMap.get(e)||null}removeNodeFromMap(e){const t=this.getId(e);this.idNodeMap.delete(t),e.childNodes&&e.childNodes.forEach((e=>this.removeNodeFromMap(e)))}has(e){return this.idNodeMap.has(e)}hasNode(e){return this.nodeMetaMap.has(e)}add(e,t){const i=t.id;this.idNodeMap.set(i,e),this.nodeMetaMap.set(e,t)}replace(e,t){const i=this.getNode(e);if(i){const e=this.nodeMetaMap.get(i);e&&this.nodeMetaMap.set(t,e)}this.idNodeMap.set(e,t)}reset(){this.idNodeMap=new Map,this.nodeMetaMap=new WeakMap}}function ye({element:e,maskInputOptions:t,tagName:i,type:s,value:n,overwriteRecord:r,maskInputFn:o}){let l=n||"";return ke({maskInputOptions:t,tagName:i,type:s,overwriteRecord:r})&&(l=o?o(l,e):"*".repeat(l.length)),l}function ge(e){return e.toLowerCase()}const Ze="__rrweb_original__";function fe(e){const t=e.type;return e.hasAttribute("data-rr-is-password")?"password":t?ge(t):null}function Ge(e,t){var i;let s;try{s=new URL(e,window.location.href)}catch(e){return null}const n=s.pathname.match(/\.([0-9a-z]+)(?:$)/i);return null!=(i=null==n?void 0:n[1])?i:null}const Ie=/url\((?:(')([^']*)'|(")(.*?)"|([^)]*))\)/gm,Ve=/^(?:[a-z+]+:)?\/\//i,We=/^www\..*/i,Xe=/^(data:)([^,]*),(.*)/i;function Se(e,t){return(e||"").replace(Ie,((e,i,s,n,r,o)=>{const l=s||r||o,a=i||n||"";if(!l)return e;if(Ve.test(l)||We.test(l))return`url(${a}${l}${a})`;if(Xe.test(l))return`url(${a}${l}${a})`;if("/"===l[0])return`url(${a}${function(e){let t="";return t=e.indexOf("//")>-1?e.split("/").slice(0,3).join("/"):e.split("/")[0],t=t.split("?")[0],t}(t)+l}${a})`;const c=t.split("/"),d=l.split("/");c.pop();for(const e of d)"."!==e&&(".."===e?c.pop():c.push(e));return`url(${a}${c.join("/")}${a})`}))}function Re(e){return(null==(e=e.replace(/[^ -~]+/g,""))?void 0:e.split(" ").map((e=>Math.random().toString(20).substring(2,e.length))).join(" "))||""}function we(e){return"img"===e||"video"===e||"audio"===e||"source"===e}const ve=[new RegExp(/[a-zA-Z0-9.!#$%&'*+=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*/),new RegExp(/[0-9]{9,16}/),new RegExp(/[0-9]{3}-?[0-9]{2}-?[0-9]{4}/),new RegExp(/[+]?[(]?[0-9]{3}[)]?[-\s.]?[0-9]{3}[-\s.]?[0-9]{4,6}/),new RegExp(/[0-9]{4}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}/),new RegExp(/[0-9]{1,5}.?[0-9]{0,3}\s[a-zA-Z]{2,30}\s[a-zA-Z]{2,15}/),new RegExp(/(?:[0-9]{1,3}.){3}[0-9]{1,3}/)];function Ce(e){return!!e&&ve.some((t=>t.test(e)))}const ke=({maskInputOptions:e,tagName:t,type:i,overwriteRecord:s})=>{const n=i&&i.toLowerCase();return!("true"===s||!e[t.toLowerCase()]&&(!n||!e[n]))};let xe=1;const Le=new RegExp("[^a-z0-9-_:]");function Ye(){return xe++}let Je,Te;const Ue=/^[^ \t\n\r\u000c]+/,Ne=/^[, \t\n\r\u000c]+/,Fe=new WeakMap;function Ke(e,t){return t&&""!==t.trim()?He(e,t):t}function Me(e){return!("svg"!==e.tagName&&!e.ownerSVGElement)}function He(e,t){let i=Fe.get(e);if(i||(i=e.createElement("a"),Fe.set(e,i)),t){if(t.startsWith("blob:")||t.startsWith("data:"))return t}else t="";return i.setAttribute("href",t),i.href}function ze(e,t,i,s){return s&&("src"===i||"href"===i&&("use"!==t||"#"!==s[0])||"xlink:href"===i&&"#"!==s[0]||"background"===i&&("table"===t||"td"===t||"th"===t)?Ke(e,s):"srcset"===i?function(e,t){if(""===t.trim())return t;let i=0;function s(e){let s;const n=e.exec(t.substring(i));return n?(s=n[0],i+=s.length,s):""}const n=[];for(;s(Ne),!(i>=t.length);){let r=s(Ue);if(","===r.slice(-1))r=Ke(e,r.substring(0,r.length-1)),n.push(r);else{let s="";r=Ke(e,r);let o=!1;for(;;){const e=t.charAt(i);if(""===e){n.push((r+s).trim());break}if(o)")"===e&&(o=!1);else{if(","===e){i+=1,n.push((r+s).trim());break}"("===e&&(o=!0)}s+=e,i+=1}}}return n.join(", ")}(e,s):"style"===i?Se(s,He(e)):"object"===t&&"data"===i?Ke(e,s):s)}function Oe(e,t,i){return("video"===e||"audio"===e)&&"autoplay"===t}function Pe(e,t,i){try{if("string"==typeof t){if(e.classList.contains(t))return!0}else for(let i=e.classList.length;i--;){const s=e.classList[i];if(t.test(s))return!0}if(i)return e.matches(i)}catch(e){}return!1}function Be(e,t,i){if(!e)return!1;if(e.nodeType!==e.ELEMENT_NODE)return!!i&&Be(re(e),t,i);for(let i=e.classList.length;i--;){const s=e.classList[i];if(t.test(s))return!0}return!!i&&Be(re(e),t,i)}function Ee(e,t,i,s){let n;if(de(e)){if(n=e,!ne(n).length)return!1}else{if(null===oe(e))return!1;n=oe(e)}try{if("string"==typeof t){if(s){if(n.closest(`.${t}`))return!0}else if(n.classList.contains(t))return!0}else if(Be(n,t,s))return!0;if(i)if(s){if(n.closest(i))return!0}else if(n.matches(i))return!0}catch(e){}return!1}function je(e){return null==e?"":e.toLowerCase()}function De(e,t){const{doc:i,mirror:s,blockClass:n,blockSelector:r,maskTextClass:o,maskTextSelector:l,skipChild:a=!1,inlineStylesheet:c=!0,maskInputOptions:d={},maskTextFn:u,maskInputFn:h,slimDOMOptions:p,dataURLOptions:m={},inlineImages:b=!1,recordCanvas:y=!1,onSerialize:g,onIframeLoad:Z,iframeLoadTimeout:f=5e3,onStylesheetLoad:G,stylesheetLoadTimeout:I=5e3,keepIframeSrcFn:V=()=>!1,newlyAddedElement:W=!1,privacySetting:X}=t;let{needsMask:S}=t,{preserveWhiteSpace:R=!0}=t;S||(S=Ee(e,o,l,void 0===S));const w=function(e,t){const{doc:i,mirror:s,blockClass:n,blockSelector:r,needsMask:o,inlineStylesheet:l,maskInputOptions:a={},maskTextClass:c,maskTextFn:d,maskInputFn:u,dataURLOptions:h={},inlineImages:p,recordCanvas:m,keepIframeSrcFn:b,newlyAddedElement:y=!1,privacySetting:g}=t,Z=function(e,t){if(!t.hasNode(e))return;const i=t.getId(e);return 1===i?void 0:i}(i,s);switch(e.nodeType){case e.DOCUMENT_NODE:return"CSS1Compat"!==e.compatMode?{type:_.Document,childNodes:[],compatMode:e.compatMode}:{type:_.Document,childNodes:[]};case e.DOCUMENT_TYPE_NODE:return{type:_.DocumentType,name:e.name,publicId:e.publicId,systemId:e.systemId,rootId:Z};case e.ELEMENT_NODE:return function(e,t){const{doc:i,blockClass:s,blockSelector:n,inlineStylesheet:r,maskInputOptions:o={},maskInputFn:l,maskTextClass:a,dataURLOptions:c={},inlineImages:d,recordCanvas:u,keepIframeSrcFn:h,newlyAddedElement:p=!1,privacySetting:m,rootId:b}=t;let y=Pe(e,s,n);const g=Pe(e,a,null),Z="strict"===m;let f=function(e){if(e instanceof HTMLFormElement)return"form";const t=ge(e.tagName);return Le.test(t)?"div":t}(e),G={};const I=e.attributes.length;for(let t=0;t<I;t++){const s=e.attributes[t];Oe(f,s.name)||(G[s.name]=ze(i,f,ge(s.name),s.value))}if("link"===f&&r){const t=Array.from(i.styleSheets).find((t=>t.href===e.href));let s=null;t&&(s=pe(t)),s&&(delete G.rel,delete G.href,G._cssText=s)}if("style"===f&&e.sheet&&!(e.innerText||le(e)||"").trim().length){const t=pe(e.sheet);t&&(G._cssText=t)}if("input"===f||"textarea"===f||"select"===f){const t=e.value,i=e.checked;"radio"!==G.type&&"checkbox"!==G.type&&"submit"!==G.type&&"button"!==G.type&&t?G.value=ye({element:e,type:fe(e),tagName:f,value:t,overwriteRecord:e.getAttribute("data-hl-record"),maskInputOptions:o,maskInputFn:l}):i&&(G.checked=i)}if("option"===f&&(e.selected&&!o.select?G.selected=!0:delete G.selected),"dialog"===f&&e.open&&(G.rr_open_mode=e.matches("dialog:modal")?"modal":"non-modal"),"canvas"===f&&u)if("2d"===e.__context)!function(e){const t=e.getContext("2d");if(!t)return!0;for(let i=0;i<e.width;i+=50)for(let s=0;s<e.height;s+=50){const n=t.getImageData,r=Ze in n?n[Ze]:n;if(new Uint32Array(r.call(t,i,s,Math.min(50,e.width-i),Math.min(50,e.height-s)).data.buffer).some((e=>0!==e)))return!1}}(e);else if(!("__context"in e)){const t=e.toDataURL(c.type,c.quality),s=i.createElement("canvas");s.width=e.width,s.height=e.height,t!==s.toDataURL(c.type,c.quality)&&(G.rr_dataURL=t)}if("img"===f&&d&&!y&&!g&&!Z){Je||(Je=i.createElement("canvas"),Te=Je.getContext("2d"));const t=e,s=t.currentSrc||t.getAttribute("src")||"<unknown-src>",n=t.crossOrigin,r=()=>{t.removeEventListener("load",r);try{Je.width=t.naturalWidth,Je.height=t.naturalHeight,Te.drawImage(t,0,0),G.rr_dataURL=Je.toDataURL(c.type,c.quality)}catch(e){if("anonymous"!==t.crossOrigin)return t.crossOrigin="anonymous",void(t.complete&&0!==t.naturalWidth?r():t.addEventListener("load",r));console.warn(`Cannot inline img src=${s}! Error: ${e}`)}"anonymous"===t.crossOrigin&&(n?G.crossOrigin=n:t.removeAttribute("crossorigin"))};t.complete&&0!==t.naturalWidth?r():t.addEventListener("load",r)}if("audio"===f||"video"===f){const t=G;t.rr_mediaState=e.paused?"paused":"played",t.rr_mediaCurrentTime=e.currentTime,t.rr_mediaPlaybackRate=e.playbackRate,t.rr_mediaMuted=e.muted,t.rr_mediaLoop=e.loop,t.rr_mediaVolume=e.volume}if(p||(e.scrollLeft&&(G.rr_scrollLeft=e.scrollLeft),e.scrollTop&&(G.rr_scrollTop=e.scrollTop)),y||g||Z&&we(f)){const{width:t,height:i}=e.getBoundingClientRect();G={class:G.class,rr_width:`${t}px`,rr_height:`${i}px`}}let V;Z&&we(f)&&(y=!0),"iframe"===f&&!h(G.src)&&(e.contentDocument||(G.rr_src=G.src),delete G.src);try{customElements.get(f)&&(V=!0)}catch(e){}if(d&&"video"===f){const t=e;if(""===t.src||-1!==t.src.indexOf("blob:")){const{width:t,height:s}=e.getBoundingClientRect();G={width:t,height:s,rr_width:`${t}px`,rr_height:`${s}px`,rr_inlined_video:!0,class:G.class,style:G.style},f="canvas";const n=i.createElement("canvas");n.width=e.width,n.height=e.height,G.rr_dataURL=n.toDataURL(c.type,c.quality)}}return{type:_.Element,tagName:f,attributes:G,childNodes:[],isSVG:Me(e)||void 0,needBlock:y,needMask:g,rootId:b,isCustom:V}}(e,{doc:i,blockClass:n,blockSelector:r,inlineStylesheet:l,maskInputOptions:a,maskInputFn:u,maskTextClass:c,dataURLOptions:h,inlineImages:p,recordCanvas:m,keepIframeSrcFn:b,newlyAddedElement:y,privacySetting:g,rootId:Z});case e.TEXT_NODE:return function(e,t){var i,s;const{needsMask:n,maskTextFn:r,privacySetting:o,rootId:l}=t,a=re(e),c=a&&a.tagName;let d=le(e);const u="STYLE"===c||void 0,h="SCRIPT"===c||void 0;if(u&&d){try{e.nextSibling||e.previousSibling||null!=(i=a.sheet)&&i.cssRules&&(d=pe(a.sheet))}catch(t){console.warn(`Cannot get CSS styles from text's parentNode. Error: ${t}`,e)}d=Se(d,He(t.doc))}h&&(d="SCRIPT_PLACEHOLDER"),!u&&!h&&d&&n&&(d=r?r(d,oe(e)):d.replace(/[\S]/g,"*"));const p="strict"===o,m=null==(s=e.parentElement)?void 0:s.getAttribute("data-hl-record"),b="default"===o&&Ce(d);return(p||b)&&!m&&c&&!new Set(["HEAD","TITLE","STYLE","SCRIPT","HTML","BODY","NOSCRIPT"]).has(c)&&d&&(d=Re(d)),{type:_.Text,textContent:d||"",isStyle:u,rootId:l}}(e,{doc:i,needsMask:o,maskTextFn:d,privacySetting:g,rootId:Z});case e.CDATA_SECTION_NODE:return{type:_.CDATA,textContent:"",rootId:Z};case e.COMMENT_NODE:return{type:_.Comment,textContent:le(e)||"",rootId:Z};default:return!1}}(e,{doc:i,mirror:s,blockClass:n,blockSelector:r,needsMask:S,inlineStylesheet:c,maskInputOptions:d,maskTextClass:o,maskTextFn:u,maskInputFn:h,dataURLOptions:m,inlineImages:b,recordCanvas:y,keepIframeSrcFn:V,newlyAddedElement:W,privacySetting:X});if(!w)return console.warn(e,"not serialized"),null;let v;v=s.hasNode(e)?s.getId(e):function(e,t){if(t.comment&&e.type===_.Comment)return!0;if(e.type===_.Element){if(t.script&&("script"===e.tagName||"link"===e.tagName&&("preload"===e.attributes.rel||"modulepreload"===e.attributes.rel)&&"script"===e.attributes.as||"link"===e.tagName&&"prefetch"===e.attributes.rel&&"string"==typeof e.attributes.href&&"js"===Ge(e.attributes.href)))return!0;if(t.headFavicon&&("link"===e.tagName&&"shortcut icon"===e.attributes.rel||"meta"===e.tagName&&(je(e.attributes.name).match(/^msapplication-tile(image|color)$/)||"application-name"===je(e.attributes.name)||"icon"===je(e.attributes.rel)||"apple-touch-icon"===je(e.attributes.rel)||"shortcut icon"===je(e.attributes.rel))))return!0;if("meta"===e.tagName){if(t.headMetaDescKeywords&&je(e.attributes.name).match(/^description|keywords$/))return!0;if(t.headMetaSocial&&(je(e.attributes.property).match(/^(og|twitter|fb):/)||je(e.attributes.name).match(/^(og|twitter):/)||"pinterest"===je(e.attributes.name)))return!0;if(t.headMetaRobots&&("robots"===je(e.attributes.name)||"googlebot"===je(e.attributes.name)||"bingbot"===je(e.attributes.name)))return!0;if(t.headMetaHttpEquiv&&void 0!==e.attributes["http-equiv"])return!0;if(t.headMetaAuthorship&&("author"===je(e.attributes.name)||"generator"===je(e.attributes.name)||"framework"===je(e.attributes.name)||"publisher"===je(e.attributes.name)||"progid"===je(e.attributes.name)||je(e.attributes.property).match(/^article:/)||je(e.attributes.property).match(/^product:/)))return!0;if(t.headMetaVerification&&("google-site-verification"===je(e.attributes.name)||"yandex-verification"===je(e.attributes.name)||"csrf-token"===je(e.attributes.name)||"p:domain_verify"===je(e.attributes.name)||"verify-v1"===je(e.attributes.name)||"verification"===je(e.attributes.name)||"shopify-checkout-api-token"===je(e.attributes.name)))return!0}}return!1}(w,p)||!R&&w.type===_.Text&&!w.isStyle&&!w.textContent.replace(/^\s+|\s+$/gm,"").length?-2:Ye();const C=Object.assign(w,{id:v});if(s.add(e,C),-2===v)return null;g&&g(e);let k=!a,x=X,L="strict"===X;if(C.type===_.Element){if(k=k&&!C.needBlock,L||(L=!!C.needBlock||!!C.needMask),x=L?"strict":x,L&&we(C.tagName)){const t=e.cloneNode();t.src="",s.add(t,C)}delete C.needBlock,delete C.needMask;const t=ce(e);t&&he(t)&&(C.isShadowHost=!0)}if((C.type===_.Document||C.type===_.Element)&&k){p.headWhitespace&&C.type===_.Element&&"head"===C.tagName&&(R=!1);const t={doc:i,mirror:s,blockClass:n,blockSelector:r,needsMask:S,maskTextClass:o,maskTextSelector:l,skipChild:a,inlineStylesheet:c,maskInputOptions:d,maskTextFn:u,maskInputFn:h,slimDOMOptions:p,dataURLOptions:m,inlineImages:b,recordCanvas:y,preserveWhiteSpace:R,onSerialize:g,onIframeLoad:Z,iframeLoadTimeout:f,onStylesheetLoad:G,stylesheetLoadTimeout:I,keepIframeSrcFn:V,privacySetting:x};if(C.type!==_.Element||"textarea"!==C.tagName||void 0===C.attributes.value)for(const i of Array.from(ne(e))){const e=De(i,t);e&&C.childNodes.push(e)}let W=null;if(de(e)&&(W=ce(e)))for(const e of Array.from(ne(W))){const i=De(e,t);i&&(he(W)&&(i.isShadow=!0),C.childNodes.push(i))}}const Y=re(e);return Y&&ue(Y)&&he(Y)&&(C.isShadow=!0),C.type===_.Element&&"iframe"===C.tagName&&function(e,t,i){const s=e.contentWindow;if(!s)return;let n,r=!1;try{n=s.document.readyState}catch(e){return}if("complete"!==n){const s=setTimeout((()=>{r||(t(),r=!0)}),i);return void e.addEventListener("load",(()=>{clearTimeout(s),r=!0,t()}))}const o="about:blank";if(s.location.href!==o||e.src===o||""===e.src)return setTimeout(t,0),e.addEventListener("load",t);e.addEventListener("load",t)}(e,(()=>{const t=e.contentDocument;if(t&&Z){const i=De(t,{doc:t,mirror:s,blockClass:n,blockSelector:r,needsMask:S,maskTextClass:o,maskTextSelector:l,skipChild:!1,inlineStylesheet:c,maskInputOptions:d,maskTextFn:u,maskInputFn:h,slimDOMOptions:p,dataURLOptions:m,inlineImages:b,recordCanvas:y,preserveWhiteSpace:R,onSerialize:g,onIframeLoad:Z,iframeLoadTimeout:f,onStylesheetLoad:G,stylesheetLoadTimeout:I,keepIframeSrcFn:V,privacySetting:X});i&&Z(e,i)}}),f),C.type===_.Element&&"link"===C.tagName&&"string"==typeof C.attributes.rel&&("stylesheet"===C.attributes.rel||"preload"===C.attributes.rel&&"string"==typeof C.attributes.href&&"css"===Ge(C.attributes.href))&&function(e,t,i){let s,n=!1;try{s=e.sheet}catch(e){return}if(s)return;const r=setTimeout((()=>{n||(t(),n=!0)}),i);e.addEventListener("load",(()=>{clearTimeout(r),n=!0,t()}))}(e,(()=>{if(G){const t=De(e,{doc:i,mirror:s,blockClass:n,blockSelector:r,needsMask:S,maskTextClass:o,maskTextSelector:l,skipChild:!1,inlineStylesheet:c,maskInputOptions:d,maskTextFn:u,maskInputFn:h,slimDOMOptions:p,dataURLOptions:m,inlineImages:b,recordCanvas:y,preserveWhiteSpace:R,onSerialize:g,onIframeLoad:Z,iframeLoadTimeout:f,onStylesheetLoad:G,stylesheetLoadTimeout:I,keepIframeSrcFn:V,privacySetting:X});t&&G(e,t)}}),I),C}function Qe(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var i=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(i,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})})),i}var Ae={exports:{}},_e=String,$e=function(){return{isColorSupported:!1,reset:_e,bold:_e,dim:_e,italic:_e,underline:_e,inverse:_e,hidden:_e,strikethrough:_e,black:_e,red:_e,green:_e,yellow:_e,blue:_e,magenta:_e,cyan:_e,white:_e,gray:_e,bgBlack:_e,bgRed:_e,bgGreen:_e,bgYellow:_e,bgBlue:_e,bgMagenta:_e,bgCyan:_e,bgWhite:_e,blackBright:_e,redBright:_e,greenBright:_e,yellowBright:_e,blueBright:_e,magentaBright:_e,cyanBright:_e,whiteBright:_e,bgBlackBright:_e,bgRedBright:_e,bgGreenBright:_e,bgYellowBright:_e,bgBlueBright:_e,bgMagentaBright:_e,bgCyanBright:_e,bgWhiteBright:_e}};Ae.exports=$e(),Ae.exports.createColors=$e;var qe=Ae.exports;const et=Qe(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));let tt=qe,it=et,st=class e extends Error{constructor(t,i,s,n,r,o){super(t),this.name="CssSyntaxError",this.reason=t,r&&(this.file=r),n&&(this.source=n),o&&(this.plugin=o),void 0!==i&&void 0!==s&&("number"==typeof i?(this.line=i,this.column=s):(this.line=i.line,this.column=i.column,this.endLine=s.line,this.endColumn=s.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=tt.isColorSupported);let i=e=>e,s=e=>e,n=e=>e;if(e){let{bold:e,gray:t,red:r}=tt.createColors(!0);s=t=>e(r(t)),i=e=>t(e),it&&(n=e=>it(e))}let r=t.split(/\r?\n/),o=Math.max(this.line-3,0),l=Math.min(this.line+2,r.length),a=String(l).length;return r.slice(o,l).map(((e,t)=>{let r=o+1+t,l=" "+(" "+r).slice(-a)+" | ";if(r===this.line){if(e.length>160){let t=20,r=Math.max(0,this.column-t),o=Math.max(this.column+t,this.endColumn+t),a=e.slice(r,o),c=i(l.replace(/\d/g," "))+e.slice(0,Math.min(this.column-1,t-1)).replace(/[^\t]/g," ");return s(">")+i(l)+n(a)+"\n "+c+s("^")}let t=i(l.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+i(l)+n(e)+"\n "+t+s("^")}return" "+i(l)+n(e)})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}};var nt=st;st.default=st;const rt={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};let ot=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,s=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?i+=e.raws.afterName:s&&(i+=" "),e.nodes)this.block(e,i+s);else{let n=(e.raws.between||"")+(t?";":"");this.builder(i+s+n,e)}}beforeAfter(e,t){let i;i="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let s=e.parent,n=0;for(;s&&"root"!==s.type;)n+=1,s=s.parent;if(i.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e<n;e++)i+=t}return i}block(e,t){let i,s=this.raw(e,"between","beforeOpen");this.builder(t+s+"{",e,"start"),e.nodes&&e.nodes.length?(this.body(e),i=this.raw(e,"after")):i=this.raw(e,"after","emptyBody"),i&&this.builder(i),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let i=this.raw(e,"semicolon");for(let s=0;s<e.nodes.length;s++){let n=e.nodes[s],r=this.raw(n,"before");r&&this.builder(r),this.stringify(n,t!==s||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),s=e.prop+i+this.rawValue(e,"value");e.important&&(s+=e.raws.important||" !important"),t&&(s+=";"),this.builder(s,e)}document(e){this.body(e)}raw(e,t,i){let s;if(i||(i=t),t&&(s=e.raws[t],void 0!==s))return s;let n=e.parent;if("before"===i&&(!n||"root"===n.type&&n.first===e||n&&"document"===n.type))return"";if(!n)return rt[i];let r=e.root();if(r.rawCache||(r.rawCache={}),void 0!==r.rawCache[i])return r.rawCache[i];if("before"===i||"after"===i)return this.beforeAfter(e,i);{let n="raw"+((o=i)[0].toUpperCase()+o.slice(1));this[n]?s=this[n](r,e):r.walk((e=>{if(s=e.raws[t],void 0!==s)return!1}))}var o;return void 0===s&&(s=rt[i]),r.rawCache[i]=s,s}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments((e=>{if(void 0!==e.raws.before)return i=e.raws.before,i.includes("\n")&&(i=i.replace(/[^\n]+$/,"")),!1})),void 0===i?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls((e=>{if(void 0!==e.raws.before)return i=e.raws.before,i.includes("\n")&&(i=i.replace(/[^\n]+$/,"")),!1})),void 0===i?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawBeforeRule(e){let t;return e.walk((i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&void 0!==i.raws.before)return t=i.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((i=>{let s=i.parent;if(s&&s!==e&&s.parent&&s.parent===e&&void 0!==i.raws.before){let e=i.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawValue(e,t){let i=e[t],s=e.raws[t];return s&&s.value===i?s.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var lt=ot;ot.default=ot;let at=lt;function ct(e,t){new at(t).stringify(e)}var dt=ct;ct.default=ct;var ut={};ut.isClean=Symbol("isClean"),ut.my=Symbol("my");let ht=nt,pt=lt,mt=dt,{isClean:bt,my:yt}=ut;function gt(e,t){let i=new e.constructor;for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s)||"proxyCache"===s)continue;let n=e[s],r=typeof n;"parent"===s&&"object"===r?t&&(i[s]=t):"source"===s?i[s]=n:Array.isArray(n)?i[s]=n.map((e=>gt(e,i))):("object"===r&&null!==n&&(n=gt(n)),i[s]=n)}return i}let Zt=class{constructor(e={}){this.raws={},this[bt]=!1,this[yt]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let i of e[t])"function"==typeof i.clone?this.append(i.clone()):this.append(i)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=gt(this);for(let i in e)t[i]=e[i];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:i,start:s}=this.rangeBy(t);return this.source.input.error(e,{column:s.column,line:s.line},{column:i.column,line:i.line},t)}return new ht(e)}getProxyProcessor(){return{get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t],set:(e,t,i)=>(e[t]===i||(e[t]=i,("prop"===t||"value"===t||"name"===t||"params"===t||"important"===t||"text"===t)&&e.markDirty()),!0)}}markClean(){this[bt]=!0}markDirty(){if(this[bt]){this[bt]=!1;let e=this;for(;e=e.parent;)e[bt]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e,t){let i=this.source.start;if(e.index)i=this.positionInside(e.index,t);else if(e.word){let s=(t=this.toString()).indexOf(e.word);-1!==s&&(i=this.positionInside(s,t))}return i}positionInside(e,t){let i=t||this.toString(),s=this.source.start.column,n=this.source.start.line;for(let t=0;t<e;t++)"\n"===i[t]?(s=1,n+=1):s+=1;return{column:s,line:n}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e){let t={column:this.source.start.column,line:this.source.start.line},i=this.source.end?{column:this.source.end.column+1,line:this.source.end.line}:{column:t.column+1,line:t.line};if(e.word){let s=this.toString(),n=s.indexOf(e.word);-1!==n&&(t=this.positionInside(n,s),i=this.positionInside(n+e.word.length,s))}else e.start?t={column:e.start.column,line:e.start.line}:e.index&&(t=this.positionInside(e.index)),e.end?i={column:e.end.column,line:e.end.line}:"number"==typeof e.endIndex?i=this.positionInside(e.endIndex):e.index&&(i=this.positionInside(e.index+1));return(i.line<t.line||i.line===t.line&&i.column<=t.column)&&(i={column:t.column+1,line:t.line}),{end:i,start:t}}raw(e,t){return(new pt).raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let s of e)s===this?i=!0:i?(this.parent.insertAfter(t,s),t=s):this.parent.insertBefore(t,s);i||this.remove()}return this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}toJSON(e,t){let i={},s=null==t;t=t||new Map;let n=0;for(let e in this){if(!Object.prototype.hasOwnProperty.call(this,e)||"parent"===e||"proxyCache"===e)continue;let s=this[e];if(Array.isArray(s))i[e]=s.map((e=>"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof s&&s.toJSON)i[e]=s.toJSON(null,t);else if("source"===e){let r=t.get(s.input);null==r&&(r=n,t.set(s.input,n),n++),i[e]={end:s.end,inputId:r,start:s.start}}else i[e]=s}return s&&(i.inputs=[...t.keys()].map((e=>e.toJSON()))),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=mt){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}warn(e,t,i){let s={node:this};for(let e in i)s[e]=i[e];return e.warn(t,s)}get proxyOf(){return this}};var ft=Zt;Zt.default=Zt;let Gt=ft,It=class extends Gt{constructor(e){super(e),this.type="comment"}};var Vt=It;It.default=It;let Wt=ft,Xt=class extends Wt{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e=h(u({},e),{value:String(e.value)})),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}};var St=Xt;Xt.default=Xt;let Rt,wt,vt,Ct,kt=Vt,xt=St,Lt=ft,{isClean:Yt,my:Jt}=ut;function Tt(e){return e.map((e=>(e.nodes&&(e.nodes=Tt(e.nodes)),delete e.source,e)))}function Ut(e){if(e[Yt]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)Ut(t)}let Nt=class e extends Lt{append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t,i,s=this.getIterator();for(;this.indexes[s]<this.proxyOf.nodes.length&&(t=this.indexes[s],i=e(this.proxyOf.nodes[t],t),!1!==i);)this.indexes[s]+=1;return delete this.indexes[s],i}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...i)=>e[t](...i.map((e=>"function"==typeof e?(t,i)=>e(t.toProxy(),i):e))):"every"===t||"some"===t?i=>e[t](((e,...t)=>i(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t],set:(e,t,i)=>(e[t]===i||(e[t]=i,("name"===t||"params"===t||"selector"===t)&&e.markDirty()),!0)}}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i,s=this.index(e),n=this.normalize(t,this.proxyOf.nodes[s]).reverse();s=this.index(e);for(let e of n)this.proxyOf.nodes.splice(s+1,0,e);for(let e in this.indexes)i=this.indexes[e],s<i&&(this.indexes[e]=i+n.length);return this.markDirty(),this}insertBefore(e,t){let i,s=this.index(e),n=0===s&&"prepend",r=this.normalize(t,this.proxyOf.nodes[s],n).reverse();s=this.index(e);for(let e of r)this.proxyOf.nodes.splice(s,0,e);for(let e in this.indexes)i=this.indexes[e],s<=i&&(this.indexes[e]=i+r.length);return this.markDirty(),this}normalize(t,i){if("string"==typeof t)t=Tt(wt(t).nodes);else if(void 0===t)t=[];else if(Array.isArray(t)){t=t.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if("root"===t.type&&"document"!==this.type){t=t.nodes.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if(t.type)t=[t];else if(t.prop){if(void 0===t.value)throw new Error("Value field is missed in node creation");"string"!=typeof t.value&&(t.value=String(t.value)),t=[new xt(t)]}else if(t.selector||t.selectors)t=[new Ct(t)];else if(t.name)t=[new Rt(t)];else{if(!t.text)throw new Error("Unknown node type in node creation");t=[new kt(t)]}return t.map((t=>(t[Jt]||e.rebuild(t),(t=t.proxyOf).parent&&t.parent.removeChild(t),t[Yt]&&Ut(t),t.raws||(t.raws={}),void 0===t.raws.before&&i&&void 0!==i.raws.before&&(t.raws.before=i.raws.before.replace(/\S/g,"")),t.parent=this.proxyOf,t)))}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){let t;e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls((s=>{t.props&&!t.props.includes(s.prop)||t.fast&&!s.value.includes(t.fast)||(s.value=s.value.replace(e,i))})),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each(((t,i)=>{let s;try{s=e(t,i)}catch(e){throw t.addToError(e)}return!1!==s&&t.walk&&(s=t.walk(e)),s}))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((i,s)=>{if("atrule"===i.type&&e.test(i.name))return t(i,s)})):this.walk(((i,s)=>{if("atrule"===i.type&&i.name===e)return t(i,s)})):(t=e,this.walk(((e,i)=>{if("atrule"===e.type)return t(e,i)})))}walkComments(e){return this.walk(((t,i)=>{if("comment"===t.type)return e(t,i)}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((i,s)=>{if("decl"===i.type&&e.test(i.prop))return t(i,s)})):this.walk(((i,s)=>{if("decl"===i.type&&i.prop===e)return t(i,s)})):(t=e,this.walk(((e,i)=>{if("decl"===e.type)return t(e,i)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((i,s)=>{if("rule"===i.type&&e.test(i.selector))return t(i,s)})):this.walk(((i,s)=>{if("rule"===i.type&&i.selector===e)return t(i,s)})):(t=e,this.walk(((e,i)=>{if("rule"===e.type)return t(e,i)})))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};Nt.registerParse=e=>{wt=e},Nt.registerRule=e=>{Ct=e},Nt.registerAtRule=e=>{Rt=e},Nt.registerRoot=e=>{vt=e};var Ft=Nt;Nt.default=Nt,Nt.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,Rt.prototype):"rule"===e.type?Object.setPrototypeOf(e,Ct.prototype):"decl"===e.type?Object.setPrototypeOf(e,xt.prototype):"comment"===e.type?Object.setPrototypeOf(e,kt.prototype):"root"===e.type&&Object.setPrototypeOf(e,vt.prototype),e[Jt]=!0,e.nodes&&e.nodes.forEach((e=>{Nt.rebuild(e)}))};let Kt=Ft,Mt=class extends Kt{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var Ht=Mt;Mt.default=Mt,Kt.registerAtRule(Mt);let zt,Ot,Pt=Ft,Bt=class extends Pt{constructor(e){super(u({type:"document"},e)),this.nodes||(this.nodes=[])}toResult(e={}){return new zt(new Ot,this,e).stringify()}};Bt.registerLazyResult=e=>{zt=e},Bt.registerProcessor=e=>{Ot=e};var Et=Bt;Bt.default=Bt;var jt={nanoid:(e=21)=>{let t="",i=e;for(;i--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(i=t)=>{let s="",n=i;for(;n--;)s+=e[Math.random()*e.length|0];return s}};let{existsSync:Dt,readFileSync:Qt}=et,{dirname:At,join:_t}=et,{SourceMapConsumer:$t,SourceMapGenerator:qt}=et,ei=class{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,s=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=At(this.mapFile)),s&&(this.text=s)}consumer(){return this.consumerCache||(this.consumerCache=new $t(this.text)),this.consumerCache}decodeInline(e){let t=e.match(/^data:application\/json;charset=utf-?8,/)||e.match(/^data:application\/json,/);if(t)return decodeURIComponent(e.substr(t[0].length));let i=e.match(/^data:application\/json;charset=utf-?8;base64,/)||e.match(/^data:application\/json;base64,/);if(i)return s=e.substr(i[0].length),Buffer?Buffer.from(s,"base64").toString():window.atob(s);var s;let n=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+n)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),s=e.indexOf("*/",i);i>-1&&s>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,s)))}loadFile(e){if(this.root=At(e),Dt(e))return this.mapFile=e,Qt(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof $t)return qt.fromSourceMap(t).toString();if(t instanceof qt)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let i=t(e);if(i){let e=this.loadFile(i);if(!e)throw new Error("Unable to load previous source map: "+i.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=_t(At(e),t)),this.loadFile(t)}}}startWith(e,t){return!!e&&e.substr(0,t.length)===t}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var ti=ei;ei.default=ei;let{nanoid:ii}=jt,{isAbsolute:si,resolve:ni}=et,{SourceMapConsumer:ri,SourceMapGenerator:oi}=et,{fileURLToPath:li,pathToFileURL:ai}=et,ci=nt,di=ti,ui=et,hi=Symbol("fromOffsetCache"),pi=!(!ri||!oi),mi=!(!ni||!si),bi=class{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!mi||/^\w+:\/\//.test(t.from)||si(t.from)?this.file=t.from:this.file=ni(t.from)),mi&&pi){let e=new di(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id="<input css "+ii(6)+">"),this.map&&(this.map.file=this.from)}error(e,t,i,s={}){let n,r,o;if(t&&"object"==typeof t){let e=t,s=i;if("number"==typeof e.offset){let s=this.fromOffset(e.offset);t=s.line,i=s.col}else t=e.line,i=e.column;if("number"==typeof s.offset){let e=this.fromOffset(s.offset);r=e.line,n=e.col}else r=s.line,n=s.column}else if(!i){let e=this.fromOffset(t);t=e.line,i=e.col}let l=this.origin(t,i,r,n);return o=l?new ci(e,void 0===l.endLine?l.line:{column:l.column,line:l.line},void 0===l.endLine?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,s.plugin):new ci(e,void 0===r?t:{column:i,line:t},void 0===r?i:{column:n,line:r},this.css,this.file,s.plugin),o.input={column:i,endColumn:n,endLine:r,line:t,source:this.css},this.file&&(ai&&(o.input.url=ai(this.file).toString()),o.input.file=this.file),o}fromOffset(e){let t,i;if(this[hi])i=this[hi];else{let e=this.css.split("\n");i=new Array(e.length);let t=0;for(let s=0,n=e.length;s<n;s++)i[s]=t,t+=e[s].length+1;this[hi]=i}t=i[i.length-1];let s=0;if(e>=t)s=i.length-1;else{let t,n=i.length-2;for(;s<n;)if(t=s+(n-s>>1),e<i[t])n=t-1;else{if(!(e>=i[t+1])){s=t;break}s=t+1}}return{col:e-i[s]+1,line:s+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:ni(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,s){if(!this.map)return!1;let n,r,o=this.map.consumer(),l=o.originalPositionFor({column:t,line:e});if(!l.source)return!1;"number"==typeof i&&(n=o.originalPositionFor({column:s,line:i})),r=si(l.source)?ai(l.source):new URL(l.source,this.map.consumer().sourceRoot||ai(this.map.mapFile));let a={column:l.column,endColumn:n&&n.column,endLine:n&&n.line,line:l.line,url:r.toString()};if("file:"===r.protocol){if(!li)throw new Error("file: protocol is not available in this PostCSS build");a.file=li(r)}let c=o.sourceContentFor(l.source);return c&&(a.source=c),a}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map=u({},this.map),e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};var yi=bi;bi.default=bi,ui&&ui.registerInput&&ui.registerInput(bi);let gi,Zi,fi=Ft,Gi=class extends fi{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let s=super.normalize(e);if(t)if("prepend"===i)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of s)e.raws.before=t.raws.before;return s}removeChild(e,t){let i=this.index(e);return!t&&0===i&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new gi(new Zi,this,e).stringify()}};Gi.registerLazyResult=e=>{gi=e},Gi.registerProcessor=e=>{Zi=e};var Ii=Gi;Gi.default=Gi,fi.registerRoot(Gi);let Vi={comma:e=>Vi.split(e,[","],!0),space:e=>Vi.split(e,[" ","\n","\t"]),split(e,t,i){let s=[],n="",r=!1,o=0,l=!1,a="",c=!1;for(let i of e)c?c=!1:"\\"===i?c=!0:l?i===a&&(l=!1):'"'===i||"'"===i?(l=!0,a=i):"("===i?o+=1:")"===i?o>0&&(o-=1):0===o&&t.includes(i)&&(r=!0),r?(""!==n&&s.push(n.trim()),n="",r=!1):n+=i;return(i||""!==n)&&s.push(n.trim()),s}};var Wi=Vi;Vi.default=Vi;let Xi=Ft,Si=Wi,Ri=class extends Xi{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Si.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};var wi=Ri;Ri.default=Ri,Xi.registerRule(Ri);let vi=Ht,Ci=Vt,ki=St,xi=yi,Li=ti,Yi=Ii,Ji=wi;function Ti(e,t){if(Array.isArray(e))return e.map((e=>Ti(e)));let i=e,{inputs:s}=i,n=p(i,["inputs"]);if(s){t=[];for(let e of s){let i=h(u({},e),{__proto__:xi.prototype});i.map&&(i.map=h(u({},i.map),{__proto__:Li.prototype})),t.push(i)}}if(n.nodes&&(n.nodes=e.nodes.map((e=>Ti(e,t)))),n.source){let e=n.source,{inputId:i}=e,s=p(e,["inputId"]);n.source=s,null!=i&&(n.source.input=t[i])}if("root"===n.type)return new Yi(n);if("decl"===n.type)return new ki(n);if("rule"===n.type)return new Ji(n);if("comment"===n.type)return new Ci(n);if("atrule"===n.type)return new vi(n);throw new Error("Unknown node type: "+e.type)}var Ui=Ti;Ti.default=Ti;let{dirname:Ni,relative:Fi,resolve:Ki,sep:Mi}=et,{SourceMapConsumer:Hi,SourceMapGenerator:zi}=et,{pathToFileURL:Oi}=et,Pi=yi,Bi=!(!Hi||!zi),Ei=!!(Ni&&Ki&&Fi&&Mi);var ji=class{constructor(e,t,i,s){this.stringify=e,this.mapOpts=i.map||{},this.root=t,this.opts=i,this.css=s,this.originalCSS=s,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t,i=this.toUrl(this.path(e.file)),s=e.root||Ni(e.file);!1===this.mapOpts.sourcesContent?(t=new Hi(e.text),t.sourcesContent&&(t.sourcesContent=null)):t=e.consumer(),this.map.applySourceMap(t,i,this.toUrl(this.path(s)))}}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),Ei&&Bi&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=zi.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new zi({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new zi({file:this.outputFile(),ignoreInvalidMapping:!0});let e,t,i=1,s=1,n="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,((o,l,a)=>{if(this.css+=o,l&&"end"!==a&&(r.generated.line=i,r.generated.column=s-1,l.source&&l.source.start?(r.source=this.sourcePath(l),r.original.line=l.source.start.line,r.original.column=l.source.start.column-1,this.map.addMapping(r)):(r.source=n,r.original.line=1,r.original.column=0,this.map.addMapping(r))),t=o.match(/\n/g),t?(i+=t.length,e=o.lastIndexOf("\n"),s=o.length-e):s+=o.length,l&&"start"!==a){let e=l.parent||{raws:{}};("decl"!==l.type&&("atrule"!==l.type||l.nodes)||l!==e.last||e.raws.semicolon)&&(l.source&&l.source.end?(r.source=this.sourcePath(l),r.original.line=l.source.end.line,r.original.column=l.source.end.column-1,r.generated.line=i,r.generated.column=s-2,this.map.addMapping(r)):(r.source=n,r.original.line=1,r.original.column=0,r.generated.line=i,r.generated.column=s-1,this.map.addMapping(r)))}}))}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||60===e.charCodeAt(0)||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?Ni(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(i=Ni(Ki(i,this.mapOpts.annotation)));let s=Fi(i,e);return this.memoizedPaths.set(e,s),s}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new Pi(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let s=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(s,t.source.input.css)}}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(e,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(Oi){let t=Oi(e).toString();return this.memoizedFileURLs.set(e,t),t}throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;"\\"===Mi&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};const Di=/[\t\n\f\r "#'()/;[\\\]{}]/g,Qi=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,Ai=/.[\r\n"'(/\\]/,_i=/[\da-f]/i;let $i=Ht,qi=Vt,es=St,ts=Ii,is=wi;const ss={empty:!0,space:!0};let ns=Ft,rs=yi,os=class{constructor(e){this.input=e,this.root=new ts,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new $i;t.name=e[1].slice(1),""===t.name&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,s,n,r=!1,o=!1,l=[],a=[];for(;!this.tokenizer.endOfFile();){if(i=(e=this.tokenizer.nextToken())[0],"("===i||"["===i?a.push("("===i?")":"]"):"{"===i&&a.length>0?a.push("}"):i===a[a.length-1]&&a.pop(),0===a.length){if(";"===i){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}if("{"===i){o=!0;break}if("}"===i){if(l.length>0){for(n=l.length-1,s=l[n];s&&"space"===s[0];)s=l[--n];s&&(t.source.end=this.getPosition(s[3]||s[2]),t.source.end.offset++)}this.end(e);break}l.push(e)}else l.push(e);if(this.tokenizer.endOfFile()){r=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(t.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(t,"params",l),r&&(e=l[l.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(!1===t)return;let i,s=0;for(let n=t-1;n>=0&&(i=e[n],"space"===i[0]||(s+=1,2!==s));n--);throw this.input.error("Missed semicolon","word"===i[0]?i[3]+1:i[2])}colon(e){let t,i,s,n=0;for(let[r,o]of e.entries()){if(i=o,s=i[0],"("===s&&(n+=1),")"===s&&(n-=1),0===n&&":"===s){if(t){if("word"===t[0]&&"progid"===t[1])continue;return r}this.doubleColon(i)}t=i}return!1}comment(e){let t=new qi;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let e=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}createTokenizer(){this.tokenizer=function(e,t={}){let i,s,n,r,o,l,a,c,d,u,h=e.css.valueOf(),p=t.ignoreErrors,m=h.length,b=0,y=[],g=[];function Z(t){throw e.error("Unclosed "+t,b)}return{back:function(e){g.push(e)},endOfFile:function(){return 0===g.length&&b>=m},nextToken:function(e){if(g.length)return g.pop();if(b>=m)return;let t=!!e&&e.ignoreUnclosed;switch(i=h.charCodeAt(b),i){case 10:case 32:case 9:case 13:case 12:r=b;do{r+=1,i=h.charCodeAt(r)}while(32===i||10===i||9===i||13===i||12===i);l=["space",h.slice(b,r)],b=r-1;break;case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let e=String.fromCharCode(i);l=[e,e,b];break}case 40:if(u=y.length?y.pop()[1]:"",d=h.charCodeAt(b+1),"url"===u&&39!==d&&34!==d&&32!==d&&10!==d&&9!==d&&12!==d&&13!==d){r=b;do{if(a=!1,r=h.indexOf(")",r+1),-1===r){if(p||t){r=b;break}Z("bracket")}for(c=r;92===h.charCodeAt(c-1);)c-=1,a=!a}while(a);l=["brackets",h.slice(b,r+1),b,r],b=r}else r=h.indexOf(")",b+1),s=h.slice(b,r+1),-1===r||Ai.test(s)?l=["(","(",b]:(l=["brackets",s,b,r],b=r);break;case 39:case 34:o=39===i?"'":'"',r=b;do{if(a=!1,r=h.indexOf(o,r+1),-1===r){if(p||t){r=b+1;break}Z("string")}for(c=r;92===h.charCodeAt(c-1);)c-=1,a=!a}while(a);l=["string",h.slice(b,r+1),b,r],b=r;break;case 64:Di.lastIndex=b+1,Di.test(h),r=0===Di.lastIndex?h.length-1:Di.lastIndex-2,l=["at-word",h.slice(b,r+1),b,r],b=r;break;case 92:for(r=b,n=!0;92===h.charCodeAt(r+1);)r+=1,n=!n;if(i=h.charCodeAt(r+1),n&&47!==i&&32!==i&&10!==i&&9!==i&&13!==i&&12!==i&&(r+=1,_i.test(h.charAt(r)))){for(;_i.test(h.charAt(r+1));)r+=1;32===h.charCodeAt(r+1)&&(r+=1)}l=["word",h.slice(b,r+1),b,r],b=r;break;default:47===i&&42===h.charCodeAt(b+1)?(r=h.indexOf("*/",b+2)+1,0===r&&(p||t?r=h.length:Z("comment")),l=["comment",h.slice(b,r+1),b,r],b=r):(Qi.lastIndex=b+1,Qi.test(h),r=0===Qi.lastIndex?h.length-1:Qi.lastIndex-2,l=["word",h.slice(b,r+1),b,r],y.push(l),b=r)}return b++,l},position:function(){return b}}}(this.input)}decl(e,t){let i=new es;this.init(i,e[0][2]);let s,n=e[e.length-1];for(";"===n[0]&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||function(e){for(let t=e.length-1;t>=0;t--){let i=e[t],s=i[3]||i[2];if(s)return s}}(e)),i.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;i.prop+=e.shift()[1]}for(i.raws.between="";e.length;){if(s=e.shift(),":"===s[0]){i.raws.between+=s[1];break}"word"===s[0]&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1]}("_"===i.prop[0]||"*"===i.prop[0])&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let r,o=[];for(;e.length&&(r=e[0][0],"space"===r||"comment"===r);)o.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(s=e[t],"!important"===s[1].toLowerCase()){i.important=!0;let s=this.stringFrom(e,t);s=this.spacesFromEnd(e)+s," !important"!==s&&(i.raws.important=s);break}if("important"===s[1].toLowerCase()){let s=e.slice(0),n="";for(let e=t;e>0;e--){let t=s[e][0];if(n.trim().startsWith("!")&&"space"!==t)break;n=s.pop()[1]+n}n.trim().startsWith("!")&&(i.important=!0,i.raws.important=n,e=s)}if("space"!==s[0]&&"comment"!==s[0])break}e.some((e=>"space"!==e[0]&&"comment"!==e[0]))&&(i.raws.between+=o.map((e=>e[1])).join(""),o=[]),this.raw(i,"value",o.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new is;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}other(e){let t=!1,i=null,s=!1,n=null,r=[],o=e[1].startsWith("--"),l=[],a=e;for(;a;){if(i=a[0],l.push(a),"("===i||"["===i)n||(n=a),r.push("("===i?")":"]");else if(o&&s&&"{"===i)n||(n=a),r.push("}");else if(0===r.length){if(";"===i){if(s)return void this.decl(l,o);break}if("{"===i)return void this.rule(l);if("}"===i){this.tokenizer.back(l.pop()),t=!0;break}":"===i&&(s=!0)}else i===r[r.length-1]&&(r.pop(),0===r.length&&(n=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),r.length>0&&this.unclosedBracket(n),t&&s){if(!o)for(;l.length&&(a=l[l.length-1][0],"space"===a||"comment"===a);)this.tokenizer.back(l.pop());this.decl(l,o)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,s){let n,r,o,l,a=i.length,c="",d=!0;for(let e=0;e<a;e+=1)n=i[e],r=n[0],"space"!==r||e!==a-1||s?"comment"===r?(l=i[e-1]?i[e-1][0]:"empty",o=i[e+1]?i[e+1][0]:"empty",ss[l]||ss[o]||","===c.slice(-1)?d=!1:c+=n[1]):c+=n[1]:d=!1;if(!d){let s=i.reduce(((e,t)=>e+t[1]),"");e.raws[t]={raw:s,value:c}}e[t]=c}rule(e){e.pop();let t=new is;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let s=t;s<e.length;s++)i+=e[s][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word",{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};function ls(e,t){let i=new rs(e,t),s=new os(i);try{s.parse()}catch(e){throw e}return s.root}var as=ls;ls.default=ls,ns.registerParse(ls);let cs=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var ds=cs;cs.default=cs;let us=ds,hs=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new us(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}};var ps=hs;hs.default=hs;let ms=Ft,bs=Et,ys=ji,gs=as,Zs=ps,fs=Ii,Gs=dt,{isClean:Is,my:Vs}=ut;const Ws={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Xs={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Ss={Once:!0,postcssPlugin:!0,prepare:!0};function Rs(e){return"object"==typeof e&&"function"==typeof e.then}function ws(e){let t=!1,i=Ws[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[i,i+"-"+t,0,i+"Exit",i+"Exit-"+t]:t?[i,i+"-"+t,i+"Exit",i+"Exit-"+t]:e.append?[i,0,i+"Exit"]:[i,i+"Exit"]}function vs(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:ws(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function Cs(e){return e[Is]=!1,e.nodes&&e.nodes.forEach((e=>Cs(e))),e}let ks={},xs=class e{constructor(t,i,s){let n;if(this.stringified=!1,this.processed=!1,"object"!=typeof i||null===i||"root"!==i.type&&"document"!==i.type)if(i instanceof e||i instanceof Zs)n=Cs(i.root),i.map&&(void 0===s.map&&(s.map={}),s.map.inline||(s.map.inline=!1),s.map.prev=i.map);else{let e=gs;s.syntax&&(e=s.syntax.parse),s.parser&&(e=s.parser),e.parse&&(e=e.parse);try{n=e(i,s)}catch(e){this.processed=!0,this.error=e}n&&!n[Vs]&&ms.rebuild(n)}else n=Cs(i);this.result=new Zs(t,n,s),this.helpers=h(u({},ks),{postcss:ks,result:this.result}),this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?u(u({},e),e.prepare(this.result)):e))}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?i.postcssVersion:(e.plugin=i.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}prepareVisitors(){this.listeners={};let e=(e,t,i)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,i])};for(let t of this.plugins)if("object"==typeof t)for(let i in t){if(!Xs[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Ss[i])if("object"==typeof t[i])for(let s in t[i])e(t,"*"===s?i:i+"-"+s.toLowerCase(),t[i][s]);else"function"==typeof t[i]&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return b(this,null,(function*(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let t=this.plugins[e],i=this.runOnRoot(t);if(Rs(i))try{yield i}catch(e){throw this.handleError(e)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Is];){e[Is]=!0;let t=[vs(e)];for(;t.length>0;){let e=this.visitTick(t);if(Rs(e))try{yield e}catch(e){let i=t[t.length-1].node;throw this.handleError(e,i)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>i(e,this.helpers)));yield Promise.all(t)}else yield i(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}))}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return Rs(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=Gs;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let i=new ys(t,this.result.root,this.result.opts).generate();return this.result.css=i[0],this.result.map=i[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(Rs(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Is];)e[Is]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,s]of e){let e;this.result.lastPlugin=i;try{e=s(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(Rs(e))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:i,visitors:s}=t;if("root"!==i.type&&"document"!==i.type&&!i.parent)return void e.pop();if(s.length>0&&t.visitorIndex<s.length){let[e,n]=s[t.visitorIndex];t.visitorIndex+=1,t.visitorIndex===s.length&&(t.visitors=[],t.visitorIndex=0),this.result.lastPlugin=e;try{return n(i.toProxy(),this.helpers)}catch(e){throw this.handleError(e,i)}}if(0!==t.iterator){let s,n=t.iterator;for(;s=i.nodes[i.indexes[n]];)if(i.indexes[n]+=1,!s[Is])return s[Is]=!0,void e.push(vs(s));t.iterator=0,delete i.indexes[n]}let n=t.events;for(;t.eventIndex<n.length;){let e=n[t.eventIndex];if(t.eventIndex+=1,0===e)return void(i.nodes&&i.nodes.length&&(i[Is]=!0,t.iterator=i.getIterator()));if(this.listeners[e])return void(t.visitors=this.listeners[e])}e.pop()}walkSync(e){e[Is]=!0;let t=ws(e);for(let i of t)if(0===i)e.nodes&&e.each((e=>{e[Is]||this.walkSync(e)}));else{let t=this.listeners[i];if(t&&this.visitSync(t,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};xs.registerPostcss=e=>{ks=e};var Ls=xs;xs.default=xs,fs.registerLazyResult(xs),bs.registerLazyResult(xs);let Ys=ji,Js=as;const Ts=ps;let Us=dt,Ns=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let s,n=Us;this.result=new Ts(this._processor,s,this._opts),this.result.css=t;let r=this;Object.defineProperty(this.result,"root",{get:()=>r.root});let o=new Ys(n,s,this._opts,t);if(o.isMap()){let[e,t]=o.generate();e&&(this.result.css=e),t&&(this.result.map=t)}else o.clearAnnotation(),this.result.css=o.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=Js;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}};var Fs=Ns;Ns.default=Ns;let Ks=Et,Ms=Ls,Hs=Fs,zs=Ii,Os=class{constructor(e=[]){this.version="8.4.47",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(!0===i.postcss?i=i():i.postcss&&(i=i.postcss),"object"==typeof i&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if("object"==typeof i&&i.postcssPlugin)t.push(i);else if("function"==typeof i)t.push(i);else if("object"!=typeof i||!i.parse&&!i.stringify)throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return this.plugins.length||t.parser||t.stringifier||t.syntax?new Ms(this,e,t):new Hs(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var Ps=Os;Os.default=Os,zs.registerProcessor(Os),Ks.registerProcessor(Os);let Bs=Ht,Es=Vt,js=Ft,Ds=nt,Qs=St,As=Et,_s=Ui,$s=yi,qs=Ls,en=Wi,tn=ft,sn=as,nn=Ps,rn=ps,on=Ii,ln=wi,an=dt,cn=ds;function dn(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new nn(e)}dn.plugin=function(e,t){let i,s=!1;function n(...i){console&&console.warn&&!s&&(s=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let n=t(...i);return n.postcssPlugin=e,n.postcssVersion=(new nn).version,n}return Object.defineProperty(n,"postcss",{get:()=>(i||(i=n()),i)}),n.process=function(e,t,i){return dn([n(i)]).process(e,t)},n},dn.stringify=an,dn.parse=sn,dn.fromJSON=_s,dn.list=en,dn.comment=e=>new Es(e),dn.atRule=e=>new Bs(e),dn.decl=e=>new Qs(e),dn.rule=e=>new ln(e),dn.root=e=>new on(e),dn.document=e=>new As(e),dn.CssSyntaxError=Ds,dn.Declaration=Qs,dn.Container=js,dn.Processor=nn,dn.Document=As,dn.Comment=Es,dn.Warning=cn,dn.AtRule=Bs,dn.Result=rn,dn.Input=$s,dn.Rule=ln,dn.Root=on,dn.Node=tn,qs.registerPostcss(dn),dn.default=dn;var un=Object.defineProperty,hn=(e,t,i)=>((e,t,i)=>t in e?un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i)(e,"symbol"!=typeof t?t+"":t,i);function pn(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var i=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};i.prototype=t.prototype}else i={};return Object.defineProperty(i,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(i,t,s.get?s:{enumerable:!0,get:function(){return e[t]}})})),i}var mn={exports:{}},bn=String,yn=function(){return{isColorSupported:!1,reset:bn,bold:bn,dim:bn,italic:bn,underline:bn,inverse:bn,hidden:bn,strikethrough:bn,black:bn,red:bn,green:bn,yellow:bn,blue:bn,magenta:bn,cyan:bn,white:bn,gray:bn,bgBlack:bn,bgRed:bn,bgGreen:bn,bgYellow:bn,bgBlue:bn,bgMagenta:bn,bgCyan:bn,bgWhite:bn,blackBright:bn,redBright:bn,greenBright:bn,yellowBright:bn,blueBright:bn,magentaBright:bn,cyanBright:bn,whiteBright:bn,bgBlackBright:bn,bgRedBright:bn,bgGreenBright:bn,bgYellowBright:bn,bgBlueBright:bn,bgMagentaBright:bn,bgCyanBright:bn,bgWhiteBright:bn}};mn.exports=yn(),mn.exports.createColors=yn;var gn=mn.exports;const Zn=pn(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));let fn=gn,Gn=Zn,In=class e extends Error{constructor(t,i,s,n,r,o){super(t),this.name="CssSyntaxError",this.reason=t,r&&(this.file=r),n&&(this.source=n),o&&(this.plugin=o),void 0!==i&&void 0!==s&&("number"==typeof i?(this.line=i,this.column=s):(this.line=i.line,this.column=i.column,this.endLine=s.line,this.endColumn=s.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,e)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"<css input>",void 0!==this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(e){if(!this.source)return"";let t=this.source;null==e&&(e=fn.isColorSupported);let i=e=>e,s=e=>e,n=e=>e;if(e){let{bold:e,gray:t,red:r}=fn.createColors(!0);s=t=>e(r(t)),i=e=>t(e),Gn&&(n=e=>Gn(e))}let r=t.split(/\r?\n/),o=Math.max(this.line-3,0),l=Math.min(this.line+2,r.length),a=String(l).length;return r.slice(o,l).map(((e,t)=>{let r=o+1+t,l=" "+(" "+r).slice(-a)+" | ";if(r===this.line){if(e.length>160){let t=20,r=Math.max(0,this.column-t),o=Math.max(this.column+t,this.endColumn+t),a=e.slice(r,o),c=i(l.replace(/\d/g," "))+e.slice(0,Math.min(this.column-1,t-1)).replace(/[^\t]/g," ");return s(">")+i(l)+n(a)+"\n "+c+s("^")}let t=i(l.replace(/\d/g," "))+e.slice(0,this.column-1).replace(/[^\t]/g," ");return s(">")+i(l)+n(e)+"\n "+t+s("^")}return" "+i(l)+n(e)})).join("\n")}toString(){let e=this.showSourceCode();return e&&(e="\n\n"+e+"\n"),this.name+": "+this.message+e}};var Vn=In;In.default=In;const Wn={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:!1};let Xn=class{constructor(e){this.builder=e}atrule(e,t){let i="@"+e.name,s=e.params?this.rawValue(e,"params"):"";if(void 0!==e.raws.afterName?i+=e.raws.afterName:s&&(i+=" "),e.nodes)this.block(e,i+s);else{let n=(e.raws.between||"")+(t?";":"");this.builder(i+s+n,e)}}beforeAfter(e,t){let i;i="decl"===e.type?this.raw(e,null,"beforeDecl"):"comment"===e.type?this.raw(e,null,"beforeComment"):"before"===t?this.raw(e,null,"beforeRule"):this.raw(e,null,"beforeClose");let s=e.parent,n=0;for(;s&&"root"!==s.type;)n+=1,s=s.parent;if(i.includes("\n")){let t=this.raw(e,null,"indent");if(t.length)for(let e=0;e<n;e++)i+=t}return i}block(e,t){let i,s=this.raw(e,"between","beforeOpen");this.builder(t+s+"{",e,"start"),e.nodes&&e.nodes.length?(this.body(e),i=this.raw(e,"after")):i=this.raw(e,"after","emptyBody"),i&&this.builder(i),this.builder("}",e,"end")}body(e){let t=e.nodes.length-1;for(;t>0&&"comment"===e.nodes[t].type;)t-=1;let i=this.raw(e,"semicolon");for(let s=0;s<e.nodes.length;s++){let n=e.nodes[s],r=this.raw(n,"before");r&&this.builder(r),this.stringify(n,t!==s||i)}}comment(e){let t=this.raw(e,"left","commentLeft"),i=this.raw(e,"right","commentRight");this.builder("/*"+t+e.text+i+"*/",e)}decl(e,t){let i=this.raw(e,"between","colon"),s=e.prop+i+this.rawValue(e,"value");e.important&&(s+=e.raws.important||" !important"),t&&(s+=";"),this.builder(s,e)}document(e){this.body(e)}raw(e,t,i){let s;if(i||(i=t),t&&(s=e.raws[t],void 0!==s))return s;let n=e.parent;if("before"===i&&(!n||"root"===n.type&&n.first===e||n&&"document"===n.type))return"";if(!n)return Wn[i];let r=e.root();if(r.rawCache||(r.rawCache={}),void 0!==r.rawCache[i])return r.rawCache[i];if("before"===i||"after"===i)return this.beforeAfter(e,i);{let n="raw"+((o=i)[0].toUpperCase()+o.slice(1));this[n]?s=this[n](r,e):r.walk((e=>{if(s=e.raws[t],void 0!==s)return!1}))}var o;return void 0===s&&(s=Wn[i]),r.rawCache[i]=s,s}rawBeforeClose(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length>0&&void 0!==e.raws.after)return t=e.raws.after,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawBeforeComment(e,t){let i;return e.walkComments((e=>{if(void 0!==e.raws.before)return i=e.raws.before,i.includes("\n")&&(i=i.replace(/[^\n]+$/,"")),!1})),void 0===i?i=this.raw(t,null,"beforeDecl"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeDecl(e,t){let i;return e.walkDecls((e=>{if(void 0!==e.raws.before)return i=e.raws.before,i.includes("\n")&&(i=i.replace(/[^\n]+$/,"")),!1})),void 0===i?i=this.raw(t,null,"beforeRule"):i&&(i=i.replace(/\S/g,"")),i}rawBeforeOpen(e){let t;return e.walk((e=>{if("decl"!==e.type&&(t=e.raws.between,void 0!==t))return!1})),t}rawBeforeRule(e){let t;return e.walk((i=>{if(i.nodes&&(i.parent!==e||e.first!==i)&&void 0!==i.raws.before)return t=i.raws.before,t.includes("\n")&&(t=t.replace(/[^\n]+$/,"")),!1})),t&&(t=t.replace(/\S/g,"")),t}rawColon(e){let t;return e.walkDecls((e=>{if(void 0!==e.raws.between)return t=e.raws.between.replace(/[^\s:]/g,""),!1})),t}rawEmptyBody(e){let t;return e.walk((e=>{if(e.nodes&&0===e.nodes.length&&(t=e.raws.after,void 0!==t))return!1})),t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;return e.walk((i=>{let s=i.parent;if(s&&s!==e&&s.parent&&s.parent===e&&void 0!==i.raws.before){let e=i.raws.before.split("\n");return t=e[e.length-1],t=t.replace(/\S/g,""),!1}})),t}rawSemicolon(e){let t;return e.walk((e=>{if(e.nodes&&e.nodes.length&&"decl"===e.last.type&&(t=e.raws.semicolon,void 0!==t))return!1})),t}rawValue(e,t){let i=e[t],s=e.raws[t];return s&&s.value===i?s.raw:i}root(e){this.body(e),e.raws.after&&this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector")),e.raws.ownSemicolon&&this.builder(e.raws.ownSemicolon,e,"end")}stringify(e,t){if(!this[e.type])throw new Error("Unknown AST node type "+e.type+". Maybe you need to change PostCSS stringifier.");this[e.type](e,t)}};var Sn=Xn;Xn.default=Xn;let Rn=Sn;function wn(e,t){new Rn(t).stringify(e)}var vn=wn;wn.default=wn;var Cn={};Cn.isClean=Symbol("isClean"),Cn.my=Symbol("my");let kn=Vn,xn=Sn,Ln=vn,{isClean:Yn,my:Jn}=Cn;function Tn(e,t){let i=new e.constructor;for(let s in e){if(!Object.prototype.hasOwnProperty.call(e,s)||"proxyCache"===s)continue;let n=e[s],r=typeof n;"parent"===s&&"object"===r?t&&(i[s]=t):"source"===s?i[s]=n:Array.isArray(n)?i[s]=n.map((e=>Tn(e,i))):("object"===r&&null!==n&&(n=Tn(n)),i[s]=n)}return i}let Un=class{constructor(e={}){this.raws={},this[Yn]=!1,this[Jn]=!0;for(let t in e)if("nodes"===t){this.nodes=[];for(let i of e[t])"function"==typeof i.clone?this.append(i.clone()):this.append(i)}else this[t]=e[t]}addToError(e){if(e.postcssNode=this,e.stack&&this.source&&/\n\s{4}at /.test(e.stack)){let t=this.source;e.stack=e.stack.replace(/\n\s{4}at /,`$&${t.input.from}:${t.start.line}:${t.start.column}$&`)}return e}after(e){return this.parent.insertAfter(this,e),this}assign(e={}){for(let t in e)this[t]=e[t];return this}before(e){return this.parent.insertBefore(this,e),this}cleanRaws(e){delete this.raws.before,delete this.raws.after,e||delete this.raws.between}clone(e={}){let t=Tn(this);for(let i in e)t[i]=e[i];return t}cloneAfter(e={}){let t=this.clone(e);return this.parent.insertAfter(this,t),t}cloneBefore(e={}){let t=this.clone(e);return this.parent.insertBefore(this,t),t}error(e,t={}){if(this.source){let{end:i,start:s}=this.rangeBy(t);return this.source.input.error(e,{column:s.column,line:s.line},{column:i.column,line:i.line},t)}return new kn(e)}getProxyProcessor(){return{get:(e,t)=>"proxyOf"===t?e:"root"===t?()=>e.root().toProxy():e[t],set:(e,t,i)=>(e[t]===i||(e[t]=i,("prop"===t||"value"===t||"name"===t||"params"===t||"important"===t||"text"===t)&&e.markDirty()),!0)}}markClean(){this[Yn]=!0}markDirty(){if(this[Yn]){this[Yn]=!1;let e=this;for(;e=e.parent;)e[Yn]=!1}}next(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e+1]}positionBy(e,t){let i=this.source.start;if(e.index)i=this.positionInside(e.index,t);else if(e.word){let s=(t=this.toString()).indexOf(e.word);-1!==s&&(i=this.positionInside(s,t))}return i}positionInside(e,t){let i=t||this.toString(),s=this.source.start.column,n=this.source.start.line;for(let t=0;t<e;t++)"\n"===i[t]?(s=1,n+=1):s+=1;return{column:s,line:n}}prev(){if(!this.parent)return;let e=this.parent.index(this);return this.parent.nodes[e-1]}rangeBy(e){let t={column:this.source.start.column,line:this.source.start.line},i=this.source.end?{column:this.source.end.column+1,line:this.source.end.line}:{column:t.column+1,line:t.line};if(e.word){let s=this.toString(),n=s.indexOf(e.word);-1!==n&&(t=this.positionInside(n,s),i=this.positionInside(n+e.word.length,s))}else e.start?t={column:e.start.column,line:e.start.line}:e.index&&(t=this.positionInside(e.index)),e.end?i={column:e.end.column,line:e.end.line}:"number"==typeof e.endIndex?i=this.positionInside(e.endIndex):e.index&&(i=this.positionInside(e.index+1));return(i.line<t.line||i.line===t.line&&i.column<=t.column)&&(i={column:t.column+1,line:t.line}),{end:i,start:t}}raw(e,t){return(new xn).raw(this,e,t)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}replaceWith(...e){if(this.parent){let t=this,i=!1;for(let s of e)s===this?i=!0:i?(this.parent.insertAfter(t,s),t=s):this.parent.insertBefore(t,s);i||this.remove()}return this}root(){let e=this;for(;e.parent&&"document"!==e.parent.type;)e=e.parent;return e}toJSON(e,t){let i={},s=null==t;t=t||new Map;let n=0;for(let e in this){if(!Object.prototype.hasOwnProperty.call(this,e)||"parent"===e||"proxyCache"===e)continue;let s=this[e];if(Array.isArray(s))i[e]=s.map((e=>"object"==typeof e&&e.toJSON?e.toJSON(null,t):e));else if("object"==typeof s&&s.toJSON)i[e]=s.toJSON(null,t);else if("source"===e){let r=t.get(s.input);null==r&&(r=n,t.set(s.input,n),n++),i[e]={end:s.end,inputId:r,start:s.start}}else i[e]=s}return s&&(i.inputs=[...t.keys()].map((e=>e.toJSON()))),i}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}toString(e=Ln){e.stringify&&(e=e.stringify);let t="";return e(this,(e=>{t+=e})),t}warn(e,t,i){let s={node:this};for(let e in i)s[e]=i[e];return e.warn(t,s)}get proxyOf(){return this}};var Nn=Un;Un.default=Un;let Fn=Nn,Kn=class extends Fn{constructor(e){super(e),this.type="comment"}};var Mn=Kn;Kn.default=Kn;let Hn=Nn,zn=class extends Hn{constructor(e){e&&void 0!==e.value&&"string"!=typeof e.value&&(e=h(u({},e),{value:String(e.value)})),super(e),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}};var On=zn;zn.default=zn;let Pn,Bn,En,jn,Dn=Mn,Qn=On,An=Nn,{isClean:_n,my:$n}=Cn;function qn(e){return e.map((e=>(e.nodes&&(e.nodes=qn(e.nodes)),delete e.source,e)))}function er(e){if(e[_n]=!1,e.proxyOf.nodes)for(let t of e.proxyOf.nodes)er(t)}let tr=class e extends An{append(...e){for(let t of e){let e=this.normalize(t,this.last);for(let t of e)this.proxyOf.nodes.push(t)}return this.markDirty(),this}cleanRaws(e){if(super.cleanRaws(e),this.nodes)for(let t of this.nodes)t.cleanRaws(e)}each(e){if(!this.proxyOf.nodes)return;let t,i,s=this.getIterator();for(;this.indexes[s]<this.proxyOf.nodes.length&&(t=this.indexes[s],i=e(this.proxyOf.nodes[t],t),!1!==i);)this.indexes[s]+=1;return delete this.indexes[s],i}every(e){return this.nodes.every(e)}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let e=this.lastEach;return this.indexes[e]=0,e}getProxyProcessor(){return{get:(e,t)=>"proxyOf"===t?e:e[t]?"each"===t||"string"==typeof t&&t.startsWith("walk")?(...i)=>e[t](...i.map((e=>"function"==typeof e?(t,i)=>e(t.toProxy(),i):e))):"every"===t||"some"===t?i=>e[t](((e,...t)=>i(e.toProxy(),...t))):"root"===t?()=>e.root().toProxy():"nodes"===t?e.nodes.map((e=>e.toProxy())):"first"===t||"last"===t?e[t].toProxy():e[t]:e[t],set:(e,t,i)=>(e[t]===i||(e[t]=i,("name"===t||"params"===t||"selector"===t)&&e.markDirty()),!0)}}index(e){return"number"==typeof e?e:(e.proxyOf&&(e=e.proxyOf),this.proxyOf.nodes.indexOf(e))}insertAfter(e,t){let i,s=this.index(e),n=this.normalize(t,this.proxyOf.nodes[s]).reverse();s=this.index(e);for(let e of n)this.proxyOf.nodes.splice(s+1,0,e);for(let e in this.indexes)i=this.indexes[e],s<i&&(this.indexes[e]=i+n.length);return this.markDirty(),this}insertBefore(e,t){let i,s=this.index(e),n=0===s&&"prepend",r=this.normalize(t,this.proxyOf.nodes[s],n).reverse();s=this.index(e);for(let e of r)this.proxyOf.nodes.splice(s,0,e);for(let e in this.indexes)i=this.indexes[e],s<=i&&(this.indexes[e]=i+r.length);return this.markDirty(),this}normalize(t,i){if("string"==typeof t)t=qn(Bn(t).nodes);else if(void 0===t)t=[];else if(Array.isArray(t)){t=t.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if("root"===t.type&&"document"!==this.type){t=t.nodes.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if(t.type)t=[t];else if(t.prop){if(void 0===t.value)throw new Error("Value field is missed in node creation");"string"!=typeof t.value&&(t.value=String(t.value)),t=[new Qn(t)]}else if(t.selector||t.selectors)t=[new jn(t)];else if(t.name)t=[new Pn(t)];else{if(!t.text)throw new Error("Unknown node type in node creation");t=[new Dn(t)]}return t.map((t=>(t[$n]||e.rebuild(t),(t=t.proxyOf).parent&&t.parent.removeChild(t),t[_n]&&er(t),t.raws||(t.raws={}),void 0===t.raws.before&&i&&void 0!==i.raws.before&&(t.raws.before=i.raws.before.replace(/\S/g,"")),t.parent=this.proxyOf,t)))}prepend(...e){e=e.reverse();for(let t of e){let e=this.normalize(t,this.first,"prepend").reverse();for(let t of e)this.proxyOf.nodes.unshift(t);for(let t in this.indexes)this.indexes[t]=this.indexes[t]+e.length}return this.markDirty(),this}push(e){return e.parent=this,this.proxyOf.nodes.push(e),this}removeAll(){for(let e of this.proxyOf.nodes)e.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}removeChild(e){let t;e=this.index(e),this.proxyOf.nodes[e].parent=void 0,this.proxyOf.nodes.splice(e,1);for(let i in this.indexes)t=this.indexes[i],t>=e&&(this.indexes[i]=t-1);return this.markDirty(),this}replaceValues(e,t,i){return i||(i=t,t={}),this.walkDecls((s=>{t.props&&!t.props.includes(s.prop)||t.fast&&!s.value.includes(t.fast)||(s.value=s.value.replace(e,i))})),this.markDirty(),this}some(e){return this.nodes.some(e)}walk(e){return this.each(((t,i)=>{let s;try{s=e(t,i)}catch(e){throw t.addToError(e)}return!1!==s&&t.walk&&(s=t.walk(e)),s}))}walkAtRules(e,t){return t?e instanceof RegExp?this.walk(((i,s)=>{if("atrule"===i.type&&e.test(i.name))return t(i,s)})):this.walk(((i,s)=>{if("atrule"===i.type&&i.name===e)return t(i,s)})):(t=e,this.walk(((e,i)=>{if("atrule"===e.type)return t(e,i)})))}walkComments(e){return this.walk(((t,i)=>{if("comment"===t.type)return e(t,i)}))}walkDecls(e,t){return t?e instanceof RegExp?this.walk(((i,s)=>{if("decl"===i.type&&e.test(i.prop))return t(i,s)})):this.walk(((i,s)=>{if("decl"===i.type&&i.prop===e)return t(i,s)})):(t=e,this.walk(((e,i)=>{if("decl"===e.type)return t(e,i)})))}walkRules(e,t){return t?e instanceof RegExp?this.walk(((i,s)=>{if("rule"===i.type&&e.test(i.selector))return t(i,s)})):this.walk(((i,s)=>{if("rule"===i.type&&i.selector===e)return t(i,s)})):(t=e,this.walk(((e,i)=>{if("rule"===e.type)return t(e,i)})))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}};tr.registerParse=e=>{Bn=e},tr.registerRule=e=>{jn=e},tr.registerAtRule=e=>{Pn=e},tr.registerRoot=e=>{En=e};var ir=tr;tr.default=tr,tr.rebuild=e=>{"atrule"===e.type?Object.setPrototypeOf(e,Pn.prototype):"rule"===e.type?Object.setPrototypeOf(e,jn.prototype):"decl"===e.type?Object.setPrototypeOf(e,Qn.prototype):"comment"===e.type?Object.setPrototypeOf(e,Dn.prototype):"root"===e.type&&Object.setPrototypeOf(e,En.prototype),e[$n]=!0,e.nodes&&e.nodes.forEach((e=>{tr.rebuild(e)}))};let sr=ir,nr=class extends sr{constructor(e){super(e),this.type="atrule"}append(...e){return this.proxyOf.nodes||(this.nodes=[]),super.append(...e)}prepend(...e){return this.proxyOf.nodes||(this.nodes=[]),super.prepend(...e)}};var rr=nr;nr.default=nr,sr.registerAtRule(nr);let or,lr,ar=ir,cr=class extends ar{constructor(e){super(u({type:"document"},e)),this.nodes||(this.nodes=[])}toResult(e={}){return new or(new lr,this,e).stringify()}};cr.registerLazyResult=e=>{or=e},cr.registerProcessor=e=>{lr=e};var dr=cr;cr.default=cr;var ur={nanoid:(e=21)=>{let t="",i=e;for(;i--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[64*Math.random()|0];return t},customAlphabet:(e,t=21)=>(i=t)=>{let s="",n=i;for(;n--;)s+=e[Math.random()*e.length|0];return s}};let{existsSync:hr,readFileSync:pr}=Zn,{dirname:mr,join:br}=Zn,{SourceMapConsumer:yr,SourceMapGenerator:gr}=Zn,Zr=class{constructor(e,t){if(!1===t.map)return;this.loadAnnotation(e),this.inline=this.startWith(this.annotation,"data:");let i=t.map?t.map.prev:void 0,s=this.loadMap(t.from,i);!this.mapFile&&t.from&&(this.mapFile=t.from),this.mapFile&&(this.root=mr(this.mapFile)),s&&(this.text=s)}consumer(){return this.consumerCache||(this.consumerCache=new yr(this.text)),this.consumerCache}decodeInline(e){let t=e.match(/^data:application\/json;charset=utf-?8,/)||e.match(/^data:application\/json,/);if(t)return decodeURIComponent(e.substr(t[0].length));let i=e.match(/^data:application\/json;charset=utf-?8;base64,/)||e.match(/^data:application\/json;base64,/);if(i)return s=e.substr(i[0].length),Buffer?Buffer.from(s,"base64").toString():window.atob(s);var s;let n=e.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+n)}getAnnotationURL(e){return e.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}isMap(e){return"object"==typeof e&&("string"==typeof e.mappings||"string"==typeof e._mappings||Array.isArray(e.sections))}loadAnnotation(e){let t=e.match(/\/\*\s*# sourceMappingURL=/g);if(!t)return;let i=e.lastIndexOf(t.pop()),s=e.indexOf("*/",i);i>-1&&s>-1&&(this.annotation=this.getAnnotationURL(e.substring(i,s)))}loadFile(e){if(this.root=mr(e),hr(e))return this.mapFile=e,pr(e,"utf-8").toString().trim()}loadMap(e,t){if(!1===t)return!1;if(t){if("string"==typeof t)return t;if("function"!=typeof t){if(t instanceof yr)return gr.fromSourceMap(t).toString();if(t instanceof gr)return t.toString();if(this.isMap(t))return JSON.stringify(t);throw new Error("Unsupported previous source map format: "+t.toString())}{let i=t(e);if(i){let e=this.loadFile(i);if(!e)throw new Error("Unable to load previous source map: "+i.toString());return e}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let t=this.annotation;return e&&(t=br(mr(e),t)),this.loadFile(t)}}}startWith(e,t){return!!e&&e.substr(0,t.length)===t}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}};var fr=Zr;Zr.default=Zr;let{nanoid:Gr}=ur,{isAbsolute:Ir,resolve:Vr}=Zn,{SourceMapConsumer:Wr,SourceMapGenerator:Xr}=Zn,{fileURLToPath:Sr,pathToFileURL:Rr}=Zn,wr=Vn,vr=fr,Cr=Zn,kr=Symbol("fromOffsetCache"),xr=!(!Wr||!Xr),Lr=!(!Vr||!Ir),Yr=class{constructor(e,t={}){if(null==e||"object"==typeof e&&!e.toString)throw new Error(`PostCSS received ${e} instead of CSS string`);if(this.css=e.toString(),"\ufeff"===this.css[0]||""===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,t.from&&(!Lr||/^\w+:\/\//.test(t.from)||Ir(t.from)?this.file=t.from:this.file=Vr(t.from)),Lr&&xr){let e=new vr(this.css,t);if(e.text){this.map=e;let t=e.consumer().file;!this.file&&t&&(this.file=this.mapResolve(t))}}this.file||(this.id="<input css "+Gr(6)+">"),this.map&&(this.map.file=this.from)}error(e,t,i,s={}){let n,r,o;if(t&&"object"==typeof t){let e=t,s=i;if("number"==typeof e.offset){let s=this.fromOffset(e.offset);t=s.line,i=s.col}else t=e.line,i=e.column;if("number"==typeof s.offset){let e=this.fromOffset(s.offset);r=e.line,n=e.col}else r=s.line,n=s.column}else if(!i){let e=this.fromOffset(t);t=e.line,i=e.col}let l=this.origin(t,i,r,n);return o=l?new wr(e,void 0===l.endLine?l.line:{column:l.column,line:l.line},void 0===l.endLine?l.column:{column:l.endColumn,line:l.endLine},l.source,l.file,s.plugin):new wr(e,void 0===r?t:{column:i,line:t},void 0===r?i:{column:n,line:r},this.css,this.file,s.plugin),o.input={column:i,endColumn:n,endLine:r,line:t,source:this.css},this.file&&(Rr&&(o.input.url=Rr(this.file).toString()),o.input.file=this.file),o}fromOffset(e){let t,i;if(this[kr])i=this[kr];else{let e=this.css.split("\n");i=new Array(e.length);let t=0;for(let s=0,n=e.length;s<n;s++)i[s]=t,t+=e[s].length+1;this[kr]=i}t=i[i.length-1];let s=0;if(e>=t)s=i.length-1;else{let t,n=i.length-2;for(;s<n;)if(t=s+(n-s>>1),e<i[t])n=t-1;else{if(!(e>=i[t+1])){s=t;break}s=t+1}}return{col:e-i[s]+1,line:s+1}}mapResolve(e){return/^\w+:\/\//.test(e)?e:Vr(this.map.consumer().sourceRoot||this.map.root||".",e)}origin(e,t,i,s){if(!this.map)return!1;let n,r,o=this.map.consumer(),l=o.originalPositionFor({column:t,line:e});if(!l.source)return!1;"number"==typeof i&&(n=o.originalPositionFor({column:s,line:i})),r=Ir(l.source)?Rr(l.source):new URL(l.source,this.map.consumer().sourceRoot||Rr(this.map.mapFile));let a={column:l.column,endColumn:n&&n.column,endLine:n&&n.line,line:l.line,url:r.toString()};if("file:"===r.protocol){if(!Sr)throw new Error("file: protocol is not available in this PostCSS build");a.file=Sr(r)}let c=o.sourceContentFor(l.source);return c&&(a.source=c),a}toJSON(){let e={};for(let t of["hasBOM","css","file","id"])null!=this[t]&&(e[t]=this[t]);return this.map&&(e.map=u({},this.map),e.map.consumerCache&&(e.map.consumerCache=void 0)),e}get from(){return this.file||this.id}};var Jr=Yr;Yr.default=Yr,Cr&&Cr.registerInput&&Cr.registerInput(Yr);let Tr,Ur,Nr=ir,Fr=class extends Nr{constructor(e){super(e),this.type="root",this.nodes||(this.nodes=[])}normalize(e,t,i){let s=super.normalize(e);if(t)if("prepend"===i)this.nodes.length>1?t.raws.before=this.nodes[1].raws.before:delete t.raws.before;else if(this.first!==t)for(let e of s)e.raws.before=t.raws.before;return s}removeChild(e,t){let i=this.index(e);return!t&&0===i&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[i].raws.before),super.removeChild(e)}toResult(e={}){return new Tr(new Ur,this,e).stringify()}};Fr.registerLazyResult=e=>{Tr=e},Fr.registerProcessor=e=>{Ur=e};var Kr=Fr;Fr.default=Fr,Nr.registerRoot(Fr);let Mr={comma:e=>Mr.split(e,[","],!0),space:e=>Mr.split(e,[" ","\n","\t"]),split(e,t,i){let s=[],n="",r=!1,o=0,l=!1,a="",c=!1;for(let i of e)c?c=!1:"\\"===i?c=!0:l?i===a&&(l=!1):'"'===i||"'"===i?(l=!0,a=i):"("===i?o+=1:")"===i?o>0&&(o-=1):0===o&&t.includes(i)&&(r=!0),r?(""!==n&&s.push(n.trim()),n="",r=!1):n+=i;return(i||""!==n)&&s.push(n.trim()),s}};var Hr=Mr;Mr.default=Mr;let zr=ir,Or=Hr,Pr=class extends zr{constructor(e){super(e),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return Or.comma(this.selector)}set selectors(e){let t=this.selector?this.selector.match(/,\s*/):null,i=t?t[0]:","+this.raw("between","beforeOpen");this.selector=e.join(i)}};var Br=Pr;Pr.default=Pr,zr.registerRule(Pr);let Er=rr,jr=Mn,Dr=On,Qr=Jr,Ar=fr,_r=Kr,$r=Br;function qr(e,t){if(Array.isArray(e))return e.map((e=>qr(e)));let i=e,{inputs:s}=i,n=p(i,["inputs"]);if(s){t=[];for(let e of s){let i=h(u({},e),{__proto__:Qr.prototype});i.map&&(i.map=h(u({},i.map),{__proto__:Ar.prototype})),t.push(i)}}if(n.nodes&&(n.nodes=e.nodes.map((e=>qr(e,t)))),n.source){let e=n.source,{inputId:i}=e,s=p(e,["inputId"]);n.source=s,null!=i&&(n.source.input=t[i])}if("root"===n.type)return new _r(n);if("decl"===n.type)return new Dr(n);if("rule"===n.type)return new $r(n);if("comment"===n.type)return new jr(n);if("atrule"===n.type)return new Er(n);throw new Error("Unknown node type: "+e.type)}var eo=qr;qr.default=qr;let{dirname:to,relative:io,resolve:so,sep:no}=Zn,{SourceMapConsumer:ro,SourceMapGenerator:oo}=Zn,{pathToFileURL:lo}=Zn,ao=Jr,co=!(!ro||!oo),uo=!!(to&&so&&io&&no);var ho=class{constructor(e,t,i,s){this.stringify=e,this.mapOpts=i.map||{},this.root=t,this.opts=i,this.css=s,this.originalCSS=s,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute,this.memoizedFileURLs=new Map,this.memoizedPaths=new Map,this.memoizedURLs=new Map}addAnnotation(){let e;e=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"==typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"==typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let t="\n";this.css.includes("\r\n")&&(t="\r\n"),this.css+=t+"/*# sourceMappingURL="+e+" */"}applyPrevMaps(){for(let e of this.previous()){let t,i=this.toUrl(this.path(e.file)),s=e.root||to(e.file);!1===this.mapOpts.sourcesContent?(t=new ro(e.text),t.sourcesContent&&(t.sourcesContent=null)):t=e.consumer(),this.map.applySourceMap(t,i,this.toUrl(this.path(s)))}}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let e;for(let t=this.root.nodes.length-1;t>=0;t--)e=this.root.nodes[t],"comment"===e.type&&e.text.startsWith("# sourceMappingURL=")&&this.root.removeChild(t)}else this.css&&(this.css=this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm,""))}generate(){if(this.clearAnnotation(),uo&&co&&this.isMap())return this.generateMap();{let e="";return this.stringify(this.root,(t=>{e+=t})),[e]}}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let e=this.previous()[0].consumer();e.file=this.outputFile(),this.map=oo.fromSourceMap(e,{ignoreInvalidMapping:!0})}else this.map=new oo({file:this.outputFile(),ignoreInvalidMapping:!0}),this.map.addMapping({generated:{column:0,line:1},original:{column:0,line:1},source:this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>"});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}generateString(){this.css="",this.map=new oo({file:this.outputFile(),ignoreInvalidMapping:!0});let e,t,i=1,s=1,n="<no source>",r={generated:{column:0,line:0},original:{column:0,line:0},source:""};this.stringify(this.root,((o,l,a)=>{if(this.css+=o,l&&"end"!==a&&(r.generated.line=i,r.generated.column=s-1,l.source&&l.source.start?(r.source=this.sourcePath(l),r.original.line=l.source.start.line,r.original.column=l.source.start.column-1,this.map.addMapping(r)):(r.source=n,r.original.line=1,r.original.column=0,this.map.addMapping(r))),t=o.match(/\n/g),t?(i+=t.length,e=o.lastIndexOf("\n"),s=o.length-e):s+=o.length,l&&"start"!==a){let e=l.parent||{raws:{}};("decl"!==l.type&&("atrule"!==l.type||l.nodes)||l!==e.last||e.raws.semicolon)&&(l.source&&l.source.end?(r.source=this.sourcePath(l),r.original.line=l.source.end.line,r.original.column=l.source.end.column-1,r.generated.line=i,r.generated.column=s-2,this.map.addMapping(r)):(r.source=n,r.original.line=1,r.original.column=0,r.generated.line=i,r.generated.column=s-1,this.map.addMapping(r)))}}))}isAnnotation(){return!!this.isInline()||(void 0!==this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((e=>e.annotation)))}isInline(){if(void 0!==this.mapOpts.inline)return this.mapOpts.inline;let e=this.mapOpts.annotation;return(void 0===e||!0===e)&&(!this.previous().length||this.previous().some((e=>e.inline)))}isMap(){return void 0!==this.opts.map?!!this.opts.map:this.previous().length>0}isSourcesContent(){return void 0!==this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((e=>e.withContent()))}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}path(e){if(this.mapOpts.absolute||60===e.charCodeAt(0)||/^\w+:\/\//.test(e))return e;let t=this.memoizedPaths.get(e);if(t)return t;let i=this.opts.to?to(this.opts.to):".";"string"==typeof this.mapOpts.annotation&&(i=to(so(i,this.mapOpts.annotation)));let s=io(i,e);return this.memoizedPaths.set(e,s),s}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((e=>{if(e.source&&e.source.input.map){let t=e.source.input.map;this.previousMaps.includes(t)||this.previousMaps.push(t)}}));else{let e=new ao(this.originalCSS,this.opts);e.map&&this.previousMaps.push(e.map)}return this.previousMaps}setSourcesContent(){let e={};if(this.root)this.root.walk((t=>{if(t.source){let i=t.source.input.from;if(i&&!e[i]){e[i]=!0;let s=this.usesFileUrls?this.toFileUrl(i):this.toUrl(this.path(i));this.map.setSourceContent(s,t.source.input.css)}}}));else if(this.css){let e=this.opts.from?this.toUrl(this.path(this.opts.from)):"<no source>";this.map.setSourceContent(e,this.css)}}sourcePath(e){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(e.source.input.from):this.toUrl(this.path(e.source.input.from))}toBase64(e){return Buffer?Buffer.from(e).toString("base64"):window.btoa(unescape(encodeURIComponent(e)))}toFileUrl(e){let t=this.memoizedFileURLs.get(e);if(t)return t;if(lo){let t=lo(e).toString();return this.memoizedFileURLs.set(e,t),t}throw new Error("`map.absolute` option is not available in this PostCSS build")}toUrl(e){let t=this.memoizedURLs.get(e);if(t)return t;"\\"===no&&(e=e.replace(/\\/g,"/"));let i=encodeURI(e).replace(/[#?]/g,encodeURIComponent);return this.memoizedURLs.set(e,i),i}};const po=/[\t\n\f\r "#'()/;[\\\]{}]/g,mo=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,bo=/.[\r\n"'(/\\]/,yo=/[\da-f]/i;let go=rr,Zo=Mn,fo=On,Go=Kr,Io=Br;const Vo={empty:!0,space:!0};let Wo=ir,Xo=Jr,So=class{constructor(e){this.input=e,this.root=new Go,this.current=this.root,this.spaces="",this.semicolon=!1,this.createTokenizer(),this.root.source={input:e,start:{column:1,line:1,offset:0}}}atrule(e){let t=new go;t.name=e[1].slice(1),""===t.name&&this.unnamedAtrule(t,e),this.init(t,e[2]);let i,s,n,r=!1,o=!1,l=[],a=[];for(;!this.tokenizer.endOfFile();){if(i=(e=this.tokenizer.nextToken())[0],"("===i||"["===i?a.push("("===i?")":"]"):"{"===i&&a.length>0?a.push("}"):i===a[a.length-1]&&a.pop(),0===a.length){if(";"===i){t.source.end=this.getPosition(e[2]),t.source.end.offset++,this.semicolon=!0;break}if("{"===i){o=!0;break}if("}"===i){if(l.length>0){for(n=l.length-1,s=l[n];s&&"space"===s[0];)s=l[--n];s&&(t.source.end=this.getPosition(s[3]||s[2]),t.source.end.offset++)}this.end(e);break}l.push(e)}else l.push(e);if(this.tokenizer.endOfFile()){r=!0;break}}t.raws.between=this.spacesAndCommentsFromEnd(l),l.length?(t.raws.afterName=this.spacesAndCommentsFromStart(l),this.raw(t,"params",l),r&&(e=l[l.length-1],t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++,this.spaces=t.raws.between,t.raws.between="")):(t.raws.afterName="",t.params=""),o&&(t.nodes=[],this.current=t)}checkMissedSemicolon(e){let t=this.colon(e);if(!1===t)return;let i,s=0;for(let n=t-1;n>=0&&(i=e[n],"space"===i[0]||(s+=1,2!==s));n--);throw this.input.error("Missed semicolon","word"===i[0]?i[3]+1:i[2])}colon(e){let t,i,s,n=0;for(let[r,o]of e.entries()){if(i=o,s=i[0],"("===s&&(n+=1),")"===s&&(n-=1),0===n&&":"===s){if(t){if("word"===t[0]&&"progid"===t[1])continue;return r}this.doubleColon(i)}t=i}return!1}comment(e){let t=new Zo;this.init(t,e[2]),t.source.end=this.getPosition(e[3]||e[2]),t.source.end.offset++;let i=e[1].slice(2,-2);if(/^\s*$/.test(i))t.text="",t.raws.left=i,t.raws.right="";else{let e=i.match(/^(\s*)([^]*\S)(\s*)$/);t.text=e[2],t.raws.left=e[1],t.raws.right=e[3]}}createTokenizer(){this.tokenizer=function(e,t={}){let i,s,n,r,o,l,a,c,d,u,h=e.css.valueOf(),p=t.ignoreErrors,m=h.length,b=0,y=[],g=[];function Z(t){throw e.error("Unclosed "+t,b)}return{back:function(e){g.push(e)},endOfFile:function(){return 0===g.length&&b>=m},nextToken:function(e){if(g.length)return g.pop();if(b>=m)return;let t=!!e&&e.ignoreUnclosed;switch(i=h.charCodeAt(b),i){case 10:case 32:case 9:case 13:case 12:r=b;do{r+=1,i=h.charCodeAt(r)}while(32===i||10===i||9===i||13===i||12===i);l=["space",h.slice(b,r)],b=r-1;break;case 91:case 93:case 123:case 125:case 58:case 59:case 41:{let e=String.fromCharCode(i);l=[e,e,b];break}case 40:if(u=y.length?y.pop()[1]:"",d=h.charCodeAt(b+1),"url"===u&&39!==d&&34!==d&&32!==d&&10!==d&&9!==d&&12!==d&&13!==d){r=b;do{if(a=!1,r=h.indexOf(")",r+1),-1===r){if(p||t){r=b;break}Z("bracket")}for(c=r;92===h.charCodeAt(c-1);)c-=1,a=!a}while(a);l=["brackets",h.slice(b,r+1),b,r],b=r}else r=h.indexOf(")",b+1),s=h.slice(b,r+1),-1===r||bo.test(s)?l=["(","(",b]:(l=["brackets",s,b,r],b=r);break;case 39:case 34:o=39===i?"'":'"',r=b;do{if(a=!1,r=h.indexOf(o,r+1),-1===r){if(p||t){r=b+1;break}Z("string")}for(c=r;92===h.charCodeAt(c-1);)c-=1,a=!a}while(a);l=["string",h.slice(b,r+1),b,r],b=r;break;case 64:po.lastIndex=b+1,po.test(h),r=0===po.lastIndex?h.length-1:po.lastIndex-2,l=["at-word",h.slice(b,r+1),b,r],b=r;break;case 92:for(r=b,n=!0;92===h.charCodeAt(r+1);)r+=1,n=!n;if(i=h.charCodeAt(r+1),n&&47!==i&&32!==i&&10!==i&&9!==i&&13!==i&&12!==i&&(r+=1,yo.test(h.charAt(r)))){for(;yo.test(h.charAt(r+1));)r+=1;32===h.charCodeAt(r+1)&&(r+=1)}l=["word",h.slice(b,r+1),b,r],b=r;break;default:47===i&&42===h.charCodeAt(b+1)?(r=h.indexOf("*/",b+2)+1,0===r&&(p||t?r=h.length:Z("comment")),l=["comment",h.slice(b,r+1),b,r],b=r):(mo.lastIndex=b+1,mo.test(h),r=0===mo.lastIndex?h.length-1:mo.lastIndex-2,l=["word",h.slice(b,r+1),b,r],y.push(l),b=r)}return b++,l},position:function(){return b}}}(this.input)}decl(e,t){let i=new fo;this.init(i,e[0][2]);let s,n=e[e.length-1];for(";"===n[0]&&(this.semicolon=!0,e.pop()),i.source.end=this.getPosition(n[3]||n[2]||function(e){for(let t=e.length-1;t>=0;t--){let i=e[t],s=i[3]||i[2];if(s)return s}}(e)),i.source.end.offset++;"word"!==e[0][0];)1===e.length&&this.unknownWord(e),i.raws.before+=e.shift()[1];for(i.source.start=this.getPosition(e[0][2]),i.prop="";e.length;){let t=e[0][0];if(":"===t||"space"===t||"comment"===t)break;i.prop+=e.shift()[1]}for(i.raws.between="";e.length;){if(s=e.shift(),":"===s[0]){i.raws.between+=s[1];break}"word"===s[0]&&/\w/.test(s[1])&&this.unknownWord([s]),i.raws.between+=s[1]}("_"===i.prop[0]||"*"===i.prop[0])&&(i.raws.before+=i.prop[0],i.prop=i.prop.slice(1));let r,o=[];for(;e.length&&(r=e[0][0],"space"===r||"comment"===r);)o.push(e.shift());this.precheckMissedSemicolon(e);for(let t=e.length-1;t>=0;t--){if(s=e[t],"!important"===s[1].toLowerCase()){i.important=!0;let s=this.stringFrom(e,t);s=this.spacesFromEnd(e)+s," !important"!==s&&(i.raws.important=s);break}if("important"===s[1].toLowerCase()){let s=e.slice(0),n="";for(let e=t;e>0;e--){let t=s[e][0];if(n.trim().startsWith("!")&&"space"!==t)break;n=s.pop()[1]+n}n.trim().startsWith("!")&&(i.important=!0,i.raws.important=n,e=s)}if("space"!==s[0]&&"comment"!==s[0])break}e.some((e=>"space"!==e[0]&&"comment"!==e[0]))&&(i.raws.between+=o.map((e=>e[1])).join(""),o=[]),this.raw(i,"value",o.concat(e),t),i.value.includes(":")&&!t&&this.checkMissedSemicolon(e)}doubleColon(e){throw this.input.error("Double colon",{offset:e[2]},{offset:e[2]+e[1].length})}emptyRule(e){let t=new Io;this.init(t,e[2]),t.selector="",t.raws.between="",this.current=t}end(e){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(e[2]),this.current.source.end.offset++,this.current=this.current.parent):this.unexpectedClose(e)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.root.source.end=this.getPosition(this.tokenizer.position())}freeSemicolon(e){if(this.spaces+=e[1],this.current.nodes){let e=this.current.nodes[this.current.nodes.length-1];e&&"rule"===e.type&&!e.raws.ownSemicolon&&(e.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(e){let t=this.input.fromOffset(e);return{column:t.col,line:t.line,offset:e}}init(e,t){this.current.push(e),e.source={input:this.input,start:this.getPosition(t)},e.raws.before=this.spaces,this.spaces="","comment"!==e.type&&(this.semicolon=!1)}other(e){let t=!1,i=null,s=!1,n=null,r=[],o=e[1].startsWith("--"),l=[],a=e;for(;a;){if(i=a[0],l.push(a),"("===i||"["===i)n||(n=a),r.push("("===i?")":"]");else if(o&&s&&"{"===i)n||(n=a),r.push("}");else if(0===r.length){if(";"===i){if(s)return void this.decl(l,o);break}if("{"===i)return void this.rule(l);if("}"===i){this.tokenizer.back(l.pop()),t=!0;break}":"===i&&(s=!0)}else i===r[r.length-1]&&(r.pop(),0===r.length&&(n=null));a=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(t=!0),r.length>0&&this.unclosedBracket(n),t&&s){if(!o)for(;l.length&&(a=l[l.length-1][0],"space"===a||"comment"===a);)this.tokenizer.back(l.pop());this.decl(l,o)}else this.unknownWord(l)}parse(){let e;for(;!this.tokenizer.endOfFile();)switch(e=this.tokenizer.nextToken(),e[0]){case"space":this.spaces+=e[1];break;case";":this.freeSemicolon(e);break;case"}":this.end(e);break;case"comment":this.comment(e);break;case"at-word":this.atrule(e);break;case"{":this.emptyRule(e);break;default:this.other(e)}this.endFile()}precheckMissedSemicolon(){}raw(e,t,i,s){let n,r,o,l,a=i.length,c="",d=!0;for(let e=0;e<a;e+=1)n=i[e],r=n[0],"space"!==r||e!==a-1||s?"comment"===r?(l=i[e-1]?i[e-1][0]:"empty",o=i[e+1]?i[e+1][0]:"empty",Vo[l]||Vo[o]||","===c.slice(-1)?d=!1:c+=n[1]):c+=n[1]:d=!1;if(!d){let s=i.reduce(((e,t)=>e+t[1]),"");e.raws[t]={raw:s,value:c}}e[t]=c}rule(e){e.pop();let t=new Io;this.init(t,e[0][2]),t.raws.between=this.spacesAndCommentsFromEnd(e),this.raw(t,"selector",e),this.current=t}spacesAndCommentsFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],"space"===t||"comment"===t);)i=e.pop()[1]+i;return i}spacesAndCommentsFromStart(e){let t,i="";for(;e.length&&(t=e[0][0],"space"===t||"comment"===t);)i+=e.shift()[1];return i}spacesFromEnd(e){let t,i="";for(;e.length&&(t=e[e.length-1][0],"space"===t);)i=e.pop()[1]+i;return i}stringFrom(e,t){let i="";for(let s=t;s<e.length;s++)i+=e[s][1];return e.splice(t,e.length-t),i}unclosedBlock(){let e=this.current.source.start;throw this.input.error("Unclosed block",e.line,e.column)}unclosedBracket(e){throw this.input.error("Unclosed bracket",{offset:e[2]},{offset:e[2]+1})}unexpectedClose(e){throw this.input.error("Unexpected }",{offset:e[2]},{offset:e[2]+1})}unknownWord(e){throw this.input.error("Unknown word",{offset:e[0][2]},{offset:e[0][2]+e[0][1].length})}unnamedAtrule(e,t){throw this.input.error("At-rule without name",{offset:t[2]},{offset:t[2]+t[1].length})}};function Ro(e,t){let i=new Xo(e,t),s=new So(i);try{s.parse()}catch(e){throw e}return s.root}var wo=Ro;Ro.default=Ro,Wo.registerParse(Ro);let vo=class{constructor(e,t={}){if(this.type="warning",this.text=e,t.node&&t.node.source){let e=t.node.rangeBy(t);this.line=e.start.line,this.column=e.start.column,this.endLine=e.end.line,this.endColumn=e.end.column}for(let e in t)this[e]=t[e]}toString(){return this.node?this.node.error(this.text,{index:this.index,plugin:this.plugin,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}};var Co=vo;vo.default=vo;let ko=Co,xo=class{constructor(e,t,i){this.processor=e,this.messages=[],this.root=t,this.opts=i,this.css=void 0,this.map=void 0}toString(){return this.css}warn(e,t={}){t.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(t.plugin=this.lastPlugin.postcssPlugin);let i=new ko(e,t);return this.messages.push(i),i}warnings(){return this.messages.filter((e=>"warning"===e.type))}get content(){return this.css}};var Lo=xo;xo.default=xo;let Yo=ir,Jo=dr,To=ho,Uo=wo,No=Lo,Fo=Kr,Ko=vn,{isClean:Mo,my:Ho}=Cn;const zo={atrule:"AtRule",comment:"Comment",decl:"Declaration",document:"Document",root:"Root",rule:"Rule"},Oo={AtRule:!0,AtRuleExit:!0,Comment:!0,CommentExit:!0,Declaration:!0,DeclarationExit:!0,Document:!0,DocumentExit:!0,Once:!0,OnceExit:!0,postcssPlugin:!0,prepare:!0,Root:!0,RootExit:!0,Rule:!0,RuleExit:!0},Po={Once:!0,postcssPlugin:!0,prepare:!0};function Bo(e){return"object"==typeof e&&"function"==typeof e.then}function Eo(e){let t=!1,i=zo[e.type];return"decl"===e.type?t=e.prop.toLowerCase():"atrule"===e.type&&(t=e.name.toLowerCase()),t&&e.append?[i,i+"-"+t,0,i+"Exit",i+"Exit-"+t]:t?[i,i+"-"+t,i+"Exit",i+"Exit-"+t]:e.append?[i,0,i+"Exit"]:[i,i+"Exit"]}function jo(e){let t;return t="document"===e.type?["Document",0,"DocumentExit"]:"root"===e.type?["Root",0,"RootExit"]:Eo(e),{eventIndex:0,events:t,iterator:0,node:e,visitorIndex:0,visitors:[]}}function Do(e){return e[Mo]=!1,e.nodes&&e.nodes.forEach((e=>Do(e))),e}let Qo={},Ao=class e{constructor(t,i,s){let n;if(this.stringified=!1,this.processed=!1,"object"!=typeof i||null===i||"root"!==i.type&&"document"!==i.type)if(i instanceof e||i instanceof No)n=Do(i.root),i.map&&(void 0===s.map&&(s.map={}),s.map.inline||(s.map.inline=!1),s.map.prev=i.map);else{let e=Uo;s.syntax&&(e=s.syntax.parse),s.parser&&(e=s.parser),e.parse&&(e=e.parse);try{n=e(i,s)}catch(e){this.processed=!0,this.error=e}n&&!n[Ho]&&Yo.rebuild(n)}else n=Do(i);this.result=new No(t,n,s),this.helpers=h(u({},Qo),{postcss:Qo,result:this.result}),this.plugins=this.processor.plugins.map((e=>"object"==typeof e&&e.prepare?u(u({},e),e.prepare(this.result)):e))}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(e,t){let i=this.result.lastPlugin;try{t&&t.addToError(e),this.error=e,"CssSyntaxError"!==e.name||e.plugin?i.postcssVersion:(e.plugin=i.postcssPlugin,e.setMessage())}catch(e){console&&console.error&&console.error(e)}return e}prepareVisitors(){this.listeners={};let e=(e,t,i)=>{this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].push([e,i])};for(let t of this.plugins)if("object"==typeof t)for(let i in t){if(!Oo[i]&&/^[A-Z]/.test(i))throw new Error(`Unknown event ${i} in ${t.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!Po[i])if("object"==typeof t[i])for(let s in t[i])e(t,"*"===s?i:i+"-"+s.toLowerCase(),t[i][s]);else"function"==typeof t[i]&&e(t,i,t[i])}this.hasListener=Object.keys(this.listeners).length>0}runAsync(){return b(this,null,(function*(){this.plugin=0;for(let e=0;e<this.plugins.length;e++){let t=this.plugins[e],i=this.runOnRoot(t);if(Bo(i))try{yield i}catch(e){throw this.handleError(e)}}if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Mo];){e[Mo]=!0;let t=[jo(e)];for(;t.length>0;){let e=this.visitTick(t);if(Bo(e))try{yield e}catch(e){let i=t[t.length-1].node;throw this.handleError(e,i)}}}if(this.listeners.OnceExit)for(let[t,i]of this.listeners.OnceExit){this.result.lastPlugin=t;try{if("document"===e.type){let t=e.nodes.map((e=>i(e,this.helpers)));yield Promise.all(t)}else yield i(e,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}))}runOnRoot(e){this.result.lastPlugin=e;try{if("object"==typeof e&&e.Once){if("document"===this.result.root.type){let t=this.result.root.nodes.map((t=>e.Once(t,this.helpers)));return Bo(t[0])?Promise.all(t):t}return e.Once(this.result.root,this.helpers)}if("function"==typeof e)return e(this.result.root,this.result)}catch(e){throw this.handleError(e)}}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let e=this.result.opts,t=Ko;e.syntax&&(t=e.syntax.stringify),e.stringifier&&(t=e.stringifier),t.stringify&&(t=t.stringify);let i=new To(t,this.result.root,this.result.opts).generate();return this.result.css=i[0],this.result.map=i[1],this.result}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let e of this.plugins)if(Bo(this.runOnRoot(e)))throw this.getAsyncError();if(this.prepareVisitors(),this.hasListener){let e=this.result.root;for(;!e[Mo];)e[Mo]=!0,this.walkSync(e);if(this.listeners.OnceExit)if("document"===e.type)for(let t of e.nodes)this.visitSync(this.listeners.OnceExit,t);else this.visitSync(this.listeners.OnceExit,e)}return this.result}then(e,t){return this.async().then(e,t)}toString(){return this.css}visitSync(e,t){for(let[i,s]of e){let e;this.result.lastPlugin=i;try{e=s(t,this.helpers)}catch(e){throw this.handleError(e,t.proxyOf)}if("root"!==t.type&&"document"!==t.type&&!t.parent)return!0;if(Bo(e))throw this.getAsyncError()}}visitTick(e){let t=e[e.length-1],{node:i,visitors:s}=t;if("root"!==i.type&&"document"!==i.type&&!i.parent)return void e.pop();if(s.length>0&&t.visitorIndex<s.length){let[e,n]=s[t.visitorIndex];t.visitorIndex+=1,t.visitorIndex===s.length&&(t.visitors=[],t.visitorIndex=0),this.result.lastPlugin=e;try{return n(i.toProxy(),this.helpers)}catch(e){throw this.handleError(e,i)}}if(0!==t.iterator){let s,n=t.iterator;for(;s=i.nodes[i.indexes[n]];)if(i.indexes[n]+=1,!s[Mo])return s[Mo]=!0,void e.push(jo(s));t.iterator=0,delete i.indexes[n]}let n=t.events;for(;t.eventIndex<n.length;){let e=n[t.eventIndex];if(t.eventIndex+=1,0===e)return void(i.nodes&&i.nodes.length&&(i[Mo]=!0,t.iterator=i.getIterator()));if(this.listeners[e])return void(t.visitors=this.listeners[e])}e.pop()}walkSync(e){e[Mo]=!0;let t=Eo(e);for(let i of t)if(0===i)e.nodes&&e.each((e=>{e[Mo]||this.walkSync(e)}));else{let t=this.listeners[i];if(t&&this.visitSync(t,e.toProxy()))return}}warnings(){return this.sync().warnings()}get content(){return this.stringify().content}get css(){return this.stringify().css}get map(){return this.stringify().map}get messages(){return this.sync().messages}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){return this.sync().root}get[Symbol.toStringTag](){return"LazyResult"}};Ao.registerPostcss=e=>{Qo=e};var _o=Ao;Ao.default=Ao,Fo.registerLazyResult(Ao),Jo.registerLazyResult(Ao);let $o=ho,qo=wo;const el=Lo;let tl=vn,il=class{constructor(e,t,i){t=t.toString(),this.stringified=!1,this._processor=e,this._css=t,this._opts=i,this._map=void 0;let s,n=tl;this.result=new el(this._processor,s,this._opts),this.result.css=t;let r=this;Object.defineProperty(this.result,"root",{get:()=>r.root});let o=new $o(n,s,this._opts,t);if(o.isMap()){let[e,t]=o.generate();e&&(this.result.css=e),t&&(this.result.map=t)}else o.clearAnnotation(),this.result.css=o.css}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}catch(e){return this.async().catch(e)}finally(e){return this.async().then(e,e)}sync(){if(this.error)throw this.error;return this.result}then(e,t){return this.async().then(e,t)}toString(){return this._css}warnings(){return[]}get content(){return this.result.css}get css(){return this.result.css}get map(){return this.result.map}get messages(){return[]}get opts(){return this.result.opts}get processor(){return this.result.processor}get root(){if(this._root)return this._root;let e,t=qo;try{e=t(this._css,this._opts)}catch(e){this.error=e}if(this.error)throw this.error;return this._root=e,e}get[Symbol.toStringTag](){return"NoWorkResult"}};var sl=il;il.default=il;let nl=dr,rl=_o,ol=sl,ll=Kr,al=class{constructor(e=[]){this.version="8.4.47",this.plugins=this.normalize(e)}normalize(e){let t=[];for(let i of e)if(!0===i.postcss?i=i():i.postcss&&(i=i.postcss),"object"==typeof i&&Array.isArray(i.plugins))t=t.concat(i.plugins);else if("object"==typeof i&&i.postcssPlugin)t.push(i);else if("function"==typeof i)t.push(i);else if("object"!=typeof i||!i.parse&&!i.stringify)throw new Error(i+" is not a PostCSS plugin");return t}process(e,t={}){return this.plugins.length||t.parser||t.stringifier||t.syntax?new rl(this,e,t):new ol(this,e,t)}use(e){return this.plugins=this.plugins.concat(this.normalize([e])),this}};var cl=al;al.default=al,ll.registerProcessor(al),nl.registerProcessor(al);let dl=rr,ul=Mn,hl=ir,pl=Vn,ml=On,bl=dr,yl=eo,gl=Jr,Zl=_o,fl=Hr,Gl=Nn,Il=wo,Vl=cl,Wl=Lo,Xl=Kr,Sl=Br,Rl=vn,wl=Co;function vl(...e){return 1===e.length&&Array.isArray(e[0])&&(e=e[0]),new Vl(e)}vl.plugin=function(e,t){let i,s=!1;function n(...i){console&&console.warn&&!s&&(s=!0,console.warn(e+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),process.env.LANG&&process.env.LANG.startsWith("cn")&&console.warn(e+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let n=t(...i);return n.postcssPlugin=e,n.postcssVersion=(new Vl).version,n}return Object.defineProperty(n,"postcss",{get:()=>(i||(i=n()),i)}),n.process=function(e,t,i){return vl([n(i)]).process(e,t)},n},vl.stringify=Rl,vl.parse=Il,vl.fromJSON=yl,vl.list=fl,vl.comment=e=>new ul(e),vl.atRule=e=>new dl(e),vl.decl=e=>new ml(e),vl.rule=e=>new Sl(e),vl.root=e=>new Xl(e),vl.document=e=>new bl(e),vl.CssSyntaxError=pl,vl.Declaration=ml,vl.Container=hl,vl.Processor=Vl,vl.Document=bl,vl.Comment=ul,vl.Warning=wl,vl.AtRule=dl,vl.Result=Wl,vl.Input=gl,vl.Rule=Sl,vl.Root=Xl,vl.Node=Gl,Zl.registerPostcss(vl),vl.default=vl;class Cl{constructor(...e){hn(this,"parentElement",null),hn(this,"parentNode",null),hn(this,"ownerDocument"),hn(this,"firstChild",null),hn(this,"lastChild",null),hn(this,"previousSibling",null),hn(this,"nextSibling",null),hn(this,"ELEMENT_NODE",1),hn(this,"TEXT_NODE",3),hn(this,"nodeType"),hn(this,"nodeName"),hn(this,"RRNodeType")}get childNodes(){const e=[];let t=this.firstChild;for(;t;)e.push(t),t=t.nextSibling;return e}contains(e){if(!(e instanceof Cl))return!1;if(e.ownerDocument!==this.ownerDocument)return!1;if(e===this)return!0;for(;e.parentNode;){if(e.parentNode===this)return!0;e=e.parentNode}return!1}appendChild(e){throw new Error("RRDomException: Failed to execute 'appendChild' on 'RRNode': This RRNode type does not support this method.")}insertBefore(e,t){throw new Error("RRDomException: Failed to execute 'insertBefore' on 'RRNode': This RRNode type does not support this method.")}removeChild(e){throw new Error("RRDomException: Failed to execute 'removeChild' on 'RRNode': This RRNode type does not support this method.")}toString(){return"RRNode"}}const kl={Node:["childNodes","parentNode","parentElement","textContent"],ShadowRoot:["host","styleSheets"],Element:["shadowRoot","querySelector","querySelectorAll"],MutationObserver:[]},xl={Node:["contains","getRootNode"],ShadowRoot:["getSelection"],Element:[],MutationObserver:["constructor"]},Ll={};function Yl(e){if(Ll[e])return Ll[e];const t=globalThis[e],i=t.prototype,s=e in kl?kl[e]:void 0,n=!(!s||!s.every((e=>{var t,s;return!(null==(s=null==(t=Object.getOwnPropertyDescriptor(i,e))?void 0:t.get)||!s.toString().includes("[native code]"))}))),r=e in xl?xl[e]:void 0,o=!(!r||!r.every((e=>{var t;return"function"==typeof i[e]&&(null==(t=i[e])?void 0:t.toString().includes("[native code]"))})));if(n&&o)return Ll[e]=t.prototype,t.prototype;try{const s=document.createElement("iframe");document.body.appendChild(s);const n=s.contentWindow;if(!n)return t.prototype;const r=n[e].prototype;return document.body.removeChild(s),r?Ll[e]=r:i}catch(e){return i}}const Jl={};function Tl(e,t,i){var s;const n=`${e}.${String(i)}`;if(Jl[n])return Jl[n].call(t);const r=Yl(e),o=null==(s=Object.getOwnPropertyDescriptor(r,i))?void 0:s.get;return o?(Jl[n]=o,o.call(t)):t[i]}const Ul={};function Nl(e,t,i){const s=`${e}.${String(i)}`;if(Ul[s])return Ul[s].bind(t);const n=Yl(e)[i];return"function"!=typeof n?t[i]:(Ul[s]=n,n.bind(t))}function Fl(){return Yl("MutationObserver").constructor}const Kl=function(e){return Tl("Node",e,"childNodes")},Ml=function(e){return Tl("Node",e,"parentNode")},Hl=function(e){return Tl("Node",e,"parentElement")},zl=function(e){return Tl("Node",e,"textContent")},Ol=function(e,t){return Nl("Node",e,"contains")(t)},Pl=function(e){return Nl("Node",e,"getRootNode")()},Bl=function(e){return e&&"host"in e?Tl("ShadowRoot",e,"host"):null},El=function(e){return e&&"shadowRoot"in e?Tl("Element",e,"shadowRoot"):null};function jl(e,t,i=document){const s={capture:!0};return i.addEventListener(e,t,s),()=>i.removeEventListener(e,t,s)}const Dl="Please stop import mirror directly. Instead of that,\r\nnow you can use replayer.getMirror() to access the mirror instance of a replayer,\r\nor you can use record.mirror to access the mirror instance during recording.";let Ql={map:{},getId:()=>(console.error(Dl),-1),getNode:()=>(console.error(Dl),null),removeNodeFromMap(){console.error(Dl)},has:()=>(console.error(Dl),!1),reset(){console.error(Dl)}};function Al(e,t,i={}){let s=null,n=0;return function(...r){const o=Date.now();!n&&!1===i.leading&&(n=o);const l=t-(o-n),a=this;l<=0||l>t?(s&&(clearTimeout(s),s=null),n=o,e.apply(a,r)):!s&&!1!==i.trailing&&(s=setTimeout((()=>{n=!1===i.leading?0:Date.now(),s=null,e.apply(a,r)}),l))}}function _l(e,t,i,s,n=window){const r=n.Object.getOwnPropertyDescriptor(e,t);return n.Object.defineProperty(e,t,s?i:{set(e){setTimeout((()=>{i.set.call(this,e)}),0),r&&r.set&&r.set.call(this,e)}}),()=>_l(e,t,r||{},!0)}function $l(e,t,i){try{if(!(t in e))return()=>{};const s=e[t],n=i(s);return"function"==typeof n&&(n.prototype=n.prototype||{},Object.defineProperties(n,{__rrweb_original__:{enumerable:!1,value:s}})),e[t]=n,()=>{e[t]=s}}catch(e){return()=>{}}}"undefined"!=typeof window&&window.Proxy&&window.Reflect&&(Ql=new Proxy(Ql,{get:(e,t,i)=>("map"===t&&console.error(Dl),Reflect.get(e,t,i))}));let ql=Date.now;function ea(e){var t,i,s,n;const r=e.document;return{left:r.scrollingElement?r.scrollingElement.scrollLeft:void 0!==e.pageXOffset?e.pageXOffset:r.documentElement.scrollLeft||(null==r?void 0:r.body)&&(null==(t=Hl(r.body))?void 0:t.scrollLeft)||(null==(i=null==r?void 0:r.body)?void 0:i.scrollLeft)||0,top:r.scrollingElement?r.scrollingElement.scrollTop:void 0!==e.pageYOffset?e.pageYOffset:(null==r?void 0:r.documentElement.scrollTop)||(null==r?void 0:r.body)&&(null==(s=Hl(r.body))?void 0:s.scrollTop)||(null==(n=null==r?void 0:r.body)?void 0:n.scrollTop)||0}}function ta(){return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body&&document.body.clientHeight}function ia(){return window.innerWidth||document.documentElement&&document.documentElement.clientWidth||document.body&&document.body.clientWidth}function sa(e){return e?e.nodeType===e.ELEMENT_NODE?e:Hl(e):null}function na(e,t,i,s){if(!e)return!1;const n=sa(e);if(!n)return!1;try{if("string"==typeof t){if(n.classList.contains(t)||s&&null!==n.closest("."+t))return!0}else if(Be(n,t,s))return!0}catch(e){}return!(!i||!(n.matches(i)||s&&null!==n.closest(i)))}function ra(e,t,i){return!("TITLE"!==e.tagName||!i.headTitleMutations)||-2===t.getId(e)}function oa(e,t){if(ue(e))return!1;const i=t.getId(e);if(!t.has(i))return!0;const s=Ml(e);return(!s||s.nodeType!==e.DOCUMENT_NODE)&&(!s||oa(s,t))}function la(e){return!!e.changedTouches}function aa(e,t){return!("IFRAME"!==e.nodeName||!t.getMeta(e))}function ca(e,t){return!("LINK"!==e.nodeName||e.nodeType!==e.ELEMENT_NODE||!e.getAttribute||"stylesheet"!==e.getAttribute("rel")||!t.getMeta(e))}function da(e){return!!e&&(e instanceof Cl&&"shadowRoot"in e?!!e.shadowRoot:!!El(e))}/[1-9][0-9]{12}/.test(Date.now().toString())||(ql=()=>(new Date).getTime());class ua{constructor(){D(this,"id",1),D(this,"styleIDMap",new WeakMap),D(this,"idStyleMap",new Map)}getId(e){var t;return null!=(t=this.styleIDMap.get(e))?t:-1}has(e){return this.styleIDMap.has(e)}add(e,t){if(this.has(e))return this.getId(e);let i;return i=void 0===t?this.id++:t,this.styleIDMap.set(e,i),this.idStyleMap.set(i,e),i}getStyle(e){return this.idStyleMap.get(e)||null}reset(){this.styleIDMap=new WeakMap,this.idStyleMap=new Map,this.id=1}generateId(){return this.id++}}function ha(e){var t;let i=null;return"getRootNode"in e&&(null==(t=Pl(e))?void 0:t.nodeType)===Node.DOCUMENT_FRAGMENT_NODE&&Bl(Pl(e))&&(i=Bl(Pl(e))),i}function pa(e){const t=e.ownerDocument;return!!t&&(Ol(t,e)||function(e){const t=e.ownerDocument;if(!t)return!1;const i=function(e){let t,i=e;for(;t=ha(i);)i=t;return i}(e);return Ol(t,i)}(e))}var ma=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(ma||{}),ba=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(ba||{}),ya=(e=>(e[e.MouseUp=0]="MouseUp",e[e.MouseDown=1]="MouseDown",e[e.Click=2]="Click",e[e.ContextMenu=3]="ContextMenu",e[e.DblClick=4]="DblClick",e[e.Focus=5]="Focus",e[e.Blur=6]="Blur",e[e.TouchStart=7]="TouchStart",e[e.TouchMove_Departed=8]="TouchMove_Departed",e[e.TouchEnd=9]="TouchEnd",e[e.TouchCancel=10]="TouchCancel",e))(ya||{}),ga=(e=>(e[e.Mouse=0]="Mouse",e[e.Pen=1]="Pen",e[e.Touch=2]="Touch",e))(ga||{}),Za=(e=>(e[e["2D"]=0]="2D",e[e.WebGL=1]="WebGL",e[e.WebGL2=2]="WebGL2",e))(Za||{}),fa=(e=>(e[e.Play=0]="Play",e[e.Pause=1]="Pause",e[e.Seeked=2]="Seeked",e[e.VolumeChange=3]="VolumeChange",e[e.RateChange=4]="RateChange",e))(fa||{});function Ga(e){return"__ln"in e}class Ia{constructor(){D(this,"length",0),D(this,"head",null),D(this,"tail",null)}get(e){if(e>=this.length)throw new Error("Position outside of list range");let t=this.head;for(let i=0;i<e;i++)t=(null==t?void 0:t.next)||null;return t}addNode(e){const t={value:e,previous:null,next:null};if(e.__ln=t,e.previousSibling&&Ga(e.previousSibling)){const i=e.previousSibling.__ln.next;t.next=i,t.previous=e.previousSibling.__ln,e.previousSibling.__ln.next=t,i&&(i.previous=t)}else if(e.nextSibling&&Ga(e.nextSibling)&&e.nextSibling.__ln.previous){const i=e.nextSibling.__ln.previous;t.previous=i,t.next=e.nextSibling.__ln,e.nextSibling.__ln.previous=t,i&&(i.next=t)}else this.head&&(this.head.previous=t),t.next=this.head,this.head=t;null===t.next&&(this.tail=t),this.length++}removeNode(e){const t=e.__ln;this.head&&(t.previous?(t.previous.next=t.next,t.next?t.next.previous=t.previous:this.tail=t.previous):(this.head=t.next,this.head?this.head.previous=null:this.tail=null),e.__ln&&delete e.__ln,this.length--)}}const Va=(e,t)=>`${e}@${t}`;class Wa{constructor(){D(this,"frozen",!1),D(this,"locked",!1),D(this,"texts",[]),D(this,"attributes",[]),D(this,"attributeMap",new WeakMap),D(this,"removes",[]),D(this,"mapRemoves",[]),D(this,"movedMap",{}),D(this,"addedSet",new Set),D(this,"movedSet",new Set),D(this,"droppedSet",new Set),D(this,"removesSubTreeCache",new Set),D(this,"mutationCb"),D(this,"blockClass"),D(this,"blockSelector"),D(this,"maskTextClass"),D(this,"maskTextSelector"),D(this,"inlineStylesheet"),D(this,"maskInputOptions"),D(this,"maskTextFn"),D(this,"maskInputFn"),D(this,"keepIframeSrcFn"),D(this,"recordCanvas"),D(this,"inlineImages"),D(this,"privacySetting"),D(this,"slimDOMOptions"),D(this,"dataURLOptions"),D(this,"doc"),D(this,"mirror"),D(this,"iframeManager"),D(this,"stylesheetManager"),D(this,"shadowDomManager"),D(this,"canvasManager"),D(this,"processedNodeManager"),D(this,"unattachedDoc"),D(this,"processMutations",(e=>{e.forEach(this.processMutation),this.emit()})),D(this,"emit",(()=>{if(this.frozen||this.locked)return;const e=[],t=new Set,i=new Ia,s=e=>{let t=e,i=-2;for(;-2===i;)t=t&&t.nextSibling,i=t&&this.mirror.getId(t);return i},n=n=>{const r=Ml(n);if(!r||!pa(n)||"TEXTAREA"===r.tagName)return;const o=ue(r)?this.mirror.getId(ha(n)):this.mirror.getId(r),l=s(n);if(-1===o||-1===l)return i.addNode(n);const a=De(n,{doc:this.doc,mirror:this.mirror,blockClass:this.blockClass,blockSelector:this.blockSelector,maskTextClass:this.maskTextClass,maskTextSelector:this.maskTextSelector,skipChild:!0,newlyAddedElement:!0,inlineStylesheet:this.inlineStylesheet,maskInputOptions:this.maskInputOptions,maskTextFn:this.maskTextFn,maskInputFn:this.maskInputFn,slimDOMOptions:this.slimDOMOptions,dataURLOptions:this.dataURLOptions,recordCanvas:this.recordCanvas,inlineImages:this.inlineImages,privacySetting:this.privacySetting,onSerialize:e=>{aa(e,this.mirror)&&this.iframeManager.addIframe(e),ca(e,this.mirror)&&this.stylesheetManager.trackLinkElement(e),da(n)&&this.shadowDomManager.addShadowRoot(El(n),this.doc)},onIframeLoad:(e,t)=>{this.iframeManager.attachIframe(e,t),this.shadowDomManager.observeAttachShadow(e)},onStylesheetLoad:(e,t)=>{this.stylesheetManager.attachLinkElement(e,t)}});a&&(e.push({parentId:o,nextId:l,node:a}),t.add(a.id))};for(;this.mapRemoves.length;)this.mirror.removeNodeFromMap(this.mapRemoves.shift());for(const e of this.movedSet)Sa(this.removesSubTreeCache,e)&&!this.movedSet.has(Ml(e))||n(e);for(const e of this.addedSet)!Ra(this.droppedSet,e)&&!Sa(this.removesSubTreeCache,e)||Ra(this.movedSet,e)?n(e):this.droppedSet.add(e);let r=null;for(;i.length;){let e=null;if(r){const t=this.mirror.getId(Ml(r.value)),i=s(r.value);-1!==t&&-1!==i&&(e=r)}if(!e){let t=i.tail;for(;t;){const i=t;if(t=t.previous,i){const t=this.mirror.getId(Ml(i.value));if(-1===s(i.value))continue;if(-1!==t){e=i;break}{const t=i.value,s=Ml(t);if(s&&s.nodeType===Node.DOCUMENT_FRAGMENT_NODE){const t=Bl(s);if(-1!==this.mirror.getId(t)){e=i;break}}}}}}if(!e){for(;i.head;)i.removeNode(i.head.value);break}r=e.previous,i.removeNode(e.value),n(e.value)}const o={texts:this.texts.map((e=>{var t,i;const s=e.node,n=Ml(s);n&&"TEXTAREA"===n.tagName&&this.genTextAreaValueMutation(n);let r=e.value;const o="strict"===this.privacySetting,l="default"===this.privacySetting&&Ce(r),a=null==(i=null==(t=e.node)?void 0:t.parentElement)?void 0:i.getAttribute("data-hl-record");return(o||l)&&!a&&r&&(r=Re(r)),{id:this.mirror.getId(s),value:r}})).filter((e=>!t.has(e.id))).filter((e=>this.mirror.has(e.id))),attributes:this.attributes.map((e=>{const{attributes:t}=e;if("string"==typeof t.style){const i=JSON.stringify(e.styleDiff),s=JSON.stringify(e._unchangedStyles);i.length<t.style.length&&(i+s).split("var(").length===t.style.split("var(").length&&(t.style=e.styleDiff)}return{id:this.mirror.getId(e.node),attributes:t}})).filter((e=>!t.has(e.id))).filter((e=>this.mirror.has(e.id))),removes:this.removes,adds:e};!o.texts.length&&!o.attributes.length&&!o.removes.length&&!o.adds.length||(this.texts=[],this.attributes=[],this.attributeMap=new WeakMap,this.removes=[],this.addedSet=new Set,this.movedSet=new Set,this.droppedSet=new Set,this.removesSubTreeCache=new Set,this.movedMap={},this.mutationCb(o))})),D(this,"genTextAreaValueMutation",(e=>{let t=this.attributeMap.get(e);t||(t={node:e,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(t),this.attributeMap.set(e,t)),t.attributes.value=Array.from(Kl(e),(e=>zl(e)||"")).join("")})),D(this,"processMutation",(e=>{if(!ra(e.target,this.mirror,this.slimDOMOptions))switch(e.type){case"characterData":{const t=zl(e.target);!na(e.target,this.blockClass,this.blockSelector,!1)&&t!==e.oldValue&&this.texts.push({value:Ee(e.target,this.maskTextClass,this.maskTextSelector,!0)&&t?this.maskTextFn?this.maskTextFn(t,sa(e.target)):t.replace(/[\S]/g,"*"):t,node:e.target});break}case"attributes":{const t=e.target;let i=e.attributeName,s=e.target.getAttribute(i);if("value"===i){const e=fe(t);s=ye({element:t,maskInputOptions:this.maskInputOptions,tagName:t.tagName,type:e,value:s,overwriteRecord:t.getAttribute("data-hl-record"),maskInputFn:this.maskInputFn})}if(na(e.target,this.blockClass,this.blockSelector,!1)||s===e.oldValue)return;let n=this.attributeMap.get(e.target);if("IFRAME"===t.tagName&&"src"===i&&!this.keepIframeSrcFn(s)){if(t.contentDocument)return;i="rr_src"}if(n||(n={node:e.target,attributes:{},styleDiff:{},_unchangedStyles:{}},this.attributes.push(n),this.attributeMap.set(e.target,n)),"type"===i&&"INPUT"===t.tagName&&"password"===(e.oldValue||"").toLowerCase()&&t.setAttribute("data-rr-is-password","true"),!Oe(t.tagName,i)){if("INPUT"===e.target.tagName){const t=e.target;if("password"===t.type){n.attributes.value="*".repeat(t.value.length);break}}if(n.attributes[i]=ze(this.doc,ge(t.tagName),ge(i),s),"style"===i){if(!this.unattachedDoc)try{this.unattachedDoc=document.implementation.createHTMLDocument()}catch(e){this.unattachedDoc=this.doc}const i=this.unattachedDoc.createElement("span");e.oldValue&&i.setAttribute("style",e.oldValue);for(const e of Array.from(t.style)){const s=t.style.getPropertyValue(e),r=t.style.getPropertyPriority(e);s!==i.style.getPropertyValue(e)||r!==i.style.getPropertyPriority(e)?n.styleDiff[e]=""===r?s:[s,r]:n._unchangedStyles[e]=[s,r]}for(const e of Array.from(i.style))""===t.style.getPropertyValue(e)&&(n.styleDiff[e]=!1)}else"open"===i&&"DIALOG"===t.tagName&&(t.matches("dialog:modal")?n.attributes.rr_open_mode="modal":n.attributes.rr_open_mode="non-modal")}break}case"childList":if(na(e.target,this.blockClass,this.blockSelector,!0))return;if("TEXTAREA"===e.target.tagName)return void this.genTextAreaValueMutation(e.target);e.addedNodes.forEach((t=>this.genAdds(t,e.target))),e.removedNodes.forEach((t=>{const i=this.mirror.getId(t),s=ue(e.target)?this.mirror.getId(Bl(e.target)):this.mirror.getId(e.target);na(e.target,this.blockClass,this.blockSelector,!1)||ra(t,this.mirror,this.slimDOMOptions)||!function(e,t){return-1!==t.getId(e)}(t,this.mirror)||(this.addedSet.has(t)?(Xa(this.addedSet,t),this.droppedSet.add(t)):this.addedSet.has(e.target)&&-1===i||oa(e.target,this.mirror)||(this.movedSet.has(t)&&this.movedMap[Va(i,s)]?Xa(this.movedSet,t):(this.removes.push({parentId:s,id:i,isShadow:!(!ue(e.target)||!he(e.target))||void 0}),function(e,t){const i=[e];for(;i.length;){const e=i.pop();t.has(e)||(t.add(e),Kl(e).forEach((e=>i.push(e))))}}(t,this.removesSubTreeCache))),this.mapRemoves.push(t))}))}})),D(this,"genAdds",((e,t)=>{if(!this.processedNodeManager.inOtherBuffer(e,this)&&!this.addedSet.has(e)&&!this.movedSet.has(e)){if(this.mirror.hasNode(e)){if(ra(e,this.mirror,this.slimDOMOptions))return;this.movedSet.add(e);let i=null;t&&this.mirror.hasNode(t)&&(i=this.mirror.getId(t)),i&&-1!==i&&(this.movedMap[Va(this.mirror.getId(e),i)]=!0)}else this.addedSet.add(e),this.droppedSet.delete(e);na(e,this.blockClass,this.blockSelector,!1)||(Kl(e).forEach((e=>this.genAdds(e))),da(e)&&Kl(El(e)).forEach((t=>{this.processedNodeManager.add(t,this),this.genAdds(t,e)})))}}))}init(e){["mutationCb","blockClass","blockSelector","maskTextClass","maskTextSelector","inlineStylesheet","maskInputOptions","maskTextFn","maskInputFn","keepIframeSrcFn","recordCanvas","inlineImages","privacySetting","slimDOMOptions","dataURLOptions","doc","mirror","iframeManager","stylesheetManager","shadowDomManager","canvasManager","processedNodeManager"].forEach((t=>{this[t]=e[t]}))}freeze(){this.frozen=!0,this.canvasManager.freeze()}unfreeze(){this.frozen=!1,this.canvasManager.unfreeze(),this.emit()}isFrozen(){return this.frozen}lock(){this.locked=!0,this.canvasManager.lock()}unlock(){this.locked=!1,this.canvasManager.unlock(),this.emit()}reset(){this.shadowDomManager.reset(),this.canvasManager.reset()}}function Xa(e,t){e.delete(t),Kl(t).forEach((t=>Xa(e,t)))}function Sa(e,t,i){return 0!==e.size&&function(e,t){const i=Ml(t);return!!i&&e.has(i)}(e,t)}function Ra(e,t){return 0!==e.size&&wa(e,t)}function wa(e,t){const i=Ml(t);return!!i&&(!!e.has(i)||wa(e,i))}let va;const Ca=e=>va?(...t)=>{try{return e(...t)}catch(e){if(va&&!0===va(e))return;throw e}}:e,ka=[];function xa(e){try{if("composedPath"in e){const t=e.composedPath();if(t.length)return t[0]}else if("path"in e&&e.path.length)return e.path[0]}catch(e){}return e&&e.target}function La(e,t){const i=new Wa;ka.push(i),i.init(e);const s=new(Fl())(Ca(i.processMutations.bind(i)));return s.observe(t,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),s}function Ya({mouseInteractionCb:e,doc:t,mirror:i,blockClass:s,blockSelector:n,sampling:r}){if(!1===r.mouseInteraction)return()=>{};const o=!0===r.mouseInteraction||void 0===r.mouseInteraction?{}:r.mouseInteraction,l=[];let a=null;return Object.keys(ya).filter((e=>Number.isNaN(Number(e))&&!e.endsWith("_Departed")&&!1!==o[e])).forEach((r=>{let o=ge(r);const c=(t=>r=>{const o=xa(r);if(na(o,s,n,!0)||(e=>{try{if(e instanceof HTMLElement)return"CANVAS"===e.tagName}catch(e){return!1}return!1})(o))return;let l=null,c=t;if("pointerType"in r){switch(r.pointerType){case"mouse":l=ga.Mouse;break;case"touch":l=ga.Touch;break;case"pen":l=ga.Pen}l===ga.Touch&&(ya[t]===ya.MouseDown?c="TouchStart":ya[t]===ya.MouseUp&&(c="TouchEnd"))}else la(r)&&(l=ga.Touch);null!==l?(a=l,(c.startsWith("Touch")&&l===ga.Touch||c.startsWith("Mouse")&&l===ga.Mouse)&&(l=null)):ya[t]===ya.Click&&(l=a,a=null);const d=la(r)?r.changedTouches[0]:r;if(!d)return;const h=i.getId(o),{clientX:p,clientY:m}=d;Ca(e)(u({type:ya[c],id:h,x:p,y:m},null!==l&&{pointerType:l}))})(r);if(window.PointerEvent)switch(ya[r]){case ya.MouseDown:case ya.MouseUp:o=o.replace("mouse","pointer");break;case ya.TouchStart:case ya.TouchEnd:return}l.push(jl(o,c,t))})),Ca((()=>{l.forEach((e=>e()))}))}function Ja({scrollCb:e,doc:t,mirror:i,blockClass:s,blockSelector:n,sampling:r}){return jl("scroll",Ca(Al(Ca((r=>{const o=xa(r);if(!o||na(o,s,n,!0))return;const l=i.getId(o);if(o===t&&t.defaultView){const i=ea(t.defaultView);e({id:l,x:i.left,y:i.top})}else e({id:l,x:o.scrollLeft,y:o.scrollTop})})),r.scroll||100)),t)}const Ta=["INPUT","TEXTAREA","SELECT"],Ua=new WeakMap;function Na(e){return function(e,t){if(Ha("CSSGroupingRule")&&e.parentRule instanceof CSSGroupingRule||Ha("CSSMediaRule")&&e.parentRule instanceof CSSMediaRule||Ha("CSSSupportsRule")&&e.parentRule instanceof CSSSupportsRule||Ha("CSSConditionRule")&&e.parentRule instanceof CSSConditionRule){const i=Array.from(e.parentRule.cssRules).indexOf(e);t.unshift(i)}else if(e.parentStyleSheet){const i=Array.from(e.parentStyleSheet.cssRules).indexOf(e);t.unshift(i)}return t}(e,[])}function Fa(e,t,i){let s,n;return e?(e.ownerNode?s=t.getId(e.ownerNode):n=i.getId(e),{styleId:n,id:s}):{}}function Ka({mirror:e,stylesheetManager:t},i){var s,n,r;let o=null;o="#document"===i.nodeName?e.getId(i):e.getId(Bl(i));const l="#document"===i.nodeName?null==(s=i.defaultView)?void 0:s.Document:null==(r=null==(n=i.ownerDocument)?void 0:n.defaultView)?void 0:r.ShadowRoot,a=null!=l&&l.prototype?Object.getOwnPropertyDescriptor(null==l?void 0:l.prototype,"adoptedStyleSheets"):void 0;return null!==o&&-1!==o&&l&&a?(Object.defineProperty(i,"adoptedStyleSheets",{configurable:a.configurable,enumerable:a.enumerable,get(){var e;return null==(e=a.get)?void 0:e.call(this)},set(e){var i;const s=null==(i=a.set)?void 0:i.call(this,e);if(null!==o&&-1!==o)try{t.adoptStyleSheets(e,o)}catch(e){}return s}}),Ca((()=>{Object.defineProperty(i,"adoptedStyleSheets",{configurable:a.configurable,enumerable:a.enumerable,get:a.get,set:a.set})}))):()=>{}}function Ma(e,t={}){const i=e.doc.defaultView;if(!i)return()=>{};let s;!function(e,t){const{mutationCb:i,mousemoveCb:s,mouseInteractionCb:n,scrollCb:r,viewportResizeCb:o,inputCb:l,mediaInteractionCb:a,styleSheetRuleCb:c,styleDeclarationCb:d,canvasMutationCb:u,fontCb:h,selectionCb:p,customElementCb:m}=e;e.mutationCb=(...e)=>{t.mutation&&t.mutation(...e),i(...e)},e.mousemoveCb=(...e)=>{t.mousemove&&t.mousemove(...e),s(...e)},e.mouseInteractionCb=(...e)=>{t.mouseInteraction&&t.mouseInteraction(...e),n(...e)},e.scrollCb=(...e)=>{t.scroll&&t.scroll(...e),r(...e)},e.viewportResizeCb=(...e)=>{t.viewportResize&&t.viewportResize(...e),o(...e)},e.inputCb=(...e)=>{t.input&&t.input(...e),l(...e)},e.mediaInteractionCb=(...e)=>{t.mediaInteaction&&t.mediaInteaction(...e),a(...e)},e.styleSheetRuleCb=(...e)=>{t.styleSheetRule&&t.styleSheetRule(...e),c(...e)},e.styleDeclarationCb=(...e)=>{t.styleDeclaration&&t.styleDeclaration(...e),d(...e)},e.canvasMutationCb=(...e)=>{t.canvasMutation&&t.canvasMutation(...e),u(...e)},e.fontCb=(...e)=>{t.font&&t.font(...e),h(...e)},e.selectionCb=(...e)=>{t.selection&&t.selection(...e),p(...e)},e.customElementCb=(...e)=>{t.customElement&&t.customElement(...e),m(...e)}}(e,t),e.recordDOM&&(s=La(e,e.doc));const n=function({mousemoveCb:e,sampling:t,doc:i,mirror:s}){if(!1===t.mousemove)return()=>{};const n="number"==typeof t.mousemove?t.mousemove:50,r="number"==typeof t.mousemoveCallback?t.mousemoveCallback:500;let o,l=[];const a=Al(Ca((t=>{const i=Date.now()-o;e(l.map((e=>(e.timeOffset-=i,e))),t),l=[],o=null})),r),c=Ca(Al(Ca((e=>{const t=xa(e),{clientX:i,clientY:n}=la(e)?e.changedTouches[0]:e;o||(o=ql()),l.push({x:i,y:n,id:s.getId(t),timeOffset:ql()-o}),a("undefined"!=typeof DragEvent&&e instanceof DragEvent?ba.Drag:e instanceof MouseEvent?ba.MouseMove:ba.TouchMove)})),n,{trailing:!1})),d=[jl("mousemove",c,i),jl("touchmove",c,i),jl("drag",c,i)];return Ca((()=>{d.forEach((e=>e()))}))}(e),r=Ya(e),o=Ja(e),l=function({viewportResizeCb:e},{win:t}){let i=-1,s=-1;return jl("resize",Ca(Al(Ca((()=>{const t=ta(),n=ia();(i!==t||s!==n)&&(e({width:Number(n),height:Number(t)}),i=t,s=n)})),200)),t)}(e,{win:i}),a=function({inputCb:e,doc:t,mirror:i,blockClass:s,blockSelector:n,ignoreClass:r,ignoreSelector:o,maskInputOptions:l,maskInputFn:a,sampling:c,userTriggeredOnInput:d}){function p(e){let i=xa(e);const c=e.isTrusted,u=i&&i.tagName;if(i&&"OPTION"===u&&(i=Hl(i)),!i||!u||Ta.indexOf(u)<0||na(i,s,n,!0)||i.classList.contains(r)||o&&i.matches(o))return;let h=i.value,p=!1;const b=fe(i)||"",y=i.getAttribute("data-hl-record");"radio"===b||"checkbox"===b?p=i.checked:ke({maskInputOptions:l,type:b,tagName:u,overwriteRecord:y})&&(h=ye({element:i,maskInputOptions:l,tagName:u,type:b,value:h,overwriteRecord:y,maskInputFn:a})),m(i,d?{text:h,isChecked:p,userTriggered:c}:{text:h,isChecked:p});const g=i.name;"radio"===b&&g&&p&&t.querySelectorAll(`input[type="radio"][name="${g}"]`).forEach((e=>{if(e!==i){const t=e.value;m(e,d?{text:t,isChecked:!p,userTriggered:!1}:{text:t,isChecked:!p})}}))}function m(t,s){const n=Ua.get(t);if(!n||n.text!==s.text||n.isChecked!==s.isChecked){Ua.set(t,s);const n=i.getId(t);Ca(e)(h(u({},s),{id:n}))}}const b=("last"===c.input?["change"]:["input","change"]).map((e=>jl(e,Ca(p),t))),y=t.defaultView;if(!y)return()=>{b.forEach((e=>e()))};const g=y.Object.getOwnPropertyDescriptor(y.HTMLInputElement.prototype,"value"),Z=[[y.HTMLInputElement.prototype,"value"],[y.HTMLInputElement.prototype,"checked"],[y.HTMLSelectElement.prototype,"value"],[y.HTMLTextAreaElement.prototype,"value"],[y.HTMLSelectElement.prototype,"selectedIndex"],[y.HTMLOptionElement.prototype,"selected"]];return g&&g.set&&b.push(...Z.map((e=>_l(e[0],e[1],{set(){Ca(p)({target:this,isTrusted:!1})}},!1,y)))),Ca((()=>{b.forEach((e=>e()))}))}(e),c=function({mediaInteractionCb:e,blockClass:t,blockSelector:i,mirror:s,sampling:n,doc:r}){const o=Ca((r=>Al(Ca((n=>{const o=xa(n);if(!o||na(o,t,i,!0))return;const{currentTime:l,volume:a,muted:c,playbackRate:d,loop:u}=o;e({type:r,id:s.getId(o),currentTime:l,volume:a,muted:c,playbackRate:d,loop:u})})),n.media||500))),l=[jl("play",o(fa.Play),r),jl("pause",o(fa.Pause),r),jl("seeked",o(fa.Seeked),r),jl("volumechange",o(fa.VolumeChange),r),jl("ratechange",o(fa.RateChange),r)];return Ca((()=>{l.forEach((e=>e()))}))}(e);let d=()=>{},p=()=>{},m=()=>{},b=()=>{};e.recordDOM&&(d=function({styleSheetRuleCb:e,mirror:t,stylesheetManager:i},{win:s}){if(!s.CSSStyleSheet||!s.CSSStyleSheet.prototype)return()=>{};const n=s.CSSStyleSheet.prototype.insertRule;s.CSSStyleSheet.prototype.insertRule=new Proxy(n,{apply:Ca(((s,n,r)=>{const[o,l]=r,{id:a,styleId:c}=Fa(n,t,i.styleMirror);return(a&&-1!==a||c&&-1!==c)&&e({id:a,styleId:c,adds:[{rule:o,index:l}]}),s.apply(n,r)}))}),s.CSSStyleSheet.prototype.addRule=function(e,t,i=this.cssRules.length){const n=`${e} { ${t} }`;return s.CSSStyleSheet.prototype.insertRule.apply(this,[n,i])};const r=s.CSSStyleSheet.prototype.deleteRule;let o,l;s.CSSStyleSheet.prototype.deleteRule=new Proxy(r,{apply:Ca(((s,n,r)=>{const[o]=r,{id:l,styleId:a}=Fa(n,t,i.styleMirror);return(l&&-1!==l||a&&-1!==a)&&e({id:l,styleId:a,removes:[{index:o}]}),s.apply(n,r)}))}),s.CSSStyleSheet.prototype.removeRule=function(e){return s.CSSStyleSheet.prototype.deleteRule.apply(this,[e])},s.CSSStyleSheet.prototype.replace&&(o=s.CSSStyleSheet.prototype.replace,s.CSSStyleSheet.prototype.replace=new Proxy(o,{apply:Ca(((s,n,r)=>{const[o]=r,{id:l,styleId:a}=Fa(n,t,i.styleMirror);return(l&&-1!==l||a&&-1!==a)&&e({id:l,styleId:a,replace:o}),s.apply(n,r)}))})),s.CSSStyleSheet.prototype.replaceSync&&(l=s.CSSStyleSheet.prototype.replaceSync,s.CSSStyleSheet.prototype.replaceSync=new Proxy(l,{apply:Ca(((s,n,r)=>{const[o]=r,{id:l,styleId:a}=Fa(n,t,i.styleMirror);return(l&&-1!==l||a&&-1!==a)&&e({id:l,styleId:a,replaceSync:o}),s.apply(n,r)}))}));const a={};za("CSSGroupingRule")?a.CSSGroupingRule=s.CSSGroupingRule:(za("CSSMediaRule")&&(a.CSSMediaRule=s.CSSMediaRule),za("CSSConditionRule")&&(a.CSSConditionRule=s.CSSConditionRule),za("CSSSupportsRule")&&(a.CSSSupportsRule=s.CSSSupportsRule));const c={};return Object.entries(a).forEach((([s,n])=>{c[s]={insertRule:n.prototype.insertRule,deleteRule:n.prototype.deleteRule},n.prototype.insertRule=new Proxy(c[s].insertRule,{apply:Ca(((s,n,r)=>{const[o,l]=r,{id:a,styleId:c}=Fa(n.parentStyleSheet,t,i.styleMirror);return(a&&-1!==a||c&&-1!==c)&&e({id:a,styleId:c,adds:[{rule:o,index:[...Na(n),l||0]}]}),s.apply(n,r)}))}),n.prototype.deleteRule=new Proxy(c[s].deleteRule,{apply:Ca(((s,n,r)=>{const[o]=r,{id:l,styleId:a}=Fa(n.parentStyleSheet,t,i.styleMirror);return(l&&-1!==l||a&&-1!==a)&&e({id:l,styleId:a,removes:[{index:[...Na(n),o]}]}),s.apply(n,r)}))})})),Ca((()=>{s.CSSStyleSheet.prototype.insertRule=n,s.CSSStyleSheet.prototype.deleteRule=r,o&&(s.CSSStyleSheet.prototype.replace=o),l&&(s.CSSStyleSheet.prototype.replaceSync=l),Object.entries(a).forEach((([e,t])=>{t.prototype.insertRule=c[e].insertRule,t.prototype.deleteRule=c[e].deleteRule}))}))}(e,{win:i}),p=Ka(e,e.doc),m=function({styleDeclarationCb:e,mirror:t,ignoreCSSAttributes:i,stylesheetManager:s},{win:n}){const r=n.CSSStyleDeclaration.prototype.setProperty;n.CSSStyleDeclaration.prototype.setProperty=new Proxy(r,{apply:Ca(((n,o,l)=>{var a;const[c,d,u]=l;if(i.has(c))return r.apply(o,[c,d,u]);const{id:h,styleId:p}=Fa(null==(a=o.parentRule)?void 0:a.parentStyleSheet,t,s.styleMirror);return(h&&-1!==h||p&&-1!==p)&&e({id:h,styleId:p,set:{property:c,value:d,priority:u},index:Na(o.parentRule)}),n.apply(o,l)}))});const o=n.CSSStyleDeclaration.prototype.removeProperty;return n.CSSStyleDeclaration.prototype.removeProperty=new Proxy(o,{apply:Ca(((n,r,l)=>{var a;const[c]=l;if(i.has(c))return o.apply(r,[c]);const{id:d,styleId:u}=Fa(null==(a=r.parentRule)?void 0:a.parentStyleSheet,t,s.styleMirror);return(d&&-1!==d||u&&-1!==u)&&e({id:d,styleId:u,remove:{property:c},index:Na(r.parentRule)}),n.apply(r,l)}))}),Ca((()=>{n.CSSStyleDeclaration.prototype.setProperty=r,n.CSSStyleDeclaration.prototype.removeProperty=o}))}(e,{win:i}),e.collectFonts&&(b=function({fontCb:e,doc:t}){const i=t.defaultView;if(!i)return()=>{};const s=[],n=new WeakMap,r=i.FontFace;i.FontFace=function(e,t,i){const s=new r(e,t,i);return n.set(s,{family:e,buffer:"string"!=typeof t,descriptors:i,fontSource:"string"==typeof t?t:JSON.stringify(Array.from(new Uint8Array(t)))}),s};const o=$l(t.fonts,"add",(function(t){return function(i){return setTimeout(Ca((()=>{const t=n.get(i);t&&(e(t),n.delete(i))})),0),t.apply(this,[i])}}));return s.push((()=>{i.FontFace=r})),s.push(o),Ca((()=>{s.forEach((e=>e()))}))}(e)));const y=function(e){const{doc:t,mirror:i,blockClass:s,blockSelector:n,selectionCb:r}=e;let o=!0;const l=Ca((()=>{const e=t.getSelection();if(!e||o&&null!=e&&e.isCollapsed)return;o=e.isCollapsed||!1;const l=[],a=e.rangeCount||0;for(let t=0;t<a;t++){const r=e.getRangeAt(t),{startContainer:o,startOffset:a,endContainer:c,endOffset:d}=r;na(o,s,n,!0)||na(c,s,n,!0)||l.push({start:i.getId(o),startOffset:a,end:i.getId(c),endOffset:d})}r({ranges:l})}));return l(),jl("selectionchange",l)}(e),g=function({doc:e,customElementCb:t}){const i=e.defaultView;return i&&i.customElements?$l(i.customElements,"define",(function(e){return function(i,s,n){try{t({define:{name:i}})}catch(e){console.warn(`Custom element callback failed for ${i}`)}return e.apply(this,[i,s,n])}})):()=>{}}(e),Z=[];for(const t of e.plugins)Z.push(t.observer(t.callback,i,t.options));return Ca((()=>{ka.forEach((e=>e.reset())),null==s||s.disconnect(),n(),r(),o(),l(),a(),c(),d(),p(),m(),b(),y(),g(),Z.forEach((e=>e()))}))}function Ha(e){return void 0!==window[e]}function za(e){return!!(void 0!==window[e]&&window[e].prototype&&"insertRule"in window[e].prototype&&"deleteRule"in window[e].prototype)}class Oa{constructor(e){D(this,"iframeIdToRemoteIdMap",new WeakMap),D(this,"iframeRemoteIdToIdMap",new WeakMap),this.generateIdFn=e}getId(e,t,i,s){const n=i||this.getIdToRemoteIdMap(e),r=s||this.getRemoteIdToIdMap(e);let o=n.get(t);return o||(o=this.generateIdFn(),n.set(t,o),r.set(o,t)),o}getIds(e,t){const i=this.getIdToRemoteIdMap(e),s=this.getRemoteIdToIdMap(e);return t.map((t=>this.getId(e,t,i,s)))}getRemoteId(e,t,i){const s=i||this.getRemoteIdToIdMap(e);return"number"!=typeof t?t:s.get(t)||-1}getRemoteIds(e,t){const i=this.getRemoteIdToIdMap(e);return t.map((t=>this.getRemoteId(e,t,i)))}reset(e){if(!e)return this.iframeIdToRemoteIdMap=new WeakMap,void(this.iframeRemoteIdToIdMap=new WeakMap);this.iframeIdToRemoteIdMap.delete(e),this.iframeRemoteIdToIdMap.delete(e)}getIdToRemoteIdMap(e){let t=this.iframeIdToRemoteIdMap.get(e);return t||(t=new Map,this.iframeIdToRemoteIdMap.set(e,t)),t}getRemoteIdToIdMap(e){let t=this.iframeRemoteIdToIdMap.get(e);return t||(t=new Map,this.iframeRemoteIdToIdMap.set(e,t)),t}}class Pa{constructor(e){D(this,"iframes",new WeakMap),D(this,"crossOriginIframeMap",new WeakMap),D(this,"crossOriginIframeMirror",new Oa(Ye)),D(this,"crossOriginIframeStyleMirror"),D(this,"crossOriginIframeRootIdMap",new WeakMap),D(this,"mirror"),D(this,"mutationCb"),D(this,"wrappedEmit"),D(this,"loadListener"),D(this,"stylesheetManager"),D(this,"recordCrossOriginIframes"),this.mutationCb=e.mutationCb,this.wrappedEmit=e.wrappedEmit,this.stylesheetManager=e.stylesheetManager,this.recordCrossOriginIframes=e.recordCrossOriginIframes,this.crossOriginIframeStyleMirror=new Oa(this.stylesheetManager.styleMirror.generateId.bind(this.stylesheetManager.styleMirror)),this.mirror=e.mirror,this.recordCrossOriginIframes&&window.addEventListener("message",this.handleMessage.bind(this))}addIframe(e){this.iframes.set(e,!0),e.contentWindow&&this.crossOriginIframeMap.set(e.contentWindow,e)}addLoadListener(e){this.loadListener=e}attachIframe(e,t){var i,s;this.mutationCb({adds:[{parentId:this.mirror.getId(e),nextId:null,node:t}],removes:[],texts:[],attributes:[],isAttachIframe:!0}),this.recordCrossOriginIframes&&(null==(i=e.contentWindow)||i.addEventListener("message",this.handleMessage.bind(this))),null==(s=this.loadListener)||s.call(this,e),e.contentDocument&&e.contentDocument.adoptedStyleSheets&&e.contentDocument.adoptedStyleSheets.length>0&&this.stylesheetManager.adoptStyleSheets(e.contentDocument.adoptedStyleSheets,this.mirror.getId(e.contentDocument))}handleMessage(e){const t=e;if("rrweb"!==t.data.type||t.origin!==t.data.origin)return;const i=e.source;if(!i)return;const s=this.crossOriginIframeMap.get(i);if(!s)return;const n=this.transformCrossOriginEvent(s,t.data.event);n&&this.wrappedEmit(n,t.data.isCheckout)}transformCrossOriginEvent(e,t){var i;switch(t.type){case ma.FullSnapshot:{this.crossOriginIframeMirror.reset(e),this.crossOriginIframeStyleMirror.reset(e),this.replaceIdOnNode(t.data.node,e);const i=t.data.node.id;return this.crossOriginIframeRootIdMap.set(e,i),this.patchRootIdOnNode(t.data.node,i),{timestamp:t.timestamp,type:ma.IncrementalSnapshot,data:{source:ba.Mutation,adds:[{parentId:this.mirror.getId(e),nextId:null,node:t.data.node}],removes:[],texts:[],attributes:[],isAttachIframe:!0}}}case ma.Meta:case ma.Load:case ma.DomContentLoaded:return!1;case ma.Plugin:return t;case ma.Custom:return this.replaceIds(t.data.payload,e,["id","parentId","previousId","nextId"]),t;case ma.IncrementalSnapshot:switch(t.data.source){case ba.Mutation:return t.data.adds.forEach((t=>{this.replaceIds(t,e,["parentId","nextId","previousId"]),this.replaceIdOnNode(t.node,e);const i=this.crossOriginIframeRootIdMap.get(e);i&&this.patchRootIdOnNode(t.node,i)})),t.data.removes.forEach((t=>{this.replaceIds(t,e,["parentId","id"])})),t.data.attributes.forEach((t=>{this.replaceIds(t,e,["id"])})),t.data.texts.forEach((t=>{this.replaceIds(t,e,["id"])})),t;case ba.Drag:case ba.TouchMove:case ba.MouseMove:return t.data.positions.forEach((t=>{this.replaceIds(t,e,["id"])})),t;case ba.ViewportResize:return!1;case ba.MediaInteraction:case ba.MouseInteraction:case ba.Scroll:case ba.CanvasMutation:case ba.Input:return this.replaceIds(t.data,e,["id"]),t;case ba.StyleSheetRule:case ba.StyleDeclaration:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleId"]),t;case ba.Font:return t;case ba.Selection:return t.data.ranges.forEach((t=>{this.replaceIds(t,e,["start","end"])})),t;case ba.AdoptedStyleSheet:return this.replaceIds(t.data,e,["id"]),this.replaceStyleIds(t.data,e,["styleIds"]),null==(i=t.data.styles)||i.forEach((t=>{this.replaceStyleIds(t,e,["styleId"])})),t}}return!1}replace(e,t,i,s){for(const n of s)!Array.isArray(t[n])&&"number"!=typeof t[n]||(Array.isArray(t[n])?t[n]=e.getIds(i,t[n]):t[n]=e.getId(i,t[n]));return t}replaceIds(e,t,i){return this.replace(this.crossOriginIframeMirror,e,t,i)}replaceStyleIds(e,t,i){return this.replace(this.crossOriginIframeStyleMirror,e,t,i)}replaceIdOnNode(e,t){this.replaceIds(e,t,["id","rootId"]),"childNodes"in e&&e.childNodes.forEach((e=>{this.replaceIdOnNode(e,t)}))}patchRootIdOnNode(e,t){e.type!==_.Document&&!e.rootId&&(e.rootId=t),"childNodes"in e&&e.childNodes.forEach((e=>{this.patchRootIdOnNode(e,t)}))}}class Ba{constructor(e){D(this,"shadowDoms",new WeakSet),D(this,"mutationCb"),D(this,"scrollCb"),D(this,"bypassOptions"),D(this,"mirror"),D(this,"restoreHandlers",[]),this.mutationCb=e.mutationCb,this.scrollCb=e.scrollCb,this.bypassOptions=e.bypassOptions,this.mirror=e.mirror,this.init()}init(){this.reset(),this.patchAttachShadow(Element,document)}addShadowRoot(e,t){if(!he(e)||this.shadowDoms.has(e))return;this.shadowDoms.add(e);const i=La(h(u({},this.bypassOptions),{doc:t,mutationCb:this.mutationCb,mirror:this.mirror,shadowDomManager:this}),e);this.restoreHandlers.push((()=>i.disconnect())),this.restoreHandlers.push(Ja(h(u({},this.bypassOptions),{scrollCb:this.scrollCb,doc:e,mirror:this.mirror}))),setTimeout((()=>{e.adoptedStyleSheets&&e.adoptedStyleSheets.length>0&&this.bypassOptions.stylesheetManager.adoptStyleSheets(e.adoptedStyleSheets,this.mirror.getId(Bl(e))),this.restoreHandlers.push(Ka({mirror:this.mirror,stylesheetManager:this.bypassOptions.stylesheetManager},e))}),0)}observeAttachShadow(e){!e.contentWindow||!e.contentDocument||this.patchAttachShadow(e.contentWindow.Element,e.contentDocument)}patchAttachShadow(e,t){const i=this;this.restoreHandlers.push($l(e.prototype,"attachShadow",(function(e){return function(s){const n=e.call(this,s),r=El(this);return r&&pa(this)&&i.addShadowRoot(r,t),n}})))}reset(){this.restoreHandlers.forEach((e=>{try{e()}catch(e){}})),this.restoreHandlers=[],this.shadowDoms=new WeakSet}}for(var Ea="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ja="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Da=0;Da<64;Da++)ja[Ea.charCodeAt(Da)]=Da;const Qa=new Map,Aa=(e,t,i)=>{if(!e||!qa(e,t)&&"object"!=typeof e)return;const s=function(e,t){let i=Qa.get(e);return i||(i=new Map,Qa.set(e,i)),i.has(t)||i.set(t,[]),i.get(t)}(i,e.constructor.name);let n=s.indexOf(e);return-1===n&&(n=s.length,s.push(e)),n};function _a(e,t,i){if(e instanceof Array)return e.map((e=>_a(e,t,i)));if(null===e)return e;if(e instanceof Float32Array||e instanceof Float64Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Uint8Array||e instanceof Uint16Array||e instanceof Int16Array||e instanceof Int8Array||e instanceof Uint8ClampedArray)return{rr_type:e.constructor.name,args:[Object.values(e)]};if(e instanceof ArrayBuffer){const t=e.constructor.name,i=function(e){var t,i=new Uint8Array(e),s=i.length,n="";for(t=0;t<s;t+=3)n+=Ea[i[t]>>2],n+=Ea[(3&i[t])<<4|i[t+1]>>4],n+=Ea[(15&i[t+1])<<2|i[t+2]>>6],n+=Ea[63&i[t+2]];return s%3==2?n=n.substring(0,n.length-1)+"=":s%3==1&&(n=n.substring(0,n.length-2)+"=="),n}(e);return{rr_type:t,base64:i}}if(e instanceof DataView)return{rr_type:e.constructor.name,args:[_a(e.buffer,t,i),e.byteOffset,e.byteLength]};if(e instanceof HTMLImageElement){const t=e.constructor.name,{src:i}=e;return{rr_type:t,src:i}}return e instanceof HTMLCanvasElement?{rr_type:"HTMLImageElement",src:e.toDataURL()}:e instanceof ImageData?{rr_type:e.constructor.name,args:[_a(e.data,t,i),e.width,e.height]}:qa(e,t)||"object"==typeof e?{rr_type:e.constructor.name,index:Aa(e,t,i)}:e}const $a=(e,t,i)=>e.map((e=>_a(e,t,i))),qa=(e,t)=>!!["WebGLActiveInfo","WebGLBuffer","WebGLFramebuffer","WebGLProgram","WebGLRenderbuffer","WebGLShader","WebGLShaderPrecisionFormat","WebGLTexture","WebGLUniformLocation","WebGLVertexArrayObject","WebGLVertexArrayObjectOES"].filter((e=>"function"==typeof t[e])).find((i=>e instanceof t[i]));function ec(e,t,i,s){const n=[];try{const r=$l(e.HTMLCanvasElement.prototype,"getContext",(function(e){return function(n,...r){if(!na(this,t,i,!0)){const e=function(e){return"experimental-webgl"===e?"webgl":e}(n);if("__context"in this||(this.__context=e),s&&["webgl","webgl2"].includes(e))if(r[0]&&"object"==typeof r[0]){const e=r[0];e.preserveDrawingBuffer||(e.preserveDrawingBuffer=!0)}else r.splice(0,1,{preserveDrawingBuffer:!0})}return e.apply(this,[n,...r])}}));n.push(r)}catch(e){console.error("failed to patch HTMLCanvasElement.prototype.getContext")}return()=>{n.forEach((e=>e()))}}function tc(e,t,i,s,n,r){const o=[],l=Object.getOwnPropertyNames(e);for(const a of l)if(!["isContextLost","canvas","drawingBufferWidth","drawingBufferHeight"].includes(a))try{if("function"!=typeof e[a])continue;const l=$l(e,a,(function(e){return function(...o){const l=e.apply(this,o);if(Aa(l,r,this),"tagName"in this.canvas&&!na(this.canvas,s,n,!0)){const e=$a(o,r,this),s={type:t,property:a,args:e};i(this.canvas,s)}return l}}));o.push(l)}catch(s){const n=_l(e,a,{set(e){i(this.canvas,{type:t,property:a,args:[e],setter:!0})}});o.push(n)}return o}const ic="KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIGxldCBsb2dEZWJ1ZyA9IGZhbHNlOwogIGNvbnN0IGRlYnVnID0gKC4uLmFyZ3MpID0+IHsKICAgIGlmIChsb2dEZWJ1ZykgewogICAgICBjb25zb2xlLmRlYnVnKC4uLmFyZ3MpOwogICAgfQogIH07CiAgd29ya2VyLm9ubWVzc2FnZSA9IGFzeW5jIGZ1bmN0aW9uKGUpIHsKICAgIGxvZ0RlYnVnID0gISFlLmRhdGEubG9nRGVidWc7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGR4LCBkeSwgZHcsIGRoLCBkYXRhVVJMT3B0aW9ucyB9ID0gZS5kYXRhOwogICAgICBjb25zdCB0cmFuc3BhcmVudEJhc2U2NCA9IGdldFRyYW5zcGFyZW50QmxvYkZvcigKICAgICAgICB3aWR0aCwKICAgICAgICBoZWlnaHQsCiAgICAgICAgZGF0YVVSTE9wdGlvbnMKICAgICAgKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgY29uc3QgY3R4ID0gb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGN0eC5kcmF3SW1hZ2UoYml0bWFwLCAwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgYml0bWFwLmNsb3NlKCk7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IHR5cGUgPSBibG9iLnR5cGU7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICBpZiAoIWxhc3RCbG9iTWFwLmhhcyhpZCkgJiYgYXdhaXQgdHJhbnNwYXJlbnRCYXNlNjQgPT09IGJhc2U2NCkgewogICAgICAgIGRlYnVnKCJbaGlnaGxpZ2h0LXdvcmtlcl0gY2FudmFzIGJpdG1hcCBpcyB0cmFuc3BhcmVudCIsIHsKICAgICAgICAgIGlkLAogICAgICAgICAgYmFzZTY0CiAgICAgICAgfSk7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCwgc3RhdHVzOiAidHJhbnNwYXJlbnQiIH0pOwogICAgICB9CiAgICAgIGlmIChsYXN0QmxvYk1hcC5nZXQoaWQpID09PSBiYXNlNjQpIHsKICAgICAgICBkZWJ1ZygiW2hpZ2hsaWdodC13b3JrZXJdIGNhbnZhcyBiaXRtYXAgaXMgdW5jaGFuZ2VkIiwgewogICAgICAgICAgaWQsCiAgICAgICAgICBiYXNlNjQKICAgICAgICB9KTsKICAgICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQsIHN0YXR1czogInVuY2hhbmdlZCIgfSk7CiAgICAgIH0KICAgICAgY29uc3QgbXNnID0gewogICAgICAgIGlkLAogICAgICAgIHR5cGUsCiAgICAgICAgYmFzZTY0LAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkeCwKICAgICAgICBkeSwKICAgICAgICBkdywKICAgICAgICBkaAogICAgICB9OwogICAgICBkZWJ1ZygiW2hpZ2hsaWdodC13b3JrZXJdIGNhbnZhcyBiaXRtYXAgcHJvY2Vzc2VkIiwgbXNnKTsKICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKG1zZyk7CiAgICAgIGxhc3RCbG9iTWFwLnNldChpZCwgYmFzZTY0KTsKICAgIH0gZWxzZSB7CiAgICAgIGRlYnVnKCJbaGlnaGxpZ2h0LXdvcmtlcl0gbm8gb2Zmc2NyZWVuY2FudmFzIHN1cHBvcnQiLCB7CiAgICAgICAgaWQ6IGUuZGF0YS5pZAogICAgICB9KTsKICAgICAgcmV0dXJuIHdvcmtlci5wb3N0TWVzc2FnZSh7IGlkOiBlLmRhdGEuaWQsIHN0YXR1czogInVuc3VwcG9ydGVkIiB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUJpWEpSZjQ3LmpzLm1hcAo=",sc="undefined"!=typeof self&&self.Blob&&new Blob([(nc=ic,Uint8Array.from(atob(nc),(e=>e.charCodeAt(0))))],{type:"text/javascript;charset=utf-8"});var nc;function rc(e){let t;try{if(t=sc&&(self.URL||self.webkitURL).createObjectURL(sc),!t)throw"";const i=new Worker(t,{name:null==e?void 0:e.name});return i.addEventListener("error",(()=>{(self.URL||self.webkitURL).revokeObjectURL(t)})),i}catch(t){return new Worker("data:text/javascript;base64,"+ic,{name:null==e?void 0:e.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}class oc{constructor(e){D(this,"pendingCanvasMutations",new Map),D(this,"rafStamps",{latestId:0,invokeId:null}),D(this,"mirror"),D(this,"logger"),D(this,"worker"),D(this,"snapshotInProgressMap",new Map),D(this,"lastSnapshotTime",new Map),D(this,"options"),D(this,"mutationCb"),D(this,"resetObservers"),D(this,"frozen",!1),D(this,"locked",!1),D(this,"processMutation",((e,t)=>{(this.rafStamps.invokeId&&this.rafStamps.latestId!==this.rafStamps.invokeId||!this.rafStamps.invokeId)&&(this.rafStamps.invokeId=this.rafStamps.latestId),this.pendingCanvasMutations.has(e)||this.pendingCanvasMutations.set(e,[]),this.pendingCanvasMutations.get(e).push(t)}));const{sampling:t,win:i,blockClass:s,blockSelector:n,recordCanvas:r,recordVideos:o,initialSnapshotDelay:l,dataURLOptions:a}=e;this.mutationCb=e.mutationCb,this.mirror=e.mirror,this.logger=e.logger,this.worker=new rc,this.worker.onmessage=e=>{const{id:t}=e.data;if(this.snapshotInProgressMap.set(t,!1),!("base64"in e.data))return void this.debug(null,"canvas worker received empty message",{data:e.data,status:e.data.status});const{base64:i,type:s,dx:n,dy:r,dw:o,dh:l}=e.data,a={id:t,type:Za["2D"],commands:[{property:"clearRect",args:[n,r,o,l]},{property:"drawImage",args:[{rr_type:"ImageBitmap",args:[{rr_type:"Blob",data:[{rr_type:"ArrayBuffer",base64:i}],type:s}]},n,r,o,l]}]};this.debug(null,"canvas worker recording mutation",a),this.mutationCb(a)},this.options=e,r&&"all"===t?(this.debug(null,"initializing canvas mutation observer",{sampling:t}),this.initCanvasMutationObserver(i,s,n)):r&&"number"==typeof t&&(this.debug(null,"initializing canvas fps observer",{sampling:t}),this.initCanvasFPSObserver(o,t,i,s,n,{initialSnapshotDelay:l,dataURLOptions:a},e.resizeFactor,e.maxSnapshotDimension))}reset(){this.pendingCanvasMutations.clear(),this.resetObservers&&this.resetObservers()}freeze(){this.frozen=!0}unfreeze(){this.frozen=!1}lock(){this.locked=!0}unlock(){this.locked=!1}debug(e,...t){if(!this.logger)return;const i=this.mirror.getId(e);let s="[highlight-canvas-manager]";e&&(s=`[highlight-canvas] [id:${i}]`,"canvas"===e.tagName.toLowerCase()&&(s+=` [ctx:${e.__context}]`)),this.logger.debug(s,e,...t)}snapshot(e){return b(this,null,(function*(){var t;const i=this.mirror.getId(e);if(this.snapshotInProgressMap.get(i))return void this.debug(e,"snapshotting already in progress for",i);const s=1e3/("number"==typeof this.options.samplingManual?this.options.samplingManual:1),n=this.lastSnapshotTime.get(i);if(!(n&&(new Date).getTime()-n<s)){if(this.debug(e,"starting snapshotting"),0===e.width||0===e.height)return void this.debug(e,"not yet ready",{width:e.width,height:e.height});this.lastSnapshotTime.set(i,(new Date).getTime()),this.snapshotInProgressMap.set(i,!0);try{if(!1!==this.options.clearWebGLBuffer&&["webgl","webgl2"].includes(e.__context)){const i=e.getContext(e.__context);!1===(null==(t=null==i?void 0:i.getContextAttributes())?void 0:t.preserveDrawingBuffer)&&(i.clear(i.COLOR_BUFFER_BIT),this.debug(e,"cleared webgl canvas to load it into memory",{attributes:null==i?void 0:i.getContextAttributes()}))}if(0===e.width||0===e.height)return void this.debug(e,"not yet ready",{width:e.width,height:e.height});let s=this.options.resizeFactor||1;if(this.options.maxSnapshotDimension){const t=Math.max(e.width,e.height);s=Math.min(s,this.options.maxSnapshotDimension/t)}const n=e.width*s,r=e.height*s,o=yield createImageBitmap(e,{resizeWidth:n,resizeHeight:r});this.debug(e,"created image bitmap",{width:o.width,height:o.height}),this.worker.postMessage({id:i,bitmap:o,width:n,height:r,dx:0,dy:0,dw:e.width,dh:e.height,dataURLOptions:this.options.dataURLOptions,logDebug:!!this.logger},[o]),this.debug(e,"sent message")}catch(t){this.debug(e,"failed to snapshot",t)}finally{this.snapshotInProgressMap.set(i,!1)}}}))}initCanvasFPSObserver(e,t,i,s,n,r,o,l){const a=ec(i,s,n,!0),c=1e3/t;let d,u=0;const h=new Map,p=(e,t)=>{const i=[];e.querySelectorAll(t).forEach((e=>i.push(e)));const s=document.createNodeIterator(e,Node.ELEMENT_NODE);let n;for(;n=s.nextNode();)null!=n&&n.shadowRoot&&i.push(...p(n.shadowRoot,t));return i},m=e=>{const t=[];return p(i.document,"canvas").forEach((i=>{if(!na(i,s,n,!0)){this.debug(i,"discovered canvas"),t.push(i);const s=this.mirror.getId(i);h.has(s)||h.set(s,e)}})),t},y=t=>{const r=[];return e&&p(i.document,"video").forEach((e=>{if((""===e.src||-1!==e.src.indexOf("blob:"))&&!na(e,s,n,!0)){r.push(e);const i=this.mirror.getId(e);h.has(i)||h.set(i,t)}})),r},g=e=>b(this,null,(function*(){if(u&&e-u<c)return void(d=requestAnimationFrame(g));u=e;const t=t=>{const i=this.mirror.getId(t),s=h.get(i),n=!r.initialSnapshotDelay||e-s>r.initialSnapshotDelay;return this.debug(t,{delay:r.initialSnapshotDelay,delta:e-s,hadLoadingTime:n}),n},i=[];i.push(...m(e).filter(t).map((e=>this.snapshot(e)))),i.push(...y(e).filter(t).map((e=>b(this,null,(function*(){this.debug(e,"starting video snapshotting");const t=this.mirror.getId(e);if(this.snapshotInProgressMap.get(t))this.debug(e,"video snapshotting already in progress for",t);else{this.snapshotInProgressMap.set(t,!0);try{const{width:i,height:s}=e.getBoundingClientRect(),{actualWidth:n,actualHeight:a}={actualWidth:e.videoWidth,actualHeight:e.videoHeight},c=Math.max(n,a);if(0===c)return void this.debug(e,"not yet ready",{width:e.width,height:e.height,actualWidth:n,actualHeight:a,boxWidth:i,boxHeight:s});let d=o||1;l&&(d=Math.min(d,l/c));const u=n*d,h=a*d,p=yield createImageBitmap(e,{resizeWidth:u,resizeHeight:h}),m=Math.max(i,s)/c,b=n*m,y=a*m,g=(i-b)/2,Z=(s-y)/2;this.debug(e,"created image bitmap",{actualWidth:n,actualHeight:a,boxWidth:i,boxHeight:s,outputWidth:b,outputHeight:y,resizeWidth:u,resizeHeight:h,scale:d,outputScale:m,offsetX:g,offsetY:Z}),this.worker.postMessage({id:t,bitmap:p,width:u,height:h,dx:g,dy:Z,dw:b,dh:y,dataURLOptions:r.dataURLOptions,logDebug:!!this.logger},[p]),this.debug(e,"send message")}catch(t){this.debug(e,"failed to snapshot",t)}finally{this.snapshotInProgressMap.set(t,!1)}}}))))),yield Promise.all(i).catch(console.error),d=requestAnimationFrame(g)}));d=requestAnimationFrame(g),this.resetObservers=()=>{a(),d&&cancelAnimationFrame(d)}}initCanvasMutationObserver(e,t,i){this.startRAFTimestamping(),this.startPendingCanvasMutationFlusher();const s=ec(e,t,i,!1),n=function(e,t,i,s){const n=[],r=Object.getOwnPropertyNames(t.CanvasRenderingContext2D.prototype);for(const o of r)try{if("function"!=typeof t.CanvasRenderingContext2D.prototype[o])continue;const r=$l(t.CanvasRenderingContext2D.prototype,o,(function(n){return function(...r){return na(this.canvas,i,s,!0)||setTimeout((()=>{const i=$a(r,t,this);e(this.canvas,{type:Za["2D"],property:o,args:i})}),0),n.apply(this,r)}}));n.push(r)}catch(i){const s=_l(t.CanvasRenderingContext2D.prototype,o,{set(t){e(this.canvas,{type:Za["2D"],property:o,args:[t],setter:!0})}});n.push(s)}return()=>{n.forEach((e=>e()))}}(this.processMutation.bind(this),e,t,i),r=function(e,t,i,s){const n=[];return n.push(...tc(t.WebGLRenderingContext.prototype,Za.WebGL,e,i,s,t)),void 0!==t.WebGL2RenderingContext&&n.push(...tc(t.WebGL2RenderingContext.prototype,Za.WebGL2,e,i,s,t)),()=>{n.forEach((e=>e()))}}(this.processMutation.bind(this),e,t,i);this.resetObservers=()=>{s(),n(),r()}}startPendingCanvasMutationFlusher(){requestAnimationFrame((()=>this.flushPendingCanvasMutations()))}startRAFTimestamping(){const e=t=>{this.rafStamps.latestId=t,requestAnimationFrame(e)};requestAnimationFrame(e)}flushPendingCanvasMutations(){this.pendingCanvasMutations.forEach(((e,t)=>{const i=this.mirror.getId(t);this.flushPendingCanvasMutationFor(t,i)})),requestAnimationFrame((()=>this.flushPendingCanvasMutations()))}flushPendingCanvasMutationFor(e,t){if(this.frozen||this.locked)return;const i=this.pendingCanvasMutations.get(e);if(!i||-1===t)return;const s=i.map((e=>{const t=e,{type:i}=t;return p(t,["type"])})),{type:n}=i[0];this.mutationCb({id:t,type:n,commands:s}),this.pendingCanvasMutations.delete(e)}}class lc{constructor(e){D(this,"trackedLinkElements",new WeakSet),D(this,"mutationCb"),D(this,"adoptedStyleSheetCb"),D(this,"styleMirror",new ua),this.mutationCb=e.mutationCb,this.adoptedStyleSheetCb=e.adoptedStyleSheetCb}attachLinkElement(e,t){"_cssText"in t.attributes&&this.mutationCb({adds:[],removes:[],texts:[],attributes:[{id:t.id,attributes:t.attributes}]}),this.trackLinkElement(e)}trackLinkElement(e){this.trackedLinkElements.has(e)||(this.trackedLinkElements.add(e),this.trackStylesheetInLinkElement(e))}adoptStyleSheets(e,t){if(0===e.length)return;const i={id:t,styleIds:[]},s=[];for(const t of e){let e;this.styleMirror.has(t)?e=this.styleMirror.getId(t):(e=this.styleMirror.add(t),s.push({styleId:e,rules:Array.from(t.rules||CSSRule,((e,i)=>({rule:me(e,t.href),index:i})))})),i.styleIds.push(e)}s.length>0&&(i.styles=s),this.adoptedStyleSheetCb(i)}reset(){this.styleMirror.reset(),this.trackedLinkElements=new WeakSet}trackStylesheetInLinkElement(e){}}class ac{constructor(){D(this,"nodeMap",new WeakMap),D(this,"active",!1)}inOtherBuffer(e,t){const i=this.nodeMap.get(e);return i&&Array.from(i).some((e=>e!==t))}add(e,t){this.active||(this.active=!0,requestAnimationFrame((()=>{this.nodeMap=new WeakMap,this.active=!1}))),this.nodeMap.set(e,(this.nodeMap.get(e)||new Set).add(t))}destroy(){}}let cc,dc,uc,hc=!1;try{if(2!==Array.from([1],(e=>2*e))[0]){const e=document.createElement("iframe");document.body.appendChild(e),Array.from=(null==(E=e.contentWindow)?void 0:E.Array.from)||Array.from,document.body.removeChild(e)}}catch(nc){console.debug("Unable to override Array.from",nc)}const pc=new be;function mc(e={}){var t,i,s,n,r,o,l,a;const{emit:c,checkoutEveryNms:d,checkoutEveryNth:h,blockClass:p="highlight-block",blockSelector:m=null,ignoreClass:b="highlight-ignore",ignoreSelector:y=null,maskTextClass:g="highlight-mask",maskTextSelector:Z=null,inlineStylesheet:f=!0,maskAllInputs:G,maskInputOptions:I,slimDOMOptions:V,maskInputFn:W,maskTextFn:X=Re,hooks:S,packFn:R,sampling:w={},mousemoveWait:v,recordDOM:C=!0,recordCanvas:k=!1,recordCrossOriginIframes:x=!1,recordAfter:L=("DOMContentLoaded"===e.recordAfter?e.recordAfter:"load"),userTriggeredOnInput:Y=!1,collectFonts:J=!1,inlineImages:T=!1,plugins:U,keepIframeSrcFn:N=()=>!1,privacySetting:F="default",ignoreCSSAttributes:K=new Set([]),errorHandler:M,logger:H}=e,z=u(u({},e.dataURLOptions),null==(i=null==(t=e.sampling)?void 0:t.canvas)?void 0:i.dataURLOptions);!function(e){va=e}(M);const O=!x||window.parent===window;let P=!1;if(!O)try{window.parent.document&&(P=!1)}catch(e){P=!0}if(O&&!c)throw new Error("emit function is required");if(!O&&!P)return()=>{};void 0!==v&&void 0===w.mousemove&&(w.mousemove=v),pc.reset();const B=!0===G?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:void 0!==I?I:{password:!0},E=!0===V||"all"===V?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaVerification:!0,headMetaAuthorship:"all"===V,headMetaDescKeywords:"all"===V,headTitleMutations:"all"===V}:V||{};!function(e=window){"NodeList"in e&&!e.NodeList.prototype.forEach&&(e.NodeList.prototype.forEach=Array.prototype.forEach),"DOMTokenList"in e&&!e.DOMTokenList.prototype.forEach&&(e.DOMTokenList.prototype.forEach=Array.prototype.forEach)}();let j,D=0;const Q=e=>{for(const t of U||[])t.eventProcessor&&(e=t.eventProcessor(e));return R&&!P&&(e=R(e)),e};cc=(e,t)=>{var i;const s=e;if(s.timestamp=ql(),null!=(i=ka[0])&&i.isFrozen()&&s.type!==ma.FullSnapshot&&!(s.type===ma.IncrementalSnapshot&&s.data.source===ba.Mutation)&&ka.forEach((e=>e.unfreeze())),O)null==c||c(Q(s),t);else if(P){const e={type:"rrweb",event:Q(s),origin:window.location.origin,isCheckout:t};window.parent.postMessage(e,"*")}if(s.type===ma.FullSnapshot)j=s,D=0;else if(s.type===ma.IncrementalSnapshot){if(s.data.source===ba.Mutation&&s.data.isAttachIframe)return;D++;const e=h&&D>=h,t=d&&s.timestamp-j.timestamp>d;(e||t)&&dc(!0)}};const A=e=>{cc({type:ma.IncrementalSnapshot,data:u({source:ba.Mutation},e)})},_=e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.Scroll},e)}),$=e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.CanvasMutation},e)}),q=new lc({mutationCb:A,adoptedStyleSheetCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.AdoptedStyleSheet},e)})}),ee=new Pa({mirror:pc,mutationCb:A,stylesheetManager:q,recordCrossOriginIframes:x,wrappedEmit:cc});for(const e of U||[])e.getMirror&&e.getMirror({nodeMirror:pc,crossOriginIframeMirror:ee.crossOriginIframeMirror,crossOriginIframeStyleMirror:ee.crossOriginIframeStyleMirror});const te=new ac;uc=new oc({recordCanvas:k,recordVideos:T,mutationCb:$,win:window,blockClass:p,blockSelector:m,mirror:pc,sampling:null==(s=null==w?void 0:w.canvas)?void 0:s.fps,samplingManual:null==(n=null==w?void 0:w.canvas)?void 0:n.fpsManual,clearWebGLBuffer:null==(r=null==w?void 0:w.canvas)?void 0:r.clearWebGLBuffer,initialSnapshotDelay:null==(o=null==w?void 0:w.canvas)?void 0:o.initialSnapshotDelay,dataURLOptions:z,resizeFactor:null==(l=null==w?void 0:w.canvas)?void 0:l.resizeFactor,maxSnapshotDimension:null==(a=null==w?void 0:w.canvas)?void 0:a.maxSnapshotDimension,logger:H});const ie=new Ba({mutationCb:A,scrollCb:_,bypassOptions:{blockClass:p,blockSelector:m,maskTextClass:g,maskTextSelector:Z,inlineStylesheet:f,maskInputOptions:B,dataURLOptions:z,maskTextFn:X,maskInputFn:W,recordCanvas:k,inlineImages:T,privacySetting:F,sampling:w,slimDOMOptions:E,iframeManager:ee,stylesheetManager:q,canvasManager:uc,keepIframeSrcFn:N,processedNodeManager:te},mirror:pc});dc=(e=!1)=>{if(!C)return;cc({type:ma.Meta,data:{href:window.location.href,width:ia(),height:ta()}},e),q.reset(),ie.init(),ka.forEach((e=>e.lock()));const t=function(e,t){const{mirror:i=new be,blockClass:s="highlight-block",blockSelector:n=null,maskTextClass:r="highlight-mask",maskTextSelector:o=null,inlineStylesheet:l=!0,inlineImages:a=!1,recordCanvas:c=!1,maskAllInputs:d=!1,maskTextFn:u,maskInputFn:h,slimDOM:p=!1,dataURLOptions:m,preserveWhiteSpace:b,onSerialize:y,onIframeLoad:g,iframeLoadTimeout:Z,onStylesheetLoad:f,stylesheetLoadTimeout:G,keepIframeSrcFn:I=()=>!1,privacySetting:V="default"}=t||{};return De(e,{doc:e,mirror:i,blockClass:s,blockSelector:n,maskTextClass:r,maskTextSelector:o,skipChild:!1,inlineStylesheet:l,maskInputOptions:!0===d?{color:!0,date:!0,"datetime-local":!0,email:!0,month:!0,number:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0,textarea:!0,select:!0,password:!0}:!1===d?{password:!0}:d,maskTextFn:u,maskInputFn:h,slimDOMOptions:p||"all"===p?{script:!0,comment:!0,headFavicon:!0,headWhitespace:!0,headMetaDescKeywords:"all"===p,headMetaSocial:!0,headMetaRobots:!0,headMetaHttpEquiv:!0,headMetaAuthorship:!0,headMetaVerification:!0}:p||{},dataURLOptions:m,inlineImages:a,recordCanvas:c,preserveWhiteSpace:b,onSerialize:y,onIframeLoad:g,iframeLoadTimeout:Z,onStylesheetLoad:f,stylesheetLoadTimeout:G,keepIframeSrcFn:I,newlyAddedElement:!1,privacySetting:V})}(document,{mirror:pc,blockClass:p,blockSelector:m,maskTextClass:g,maskTextSelector:Z,inlineStylesheet:f,maskAllInputs:B,maskTextFn:X,maskInputFn:W,slimDOM:E,dataURLOptions:z,recordCanvas:k,inlineImages:T,privacySetting:F,onSerialize:e=>{aa(e,pc)&&ee.addIframe(e),ca(e,pc)&&q.trackLinkElement(e),da(e)&&ie.addShadowRoot(El(e),document)},onIframeLoad:(e,t)=>{ee.attachIframe(e,t),ie.observeAttachShadow(e)},onStylesheetLoad:(e,t)=>{q.attachLinkElement(e,t)},keepIframeSrcFn:N});if(!t)return console.warn("Failed to snapshot the document");cc({type:ma.FullSnapshot,data:{node:t,initialOffset:ea(window)}},e),ka.forEach((e=>e.unlock())),document.adoptedStyleSheets&&document.adoptedStyleSheets.length>0&&q.adoptStyleSheets(document.adoptedStyleSheets,pc.getId(document))};try{const e=[],t=e=>{var t;return Ca(Ma)({mutationCb:A,mousemoveCb:(e,t)=>cc({type:ma.IncrementalSnapshot,data:{source:t,positions:e}}),mouseInteractionCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.MouseInteraction},e)}),scrollCb:_,viewportResizeCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.ViewportResize},e)}),inputCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.Input},e)}),mediaInteractionCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.MediaInteraction},e)}),styleSheetRuleCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.StyleSheetRule},e)}),styleDeclarationCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.StyleDeclaration},e)}),canvasMutationCb:$,fontCb:e=>cc({type:ma.IncrementalSnapshot,data:u({source:ba.Font},e)}),selectionCb:e=>{cc({type:ma.IncrementalSnapshot,data:u({source:ba.Selection},e)})},customElementCb:e=>{cc({type:ma.IncrementalSnapshot,data:u({source:ba.CustomElement},e)})},blockClass:p,ignoreClass:b,ignoreSelector:y,maskTextClass:g,maskTextSelector:Z,maskInputOptions:B,inlineStylesheet:f,sampling:w,recordDOM:C,recordCanvas:k,inlineImages:T,userTriggeredOnInput:Y,collectFonts:J,doc:e,maskInputFn:W,maskTextFn:X,keepIframeSrcFn:N,blockSelector:m,slimDOMOptions:E,dataURLOptions:z,mirror:pc,iframeManager:ee,stylesheetManager:q,shadowDomManager:ie,processedNodeManager:te,canvasManager:uc,ignoreCSSAttributes:K,privacySetting:F,plugins:(null==(t=null==U?void 0:U.filter((e=>e.observer)))?void 0:t.map((e=>({observer:e.observer,options:e.options,callback:t=>cc({type:ma.Plugin,data:{plugin:e.name,payload:t}})}))))||[]},S)};ee.addLoadListener((i=>{try{e.push(t(i.contentDocument))}catch(e){console.warn(e)}}));const i=()=>{dc(),e.push(t(document)),hc=!0};return"interactive"===document.readyState||"complete"===document.readyState?i():(e.push(jl("DOMContentLoaded",(()=>{cc({type:ma.DomContentLoaded,data:{}}),"DOMContentLoaded"===L&&i()}))),e.push(jl("load",(()=>{cc({type:ma.Load,data:{}}),"load"===L&&i()}),window))),()=>{e.forEach((e=>e())),te.destroy(),hc=!1,va=void 0}}catch(e){console.warn(e)}}var bc;mc.addCustomEvent=(e,t)=>{hc&&cc({type:ma.Custom,data:{tag:e,payload:t}})},mc.freezePage=()=>{ka.forEach((e=>e.freeze()))},mc.takeFullSnapshot=e=>{if(!hc)throw new Error("please take full snapshot after start recording");dc(e)},mc.snapshotCanvas=e=>b(void 0,null,(function*(){if(!uc)throw new Error("canvas manager is not initialized");yield uc.snapshot(e)})),mc.mirror=pc,function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"}(bc||(bc={}));const{addCustomEvent:yc}=mc;var gc=function(){return gc=Object.assign||function(e){for(var t,i=1,s=arguments.length;i<s;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},gc.apply(this,arguments)},Zc=new Map,fc=new Map,Gc=!0,Ic=!1;function Vc(e){return e.replace(/[\s,]+/g," ").trim()}function Wc(e){var t=Vc(e);if(!Zc.has(t)){var i=(0,s.b)(e,{experimentalFragmentVariables:Ic,allowLegacyFragmentVariables:Ic});if(!i||"Document"!==i.kind)throw new Error("Not a valid GraphQL document.");Zc.set(t,function(e){var t=new Set(e.definitions);t.forEach((function(e){e.loc&&delete e.loc,Object.keys(e).forEach((function(i){var s=e[i];s&&"object"==typeof s&&t.add(s)}))}));var i=e.loc;return i&&(delete i.startToken,delete i.endToken),e}(function(e){var t=new Set,i=[];return e.definitions.forEach((function(e){if("FragmentDefinition"===e.kind){var s=e.name.value,n=function(e){return Vc(e.source.body.substring(e.start,e.end))}(e.loc),r=fc.get(s);r&&!r.has(n)?Gc&&console.warn("Warning: fragment with name "+s+" already exists.\ngraphql-tag enforces all fragment names across your application to be unique; read more about\nthis in the docs: http://dev.apollodata.com/core/fragments.html#unique-names"):r||fc.set(s,r=new Set),r.add(n),t.has(n)||(t.add(n),i.push(e))}else i.push(e)})),gc(gc({},e),{definitions:i})}(i)))}return Zc.get(t)}function Xc(e){for(var t=[],i=1;i<arguments.length;i++)t[i-1]=arguments[i];"string"==typeof e&&(e=[e]);var s=e[0];return t.forEach((function(t,i){t&&"Document"===t.kind?s+=t.loc.source.body:s+=t,s+=e[i+1]})),Wc(s)}var Sc,Rc=Xc,wc=function(){Zc.clear(),fc.clear()},vc=function(){Gc=!1},Cc=function(){Ic=!0},kc=function(){Ic=!1};!function(e){e.gql=Rc,e.resetCaches=wc,e.disableFragmentWarnings=vc,e.enableExperimentalFragmentVariables=Cc,e.disableExperimentalFragmentVariables=kc}(Xc||(Xc={})),Xc.default=Xc,function(e){e.BillingQuotaExceeded="BillingQuotaExceeded"}(Sc||(Sc={}));const xc=Xc`
|
|
2
|
+
mutation PushPayload(
|
|
3
|
+
$session_secure_id: String!
|
|
4
|
+
$payload_id: ID!
|
|
5
|
+
$events: ReplayEventsInput!
|
|
6
|
+
$messages: String!
|
|
7
|
+
$resources: String!
|
|
8
|
+
$web_socket_events: String!
|
|
9
|
+
$errors: [ErrorObjectInput]!
|
|
10
|
+
$is_beacon: Boolean
|
|
11
|
+
$has_session_unloaded: Boolean
|
|
12
|
+
$highlight_logs: String
|
|
13
|
+
) {
|
|
14
|
+
pushPayload(
|
|
15
|
+
session_secure_id: $session_secure_id
|
|
16
|
+
payload_id: $payload_id
|
|
17
|
+
events: $events
|
|
18
|
+
messages: $messages
|
|
19
|
+
resources: $resources
|
|
20
|
+
web_socket_events: $web_socket_events
|
|
21
|
+
errors: $errors
|
|
22
|
+
is_beacon: $is_beacon
|
|
23
|
+
has_session_unloaded: $has_session_unloaded
|
|
24
|
+
highlight_logs: $highlight_logs
|
|
25
|
+
)
|
|
26
|
+
}
|
|
27
|
+
`,Lc=Xc`
|
|
28
|
+
mutation PushPayloadCompressed(
|
|
29
|
+
$session_secure_id: String!
|
|
30
|
+
$payload_id: ID!
|
|
31
|
+
$data: String!
|
|
32
|
+
) {
|
|
33
|
+
pushPayloadCompressed(
|
|
34
|
+
session_secure_id: $session_secure_id
|
|
35
|
+
payload_id: $payload_id
|
|
36
|
+
data: $data
|
|
37
|
+
)
|
|
38
|
+
}
|
|
39
|
+
`,Yc=Xc`
|
|
40
|
+
mutation identifySession(
|
|
41
|
+
$session_secure_id: String!
|
|
42
|
+
$user_identifier: String!
|
|
43
|
+
$user_object: Any
|
|
44
|
+
) {
|
|
45
|
+
identifySession(
|
|
46
|
+
session_secure_id: $session_secure_id
|
|
47
|
+
user_identifier: $user_identifier
|
|
48
|
+
user_object: $user_object
|
|
49
|
+
)
|
|
50
|
+
}
|
|
51
|
+
`,Jc=Xc`
|
|
52
|
+
mutation addSessionProperties(
|
|
53
|
+
$session_secure_id: String!
|
|
54
|
+
$properties_object: Any
|
|
55
|
+
) {
|
|
56
|
+
addSessionProperties(
|
|
57
|
+
session_secure_id: $session_secure_id
|
|
58
|
+
properties_object: $properties_object
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
`,Tc=Xc`
|
|
62
|
+
mutation pushMetrics($metrics: [MetricInput]!) {
|
|
63
|
+
pushMetrics(metrics: $metrics)
|
|
64
|
+
}
|
|
65
|
+
`,Uc=Xc`
|
|
66
|
+
mutation addSessionFeedback(
|
|
67
|
+
$session_secure_id: String!
|
|
68
|
+
$user_name: String
|
|
69
|
+
$user_email: String
|
|
70
|
+
$verbatim: String!
|
|
71
|
+
$timestamp: Timestamp!
|
|
72
|
+
) {
|
|
73
|
+
addSessionFeedback(
|
|
74
|
+
session_secure_id: $session_secure_id
|
|
75
|
+
user_name: $user_name
|
|
76
|
+
user_email: $user_email
|
|
77
|
+
verbatim: $verbatim
|
|
78
|
+
timestamp: $timestamp
|
|
79
|
+
)
|
|
80
|
+
}
|
|
81
|
+
`,Nc=Xc`
|
|
82
|
+
mutation initializeSession(
|
|
83
|
+
$session_secure_id: String!
|
|
84
|
+
$organization_verbose_id: String!
|
|
85
|
+
$enable_strict_privacy: Boolean!
|
|
86
|
+
$privacy_setting: String!
|
|
87
|
+
$enable_recording_network_contents: Boolean!
|
|
88
|
+
$clientVersion: String!
|
|
89
|
+
$firstloadVersion: String!
|
|
90
|
+
$clientConfig: String!
|
|
91
|
+
$environment: String!
|
|
92
|
+
$id: String!
|
|
93
|
+
$appVersion: String
|
|
94
|
+
$serviceName: String!
|
|
95
|
+
$client_id: String!
|
|
96
|
+
$network_recording_domains: [String!]
|
|
97
|
+
$disable_session_recording: Boolean
|
|
98
|
+
) {
|
|
99
|
+
initializeSession(
|
|
100
|
+
session_secure_id: $session_secure_id
|
|
101
|
+
organization_verbose_id: $organization_verbose_id
|
|
102
|
+
enable_strict_privacy: $enable_strict_privacy
|
|
103
|
+
enable_recording_network_contents: $enable_recording_network_contents
|
|
104
|
+
clientVersion: $clientVersion
|
|
105
|
+
firstloadVersion: $firstloadVersion
|
|
106
|
+
clientConfig: $clientConfig
|
|
107
|
+
environment: $environment
|
|
108
|
+
appVersion: $appVersion
|
|
109
|
+
serviceName: $serviceName
|
|
110
|
+
fingerprint: $id
|
|
111
|
+
client_id: $client_id
|
|
112
|
+
network_recording_domains: $network_recording_domains
|
|
113
|
+
disable_session_recording: $disable_session_recording
|
|
114
|
+
privacy_setting: $privacy_setting
|
|
115
|
+
) {
|
|
116
|
+
secure_id
|
|
117
|
+
project_id
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
`,Fc=Xc`
|
|
121
|
+
query Ignore($id: ID!) {
|
|
122
|
+
ignore(id: $id)
|
|
123
|
+
}
|
|
124
|
+
`,Kc=(e,t,i,s)=>e(),Mc=e=>{e(window.location.href);const t=history.pushState;history.pushState=(e=>function(){var t=e.apply(this,arguments);return window.dispatchEvent(new Event("pushstate")),window.dispatchEvent(new Event("locationchange")),t})(history.pushState);const i=history.replaceState;history.replaceState=(e=>function(){var t=e.apply(this,arguments);return window.dispatchEvent(new Event("replacestate")),window.dispatchEvent(new Event("locationchange")),t})(history.replaceState);const s=()=>{window.dispatchEvent(new Event("locationchange"))};window.addEventListener("popstate",s);const n=function(){e(window.location.href)};return window.addEventListener("locationchange",n),()=>{window.removeEventListener("popstate",s),window.removeEventListener("locationchange",n),history.pushState=t,history.replaceState=i}};var Hc;function zc(e,t){return e.nodeType,Node.ELEMENT_NODE,Pc(e)}function Oc(e){if(e.id.length)return`#${e.id}`;if(e.classList.length){let t=[];for(const i of e.classList)t.push(`.${i}`);return`${e.nodeName.toLowerCase()}${t.join(",")}`}return e.nodeName.toLowerCase()}!function(e){e[e.All=0]="All",e[e.Two=1]="Two",e[e.One=2]="One"}(Hc||(Hc={}));const Pc=e=>{let t="";const i=e.getAttribute("class"),s=e.getAttribute("id");return s&&(t=t.concat(Bc(s,"#"))),i&&(t=t.concat(Bc(i,"."))),""===t&&(t=t.concat(e.tagName.toLowerCase())),t},Bc=(e,t)=>`${t}${e.trim().split(" ").join(t)}`,Ec="undefined"!=typeof window&&"performance"in window&&"memory"in performance?performance:{memory:{}};var jc;!function(e){e.USER_ID="ajs_user_id",e.USER_TRAITS="ajs_user_traits",e.ANONYMOUS_ID="ajs_anonymous_id"}(jc||(jc={}));const Dc=e=>{e(window.location.href);var t=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(i){setTimeout((()=>{var t,s;try{s=JSON.parse(null!=(t=null==i?void 0:i.toString())?t:"")}catch(e){return}("track"===s.type||"identify"===s.type)&&Ac(s)&&e(s)}),100),t.call(this,i)};const i=t=>{if(t.key===jc.USER_ID||t.key===jc.ANONYMOUS_ID||t.key===jc.USER_TRAITS){const{userId:t,userTraits:i}=Qc();if(t){let s={};i&&(s=JSON.parse(i));const n={type:"identify",userId:t.toString(),traits:s};Ac(n)&&e(n)}}},{userId:n,userTraits:r}=Qc();if(n){let t={};r&&(t=JSON.parse(r));const i={type:"identify",userId:n.toString(),traits:t};Ac(i)&&e(i)}return window.addEventListener("storage",i),(0,s.m)((({keyName:e})=>{i({key:e})})),()=>{window.removeEventListener("storage",i),XMLHttpRequest.prototype.send=t}},Qc=()=>({userId:(0,s.e)(jc.USER_ID),userTraits:(0,s.e)(jc.USER_TRAITS),anonymousId:(0,s.e)(jc.ANONYMOUS_ID)}),Ac=e=>{if(!e)return!1;let t="";try{t=JSON.stringify(e)}catch(e){return!1}const i=_c(t),n=(0,s.e)(s.S.SEGMENT_LAST_SENT_HASH_KEY);return(void 0===n||i!==n)&&((0,s.s)(s.S.SEGMENT_LAST_SENT_HASH_KEY,i),!0)},_c=e=>{var t=0,i=e.length,s=0;if(i>0)for(;s<i;)t=(t<<5)-t+e.charCodeAt(s++)|0;return t.toString()};let $c=[];const qc={},ed="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0,td={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":ed?173:189,"=":ed?61:187,";":ed?59:186,"'":222,"[":219,"]":221,"\\":220},id={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},sd={16:!1,18:!1,17:!1,91:!1},nd={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},rd=e=>td[e.toLowerCase()]||nd[e.toLowerCase()]||e.toUpperCase().charCodeAt(0);function od(e,t){const i=t.slice(0,t.length-1);for(let t=0;t<i.length;t++)i[t]=e[i[t].toLowerCase()];return i}function ld(e,t,i){let s;if(t.scope===i||"all"===t.scope){s=t.mods.length>0;for(const e in sd)Object.prototype.hasOwnProperty.call(sd,e)&&(!sd[e]&&t.mods.indexOf(+e)>-1||sd[e]&&-1===t.mods.indexOf(+e))&&(s=!1);(0===t.mods.length&&!sd[16]&&!sd[18]&&!sd[17]&&!sd[91]||s||"*"===t.shortcut)&&!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}var ad,cd,dd,ud,hd,pd=-1,md=function(e){addEventListener("pageshow",(function(t){t.persisted&&(pd=t.timeStamp,e(t))}),!0)},bd=function(){return window.performance&&performance.getEntriesByType&&performance.getEntriesByType("navigation")[0]},yd=function(){var e=bd();return e&&e.activationStart||0},gd=function(e,t){var i=bd(),s="navigate";return pd>=0?s="back-forward-cache":i&&(document.prerendering||yd()>0?s="prerender":document.wasDiscarded?s="restore":i.type&&(s=i.type.replace(/_/g,"-"))),{name:e,value:void 0===t?-1:t,rating:"good",delta:0,entries:[],id:"v3-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12),navigationType:s}},Zd=function(e,t,i){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var s=new PerformanceObserver((function(e){Promise.resolve().then((function(){t(e.getEntries())}))}));return s.observe(Object.assign({type:e,buffered:!0},i||{})),s}}catch(e){}},fd=function(e,t,i,s){var n,r;return function(o){var l,a;t.value>=0&&(o||s)&&((r=t.value-(n||0))||void 0===n)&&(n=t.value,t.delta=r,t.rating=(l=t.value)>(a=i)[1]?"poor":l>a[0]?"needs-improvement":"good",e(t))}},Gd=function(e){requestAnimationFrame((function(){return requestAnimationFrame((function(){return e()}))}))},Id=function(e){var t=function(t){"pagehide"!==t.type&&"hidden"!==document.visibilityState||e(t)};addEventListener("visibilitychange",t,!0),addEventListener("pagehide",t,!0)},Vd=function(e){var t=!1;return function(i){t||(e(i),t=!0)}},Wd=-1,Xd=function(){return"hidden"!==document.visibilityState||document.prerendering?1/0:0},Sd=function(e){"hidden"===document.visibilityState&&Wd>-1&&(Wd="visibilitychange"===e.type?e.timeStamp:0,wd())},Rd=function(){addEventListener("visibilitychange",Sd,!0),addEventListener("prerenderingchange",Sd,!0)},wd=function(){removeEventListener("visibilitychange",Sd,!0),removeEventListener("prerenderingchange",Sd,!0)},vd=function(){return Wd<0&&(Wd=Xd(),Rd(),md((function(){setTimeout((function(){Wd=Xd(),Rd()}),0)}))),{get firstHiddenTime(){return Wd}}},Cd=function(e){document.prerendering?addEventListener("prerenderingchange",(function(){return e()}),!0):e()},kd=[1800,3e3],xd=function(e,t){t=t||{},Cd((function(){var i,s=vd(),n=gd("FCP"),r=Zd("paint",(function(e){e.forEach((function(e){"first-contentful-paint"===e.name&&(r.disconnect(),e.startTime<s.firstHiddenTime&&(n.value=Math.max(e.startTime-yd(),0),n.entries.push(e),i(!0)))}))}));r&&(i=fd(e,n,kd,t.reportAllChanges),md((function(s){n=gd("FCP"),i=fd(e,n,kd,t.reportAllChanges),Gd((function(){n.value=performance.now()-s.timeStamp,i(!0)}))})))}))},Ld=[.1,.25],Yd={passive:!0,capture:!0},Jd=new Date,Td=function(e,t){ad||(ad=t,cd=e,dd=new Date,Fd(removeEventListener),Ud())},Ud=function(){if(cd>=0&&cd<dd-Jd){var e={entryType:"first-input",name:ad.type,target:ad.target,cancelable:ad.cancelable,startTime:ad.timeStamp,processingStart:ad.timeStamp+cd};ud.forEach((function(t){t(e)})),ud=[]}},Nd=function(e){if(e.cancelable){var t=(e.timeStamp>1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?(i=t,s=e,n=function(){Td(i,s),o()},r=function(){o()},o=function(){removeEventListener("pointerup",n,Yd),removeEventListener("pointercancel",r,Yd)},addEventListener("pointerup",n,Yd),addEventListener("pointercancel",r,Yd)):Td(t,e)}var i,s,n,r,o},Fd=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,Nd,Yd)}))},Kd=[100,300],Md=0,Hd=1/0,zd=0,Od=function(e){e.forEach((function(e){e.interactionId&&(Hd=Math.min(Hd,e.interactionId),zd=Math.max(zd,e.interactionId),Md=zd?(zd-Hd)/7+1:0)}))},Pd=function(){return hd?Md:performance.interactionCount||0},Bd=[200,500],Ed=0,jd=function(){return Pd()-Ed},Dd=[],Qd={},Ad=function(e){var t=Dd[Dd.length-1],i=Qd[e.interactionId];if(i||Dd.length<10||e.duration>t.latency){if(i)i.entries.push(e),i.latency=Math.max(i.latency,e.duration);else{var s={id:e.interactionId,latency:e.duration,entries:[e]};Qd[s.id]=s,Dd.push(s)}Dd.sort((function(e,t){return t.latency-e.latency})),Dd.splice(10).forEach((function(e){delete Qd[e.id]}))}},_d=[2500,4e3],$d={},qd=[800,1800],eu=function e(t){document.prerendering?Cd((function(){return e(t)})):"complete"!==document.readyState?addEventListener("load",(function(){return e(t)}),!0):setTimeout(t,0)},tu=function(e,t){t=t||{};var i=gd("TTFB"),s=fd(e,i,qd,t.reportAllChanges);eu((function(){var n=bd();if(n){var r=n.responseStart;if(r<=0||r>performance.now())return;i.value=Math.max(r-yd(),0),i.entries=[n],s(!0),md((function(){i=gd("TTFB",0),(s=fd(e,i,qd,t.reportAllChanges))(!0)}))}}))};const iu=e=>(function(e,t){t=t||{},xd(Vd((function(){var i,s=gd("CLS",0),n=0,r=[],o=function(e){e.forEach((function(e){if(!e.hadRecentInput){var t=r[0],i=r[r.length-1];n&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(n+=e.value,r.push(e)):(n=e.value,r=[e])}})),n>s.value&&(s.value=n,s.entries=r,i())},l=Zd("layout-shift",o);l&&(i=fd(e,s,Ld,t.reportAllChanges),Id((function(){o(l.takeRecords()),i(!0)})),md((function(){n=0,s=gd("CLS",0),i=fd(e,s,Ld,t.reportAllChanges),Gd((function(){return i()}))})),setTimeout(i,0))})))}(e),xd(e),function(e,t){t=t||{},Cd((function(){var i,s=vd(),n=gd("FID"),r=function(e){e.startTime<s.firstHiddenTime&&(n.value=e.processingStart-e.startTime,n.entries.push(e),i(!0))},o=function(e){e.forEach(r)},l=Zd("first-input",o);i=fd(e,n,Kd,t.reportAllChanges),l&&Id(Vd((function(){o(l.takeRecords()),l.disconnect()}))),l&&md((function(){var s;n=gd("FID"),i=fd(e,n,Kd,t.reportAllChanges),ud=[],cd=-1,ad=null,Fd(addEventListener),s=r,ud.push(s),Ud()}))}))}(e),function(e,t){t=t||{},Cd((function(){var i,s=vd(),n=gd("LCP"),r=function(e){var t=e[e.length-1];t&&t.startTime<s.firstHiddenTime&&(n.value=Math.max(t.startTime-yd(),0),n.entries=[t],i())},o=Zd("largest-contentful-paint",r);if(o){i=fd(e,n,_d,t.reportAllChanges);var l=Vd((function(){$d[n.id]||(r(o.takeRecords()),o.disconnect(),$d[n.id]=!0,i(!0))}));["keydown","click"].forEach((function(e){addEventListener(e,(function(){return setTimeout(l,0)}),!0)})),Id(l),md((function(s){n=gd("LCP"),i=fd(e,n,_d,t.reportAllChanges),Gd((function(){n.value=performance.now()-s.timeStamp,$d[n.id]=!0,i(!0)}))}))}}))}(e),tu(e),function(e,t){t=t||{},Cd((function(){var i;"interactionCount"in performance||hd||(hd=Zd("event",Od,{type:"event",buffered:!0,durationThreshold:0}));var s,n=gd("INP"),r=function(e){e.forEach((function(e){e.interactionId&&Ad(e),"first-input"===e.entryType&&!Dd.some((function(t){return t.entries.some((function(t){return e.duration===t.duration&&e.startTime===t.startTime}))}))&&Ad(e)}));var t,i=(t=Math.min(Dd.length-1,Math.floor(jd()/50)),Dd[t]);i&&i.latency!==n.value&&(n.value=i.latency,n.entries=i.entries,s())},o=Zd("event",r,{durationThreshold:null!==(i=t.durationThreshold)&&void 0!==i?i:40});s=fd(e,n,Bd,t.reportAllChanges),o&&("interactionId"in PerformanceEventTiming.prototype&&o.observe({type:"first-input",buffered:!0}),Id((function(){r(o.takeRecords()),n.value<0&&jd()>0&&(n.value=0,n.entries=[]),s(!0)})),md((function(){Dd=[],Ed=Pd(),n=gd("INP"),s=fd(e,n,Bd,t.reportAllChanges)})))}))}(e),()=>{});class su{constructor(e,t){m(this,"debug"),m(this,"name"),this.debug=e,this.name=t}log(...e){if(this.debug){let t=`[${Date.now()}]`;this.name&&(t+=` - ${this.name}`),console.log.apply(console,[t,...e])}}}const nu="iframe parent ready",ru="iframe ok";var ou;!function(e){e.BillingQuotaExceeded="BillingQuotaExceeded"}(ou||(ou={}));const lu=[ou.BillingQuotaExceeded.toString()],au="highlightLogs",cu=e=>e/Math.pow(1e3,2),du=e=>1024*e,uu="dmFyIFVyPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxWcj1PYmplY3QuZGVmaW5lUHJvcGVydGllczt2YXIganI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnM7dmFyIE1lPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIFF0PU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksWHQ9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTt2YXIgdXQ9KEIsRCxDKT0+RCBpbiBCP1VyKEIsRCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Q30pOkJbRF09QyxQPShCLEQpPT57Zm9yKHZhciBDIGluIER8fChEPXt9KSlRdC5jYWxsKEQsQykmJnV0KEIsQyxEW0NdKTtpZihNZSlmb3IodmFyIEMgb2YgTWUoRCkpWHQuY2FsbChELEMpJiZ1dChCLEMsRFtDXSk7cmV0dXJuIEJ9LFVlPShCLEQpPT5WcihCLGpyKEQpKTt2YXIgdmU9KEIsRCk9Pnt2YXIgQz17fTtmb3IodmFyIEogaW4gQilRdC5jYWxsKEIsSikmJkQuaW5kZXhPZihKKTwwJiYoQ1tKXT1CW0pdKTtpZihCIT1udWxsJiZNZSlmb3IodmFyIEogb2YgTWUoQikpRC5pbmRleE9mKEopPDAmJlh0LmNhbGwoQixKKSYmKENbSl09QltKXSk7cmV0dXJuIEN9O3ZhciBsdD0oQixELEMpPT51dChCLHR5cGVvZiBEIT0ic3ltYm9sIj9EKyIiOkQsQyk7dmFyIFg9KEIsRCxDKT0+bmV3IFByb21pc2UoKEosY2UpPT57dmFyIGdlPWVlPT57dHJ5e3VlKEMubmV4dChlZSkpfWNhdGNoKEVlKXtjZShFZSl9fSxJZT1lZT0+e3RyeXt1ZShDLnRocm93KGVlKSl9Y2F0Y2goRWUpe2NlKEVlKX19LHVlPWVlPT5lZS5kb25lP0ooZWUudmFsdWUpOlByb21pc2UucmVzb2x2ZShlZS52YWx1ZSkudGhlbihnZSxJZSk7dWUoKEM9Qy5hcHBseShCLEQpKS5uZXh0KCkpfSk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEIoZSx0KXtyZXR1cm4gdC5mb3JFYWNoKGZ1bmN0aW9uKG4pe24mJnR5cGVvZiBuIT0ic3RyaW5nIiYmIUFycmF5LmlzQXJyYXkobikmJk9iamVjdC5rZXlzKG4pLmZvckVhY2goZnVuY3Rpb24oaSl7aWYoaSE9PSJkZWZhdWx0IiYmIShpIGluIGUpKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKG4saSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsaSxyLmdldD9yOntlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBuW2ldfX0pfX0pfSksT2JqZWN0LmZyZWV6ZShlKX12YXIgRD1VaW50OEFycmF5LEM9VWludDE2QXJyYXksSj1JbnQzMkFycmF5LGNlPW5ldyBEKFswLDAsMCwwLDAsMCwwLDAsMSwxLDEsMSwyLDIsMiwyLDMsMywzLDMsNCw0LDQsNCw1LDUsNSw1LDAsMCwwLDBdKSxnZT1uZXcgRChbMCwwLDAsMCwxLDEsMiwyLDMsMyw0LDQsNSw1LDYsNiw3LDcsOCw4LDksOSwxMCwxMCwxMSwxMSwxMiwxMiwxMywxMywwLDBdKSxJZT1uZXcgRChbMTYsMTcsMTgsMCw4LDcsOSw2LDEwLDUsMTEsNCwxMiwzLDEzLDIsMTQsMSwxNV0pLHVlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPW5ldyBDKDMxKSxpPTA7aTwzMTsrK2kpbltpXT10Kz0xPDxlW2ktMV07Zm9yKHZhciByPW5ldyBKKG5bMzBdKSxpPTE7aTwzMDsrK2kpZm9yKHZhciBzPW5baV07czxuW2krMV07KytzKXJbc109cy1uW2ldPDw1fGk7cmV0dXJue2I6bixyfX0sZWU9dWUoY2UsMiksRWU9ZWUuYixWZT1lZS5yO0VlWzI4XT0yNTgsVmVbMjU4XT0yODtmb3IodmFyIFd0PXVlKGdlLDApLGZ0PVd0LnIsamU9bmV3IEMoMzI3NjgpLEY9MDtGPDMyNzY4OysrRil7dmFyIGllPShGJjQzNjkwKT4+MXwoRiYyMTg0NSk8PDE7aWU9KGllJjUyNDI4KT4+MnwoaWUmMTMxMDcpPDwyLGllPShpZSY2MTY4MCk+PjR8KGllJjM4NTUpPDw0LGplW0ZdPSgoaWUmNjUyODApPj44fChpZSYyNTUpPDw4KT4+MX1mb3IodmFyIF9lPWZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIGk9ZS5sZW5ndGgscj0wLHM9bmV3IEModCk7cjxpOysrcillW3JdJiYrK3NbZVtyXS0xXTt2YXIgbz1uZXcgQyh0KTtmb3Iocj0xO3I8dDsrK3Ipb1tyXT1vW3ItMV0rc1tyLTFdPDwxO3ZhciBjO2lmKG4pe2M9bmV3IEMoMTw8dCk7dmFyIGY9MTUtdDtmb3Iocj0wO3I8aTsrK3IpaWYoZVtyXSlmb3IodmFyIGQ9cjw8NHxlW3JdLHU9dC1lW3JdLHk9b1tlW3JdLTFdKys8PHUsZz15fCgxPDx1KS0xO3k8PWc7Kyt5KWNbamVbeV0+PmZdPWR9ZWxzZSBmb3IoYz1uZXcgQyhpKSxyPTA7cjxpOysrcillW3JdJiYoY1tyXT1qZVtvW2Vbcl0tMV0rK10+PjE1LWVbcl0pO3JldHVybiBjfSxvZT1uZXcgRCgyODgpLEY9MDtGPDE0NDsrK0Ypb2VbRl09ODtmb3IodmFyIEY9MTQ0O0Y8MjU2OysrRilvZVtGXT05O2Zvcih2YXIgRj0yNTY7RjwyODA7KytGKW9lW0ZdPTc7Zm9yKHZhciBGPTI4MDtGPDI4ODsrK0Ypb2VbRl09ODtmb3IodmFyIE9lPW5ldyBEKDMyKSxGPTA7RjwzMjsrK0YpT2VbRl09NTt2YXIgWnQ9X2Uob2UsOSwwKSxLdD1fZShPZSw1LDApLGh0PWZ1bmN0aW9uKGUpe3JldHVybihlKzcpLzh8MH0sZHQ9ZnVuY3Rpb24oZSx0LG4pe3JldHVybihuPT1udWxsfHxuPmUubGVuZ3RoKSYmKG49ZS5sZW5ndGgpLG5ldyBEKGUuc3ViYXJyYXkodCxuKSl9LG5lPWZ1bmN0aW9uKGUsdCxuKXtuPDw9dCY3O3ZhciBpPXQvOHwwO2VbaV18PW4sZVtpKzFdfD1uPj44fSxUZT1mdW5jdGlvbihlLHQsbil7bjw8PXQmNzt2YXIgaT10Lzh8MDtlW2ldfD1uLGVbaSsxXXw9bj4+OCxlW2krMl18PW4+PjE2fSxxZT1mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTxlLmxlbmd0aDsrK2kpZVtpXSYmbi5wdXNoKHtzOmksZjplW2ldfSk7dmFyIHI9bi5sZW5ndGgscz1uLnNsaWNlKCk7aWYoIXIpcmV0dXJue3Q6dnQsbDowfTtpZihyPT0xKXt2YXIgbz1uZXcgRChuWzBdLnMrMSk7cmV0dXJuIG9bblswXS5zXT0xLHt0Om8sbDoxfX1uLnNvcnQoZnVuY3Rpb24oJCxxKXtyZXR1cm4gJC5mLXEuZn0pLG4ucHVzaCh7czotMSxmOjI1MDAxfSk7dmFyIGM9blswXSxmPW5bMV0sZD0wLHU9MSx5PTI7Zm9yKG5bMF09e3M6LTEsZjpjLmYrZi5mLGw6YyxyOmZ9O3UhPXItMTspYz1uW25bZF0uZjxuW3ldLmY/ZCsrOnkrK10sZj1uW2QhPXUmJm5bZF0uZjxuW3ldLmY/ZCsrOnkrK10sblt1KytdPXtzOi0xLGY6Yy5mK2YuZixsOmMscjpmfTtmb3IodmFyIGc9c1swXS5zLGk9MTtpPHI7KytpKXNbaV0ucz5nJiYoZz1zW2ldLnMpO3ZhciBiPW5ldyBDKGcrMSksbT1HZShuW3UtMV0sYiwwKTtpZihtPnQpe3ZhciBpPTAsTj0wLHY9bS10LEU9MTw8djtmb3Iocy5zb3J0KGZ1bmN0aW9uKHEsTSl7cmV0dXJuIGJbTS5zXS1iW3Euc118fHEuZi1NLmZ9KTtpPHI7KytpKXt2YXIgaz1zW2ldLnM7aWYoYltrXT50KU4rPUUtKDE8PG0tYltrXSksYltrXT10O2Vsc2UgYnJlYWt9Zm9yKE4+Pj12O04+MDspe3ZhciB3PXNbaV0ucztiW3ddPHQ/Ti09MTw8dC1iW3ddKystMTorK2l9Zm9yKDtpPj0wJiZOOy0taSl7dmFyIEw9c1tpXS5zO2JbTF09PXQmJigtLWJbTF0sKytOKX1tPXR9cmV0dXJue3Q6bmV3IEQoYiksbDptfX0sR2U9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBlLnM9PS0xP01hdGgubWF4KEdlKGUubCx0LG4rMSksR2UoZS5yLHQsbisxKSk6dFtlLnNdPW59LHB0PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1lLmxlbmd0aDt0JiYhZVstLXRdOyk7Zm9yKHZhciBuPW5ldyBDKCsrdCksaT0wLHI9ZVswXSxzPTEsbz1mdW5jdGlvbihmKXtuW2krK109Zn0sYz0xO2M8PXQ7KytjKWlmKGVbY109PXImJmMhPXQpKytzO2Vsc2V7aWYoIXImJnM+Mil7Zm9yKDtzPjEzODtzLT0xMzgpbygzMjc1NCk7cz4yJiYobyhzPjEwP3MtMTE8PDV8Mjg2OTA6cy0zPDw1fDEyMzA1KSxzPTApfWVsc2UgaWYocz4zKXtmb3IobyhyKSwtLXM7cz42O3MtPTYpbyg4MzA0KTtzPjImJihvKHMtMzw8NXw4MjA4KSxzPTApfWZvcig7cy0tOylvKHIpO3M9MSxyPWVbY119cmV0dXJue2M6bi5zdWJhcnJheSgwLGkpLG46dH19LGJlPWZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTAsaT0wO2k8dC5sZW5ndGg7KytpKW4rPWVbaV0qdFtpXTtyZXR1cm4gbn0sbXQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciBpPW4ubGVuZ3RoLHI9aHQodCsyKTtlW3JdPWkmMjU1LGVbcisxXT1pPj44LGVbcisyXT1lW3JdXjI1NSxlW3IrM109ZVtyKzFdXjI1NTtmb3IodmFyIHM9MDtzPGk7KytzKWVbcitzKzRdPW5bc107cmV0dXJuKHIrNCtpKSo4fSx5dD1mdW5jdGlvbihlLHQsbixpLHIscyxvLGMsZixkLHUpe25lKHQsdSsrLG4pLCsrclsyNTZdO2Zvcih2YXIgeT1xZShyLDE1KSxnPXkudCxiPXkubCxtPXFlKHMsMTUpLE49bS50LHY9bS5sLEU9cHQoZyksaz1FLmMsdz1FLm4sTD1wdChOKSwkPUwuYyxxPUwubixNPW5ldyBDKDE5KSxJPTA7STxrLmxlbmd0aDsrK0kpKytNW2tbSV0mMzFdO2Zvcih2YXIgST0wO0k8JC5sZW5ndGg7KytJKSsrTVskW0ldJjMxXTtmb3IodmFyIE89cWUoTSw3KSxqPU8udCxVPU8ubCxIPTE5O0g+NCYmIWpbSWVbSC0xXV07LS1IKTt2YXIgUT1kKzU8PDMsYT1iZShyLG9lKStiZShzLE9lKStvLGg9YmUocixnKStiZShzLE4pK28rMTQrMypIK2JlKE0saikrMipNWzE2XSszKk1bMTddKzcqTVsxOF07aWYoZj49MCYmUTw9YSYmUTw9aClyZXR1cm4gbXQodCx1LGUuc3ViYXJyYXkoZixmK2QpKTt2YXIgXyxBLFIseDtpZihuZSh0LHUsMSsoaDxhKSksdSs9MixoPGEpe189X2UoZyxiLDApLEE9ZyxSPV9lKE4sdiwwKSx4PU47dmFyIHNlPV9lKGosVSwwKTtuZSh0LHUsdy0yNTcpLG5lKHQsdSs1LHEtMSksbmUodCx1KzEwLEgtNCksdSs9MTQ7Zm9yKHZhciBJPTA7STxIOysrSSluZSh0LHUrMypJLGpbSWVbSV1dKTt1Kz0zKkg7Zm9yKHZhciB6PVtrLCRdLHJlPTA7cmU8MjsrK3JlKWZvcih2YXIgbWU9eltyZV0sST0wO0k8bWUubGVuZ3RoOysrSSl7dmFyIHRlPW1lW0ldJjMxO25lKHQsdSxzZVt0ZV0pLHUrPWpbdGVdLHRlPjE1JiYobmUodCx1LG1lW0ldPj41JjEyNyksdSs9bWVbSV0+PjEyKX19ZWxzZSBfPVp0LEE9b2UsUj1LdCx4PU9lO2Zvcih2YXIgST0wO0k8YzsrK0kpe3ZhciBZPWlbSV07aWYoWT4yNTUpe3ZhciB0ZT1ZPj4xOCYzMTtUZSh0LHUsX1t0ZSsyNTddKSx1Kz1BW3RlKzI1N10sdGU+NyYmKG5lKHQsdSxZPj4yMyYzMSksdSs9Y2VbdGVdKTt2YXIgeWU9WSYzMTtUZSh0LHUsUlt5ZV0pLHUrPXhbeWVdLHllPjMmJihUZSh0LHUsWT4+NSY4MTkxKSx1Kz1nZVt5ZV0pfWVsc2UgVGUodCx1LF9bWV0pLHUrPUFbWV19cmV0dXJuIFRlKHQsdSxfWzI1Nl0pLHUrQVsyNTZdfSxlbj1uZXcgSihbNjU1NDAsMTMxMDgwLDEzMTA4OCwxMzExMDQsMjYyMTc2LDEwNDg3MDQsMTA0ODgzMiwyMTE0NTYwLDIxMTc2MzJdKSx2dD1uZXcgRCgwKSx0bj1mdW5jdGlvbihlLHQsbixpLHIscyl7dmFyIG89cy56fHxlLmxlbmd0aCxjPW5ldyBEKGkrbys1KigxK01hdGguY2VpbChvLzdlMykpK3IpLGY9Yy5zdWJhcnJheShpLGMubGVuZ3RoLXIpLGQ9cy5sLHU9KHMucnx8MCkmNztpZih0KXt1JiYoZlswXT1zLnI+PjMpO2Zvcih2YXIgeT1lblt0LTFdLGc9eT4+MTMsYj15JjgxOTEsbT0oMTw8biktMSxOPXMucHx8bmV3IEMoMzI3NjgpLHY9cy5ofHxuZXcgQyhtKzEpLEU9TWF0aC5jZWlsKG4vMyksaz0yKkUsdz1mdW5jdGlvbihjdCl7cmV0dXJuKGVbY3RdXmVbY3QrMV08PEVeZVtjdCsyXTw8aykmbX0sTD1uZXcgSigyNWUzKSwkPW5ldyBDKDI4OCkscT1uZXcgQygzMiksTT0wLEk9MCxPPXMuaXx8MCxqPTAsVT1zLnd8fDAsSD0wO08rMjxvOysrTyl7dmFyIFE9dyhPKSxhPU8mMzI3NjcsaD12W1FdO2lmKE5bYV09aCx2W1FdPWEsVTw9Tyl7dmFyIF89by1PO2lmKChNPjdlM3x8aj4yNDU3NikmJihfPjQyM3x8IWQpKXt1PXl0KGUsZiwwLEwsJCxxLEksaixILE8tSCx1KSxqPU09ST0wLEg9Tztmb3IodmFyIEE9MDtBPDI4NjsrK0EpJFtBXT0wO2Zvcih2YXIgQT0wO0E8MzA7KytBKXFbQV09MH12YXIgUj0yLHg9MCxzZT1iLHo9YS1oJjMyNzY3O2lmKF8+MiYmUT09dyhPLXopKWZvcih2YXIgcmU9TWF0aC5taW4oZyxfKS0xLG1lPU1hdGgubWluKDMyNzY3LE8pLHRlPU1hdGgubWluKDI1OCxfKTt6PD1tZSYmLS1zZSYmYSE9aDspe2lmKGVbTytSXT09ZVtPK1Itel0pe2Zvcih2YXIgWT0wO1k8dGUmJmVbTytZXT09ZVtPK1ktel07KytZKTtpZihZPlIpe2lmKFI9WSx4PXosWT5yZSlicmVhaztmb3IodmFyIHllPU1hdGgubWluKHosWS0yKSxIdD0wLEE9MDtBPHllOysrQSl7dmFyIG90PU8teitBJjMyNzY3LE1yPU5bb3RdLHp0PW90LU1yJjMyNzY3O3p0Pkh0JiYoSHQ9enQsaD1vdCl9fX1hPWgsaD1OW2FdLHorPWEtaCYzMjc2N31pZih4KXtMW2orK109MjY4NDM1NDU2fFZlW1JdPDwxOHxmdFt4XTt2YXIgWXQ9VmVbUl0mMzEsSnQ9ZnRbeF0mMzE7SSs9Y2VbWXRdK2dlW0p0XSwrKyRbMjU3K1l0XSwrK3FbSnRdLFU9TytSLCsrTX1lbHNlIExbaisrXT1lW09dLCsrJFtlW09dXX19Zm9yKE89TWF0aC5tYXgoTyxVKTtPPG87KytPKUxbaisrXT1lW09dLCsrJFtlW09dXTt1PXl0KGUsZixkLEwsJCxxLEksaixILE8tSCx1KSxkfHwocy5yPXUmN3xmW3UvOHwwXTw8Myx1LT03LHMuaD12LHMucD1OLHMuaT1PLHMudz1VKX1lbHNle2Zvcih2YXIgTz1zLnd8fDA7TzxvK2Q7Tys9NjU1MzUpe3ZhciBhdD1PKzY1NTM1O2F0Pj1vJiYoZlt1Lzh8MF09ZCxhdD1vKSx1PW10KGYsdSsxLGUuc3ViYXJyYXkoTyxhdCkpfXMuaT1vfXJldHVybiBkdChjLDAsaStodCh1KStyKX0sbm49ZnVuY3Rpb24oKXtmb3IodmFyIGU9bmV3IEludDMyQXJyYXkoMjU2KSx0PTA7dDwyNTY7Kyt0KXtmb3IodmFyIG49dCxpPTk7LS1pOyluPShuJjEmJi0zMDY2NzQ5MTIpXm4+Pj4xO2VbdF09bn1yZXR1cm4gZX0oKSxybj1mdW5jdGlvbigpe3ZhciBlPS0xO3JldHVybntwOmZ1bmN0aW9uKHQpe2Zvcih2YXIgbj1lLGk9MDtpPHQubGVuZ3RoOysraSluPW5uW24mMjU1XnRbaV1dXm4+Pj44O2U9bn0sZDpmdW5jdGlvbigpe3JldHVybn5lfX19LHNuPWZ1bmN0aW9uKGUsdCxuLGkscil7aWYoIXImJihyPXtsOjF9LHQuZGljdGlvbmFyeSkpe3ZhciBzPXQuZGljdGlvbmFyeS5zdWJhcnJheSgtMzI3NjgpLG89bmV3IEQocy5sZW5ndGgrZS5sZW5ndGgpO28uc2V0KHMpLG8uc2V0KGUscy5sZW5ndGgpLGU9byxyLnc9cy5sZW5ndGh9cmV0dXJuIHRuKGUsdC5sZXZlbD09bnVsbD82OnQubGV2ZWwsdC5tZW09PW51bGw/ci5sP01hdGguY2VpbChNYXRoLm1heCg4LE1hdGgubWluKDEzLE1hdGgubG9nKGUubGVuZ3RoKSkpKjEuNSk6MjA6MTIrdC5tZW0sbixpLHIpfSxIZT1mdW5jdGlvbihlLHQsbil7Zm9yKDtuOysrdCllW3RdPW4sbj4+Pj04fSxvbj1mdW5jdGlvbihlLHQpe3ZhciBuPXQuZmlsZW5hbWU7aWYoZVswXT0zMSxlWzFdPTEzOSxlWzJdPTgsZVs4XT10LmxldmVsPDI/NDp0LmxldmVsPT05PzI6MCxlWzldPTMsdC5tdGltZSE9MCYmSGUoZSw0LE1hdGguZmxvb3IobmV3IERhdGUodC5tdGltZXx8RGF0ZS5ub3coKSkvMWUzKSksbil7ZVszXT04O2Zvcih2YXIgaT0wO2k8PW4ubGVuZ3RoOysraSllW2krMTBdPW4uY2hhckNvZGVBdChpKX19LGFuPWZ1bmN0aW9uKGUpe3JldHVybiAxMCsoZS5maWxlbmFtZT9lLmZpbGVuYW1lLmxlbmd0aCsxOjApfTtmdW5jdGlvbiBjbihlLHQpe3R8fCh0PXt9KTt2YXIgbj1ybigpLGk9ZS5sZW5ndGg7bi5wKGUpO3ZhciByPXNuKGUsdCxhbih0KSw4KSxzPXIubGVuZ3RoO3JldHVybiBvbihyLHQpLEhlKHIscy04LG4uZCgpKSxIZShyLHMtNCxpKSxyfXZhciBndD10eXBlb2YgVGV4dEVuY29kZXIhPSJ1bmRlZmluZWQiJiZuZXcgVGV4dEVuY29kZXIsdW49dHlwZW9mIFRleHREZWNvZGVyIT0idW5kZWZpbmVkIiYmbmV3IFRleHREZWNvZGVyLGxuPTA7dHJ5e3VuLmRlY29kZSh2dCx7c3RyZWFtOiEwfSksbG49MX1jYXRjaChlKXt9ZnVuY3Rpb24gZm4oZSx0KXt2YXIgbjtpZihndClyZXR1cm4gZ3QuZW5jb2RlKGUpO2Zvcih2YXIgaT1lLmxlbmd0aCxyPW5ldyBEKGUubGVuZ3RoKyhlLmxlbmd0aD4+MSkpLHM9MCxvPWZ1bmN0aW9uKGQpe3JbcysrXT1kfSxuPTA7bjxpOysrbil7aWYocys1PnIubGVuZ3RoKXt2YXIgYz1uZXcgRChzKzgrKGktbjw8MSkpO2Muc2V0KHIpLHI9Y312YXIgZj1lLmNoYXJDb2RlQXQobik7ZjwxMjh8fHQ/byhmKTpmPDIwNDg/KG8oMTkyfGY+PjYpLG8oMTI4fGYmNjMpKTpmPjU1Mjk1JiZmPDU3MzQ0PyhmPTY1NTM2KyhmJjEwNDc1NTIpfGUuY2hhckNvZGVBdCgrK24pJjEwMjMsbygyNDB8Zj4+MTgpLG8oMTI4fGY+PjEyJjYzKSxvKDEyOHxmPj42JjYzKSxvKDEyOHxmJjYzKSk6KG8oMjI0fGY+PjEyKSxvKDEyOHxmPj42JjYzKSxvKDEyOHxmJjYzKSl9cmV0dXJuIGR0KHIsMCxzKX1jb25zdCB6ZT1KU09OLGhuPWU9PmUudG9VcHBlckNhc2UoKSxkbj1lPT57Y29uc3QgdD17fTtyZXR1cm4gZS5mb3JFYWNoKChuLGkpPT57dFtpXT1ufSksdH0scG49KGUsdCxuKT0+ZS5kb2N1bWVudD9lOntkb2N1bWVudDplLHZhcmlhYmxlczp0LHJlcXVlc3RIZWFkZXJzOm4sc2lnbmFsOnZvaWQgMH0sbW49KGUsdCxuKT0+ZS5xdWVyeT9lOntxdWVyeTplLHZhcmlhYmxlczp0LHJlcXVlc3RIZWFkZXJzOm4sc2lnbmFsOnZvaWQgMH0seW49KGUsdCk9PmUuZG9jdW1lbnRzP2U6e2RvY3VtZW50czplLHJlcXVlc3RIZWFkZXJzOnQsc2lnbmFsOnZvaWQgMH07ZnVuY3Rpb24gU2UoZSx0KXtpZighISFlKXRocm93IG5ldyBFcnJvcih0KX1mdW5jdGlvbiB2bihlKXtyZXR1cm4gdHlwZW9mIGU9PSJvYmplY3QiJiZlIT09bnVsbH1mdW5jdGlvbiBnbihlLHQpe2lmKCEhIWUpdGhyb3cgbmV3IEVycm9yKCJVbmV4cGVjdGVkIGludmFyaWFudCB0cmlnZ2VyZWQuIil9Y29uc3QgRW49L1xyXG58W1xuXHJdL2c7ZnVuY3Rpb24gWWUoZSx0KXtsZXQgbj0wLGk9MTtmb3IoY29uc3QgciBvZiBlLmJvZHkubWF0Y2hBbGwoRW4pKXtpZih0eXBlb2Ygci5pbmRleD09Im51bWJlciJ8fGduKCExKSxyLmluZGV4Pj10KWJyZWFrO249ci5pbmRleCtyWzBdLmxlbmd0aCxpKz0xfXJldHVybntsaW5lOmksY29sdW1uOnQrMS1ufX1mdW5jdGlvbiBfbihlKXtyZXR1cm4gRXQoZS5zb3VyY2UsWWUoZS5zb3VyY2UsZS5zdGFydCkpfWZ1bmN0aW9uIEV0KGUsdCl7Y29uc3Qgbj1lLmxvY2F0aW9uT2Zmc2V0LmNvbHVtbi0xLGk9IiIucGFkU3RhcnQobikrZS5ib2R5LHI9dC5saW5lLTEscz1lLmxvY2F0aW9uT2Zmc2V0LmxpbmUtMSxvPXQubGluZStzLGM9dC5saW5lPT09MT9uOjAsZj10LmNvbHVtbitjLGQ9YCR7ZS5uYW1lfToke299OiR7Zn0KYCx1PWkuc3BsaXQoL1xyXG58W1xuXHJdL2cpLHk9dVtyXTtpZih5Lmxlbmd0aD4xMjApe2NvbnN0IGc9TWF0aC5mbG9vcihmLzgwKSxiPWYlODAsbT1bXTtmb3IobGV0IE49MDtOPHkubGVuZ3RoO04rPTgwKW0ucHVzaCh5LnNsaWNlKE4sTis4MCkpO3JldHVybiBkK190KFtbYCR7b30gfGAsbVswXV0sLi4ubS5zbGljZSgxLGcrMSkubWFwKE49PlsifCIsTl0pLFsifCIsIl4iLnBhZFN0YXJ0KGIpXSxbInwiLG1bZysxXV1dKX1yZXR1cm4gZCtfdChbW2Ake28tMX0gfGAsdVtyLTFdXSxbYCR7b30gfGAseV0sWyJ8IiwiXiIucGFkU3RhcnQoZildLFtgJHtvKzF9IHxgLHVbcisxXV1dKX1mdW5jdGlvbiBfdChlKXtjb25zdCB0PWUuZmlsdGVyKChbaSxyXSk9PnIhPT12b2lkIDApLG49TWF0aC5tYXgoLi4udC5tYXAoKFtpXSk9PmkubGVuZ3RoKSk7cmV0dXJuIHQubWFwKChbaSxyXSk9PmkucGFkU3RhcnQobikrKHI/IiAiK3I6IiIpKS5qb2luKGAKYCl9ZnVuY3Rpb24gVG4oZSl7Y29uc3QgdD1lWzBdO3JldHVybiB0PT1udWxsfHwia2luZCJpbiB0fHwibGVuZ3RoImluIHQ/e25vZGVzOnQsc291cmNlOmVbMV0scG9zaXRpb25zOmVbMl0scGF0aDplWzNdLG9yaWdpbmFsRXJyb3I6ZVs0XSxleHRlbnNpb25zOmVbNV19OnR9Y2xhc3MgSmUgZXh0ZW5kcyBFcnJvcntjb25zdHJ1Y3Rvcih0LC4uLm4pe3ZhciBpLHIscztjb25zdHtub2RlczpvLHNvdXJjZTpjLHBvc2l0aW9uczpmLHBhdGg6ZCxvcmlnaW5hbEVycm9yOnUsZXh0ZW5zaW9uczp5fT1UbihuKTtzdXBlcih0KSx0aGlzLm5hbWU9IkdyYXBoUUxFcnJvciIsdGhpcy5wYXRoPWQhPW51bGw/ZDp2b2lkIDAsdGhpcy5vcmlnaW5hbEVycm9yPXUhPW51bGw/dTp2b2lkIDAsdGhpcy5ub2Rlcz1UdChBcnJheS5pc0FycmF5KG8pP286bz9bb106dm9pZCAwKTtjb25zdCBnPVR0KChpPXRoaXMubm9kZXMpPT09bnVsbHx8aT09PXZvaWQgMD92b2lkIDA6aS5tYXAobT0+bS5sb2MpLmZpbHRlcihtPT5tIT1udWxsKSk7dGhpcy5zb3VyY2U9YyE9bnVsbD9jOmc9PW51bGx8fChyPWdbMF0pPT09bnVsbHx8cj09PXZvaWQgMD92b2lkIDA6ci5zb3VyY2UsdGhpcy5wb3NpdGlvbnM9ZiE9bnVsbD9mOmc9PW51bGw/dm9pZCAwOmcubWFwKG09Pm0uc3RhcnQpLHRoaXMubG9jYXRpb25zPWYmJmM/Zi5tYXAobT0+WWUoYyxtKSk6Zz09bnVsbD92b2lkIDA6Zy5tYXAobT0+WWUobS5zb3VyY2UsbS5zdGFydCkpO2NvbnN0IGI9dm4odT09bnVsbD92b2lkIDA6dS5leHRlbnNpb25zKT91PT1udWxsP3ZvaWQgMDp1LmV4dGVuc2lvbnM6dm9pZCAwO3RoaXMuZXh0ZW5zaW9ucz0ocz15IT1udWxsP3k6YikhPT1udWxsJiZzIT09dm9pZCAwP3M6T2JqZWN0LmNyZWF0ZShudWxsKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyh0aGlzLHttZXNzYWdlOnt3cml0YWJsZTohMCxlbnVtZXJhYmxlOiEwfSxuYW1lOntlbnVtZXJhYmxlOiExfSxub2Rlczp7ZW51bWVyYWJsZTohMX0sc291cmNlOntlbnVtZXJhYmxlOiExfSxwb3NpdGlvbnM6e2VudW1lcmFibGU6ITF9LG9yaWdpbmFsRXJyb3I6e2VudW1lcmFibGU6ITF9fSksdSE9bnVsbCYmdS5zdGFjaz9PYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic3RhY2siLHt2YWx1ZTp1LnN0YWNrLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pOkVycm9yLmNhcHR1cmVTdGFja1RyYWNlP0Vycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsSmUpOk9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJzdGFjayIse3ZhbHVlOkVycm9yKCkuc3RhY2ssd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSl9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iR3JhcGhRTEVycm9yIn10b1N0cmluZygpe2xldCB0PXRoaXMubWVzc2FnZTtpZih0aGlzLm5vZGVzKWZvcihjb25zdCBuIG9mIHRoaXMubm9kZXMpbi5sb2MmJih0Kz1gCgpgK19uKG4ubG9jKSk7ZWxzZSBpZih0aGlzLnNvdXJjZSYmdGhpcy5sb2NhdGlvbnMpZm9yKGNvbnN0IG4gb2YgdGhpcy5sb2NhdGlvbnMpdCs9YAoKYCtFdCh0aGlzLnNvdXJjZSxuKTtyZXR1cm4gdH10b0pTT04oKXtjb25zdCB0PXttZXNzYWdlOnRoaXMubWVzc2FnZX07cmV0dXJuIHRoaXMubG9jYXRpb25zIT1udWxsJiYodC5sb2NhdGlvbnM9dGhpcy5sb2NhdGlvbnMpLHRoaXMucGF0aCE9bnVsbCYmKHQucGF0aD10aGlzLnBhdGgpLHRoaXMuZXh0ZW5zaW9ucyE9bnVsbCYmT2JqZWN0LmtleXModGhpcy5leHRlbnNpb25zKS5sZW5ndGg+MCYmKHQuZXh0ZW5zaW9ucz10aGlzLmV4dGVuc2lvbnMpLHR9fWZ1bmN0aW9uIFR0KGUpe3JldHVybiBlPT09dm9pZCAwfHxlLmxlbmd0aD09PTA/dm9pZCAwOmV9ZnVuY3Rpb24gRyhlLHQsbil7cmV0dXJuIG5ldyBKZShgU3ludGF4IEVycm9yOiAke259YCx7c291cmNlOmUscG9zaXRpb25zOlt0XX0pfWNsYXNzIGJue2NvbnN0cnVjdG9yKHQsbixpKXt0aGlzLnN0YXJ0PXQuc3RhcnQsdGhpcy5lbmQ9bi5lbmQsdGhpcy5zdGFydFRva2VuPXQsdGhpcy5lbmRUb2tlbj1uLHRoaXMuc291cmNlPWl9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iTG9jYXRpb24ifXRvSlNPTigpe3JldHVybntzdGFydDp0aGlzLnN0YXJ0LGVuZDp0aGlzLmVuZH19fWNsYXNzIGJ0e2NvbnN0cnVjdG9yKHQsbixpLHIscyxvKXt0aGlzLmtpbmQ9dCx0aGlzLnN0YXJ0PW4sdGhpcy5lbmQ9aSx0aGlzLmxpbmU9cix0aGlzLmNvbHVtbj1zLHRoaXMudmFsdWU9byx0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbH1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJUb2tlbiJ9dG9KU09OKCl7cmV0dXJue2tpbmQ6dGhpcy5raW5kLHZhbHVlOnRoaXMudmFsdWUsbGluZTp0aGlzLmxpbmUsY29sdW1uOnRoaXMuY29sdW1ufX19Y29uc3QgTnQ9e05hbWU6W10sRG9jdW1lbnQ6WyJkZWZpbml0aW9ucyJdLE9wZXJhdGlvbkRlZmluaXRpb246WyJuYW1lIiwidmFyaWFibGVEZWZpbml0aW9ucyIsImRpcmVjdGl2ZXMiLCJzZWxlY3Rpb25TZXQiXSxWYXJpYWJsZURlZmluaXRpb246WyJ2YXJpYWJsZSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJkaXJlY3RpdmVzIl0sVmFyaWFibGU6WyJuYW1lIl0sU2VsZWN0aW9uU2V0Olsic2VsZWN0aW9ucyJdLEZpZWxkOlsiYWxpYXMiLCJuYW1lIiwiYXJndW1lbnRzIiwiZGlyZWN0aXZlcyIsInNlbGVjdGlvblNldCJdLEFyZ3VtZW50OlsibmFtZSIsInZhbHVlIl0sRnJhZ21lbnRTcHJlYWQ6WyJuYW1lIiwiZGlyZWN0aXZlcyJdLElubGluZUZyYWdtZW50OlsidHlwZUNvbmRpdGlvbiIsImRpcmVjdGl2ZXMiLCJzZWxlY3Rpb25TZXQiXSxGcmFnbWVudERlZmluaXRpb246WyJuYW1lIiwidmFyaWFibGVEZWZpbml0aW9ucyIsInR5cGVDb25kaXRpb24iLCJkaXJlY3RpdmVzIiwic2VsZWN0aW9uU2V0Il0sSW50VmFsdWU6W10sRmxvYXRWYWx1ZTpbXSxTdHJpbmdWYWx1ZTpbXSxCb29sZWFuVmFsdWU6W10sTnVsbFZhbHVlOltdLEVudW1WYWx1ZTpbXSxMaXN0VmFsdWU6WyJ2YWx1ZXMiXSxPYmplY3RWYWx1ZTpbImZpZWxkcyJdLE9iamVjdEZpZWxkOlsibmFtZSIsInZhbHVlIl0sRGlyZWN0aXZlOlsibmFtZSIsImFyZ3VtZW50cyJdLE5hbWVkVHlwZTpbIm5hbWUiXSxMaXN0VHlwZTpbInR5cGUiXSxOb25OdWxsVHlwZTpbInR5cGUiXSxTY2hlbWFEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJkaXJlY3RpdmVzIiwib3BlcmF0aW9uVHlwZXMiXSxPcGVyYXRpb25UeXBlRGVmaW5pdGlvbjpbInR5cGUiXSxTY2FsYXJUeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiXSxPYmplY3RUeXBlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sRmllbGREZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiYXJndW1lbnRzIiwidHlwZSIsImRpcmVjdGl2ZXMiXSxJbnB1dFZhbHVlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJkaXJlY3RpdmVzIl0sSW50ZXJmYWNlVHlwZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJpbnRlcmZhY2VzIiwiZGlyZWN0aXZlcyIsImZpZWxkcyJdLFVuaW9uVHlwZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJkaXJlY3RpdmVzIiwidHlwZXMiXSxFbnVtVHlwZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJkaXJlY3RpdmVzIiwidmFsdWVzIl0sRW51bVZhbHVlRGVmaW5pdGlvbjpbImRlc2NyaXB0aW9uIiwibmFtZSIsImRpcmVjdGl2ZXMiXSxJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uOlsiZGVzY3JpcHRpb24iLCJuYW1lIiwiZGlyZWN0aXZlcyIsImZpZWxkcyJdLERpcmVjdGl2ZURlZmluaXRpb246WyJkZXNjcmlwdGlvbiIsIm5hbWUiLCJhcmd1bWVudHMiLCJsb2NhdGlvbnMiXSxTY2hlbWFFeHRlbnNpb246WyJkaXJlY3RpdmVzIiwib3BlcmF0aW9uVHlwZXMiXSxTY2FsYXJUeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiXSxPYmplY3RUeXBlRXh0ZW5zaW9uOlsibmFtZSIsImludGVyZmFjZXMiLCJkaXJlY3RpdmVzIiwiZmllbGRzIl0sSW50ZXJmYWNlVHlwZUV4dGVuc2lvbjpbIm5hbWUiLCJpbnRlcmZhY2VzIiwiZGlyZWN0aXZlcyIsImZpZWxkcyJdLFVuaW9uVHlwZUV4dGVuc2lvbjpbIm5hbWUiLCJkaXJlY3RpdmVzIiwidHlwZXMiXSxFbnVtVHlwZUV4dGVuc2lvbjpbIm5hbWUiLCJkaXJlY3RpdmVzIiwidmFsdWVzIl0sSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uOlsibmFtZSIsImRpcmVjdGl2ZXMiLCJmaWVsZHMiXX0sTm49bmV3IFNldChPYmplY3Qua2V5cyhOdCkpO2Z1bmN0aW9uIHh0KGUpe2NvbnN0IHQ9ZT09bnVsbD92b2lkIDA6ZS5raW5kO3JldHVybiB0eXBlb2YgdD09InN0cmluZyImJk5uLmhhcyh0KX12YXIgbGU7KGZ1bmN0aW9uKGUpe2UuUVVFUlk9InF1ZXJ5IixlLk1VVEFUSU9OPSJtdXRhdGlvbiIsZS5TVUJTQ1JJUFRJT049InN1YnNjcmlwdGlvbiJ9KShsZXx8KGxlPXt9KSk7dmFyIFFlOyhmdW5jdGlvbihlKXtlLlFVRVJZPSJRVUVSWSIsZS5NVVRBVElPTj0iTVVUQVRJT04iLGUuU1VCU0NSSVBUSU9OPSJTVUJTQ1JJUFRJT04iLGUuRklFTEQ9IkZJRUxEIixlLkZSQUdNRU5UX0RFRklOSVRJT049IkZSQUdNRU5UX0RFRklOSVRJT04iLGUuRlJBR01FTlRfU1BSRUFEPSJGUkFHTUVOVF9TUFJFQUQiLGUuSU5MSU5FX0ZSQUdNRU5UPSJJTkxJTkVfRlJBR01FTlQiLGUuVkFSSUFCTEVfREVGSU5JVElPTj0iVkFSSUFCTEVfREVGSU5JVElPTiIsZS5TQ0hFTUE9IlNDSEVNQSIsZS5TQ0FMQVI9IlNDQUxBUiIsZS5PQkpFQ1Q9Ik9CSkVDVCIsZS5GSUVMRF9ERUZJTklUSU9OPSJGSUVMRF9ERUZJTklUSU9OIixlLkFSR1VNRU5UX0RFRklOSVRJT049IkFSR1VNRU5UX0RFRklOSVRJT04iLGUuSU5URVJGQUNFPSJJTlRFUkZBQ0UiLGUuVU5JT049IlVOSU9OIixlLkVOVU09IkVOVU0iLGUuRU5VTV9WQUxVRT0iRU5VTV9WQUxVRSIsZS5JTlBVVF9PQkpFQ1Q9IklOUFVUX09CSkVDVCIsZS5JTlBVVF9GSUVMRF9ERUZJTklUSU9OPSJJTlBVVF9GSUVMRF9ERUZJTklUSU9OIn0pKFFlfHwoUWU9e30pKTt2YXIgVDsoZnVuY3Rpb24oZSl7ZS5OQU1FPSJOYW1lIixlLkRPQ1VNRU5UPSJEb2N1bWVudCIsZS5PUEVSQVRJT05fREVGSU5JVElPTj0iT3BlcmF0aW9uRGVmaW5pdGlvbiIsZS5WQVJJQUJMRV9ERUZJTklUSU9OPSJWYXJpYWJsZURlZmluaXRpb24iLGUuU0VMRUNUSU9OX1NFVD0iU2VsZWN0aW9uU2V0IixlLkZJRUxEPSJGaWVsZCIsZS5BUkdVTUVOVD0iQXJndW1lbnQiLGUuRlJBR01FTlRfU1BSRUFEPSJGcmFnbWVudFNwcmVhZCIsZS5JTkxJTkVfRlJBR01FTlQ9IklubGluZUZyYWdtZW50IixlLkZSQUdNRU5UX0RFRklOSVRJT049IkZyYWdtZW50RGVmaW5pdGlvbiIsZS5WQVJJQUJMRT0iVmFyaWFibGUiLGUuSU5UPSJJbnRWYWx1ZSIsZS5GTE9BVD0iRmxvYXRWYWx1ZSIsZS5TVFJJTkc9IlN0cmluZ1ZhbHVlIixlLkJPT0xFQU49IkJvb2xlYW5WYWx1ZSIsZS5OVUxMPSJOdWxsVmFsdWUiLGUuRU5VTT0iRW51bVZhbHVlIixlLkxJU1Q9Ikxpc3RWYWx1ZSIsZS5PQkpFQ1Q9Ik9iamVjdFZhbHVlIixlLk9CSkVDVF9GSUVMRD0iT2JqZWN0RmllbGQiLGUuRElSRUNUSVZFPSJEaXJlY3RpdmUiLGUuTkFNRURfVFlQRT0iTmFtZWRUeXBlIixlLkxJU1RfVFlQRT0iTGlzdFR5cGUiLGUuTk9OX05VTExfVFlQRT0iTm9uTnVsbFR5cGUiLGUuU0NIRU1BX0RFRklOSVRJT049IlNjaGVtYURlZmluaXRpb24iLGUuT1BFUkFUSU9OX1RZUEVfREVGSU5JVElPTj0iT3BlcmF0aW9uVHlwZURlZmluaXRpb24iLGUuU0NBTEFSX1RZUEVfREVGSU5JVElPTj0iU2NhbGFyVHlwZURlZmluaXRpb24iLGUuT0JKRUNUX1RZUEVfREVGSU5JVElPTj0iT2JqZWN0VHlwZURlZmluaXRpb24iLGUuRklFTERfREVGSU5JVElPTj0iRmllbGREZWZpbml0aW9uIixlLklOUFVUX1ZBTFVFX0RFRklOSVRJT049IklucHV0VmFsdWVEZWZpbml0aW9uIixlLklOVEVSRkFDRV9UWVBFX0RFRklOSVRJT049IkludGVyZmFjZVR5cGVEZWZpbml0aW9uIixlLlVOSU9OX1RZUEVfREVGSU5JVElPTj0iVW5pb25UeXBlRGVmaW5pdGlvbiIsZS5FTlVNX1RZUEVfREVGSU5JVElPTj0iRW51bVR5cGVEZWZpbml0aW9uIixlLkVOVU1fVkFMVUVfREVGSU5JVElPTj0iRW51bVZhbHVlRGVmaW5pdGlvbiIsZS5JTlBVVF9PQkpFQ1RfVFlQRV9ERUZJTklUSU9OPSJJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uIixlLkRJUkVDVElWRV9ERUZJTklUSU9OPSJEaXJlY3RpdmVEZWZpbml0aW9uIixlLlNDSEVNQV9FWFRFTlNJT049IlNjaGVtYUV4dGVuc2lvbiIsZS5TQ0FMQVJfVFlQRV9FWFRFTlNJT049IlNjYWxhclR5cGVFeHRlbnNpb24iLGUuT0JKRUNUX1RZUEVfRVhURU5TSU9OPSJPYmplY3RUeXBlRXh0ZW5zaW9uIixlLklOVEVSRkFDRV9UWVBFX0VYVEVOU0lPTj0iSW50ZXJmYWNlVHlwZUV4dGVuc2lvbiIsZS5VTklPTl9UWVBFX0VYVEVOU0lPTj0iVW5pb25UeXBlRXh0ZW5zaW9uIixlLkVOVU1fVFlQRV9FWFRFTlNJT049IkVudW1UeXBlRXh0ZW5zaW9uIixlLklOUFVUX09CSkVDVF9UWVBFX0VYVEVOU0lPTj0iSW5wdXRPYmplY3RUeXBlRXh0ZW5zaW9uIn0pKFR8fChUPXt9KSk7ZnVuY3Rpb24gWGUoZSl7cmV0dXJuIGU9PT05fHxlPT09MzJ9ZnVuY3Rpb24gTmUoZSl7cmV0dXJuIGU+PTQ4JiZlPD01N31mdW5jdGlvbiBBdChlKXtyZXR1cm4gZT49OTcmJmU8PTEyMnx8ZT49NjUmJmU8PTkwfWZ1bmN0aW9uIEl0KGUpe3JldHVybiBBdChlKXx8ZT09PTk1fWZ1bmN0aW9uIHhuKGUpe3JldHVybiBBdChlKXx8TmUoZSl8fGU9PT05NX1mdW5jdGlvbiBBbihlKXt2YXIgdDtsZXQgbj1OdW1iZXIuTUFYX1NBRkVfSU5URUdFUixpPW51bGwscj0tMTtmb3IobGV0IG89MDtvPGUubGVuZ3RoOysrbyl7dmFyIHM7Y29uc3QgYz1lW29dLGY9SW4oYyk7ZiE9PWMubGVuZ3RoJiYoaT0ocz1pKSE9PW51bGwmJnMhPT12b2lkIDA/czpvLHI9byxvIT09MCYmZjxuJiYobj1mKSl9cmV0dXJuIGUubWFwKChvLGMpPT5jPT09MD9vOm8uc2xpY2UobikpLnNsaWNlKCh0PWkpIT09bnVsbCYmdCE9PXZvaWQgMD90OjAscisxKX1mdW5jdGlvbiBJbihlKXtsZXQgdD0wO2Zvcig7dDxlLmxlbmd0aCYmWGUoZS5jaGFyQ29kZUF0KHQpKTspKyt0O3JldHVybiB0fWZ1bmN0aW9uIE9uKGUsdCl7Y29uc3Qgbj1lLnJlcGxhY2UoLyIiIi9nLCdcXCIiIicpLGk9bi5zcGxpdCgvXHJcbnxbXG5ccl0vZykscj1pLmxlbmd0aD09PTEscz1pLmxlbmd0aD4xJiZpLnNsaWNlKDEpLmV2ZXJ5KGI9PmIubGVuZ3RoPT09MHx8WGUoYi5jaGFyQ29kZUF0KDApKSksbz1uLmVuZHNXaXRoKCdcXCIiIicpLGM9ZS5lbmRzV2l0aCgnIicpJiYhbyxmPWUuZW5kc1dpdGgoIlxcIiksZD1jfHxmLHU9IXJ8fGUubGVuZ3RoPjcwfHxkfHxzfHxvO2xldCB5PSIiO2NvbnN0IGc9ciYmWGUoZS5jaGFyQ29kZUF0KDApKTtyZXR1cm4odSYmIWd8fHMpJiYoeSs9YApgKSx5Kz1uLCh1fHxkKSYmKHkrPWAKYCksJyIiIicreSsnIiIiJ312YXIgbDsoZnVuY3Rpb24oZSl7ZS5TT0Y9IjxTT0Y+IixlLkVPRj0iPEVPRj4iLGUuQkFORz0iISIsZS5ET0xMQVI9IiQiLGUuQU1QPSImIixlLlBBUkVOX0w9IigiLGUuUEFSRU5fUj0iKSIsZS5TUFJFQUQ9Ii4uLiIsZS5DT0xPTj0iOiIsZS5FUVVBTFM9Ij0iLGUuQVQ9IkAiLGUuQlJBQ0tFVF9MPSJbIixlLkJSQUNLRVRfUj0iXSIsZS5CUkFDRV9MPSJ7IixlLlBJUEU9InwiLGUuQlJBQ0VfUj0ifSIsZS5OQU1FPSJOYW1lIixlLklOVD0iSW50IixlLkZMT0FUPSJGbG9hdCIsZS5TVFJJTkc9IlN0cmluZyIsZS5CTE9DS19TVFJJTkc9IkJsb2NrU3RyaW5nIixlLkNPTU1FTlQ9IkNvbW1lbnQifSkobHx8KGw9e30pKTtjbGFzcyBTbntjb25zdHJ1Y3Rvcih0KXtjb25zdCBuPW5ldyBidChsLlNPRiwwLDAsMCwwKTt0aGlzLnNvdXJjZT10LHRoaXMubGFzdFRva2VuPW4sdGhpcy50b2tlbj1uLHRoaXMubGluZT0xLHRoaXMubGluZVN0YXJ0PTB9Z2V0W1N5bWJvbC50b1N0cmluZ1RhZ10oKXtyZXR1cm4iTGV4ZXIifWFkdmFuY2UoKXtyZXR1cm4gdGhpcy5sYXN0VG9rZW49dGhpcy50b2tlbix0aGlzLnRva2VuPXRoaXMubG9va2FoZWFkKCl9bG9va2FoZWFkKCl7bGV0IHQ9dGhpcy50b2tlbjtpZih0LmtpbmQhPT1sLkVPRilkbyBpZih0Lm5leHQpdD10Lm5leHQ7ZWxzZXtjb25zdCBuPURuKHRoaXMsdC5lbmQpO3QubmV4dD1uLG4ucHJldj10LHQ9bn13aGlsZSh0LmtpbmQ9PT1sLkNPTU1FTlQpO3JldHVybiB0fX1mdW5jdGlvbiB3bihlKXtyZXR1cm4gZT09PWwuQkFOR3x8ZT09PWwuRE9MTEFSfHxlPT09bC5BTVB8fGU9PT1sLlBBUkVOX0x8fGU9PT1sLlBBUkVOX1J8fGU9PT1sLlNQUkVBRHx8ZT09PWwuQ09MT058fGU9PT1sLkVRVUFMU3x8ZT09PWwuQVR8fGU9PT1sLkJSQUNLRVRfTHx8ZT09PWwuQlJBQ0tFVF9SfHxlPT09bC5CUkFDRV9MfHxlPT09bC5QSVBFfHxlPT09bC5CUkFDRV9SfWZ1bmN0aW9uIGZlKGUpe3JldHVybiBlPj0wJiZlPD01NTI5NXx8ZT49NTczNDQmJmU8PTExMTQxMTF9ZnVuY3Rpb24gd2UoZSx0KXtyZXR1cm4gT3QoZS5jaGFyQ29kZUF0KHQpKSYmU3QoZS5jaGFyQ29kZUF0KHQrMSkpfWZ1bmN0aW9uIE90KGUpe3JldHVybiBlPj01NTI5NiYmZTw9NTYzMTl9ZnVuY3Rpb24gU3QoZSl7cmV0dXJuIGU+PTU2MzIwJiZlPD01NzM0M31mdW5jdGlvbiBhZShlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keS5jb2RlUG9pbnRBdCh0KTtpZihuPT09dm9pZCAwKXJldHVybiBsLkVPRjtpZihuPj0zMiYmbjw9MTI2KXtjb25zdCBpPVN0cmluZy5mcm9tQ29kZVBvaW50KG4pO3JldHVybiBpPT09JyInP2AnIidgOmAiJHtpfSJgfXJldHVybiJVKyIrbi50b1N0cmluZygxNikudG9VcHBlckNhc2UoKS5wYWRTdGFydCg0LCIwIil9ZnVuY3Rpb24gVihlLHQsbixpLHIpe2NvbnN0IHM9ZS5saW5lLG89MStuLWUubGluZVN0YXJ0O3JldHVybiBuZXcgYnQodCxuLGkscyxvLHIpfWZ1bmN0aW9uIERuKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9dDtmb3IoO3I8aTspe2NvbnN0IHM9bi5jaGFyQ29kZUF0KHIpO3N3aXRjaChzKXtjYXNlIDY1Mjc5OmNhc2UgOTpjYXNlIDMyOmNhc2UgNDQ6KytyO2NvbnRpbnVlO2Nhc2UgMTA6KytyLCsrZS5saW5lLGUubGluZVN0YXJ0PXI7Y29udGludWU7Y2FzZSAxMzpuLmNoYXJDb2RlQXQocisxKT09PTEwP3IrPTI6KytyLCsrZS5saW5lLGUubGluZVN0YXJ0PXI7Y29udGludWU7Y2FzZSAzNTpyZXR1cm4gQ24oZSxyKTtjYXNlIDMzOnJldHVybiBWKGUsbC5CQU5HLHIscisxKTtjYXNlIDM2OnJldHVybiBWKGUsbC5ET0xMQVIscixyKzEpO2Nhc2UgMzg6cmV0dXJuIFYoZSxsLkFNUCxyLHIrMSk7Y2FzZSA0MDpyZXR1cm4gVihlLGwuUEFSRU5fTCxyLHIrMSk7Y2FzZSA0MTpyZXR1cm4gVihlLGwuUEFSRU5fUixyLHIrMSk7Y2FzZSA0NjppZihuLmNoYXJDb2RlQXQocisxKT09PTQ2JiZuLmNoYXJDb2RlQXQocisyKT09PTQ2KXJldHVybiBWKGUsbC5TUFJFQUQscixyKzMpO2JyZWFrO2Nhc2UgNTg6cmV0dXJuIFYoZSxsLkNPTE9OLHIscisxKTtjYXNlIDYxOnJldHVybiBWKGUsbC5FUVVBTFMscixyKzEpO2Nhc2UgNjQ6cmV0dXJuIFYoZSxsLkFULHIscisxKTtjYXNlIDkxOnJldHVybiBWKGUsbC5CUkFDS0VUX0wscixyKzEpO2Nhc2UgOTM6cmV0dXJuIFYoZSxsLkJSQUNLRVRfUixyLHIrMSk7Y2FzZSAxMjM6cmV0dXJuIFYoZSxsLkJSQUNFX0wscixyKzEpO2Nhc2UgMTI0OnJldHVybiBWKGUsbC5QSVBFLHIscisxKTtjYXNlIDEyNTpyZXR1cm4gVihlLGwuQlJBQ0VfUixyLHIrMSk7Y2FzZSAzNDpyZXR1cm4gbi5jaGFyQ29kZUF0KHIrMSk9PT0zNCYmbi5jaGFyQ29kZUF0KHIrMik9PT0zND9CbihlLHIpOlJuKGUscil9aWYoTmUocyl8fHM9PT00NSlyZXR1cm4ga24oZSxyLHMpO2lmKEl0KHMpKXJldHVybiAkbihlLHIpO3Rocm93IEcoZS5zb3VyY2UscixzPT09Mzk/YFVuZXhwZWN0ZWQgc2luZ2xlIHF1b3RlIGNoYXJhY3RlciAoJyksIGRpZCB5b3UgbWVhbiB0byB1c2UgYSBkb3VibGUgcXVvdGUgKCIpP2A6ZmUocyl8fHdlKG4scik/YFVuZXhwZWN0ZWQgY2hhcmFjdGVyOiAke2FlKGUscil9LmA6YEludmFsaWQgY2hhcmFjdGVyOiAke2FlKGUscil9LmApfXJldHVybiBWKGUsbC5FT0YsaSxpKX1mdW5jdGlvbiBDbihlLHQpe2NvbnN0IG49ZS5zb3VyY2UuYm9keSxpPW4ubGVuZ3RoO2xldCByPXQrMTtmb3IoO3I8aTspe2NvbnN0IHM9bi5jaGFyQ29kZUF0KHIpO2lmKHM9PT0xMHx8cz09PTEzKWJyZWFrO2lmKGZlKHMpKSsrcjtlbHNlIGlmKHdlKG4scikpcis9MjtlbHNlIGJyZWFrfXJldHVybiBWKGUsbC5DT01NRU5ULHQscixuLnNsaWNlKHQrMSxyKSl9ZnVuY3Rpb24ga24oZSx0LG4pe2NvbnN0IGk9ZS5zb3VyY2UuYm9keTtsZXQgcj10LHM9bixvPSExO2lmKHM9PT00NSYmKHM9aS5jaGFyQ29kZUF0KCsrcikpLHM9PT00OCl7aWYocz1pLmNoYXJDb2RlQXQoKytyKSxOZShzKSl0aHJvdyBHKGUuc291cmNlLHIsYEludmFsaWQgbnVtYmVyLCB1bmV4cGVjdGVkIGRpZ2l0IGFmdGVyIDA6ICR7YWUoZSxyKX0uYCl9ZWxzZSByPVdlKGUscixzKSxzPWkuY2hhckNvZGVBdChyKTtpZihzPT09NDYmJihvPSEwLHM9aS5jaGFyQ29kZUF0KCsrcikscj1XZShlLHIscykscz1pLmNoYXJDb2RlQXQocikpLChzPT09Njl8fHM9PT0xMDEpJiYobz0hMCxzPWkuY2hhckNvZGVBdCgrK3IpLChzPT09NDN8fHM9PT00NSkmJihzPWkuY2hhckNvZGVBdCgrK3IpKSxyPVdlKGUscixzKSxzPWkuY2hhckNvZGVBdChyKSkscz09PTQ2fHxJdChzKSl0aHJvdyBHKGUuc291cmNlLHIsYEludmFsaWQgbnVtYmVyLCBleHBlY3RlZCBkaWdpdCBidXQgZ290OiAke2FlKGUscil9LmApO3JldHVybiBWKGUsbz9sLkZMT0FUOmwuSU5ULHQscixpLnNsaWNlKHQscikpfWZ1bmN0aW9uIFdlKGUsdCxuKXtpZighTmUobikpdGhyb3cgRyhlLnNvdXJjZSx0LGBJbnZhbGlkIG51bWJlciwgZXhwZWN0ZWQgZGlnaXQgYnV0IGdvdDogJHthZShlLHQpfS5gKTtjb25zdCBpPWUuc291cmNlLmJvZHk7bGV0IHI9dCsxO2Zvcig7TmUoaS5jaGFyQ29kZUF0KHIpKTspKytyO3JldHVybiByfWZ1bmN0aW9uIFJuKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9dCsxLHM9cixvPSIiO2Zvcig7cjxpOyl7Y29uc3QgYz1uLmNoYXJDb2RlQXQocik7aWYoYz09PTM0KXJldHVybiBvKz1uLnNsaWNlKHMsciksVihlLGwuU1RSSU5HLHQscisxLG8pO2lmKGM9PT05Mil7bys9bi5zbGljZShzLHIpO2NvbnN0IGY9bi5jaGFyQ29kZUF0KHIrMSk9PT0xMTc/bi5jaGFyQ29kZUF0KHIrMik9PT0xMjM/TG4oZSxyKTpQbihlLHIpOkZuKGUscik7bys9Zi52YWx1ZSxyKz1mLnNpemUscz1yO2NvbnRpbnVlfWlmKGM9PT0xMHx8Yz09PTEzKWJyZWFrO2lmKGZlKGMpKSsrcjtlbHNlIGlmKHdlKG4scikpcis9MjtlbHNlIHRocm93IEcoZS5zb3VyY2UscixgSW52YWxpZCBjaGFyYWN0ZXIgd2l0aGluIFN0cmluZzogJHthZShlLHIpfS5gKX10aHJvdyBHKGUuc291cmNlLHIsIlVudGVybWluYXRlZCBzdHJpbmcuIil9ZnVuY3Rpb24gTG4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHk7bGV0IGk9MCxyPTM7Zm9yKDtyPDEyOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQodCtyKyspO2lmKHM9PT0xMjUpe2lmKHI8NXx8IWZlKGkpKWJyZWFrO3JldHVybnt2YWx1ZTpTdHJpbmcuZnJvbUNvZGVQb2ludChpKSxzaXplOnJ9fWlmKGk9aTw8NHx4ZShzKSxpPDApYnJlYWt9dGhyb3cgRyhlLnNvdXJjZSx0LGBJbnZhbGlkIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlOiAiJHtuLnNsaWNlKHQsdCtyKX0iLmApfWZ1bmN0aW9uIFBuKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9d3Qobix0KzIpO2lmKGZlKGkpKXJldHVybnt2YWx1ZTpTdHJpbmcuZnJvbUNvZGVQb2ludChpKSxzaXplOjZ9O2lmKE90KGkpJiZuLmNoYXJDb2RlQXQodCs2KT09PTkyJiZuLmNoYXJDb2RlQXQodCs3KT09PTExNyl7Y29uc3Qgcj13dChuLHQrOCk7aWYoU3QocikpcmV0dXJue3ZhbHVlOlN0cmluZy5mcm9tQ29kZVBvaW50KGksciksc2l6ZToxMn19dGhyb3cgRyhlLnNvdXJjZSx0LGBJbnZhbGlkIFVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlOiAiJHtuLnNsaWNlKHQsdCs2KX0iLmApfWZ1bmN0aW9uIHd0KGUsdCl7cmV0dXJuIHhlKGUuY2hhckNvZGVBdCh0KSk8PDEyfHhlKGUuY2hhckNvZGVBdCh0KzEpKTw8OHx4ZShlLmNoYXJDb2RlQXQodCsyKSk8PDR8eGUoZS5jaGFyQ29kZUF0KHQrMykpfWZ1bmN0aW9uIHhlKGUpe3JldHVybiBlPj00OCYmZTw9NTc/ZS00ODplPj02NSYmZTw9NzA/ZS01NTplPj05NyYmZTw9MTAyP2UtODc6LTF9ZnVuY3Rpb24gRm4oZSx0KXtjb25zdCBuPWUuc291cmNlLmJvZHk7c3dpdGNoKG4uY2hhckNvZGVBdCh0KzEpKXtjYXNlIDM0OnJldHVybnt2YWx1ZTonIicsc2l6ZToyfTtjYXNlIDkyOnJldHVybnt2YWx1ZToiXFwiLHNpemU6Mn07Y2FzZSA0NzpyZXR1cm57dmFsdWU6Ii8iLHNpemU6Mn07Y2FzZSA5ODpyZXR1cm57dmFsdWU6IlxiIixzaXplOjJ9O2Nhc2UgMTAyOnJldHVybnt2YWx1ZToiXGYiLHNpemU6Mn07Y2FzZSAxMTA6cmV0dXJue3ZhbHVlOmAKYCxzaXplOjJ9O2Nhc2UgMTE0OnJldHVybnt2YWx1ZToiXHIiLHNpemU6Mn07Y2FzZSAxMTY6cmV0dXJue3ZhbHVlOiIJIixzaXplOjJ9fXRocm93IEcoZS5zb3VyY2UsdCxgSW52YWxpZCBjaGFyYWN0ZXIgZXNjYXBlIHNlcXVlbmNlOiAiJHtuLnNsaWNlKHQsdCsyKX0iLmApfWZ1bmN0aW9uIEJuKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9ZS5saW5lU3RhcnQscz10KzMsbz1zLGM9IiI7Y29uc3QgZj1bXTtmb3IoO3M8aTspe2NvbnN0IGQ9bi5jaGFyQ29kZUF0KHMpO2lmKGQ9PT0zNCYmbi5jaGFyQ29kZUF0KHMrMSk9PT0zNCYmbi5jaGFyQ29kZUF0KHMrMik9PT0zNCl7Yys9bi5zbGljZShvLHMpLGYucHVzaChjKTtjb25zdCB1PVYoZSxsLkJMT0NLX1NUUklORyx0LHMrMyxBbihmKS5qb2luKGAKYCkpO3JldHVybiBlLmxpbmUrPWYubGVuZ3RoLTEsZS5saW5lU3RhcnQ9cix1fWlmKGQ9PT05MiYmbi5jaGFyQ29kZUF0KHMrMSk9PT0zNCYmbi5jaGFyQ29kZUF0KHMrMik9PT0zNCYmbi5jaGFyQ29kZUF0KHMrMyk9PT0zNCl7Yys9bi5zbGljZShvLHMpLG89cysxLHMrPTQ7Y29udGludWV9aWYoZD09PTEwfHxkPT09MTMpe2MrPW4uc2xpY2UobyxzKSxmLnB1c2goYyksZD09PTEzJiZuLmNoYXJDb2RlQXQocysxKT09PTEwP3MrPTI6KytzLGM9IiIsbz1zLHI9cztjb250aW51ZX1pZihmZShkKSkrK3M7ZWxzZSBpZih3ZShuLHMpKXMrPTI7ZWxzZSB0aHJvdyBHKGUuc291cmNlLHMsYEludmFsaWQgY2hhcmFjdGVyIHdpdGhpbiBTdHJpbmc6ICR7YWUoZSxzKX0uYCl9dGhyb3cgRyhlLnNvdXJjZSxzLCJVbnRlcm1pbmF0ZWQgc3RyaW5nLiIpfWZ1bmN0aW9uICRuKGUsdCl7Y29uc3Qgbj1lLnNvdXJjZS5ib2R5LGk9bi5sZW5ndGg7bGV0IHI9dCsxO2Zvcig7cjxpOyl7Y29uc3Qgcz1uLmNoYXJDb2RlQXQocik7aWYoeG4ocykpKytyO2Vsc2UgYnJlYWt9cmV0dXJuIFYoZSxsLk5BTUUsdCxyLG4uc2xpY2UodCxyKSl9Y29uc3QgTW49MTAsRHQ9MjtmdW5jdGlvbiBaZShlKXtyZXR1cm4gRGUoZSxbXSl9ZnVuY3Rpb24gRGUoZSx0KXtzd2l0Y2godHlwZW9mIGUpe2Nhc2Uic3RyaW5nIjpyZXR1cm4gSlNPTi5zdHJpbmdpZnkoZSk7Y2FzZSJmdW5jdGlvbiI6cmV0dXJuIGUubmFtZT9gW2Z1bmN0aW9uICR7ZS5uYW1lfV1gOiJbZnVuY3Rpb25dIjtjYXNlIm9iamVjdCI6cmV0dXJuIFVuKGUsdCk7ZGVmYXVsdDpyZXR1cm4gU3RyaW5nKGUpfX1mdW5jdGlvbiBVbihlLHQpe2lmKGU9PT1udWxsKXJldHVybiJudWxsIjtpZih0LmluY2x1ZGVzKGUpKXJldHVybiJbQ2lyY3VsYXJdIjtjb25zdCBuPVsuLi50LGVdO2lmKFZuKGUpKXtjb25zdCBpPWUudG9KU09OKCk7aWYoaSE9PWUpcmV0dXJuIHR5cGVvZiBpPT0ic3RyaW5nIj9pOkRlKGksbil9ZWxzZSBpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBxbihlLG4pO3JldHVybiBqbihlLG4pfWZ1bmN0aW9uIFZuKGUpe3JldHVybiB0eXBlb2YgZS50b0pTT049PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gam4oZSx0KXtjb25zdCBuPU9iamVjdC5lbnRyaWVzKGUpO3JldHVybiBuLmxlbmd0aD09PTA/Int9Ijp0Lmxlbmd0aD5EdD8iWyIrR24oZSkrIl0iOiJ7ICIrbi5tYXAoKFtyLHNdKT0+cisiOiAiK0RlKHMsdCkpLmpvaW4oIiwgIikrIiB9In1mdW5jdGlvbiBxbihlLHQpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4iW10iO2lmKHQubGVuZ3RoPkR0KXJldHVybiJbQXJyYXldIjtjb25zdCBuPU1hdGgubWluKE1uLGUubGVuZ3RoKSxpPWUubGVuZ3RoLW4scj1bXTtmb3IobGV0IHM9MDtzPG47KytzKXIucHVzaChEZShlW3NdLHQpKTtyZXR1cm4gaT09PTE/ci5wdXNoKCIuLi4gMSBtb3JlIGl0ZW0iKTppPjEmJnIucHVzaChgLi4uICR7aX0gbW9yZSBpdGVtc2ApLCJbIityLmpvaW4oIiwgIikrIl0ifWZ1bmN0aW9uIEduKGUpe2NvbnN0IHQ9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpLnJlcGxhY2UoL15cW29iamVjdCAvLCIiKS5yZXBsYWNlKC9dJC8sIiIpO2lmKHQ9PT0iT2JqZWN0IiYmdHlwZW9mIGUuY29uc3RydWN0b3I9PSJmdW5jdGlvbiIpe2NvbnN0IG49ZS5jb25zdHJ1Y3Rvci5uYW1lO2lmKHR5cGVvZiBuPT0ic3RyaW5nIiYmbiE9PSIiKXJldHVybiBufXJldHVybiB0fWNvbnN0IEhuPWdsb2JhbFRoaXMucHJvY2VzcyYmZ2xvYmFsVGhpcy5wcm9jZXNzLmVudi5OT0RFX0VOVj09PSJwcm9kdWN0aW9uIj9mdW5jdGlvbih0LG4pe3JldHVybiB0IGluc3RhbmNlb2Ygbn06ZnVuY3Rpb24odCxuKXtpZih0IGluc3RhbmNlb2YgbilyZXR1cm4hMDtpZih0eXBlb2YgdD09Im9iamVjdCImJnQhPT1udWxsKXt2YXIgaTtjb25zdCByPW4ucHJvdG90eXBlW1N5bWJvbC50b1N0cmluZ1RhZ10scz1TeW1ib2wudG9TdHJpbmdUYWcgaW4gdD90W1N5bWJvbC50b1N0cmluZ1RhZ106KGk9dC5jb25zdHJ1Y3Rvcik9PT1udWxsfHxpPT09dm9pZCAwP3ZvaWQgMDppLm5hbWU7aWYocj09PXMpe2NvbnN0IG89WmUodCk7dGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgdXNlICR7cn0gIiR7b30iIGZyb20gYW5vdGhlciBtb2R1bGUgb3IgcmVhbG0uCgpFbnN1cmUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBpbnN0YW5jZSBvZiAiZ3JhcGhxbCIgaW4gdGhlIG5vZGVfbW9kdWxlcwpkaXJlY3RvcnkuIElmIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiAiZ3JhcGhxbCIgYXJlIHRoZSBkZXBlbmRlbmNpZXMgb2Ygb3RoZXIKcmVsaWVkIG9uIG1vZHVsZXMsIHVzZSAicmVzb2x1dGlvbnMiIHRvIGVuc3VyZSBvbmx5IG9uZSB2ZXJzaW9uIGlzIGluc3RhbGxlZC4KCmh0dHBzOi8veWFybnBrZy5jb20vZW4vZG9jcy9zZWxlY3RpdmUtdmVyc2lvbi1yZXNvbHV0aW9ucwoKRHVwbGljYXRlICJncmFwaHFsIiBtb2R1bGVzIGNhbm5vdCBiZSB1c2VkIGF0IHRoZSBzYW1lIHRpbWUgc2luY2UgZGlmZmVyZW50CnZlcnNpb25zIG1heSBoYXZlIGRpZmZlcmVudCBjYXBhYmlsaXRpZXMgYW5kIGJlaGF2aW9yLiBUaGUgZGF0YSBmcm9tIG9uZQp2ZXJzaW9uIHVzZWQgaW4gdGhlIGZ1bmN0aW9uIGZyb20gYW5vdGhlciBjb3VsZCBwcm9kdWNlIGNvbmZ1c2luZyBhbmQKc3B1cmlvdXMgcmVzdWx0cy5gKX19cmV0dXJuITF9O2NsYXNzIEN0e2NvbnN0cnVjdG9yKHQsbj0iR3JhcGhRTCByZXF1ZXN0IixpPXtsaW5lOjEsY29sdW1uOjF9KXt0eXBlb2YgdD09InN0cmluZyJ8fFNlKCExLGBCb2R5IG11c3QgYmUgYSBzdHJpbmcuIFJlY2VpdmVkOiAke1plKHQpfS5gKSx0aGlzLmJvZHk9dCx0aGlzLm5hbWU9bix0aGlzLmxvY2F0aW9uT2Zmc2V0PWksdGhpcy5sb2NhdGlvbk9mZnNldC5saW5lPjB8fFNlKCExLCJsaW5lIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKSx0aGlzLmxvY2F0aW9uT2Zmc2V0LmNvbHVtbj4wfHxTZSghMSwiY29sdW1uIGluIGxvY2F0aW9uT2Zmc2V0IGlzIDEtaW5kZXhlZCBhbmQgbXVzdCBiZSBwb3NpdGl2ZS4iKX1nZXRbU3ltYm9sLnRvU3RyaW5nVGFnXSgpe3JldHVybiJTb3VyY2UifX1mdW5jdGlvbiB6bihlKXtyZXR1cm4gSG4oZSxDdCl9ZnVuY3Rpb24ga3QoZSx0KXtyZXR1cm4gbmV3IFluKGUsdCkucGFyc2VEb2N1bWVudCgpfWNsYXNzIFlue2NvbnN0cnVjdG9yKHQsbj17fSl7Y29uc3QgaT16bih0KT90Om5ldyBDdCh0KTt0aGlzLl9sZXhlcj1uZXcgU24oaSksdGhpcy5fb3B0aW9ucz1uLHRoaXMuX3Rva2VuQ291bnRlcj0wfXBhcnNlTmFtZSgpe2NvbnN0IHQ9dGhpcy5leHBlY3RUb2tlbihsLk5BTUUpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULk5BTUUsdmFsdWU6dC52YWx1ZX0pfXBhcnNlRG9jdW1lbnQoKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOlQuRE9DVU1FTlQsZGVmaW5pdGlvbnM6dGhpcy5tYW55KGwuU09GLHRoaXMucGFyc2VEZWZpbml0aW9uLGwuRU9GKX0pfXBhcnNlRGVmaW5pdGlvbigpe2lmKHRoaXMucGVlayhsLkJSQUNFX0wpKXJldHVybiB0aGlzLnBhcnNlT3BlcmF0aW9uRGVmaW5pdGlvbigpO2NvbnN0IHQ9dGhpcy5wZWVrRGVzY3JpcHRpb24oKSxuPXQ/dGhpcy5fbGV4ZXIubG9va2FoZWFkKCk6dGhpcy5fbGV4ZXIudG9rZW47aWYobi5raW5kPT09bC5OQU1FKXtzd2l0Y2gobi52YWx1ZSl7Y2FzZSJzY2hlbWEiOnJldHVybiB0aGlzLnBhcnNlU2NoZW1hRGVmaW5pdGlvbigpO2Nhc2Uic2NhbGFyIjpyZXR1cm4gdGhpcy5wYXJzZVNjYWxhclR5cGVEZWZpbml0aW9uKCk7Y2FzZSJ0eXBlIjpyZXR1cm4gdGhpcy5wYXJzZU9iamVjdFR5cGVEZWZpbml0aW9uKCk7Y2FzZSJpbnRlcmZhY2UiOnJldHVybiB0aGlzLnBhcnNlSW50ZXJmYWNlVHlwZURlZmluaXRpb24oKTtjYXNlInVuaW9uIjpyZXR1cm4gdGhpcy5wYXJzZVVuaW9uVHlwZURlZmluaXRpb24oKTtjYXNlImVudW0iOnJldHVybiB0aGlzLnBhcnNlRW51bVR5cGVEZWZpbml0aW9uKCk7Y2FzZSJpbnB1dCI6cmV0dXJuIHRoaXMucGFyc2VJbnB1dE9iamVjdFR5cGVEZWZpbml0aW9uKCk7Y2FzZSJkaXJlY3RpdmUiOnJldHVybiB0aGlzLnBhcnNlRGlyZWN0aXZlRGVmaW5pdGlvbigpfWlmKHQpdGhyb3cgRyh0aGlzLl9sZXhlci5zb3VyY2UsdGhpcy5fbGV4ZXIudG9rZW4uc3RhcnQsIlVuZXhwZWN0ZWQgZGVzY3JpcHRpb24sIGRlc2NyaXB0aW9ucyBhcmUgc3VwcG9ydGVkIG9ubHkgb24gdHlwZSBkZWZpbml0aW9ucy4iKTtzd2l0Y2gobi52YWx1ZSl7Y2FzZSJxdWVyeSI6Y2FzZSJtdXRhdGlvbiI6Y2FzZSJzdWJzY3JpcHRpb24iOnJldHVybiB0aGlzLnBhcnNlT3BlcmF0aW9uRGVmaW5pdGlvbigpO2Nhc2UiZnJhZ21lbnQiOnJldHVybiB0aGlzLnBhcnNlRnJhZ21lbnREZWZpbml0aW9uKCk7Y2FzZSJleHRlbmQiOnJldHVybiB0aGlzLnBhcnNlVHlwZVN5c3RlbUV4dGVuc2lvbigpfX10aHJvdyB0aGlzLnVuZXhwZWN0ZWQobil9cGFyc2VPcGVyYXRpb25EZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjtpZih0aGlzLnBlZWsobC5CUkFDRV9MKSlyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5PUEVSQVRJT05fREVGSU5JVElPTixvcGVyYXRpb246bGUuUVVFUlksbmFtZTp2b2lkIDAsdmFyaWFibGVEZWZpbml0aW9uczpbXSxkaXJlY3RpdmVzOltdLHNlbGVjdGlvblNldDp0aGlzLnBhcnNlU2VsZWN0aW9uU2V0KCl9KTtjb25zdCBuPXRoaXMucGFyc2VPcGVyYXRpb25UeXBlKCk7bGV0IGk7cmV0dXJuIHRoaXMucGVlayhsLk5BTUUpJiYoaT10aGlzLnBhcnNlTmFtZSgpKSx0aGlzLm5vZGUodCx7a2luZDpULk9QRVJBVElPTl9ERUZJTklUSU9OLG9wZXJhdGlvbjpuLG5hbWU6aSx2YXJpYWJsZURlZmluaXRpb25zOnRoaXMucGFyc2VWYXJpYWJsZURlZmluaXRpb25zKCksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pfXBhcnNlT3BlcmF0aW9uVHlwZSgpe2NvbnN0IHQ9dGhpcy5leHBlY3RUb2tlbihsLk5BTUUpO3N3aXRjaCh0LnZhbHVlKXtjYXNlInF1ZXJ5IjpyZXR1cm4gbGUuUVVFUlk7Y2FzZSJtdXRhdGlvbiI6cmV0dXJuIGxlLk1VVEFUSU9OO2Nhc2Uic3Vic2NyaXB0aW9uIjpyZXR1cm4gbGUuU1VCU0NSSVBUSU9OfXRocm93IHRoaXMudW5leHBlY3RlZCh0KX1wYXJzZVZhcmlhYmxlRGVmaW5pdGlvbnMoKXtyZXR1cm4gdGhpcy5vcHRpb25hbE1hbnkobC5QQVJFTl9MLHRoaXMucGFyc2VWYXJpYWJsZURlZmluaXRpb24sbC5QQVJFTl9SKX1wYXJzZVZhcmlhYmxlRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm5vZGUodGhpcy5fbGV4ZXIudG9rZW4se2tpbmQ6VC5WQVJJQUJMRV9ERUZJTklUSU9OLHZhcmlhYmxlOnRoaXMucGFyc2VWYXJpYWJsZSgpLHR5cGU6KHRoaXMuZXhwZWN0VG9rZW4obC5DT0xPTiksdGhpcy5wYXJzZVR5cGVSZWZlcmVuY2UoKSksZGVmYXVsdFZhbHVlOnRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihsLkVRVUFMUyk/dGhpcy5wYXJzZUNvbnN0VmFsdWVMaXRlcmFsKCk6dm9pZCAwLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpfSl9cGFyc2VWYXJpYWJsZSgpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47cmV0dXJuIHRoaXMuZXhwZWN0VG9rZW4obC5ET0xMQVIpLHRoaXMubm9kZSh0LHtraW5kOlQuVkFSSUFCTEUsbmFtZTp0aGlzLnBhcnNlTmFtZSgpfSl9cGFyc2VTZWxlY3Rpb25TZXQoKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOlQuU0VMRUNUSU9OX1NFVCxzZWxlY3Rpb25zOnRoaXMubWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZVNlbGVjdGlvbixsLkJSQUNFX1IpfSl9cGFyc2VTZWxlY3Rpb24oKXtyZXR1cm4gdGhpcy5wZWVrKGwuU1BSRUFEKT90aGlzLnBhcnNlRnJhZ21lbnQoKTp0aGlzLnBhcnNlRmllbGQoKX1wYXJzZUZpZWxkKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VOYW1lKCk7bGV0IGkscjtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuQ09MT04pPyhpPW4scj10aGlzLnBhcnNlTmFtZSgpKTpyPW4sdGhpcy5ub2RlKHQse2tpbmQ6VC5GSUVMRCxhbGlhczppLG5hbWU6cixhcmd1bWVudHM6dGhpcy5wYXJzZUFyZ3VtZW50cyghMSksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGVlayhsLkJSQUNFX0wpP3RoaXMucGFyc2VTZWxlY3Rpb25TZXQoKTp2b2lkIDB9KX1wYXJzZUFyZ3VtZW50cyh0KXtjb25zdCBuPXQ/dGhpcy5wYXJzZUNvbnN0QXJndW1lbnQ6dGhpcy5wYXJzZUFyZ3VtZW50O3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLlBBUkVOX0wsbixsLlBBUkVOX1IpfXBhcnNlQXJndW1lbnQodD0hMSl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbixpPXRoaXMucGFyc2VOYW1lKCk7cmV0dXJuIHRoaXMuZXhwZWN0VG9rZW4obC5DT0xPTiksdGhpcy5ub2RlKG4se2tpbmQ6VC5BUkdVTUVOVCxuYW1lOmksdmFsdWU6dGhpcy5wYXJzZVZhbHVlTGl0ZXJhbCh0KX0pfXBhcnNlQ29uc3RBcmd1bWVudCgpe3JldHVybiB0aGlzLnBhcnNlQXJndW1lbnQoITApfXBhcnNlRnJhZ21lbnQoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0VG9rZW4obC5TUFJFQUQpO2NvbnN0IG49dGhpcy5leHBlY3RPcHRpb25hbEtleXdvcmQoIm9uIik7cmV0dXJuIW4mJnRoaXMucGVlayhsLk5BTUUpP3RoaXMubm9kZSh0LHtraW5kOlQuRlJBR01FTlRfU1BSRUFELG5hbWU6dGhpcy5wYXJzZUZyYWdtZW50TmFtZSgpLGRpcmVjdGl2ZXM6dGhpcy5wYXJzZURpcmVjdGl2ZXMoITEpfSk6dGhpcy5ub2RlKHQse2tpbmQ6VC5JTkxJTkVfRlJBR01FTlQsdHlwZUNvbmRpdGlvbjpuP3RoaXMucGFyc2VOYW1lZFR5cGUoKTp2b2lkIDAsZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pfXBhcnNlRnJhZ21lbnREZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjtyZXR1cm4gdGhpcy5leHBlY3RLZXl3b3JkKCJmcmFnbWVudCIpLHRoaXMuX29wdGlvbnMuYWxsb3dMZWdhY3lGcmFnbWVudFZhcmlhYmxlcz09PSEwP3RoaXMubm9kZSh0LHtraW5kOlQuRlJBR01FTlRfREVGSU5JVElPTixuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSx2YXJpYWJsZURlZmluaXRpb25zOnRoaXMucGFyc2VWYXJpYWJsZURlZmluaXRpb25zKCksdHlwZUNvbmRpdGlvbjoodGhpcy5leHBlY3RLZXl3b3JkKCJvbiIpLHRoaXMucGFyc2VOYW1lZFR5cGUoKSksZGlyZWN0aXZlczp0aGlzLnBhcnNlRGlyZWN0aXZlcyghMSksc2VsZWN0aW9uU2V0OnRoaXMucGFyc2VTZWxlY3Rpb25TZXQoKX0pOnRoaXMubm9kZSh0LHtraW5kOlQuRlJBR01FTlRfREVGSU5JVElPTixuYW1lOnRoaXMucGFyc2VGcmFnbWVudE5hbWUoKSx0eXBlQ29uZGl0aW9uOih0aGlzLmV4cGVjdEtleXdvcmQoIm9uIiksdGhpcy5wYXJzZU5hbWVkVHlwZSgpKSxkaXJlY3RpdmVzOnRoaXMucGFyc2VEaXJlY3RpdmVzKCExKSxzZWxlY3Rpb25TZXQ6dGhpcy5wYXJzZVNlbGVjdGlvblNldCgpfSl9cGFyc2VGcmFnbWVudE5hbWUoKXtpZih0aGlzLl9sZXhlci50b2tlbi52YWx1ZT09PSJvbiIpdGhyb3cgdGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMucGFyc2VOYW1lKCl9cGFyc2VWYWx1ZUxpdGVyYWwodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtzd2l0Y2gobi5raW5kKXtjYXNlIGwuQlJBQ0tFVF9MOnJldHVybiB0aGlzLnBhcnNlTGlzdCh0KTtjYXNlIGwuQlJBQ0VfTDpyZXR1cm4gdGhpcy5wYXJzZU9iamVjdCh0KTtjYXNlIGwuSU5UOnJldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLHRoaXMubm9kZShuLHtraW5kOlQuSU5ULHZhbHVlOm4udmFsdWV9KTtjYXNlIGwuRkxPQVQ6cmV0dXJuIHRoaXMuYWR2YW5jZUxleGVyKCksdGhpcy5ub2RlKG4se2tpbmQ6VC5GTE9BVCx2YWx1ZTpuLnZhbHVlfSk7Y2FzZSBsLlNUUklORzpjYXNlIGwuQkxPQ0tfU1RSSU5HOnJldHVybiB0aGlzLnBhcnNlU3RyaW5nTGl0ZXJhbCgpO2Nhc2UgbC5OQU1FOnN3aXRjaCh0aGlzLmFkdmFuY2VMZXhlcigpLG4udmFsdWUpe2Nhc2UidHJ1ZSI6cmV0dXJuIHRoaXMubm9kZShuLHtraW5kOlQuQk9PTEVBTix2YWx1ZTohMH0pO2Nhc2UiZmFsc2UiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpULkJPT0xFQU4sdmFsdWU6ITF9KTtjYXNlIm51bGwiOnJldHVybiB0aGlzLm5vZGUobix7a2luZDpULk5VTEx9KTtkZWZhdWx0OnJldHVybiB0aGlzLm5vZGUobix7a2luZDpULkVOVU0sdmFsdWU6bi52YWx1ZX0pfWNhc2UgbC5ET0xMQVI6aWYodClpZih0aGlzLmV4cGVjdFRva2VuKGwuRE9MTEFSKSx0aGlzLl9sZXhlci50b2tlbi5raW5kPT09bC5OQU1FKXtjb25zdCBpPXRoaXMuX2xleGVyLnRva2VuLnZhbHVlO3Rocm93IEcodGhpcy5fbGV4ZXIuc291cmNlLG4uc3RhcnQsYFVuZXhwZWN0ZWQgdmFyaWFibGUgIiQke2l9IiBpbiBjb25zdGFudCB2YWx1ZS5gKX1lbHNlIHRocm93IHRoaXMudW5leHBlY3RlZChuKTtyZXR1cm4gdGhpcy5wYXJzZVZhcmlhYmxlKCk7ZGVmYXVsdDp0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKX19cGFyc2VDb25zdFZhbHVlTGl0ZXJhbCgpe3JldHVybiB0aGlzLnBhcnNlVmFsdWVMaXRlcmFsKCEwKX1wYXJzZVN0cmluZ0xpdGVyYWwoKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmFkdmFuY2VMZXhlcigpLHRoaXMubm9kZSh0LHtraW5kOlQuU1RSSU5HLHZhbHVlOnQudmFsdWUsYmxvY2s6dC5raW5kPT09bC5CTE9DS19TVFJJTkd9KX1wYXJzZUxpc3QodCl7Y29uc3Qgbj0oKT0+dGhpcy5wYXJzZVZhbHVlTGl0ZXJhbCh0KTtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOlQuTElTVCx2YWx1ZXM6dGhpcy5hbnkobC5CUkFDS0VUX0wsbixsLkJSQUNLRVRfUil9KX1wYXJzZU9iamVjdCh0KXtjb25zdCBuPSgpPT50aGlzLnBhcnNlT2JqZWN0RmllbGQodCk7cmV0dXJuIHRoaXMubm9kZSh0aGlzLl9sZXhlci50b2tlbix7a2luZDpULk9CSkVDVCxmaWVsZHM6dGhpcy5hbnkobC5CUkFDRV9MLG4sbC5CUkFDRV9SKX0pfXBhcnNlT2JqZWN0RmllbGQodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbixpPXRoaXMucGFyc2VOYW1lKCk7cmV0dXJuIHRoaXMuZXhwZWN0VG9rZW4obC5DT0xPTiksdGhpcy5ub2RlKG4se2tpbmQ6VC5PQkpFQ1RfRklFTEQsbmFtZTppLHZhbHVlOnRoaXMucGFyc2VWYWx1ZUxpdGVyYWwodCl9KX1wYXJzZURpcmVjdGl2ZXModCl7Y29uc3Qgbj1bXTtmb3IoO3RoaXMucGVlayhsLkFUKTspbi5wdXNoKHRoaXMucGFyc2VEaXJlY3RpdmUodCkpO3JldHVybiBufXBhcnNlQ29uc3REaXJlY3RpdmVzKCl7cmV0dXJuIHRoaXMucGFyc2VEaXJlY3RpdmVzKCEwKX1wYXJzZURpcmVjdGl2ZSh0KXtjb25zdCBuPXRoaXMuX2xleGVyLnRva2VuO3JldHVybiB0aGlzLmV4cGVjdFRva2VuKGwuQVQpLHRoaXMubm9kZShuLHtraW5kOlQuRElSRUNUSVZFLG5hbWU6dGhpcy5wYXJzZU5hbWUoKSxhcmd1bWVudHM6dGhpcy5wYXJzZUFyZ3VtZW50cyh0KX0pfXBhcnNlVHlwZVJlZmVyZW5jZSgpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47bGV0IG47aWYodGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuQlJBQ0tFVF9MKSl7Y29uc3QgaT10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpO3RoaXMuZXhwZWN0VG9rZW4obC5CUkFDS0VUX1IpLG49dGhpcy5ub2RlKHQse2tpbmQ6VC5MSVNUX1RZUEUsdHlwZTppfSl9ZWxzZSBuPXRoaXMucGFyc2VOYW1lZFR5cGUoKTtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuQkFORyk/dGhpcy5ub2RlKHQse2tpbmQ6VC5OT05fTlVMTF9UWVBFLHR5cGU6bn0pOm59cGFyc2VOYW1lZFR5cGUoKXtyZXR1cm4gdGhpcy5ub2RlKHRoaXMuX2xleGVyLnRva2VuLHtraW5kOlQuTkFNRURfVFlQRSxuYW1lOnRoaXMucGFyc2VOYW1lKCl9KX1wZWVrRGVzY3JpcHRpb24oKXtyZXR1cm4gdGhpcy5wZWVrKGwuU1RSSU5HKXx8dGhpcy5wZWVrKGwuQkxPQ0tfU1RSSU5HKX1wYXJzZURlc2NyaXB0aW9uKCl7aWYodGhpcy5wZWVrRGVzY3JpcHRpb24oKSlyZXR1cm4gdGhpcy5wYXJzZVN0cmluZ0xpdGVyYWwoKX1wYXJzZVNjaGVtYURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJzY2hlbWEiKTtjb25zdCBpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxyPXRoaXMubWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZU9wZXJhdGlvblR5cGVEZWZpbml0aW9uLGwuQlJBQ0VfUik7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuU0NIRU1BX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixkaXJlY3RpdmVzOmksb3BlcmF0aW9uVHlwZXM6cn0pfXBhcnNlT3BlcmF0aW9uVHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZU9wZXJhdGlvblR5cGUoKTt0aGlzLmV4cGVjdFRva2VuKGwuQ09MT04pO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWVkVHlwZSgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULk9QRVJBVElPTl9UWVBFX0RFRklOSVRJT04sb3BlcmF0aW9uOm4sdHlwZTppfSl9cGFyc2VTY2FsYXJUeXBlRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoInNjYWxhciIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5TQ0FMQVJfVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGRpcmVjdGl2ZXM6cn0pfXBhcnNlT2JqZWN0VHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJ0eXBlIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUltcGxlbWVudHNJbnRlcmZhY2VzKCkscz10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCksbz10aGlzLnBhcnNlRmllbGRzRGVmaW5pdGlvbigpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULk9CSkVDVF9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksaW50ZXJmYWNlczpyLGRpcmVjdGl2ZXM6cyxmaWVsZHM6b30pfXBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKXtyZXR1cm4gdGhpcy5leHBlY3RPcHRpb25hbEtleXdvcmQoImltcGxlbWVudHMiKT90aGlzLmRlbGltaXRlZE1hbnkobC5BTVAsdGhpcy5wYXJzZU5hbWVkVHlwZSk6W119cGFyc2VGaWVsZHNEZWZpbml0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KGwuQlJBQ0VfTCx0aGlzLnBhcnNlRmllbGREZWZpbml0aW9uLGwuQlJBQ0VfUil9cGFyc2VGaWVsZERlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCksaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUFyZ3VtZW50RGVmcygpO3RoaXMuZXhwZWN0VG9rZW4obC5DT0xPTik7Y29uc3Qgcz10aGlzLnBhcnNlVHlwZVJlZmVyZW5jZSgpLG89dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkZJRUxEX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksYXJndW1lbnRzOnIsdHlwZTpzLGRpcmVjdGl2ZXM6b30pfXBhcnNlQXJndW1lbnREZWZzKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KGwuUEFSRU5fTCx0aGlzLnBhcnNlSW5wdXRWYWx1ZURlZixsLlBBUkVOX1IpfXBhcnNlSW5wdXRWYWx1ZURlZigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKSxpPXRoaXMucGFyc2VOYW1lKCk7dGhpcy5leHBlY3RUb2tlbihsLkNPTE9OKTtjb25zdCByPXRoaXMucGFyc2VUeXBlUmVmZXJlbmNlKCk7bGV0IHM7dGhpcy5leHBlY3RPcHRpb25hbFRva2VuKGwuRVFVQUxTKSYmKHM9dGhpcy5wYXJzZUNvbnN0VmFsdWVMaXRlcmFsKCkpO2NvbnN0IG89dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULklOUFVUX1ZBTFVFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksdHlwZTpyLGRlZmF1bHRWYWx1ZTpzLGRpcmVjdGl2ZXM6b30pfXBhcnNlSW50ZXJmYWNlVHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJpbnRlcmZhY2UiKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlSW1wbGVtZW50c0ludGVyZmFjZXMoKSxzPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxvPXRoaXMucGFyc2VGaWVsZHNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuSU5URVJGQUNFX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxpbnRlcmZhY2VzOnIsZGlyZWN0aXZlczpzLGZpZWxkczpvfSl9cGFyc2VVbmlvblR5cGVEZWZpbml0aW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbixuPXRoaXMucGFyc2VEZXNjcmlwdGlvbigpO3RoaXMuZXhwZWN0S2V5d29yZCgidW5pb24iKTtjb25zdCBpPXRoaXMucGFyc2VOYW1lKCkscj10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscz10aGlzLnBhcnNlVW5pb25NZW1iZXJUeXBlcygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULlVOSU9OX1RZUEVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnIsdHlwZXM6c30pfXBhcnNlVW5pb25NZW1iZXJUeXBlcygpe3JldHVybiB0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4obC5FUVVBTFMpP3RoaXMuZGVsaW1pdGVkTWFueShsLlBJUEUsdGhpcy5wYXJzZU5hbWVkVHlwZSk6W119cGFyc2VFbnVtVHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJlbnVtIik7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZUVudW1WYWx1ZXNEZWZpbml0aW9uKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuRU5VTV9UWVBFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksZGlyZWN0aXZlczpyLHZhbHVlczpzfSl9cGFyc2VFbnVtVmFsdWVzRGVmaW5pdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbmFsTWFueShsLkJSQUNFX0wsdGhpcy5wYXJzZUVudW1WYWx1ZURlZmluaXRpb24sbC5CUkFDRV9SKX1wYXJzZUVudW1WYWx1ZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCksaT10aGlzLnBhcnNlRW51bVZhbHVlTmFtZSgpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULkVOVU1fVkFMVUVfREVGSU5JVElPTixkZXNjcmlwdGlvbjpuLG5hbWU6aSxkaXJlY3RpdmVzOnJ9KX1wYXJzZUVudW1WYWx1ZU5hbWUoKXtpZih0aGlzLl9sZXhlci50b2tlbi52YWx1ZT09PSJ0cnVlInx8dGhpcy5fbGV4ZXIudG9rZW4udmFsdWU9PT0iZmFsc2UifHx0aGlzLl9sZXhlci50b2tlbi52YWx1ZT09PSJudWxsIil0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSx0aGlzLl9sZXhlci50b2tlbi5zdGFydCxgJHtDZSh0aGlzLl9sZXhlci50b2tlbil9IGlzIHJlc2VydmVkIGFuZCBjYW5ub3QgYmUgdXNlZCBmb3IgYW4gZW51bSB2YWx1ZS5gKTtyZXR1cm4gdGhpcy5wYXJzZU5hbWUoKX1wYXJzZUlucHV0T2JqZWN0VHlwZURlZmluaXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZURlc2NyaXB0aW9uKCk7dGhpcy5leHBlY3RLZXl3b3JkKCJpbnB1dCIpO2NvbnN0IGk9dGhpcy5wYXJzZU5hbWUoKSxyPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxzPXRoaXMucGFyc2VJbnB1dEZpZWxkc0RlZmluaXRpb24oKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5JTlBVVF9PQkpFQ1RfVFlQRV9ERUZJTklUSU9OLGRlc2NyaXB0aW9uOm4sbmFtZTppLGRpcmVjdGl2ZXM6cixmaWVsZHM6c30pfXBhcnNlSW5wdXRGaWVsZHNEZWZpbml0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9uYWxNYW55KGwuQlJBQ0VfTCx0aGlzLnBhcnNlSW5wdXRWYWx1ZURlZixsLkJSQUNFX1IpfXBhcnNlVHlwZVN5c3RlbUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIubG9va2FoZWFkKCk7aWYodC5raW5kPT09bC5OQU1FKXN3aXRjaCh0LnZhbHVlKXtjYXNlInNjaGVtYSI6cmV0dXJuIHRoaXMucGFyc2VTY2hlbWFFeHRlbnNpb24oKTtjYXNlInNjYWxhciI6cmV0dXJuIHRoaXMucGFyc2VTY2FsYXJUeXBlRXh0ZW5zaW9uKCk7Y2FzZSJ0eXBlIjpyZXR1cm4gdGhpcy5wYXJzZU9iamVjdFR5cGVFeHRlbnNpb24oKTtjYXNlImludGVyZmFjZSI6cmV0dXJuIHRoaXMucGFyc2VJbnRlcmZhY2VUeXBlRXh0ZW5zaW9uKCk7Y2FzZSJ1bmlvbiI6cmV0dXJuIHRoaXMucGFyc2VVbmlvblR5cGVFeHRlbnNpb24oKTtjYXNlImVudW0iOnJldHVybiB0aGlzLnBhcnNlRW51bVR5cGVFeHRlbnNpb24oKTtjYXNlImlucHV0IjpyZXR1cm4gdGhpcy5wYXJzZUlucHV0T2JqZWN0VHlwZUV4dGVuc2lvbigpfXRocm93IHRoaXMudW5leHBlY3RlZCh0KX1wYXJzZVNjaGVtYUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoInNjaGVtYSIpO2NvbnN0IG49dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLGk9dGhpcy5vcHRpb25hbE1hbnkobC5CUkFDRV9MLHRoaXMucGFyc2VPcGVyYXRpb25UeXBlRGVmaW5pdGlvbixsLkJSQUNFX1IpO2lmKG4ubGVuZ3RoPT09MCYmaS5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULlNDSEVNQV9FWFRFTlNJT04sZGlyZWN0aXZlczpuLG9wZXJhdGlvblR5cGVzOml9KX1wYXJzZVNjYWxhclR5cGVFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJzY2FsYXIiKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCk7aWYoaS5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULlNDQUxBUl9UWVBFX0VYVEVOU0lPTixuYW1lOm4sZGlyZWN0aXZlczppfSl9cGFyc2VPYmplY3RUeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgidHlwZSIpO2NvbnN0IG49dGhpcy5wYXJzZU5hbWUoKSxpPXRoaXMucGFyc2VJbXBsZW1lbnRzSW50ZXJmYWNlcygpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZUZpZWxkc0RlZmluaXRpb24oKTtpZihpLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCYmcy5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULk9CSkVDVF9UWVBFX0VYVEVOU0lPTixuYW1lOm4saW50ZXJmYWNlczppLGRpcmVjdGl2ZXM6cixmaWVsZHM6c30pfXBhcnNlSW50ZXJmYWNlVHlwZUV4dGVuc2lvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW47dGhpcy5leHBlY3RLZXl3b3JkKCJleHRlbmQiKSx0aGlzLmV4cGVjdEtleXdvcmQoImludGVyZmFjZSIpO2NvbnN0IG49dGhpcy5wYXJzZU5hbWUoKSxpPXRoaXMucGFyc2VJbXBsZW1lbnRzSW50ZXJmYWNlcygpLHI9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHM9dGhpcy5wYXJzZUZpZWxkc0RlZmluaXRpb24oKTtpZihpLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCYmcy5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULklOVEVSRkFDRV9UWVBFX0VYVEVOU0lPTixuYW1lOm4saW50ZXJmYWNlczppLGRpcmVjdGl2ZXM6cixmaWVsZHM6c30pfXBhcnNlVW5pb25UeXBlRXh0ZW5zaW9uKCl7Y29uc3QgdD10aGlzLl9sZXhlci50b2tlbjt0aGlzLmV4cGVjdEtleXdvcmQoImV4dGVuZCIpLHRoaXMuZXhwZWN0S2V5d29yZCgidW5pb24iKTtjb25zdCBuPXRoaXMucGFyc2VOYW1lKCksaT10aGlzLnBhcnNlQ29uc3REaXJlY3RpdmVzKCkscj10aGlzLnBhcnNlVW5pb25NZW1iZXJUeXBlcygpO2lmKGkubGVuZ3RoPT09MCYmci5sZW5ndGg9PT0wKXRocm93IHRoaXMudW5leHBlY3RlZCgpO3JldHVybiB0aGlzLm5vZGUodCx7a2luZDpULlVOSU9OX1RZUEVfRVhURU5TSU9OLG5hbWU6bixkaXJlY3RpdmVzOmksdHlwZXM6cn0pfXBhcnNlRW51bVR5cGVFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJlbnVtIik7Y29uc3Qgbj10aGlzLnBhcnNlTmFtZSgpLGk9dGhpcy5wYXJzZUNvbnN0RGlyZWN0aXZlcygpLHI9dGhpcy5wYXJzZUVudW1WYWx1ZXNEZWZpbml0aW9uKCk7aWYoaS5sZW5ndGg9PT0wJiZyLmxlbmd0aD09PTApdGhyb3cgdGhpcy51bmV4cGVjdGVkKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuRU5VTV9UWVBFX0VYVEVOU0lPTixuYW1lOm4sZGlyZWN0aXZlczppLHZhbHVlczpyfSl9cGFyc2VJbnB1dE9iamVjdFR5cGVFeHRlbnNpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuO3RoaXMuZXhwZWN0S2V5d29yZCgiZXh0ZW5kIiksdGhpcy5leHBlY3RLZXl3b3JkKCJpbnB1dCIpO2NvbnN0IG49dGhpcy5wYXJzZU5hbWUoKSxpPXRoaXMucGFyc2VDb25zdERpcmVjdGl2ZXMoKSxyPXRoaXMucGFyc2VJbnB1dEZpZWxkc0RlZmluaXRpb24oKTtpZihpLmxlbmd0aD09PTAmJnIubGVuZ3RoPT09MCl0aHJvdyB0aGlzLnVuZXhwZWN0ZWQoKTtyZXR1cm4gdGhpcy5ub2RlKHQse2tpbmQ6VC5JTlBVVF9PQkpFQ1RfVFlQRV9FWFRFTlNJT04sbmFtZTpuLGRpcmVjdGl2ZXM6aSxmaWVsZHM6cn0pfXBhcnNlRGlyZWN0aXZlRGVmaW5pdGlvbigpe2NvbnN0IHQ9dGhpcy5fbGV4ZXIudG9rZW4sbj10aGlzLnBhcnNlRGVzY3JpcHRpb24oKTt0aGlzLmV4cGVjdEtleXdvcmQoImRpcmVjdGl2ZSIpLHRoaXMuZXhwZWN0VG9rZW4obC5BVCk7Y29uc3QgaT10aGlzLnBhcnNlTmFtZSgpLHI9dGhpcy5wYXJzZUFyZ3VtZW50RGVmcygpLHM9dGhpcy5leHBlY3RPcHRpb25hbEtleXdvcmQoInJlcGVhdGFibGUiKTt0aGlzLmV4cGVjdEtleXdvcmQoIm9uIik7Y29uc3Qgbz10aGlzLnBhcnNlRGlyZWN0aXZlTG9jYXRpb25zKCk7cmV0dXJuIHRoaXMubm9kZSh0LHtraW5kOlQuRElSRUNUSVZFX0RFRklOSVRJT04sZGVzY3JpcHRpb246bixuYW1lOmksYXJndW1lbnRzOnIscmVwZWF0YWJsZTpzLGxvY2F0aW9uczpvfSl9cGFyc2VEaXJlY3RpdmVMb2NhdGlvbnMoKXtyZXR1cm4gdGhpcy5kZWxpbWl0ZWRNYW55KGwuUElQRSx0aGlzLnBhcnNlRGlyZWN0aXZlTG9jYXRpb24pfXBhcnNlRGlyZWN0aXZlTG9jYXRpb24oKXtjb25zdCB0PXRoaXMuX2xleGVyLnRva2VuLG49dGhpcy5wYXJzZU5hbWUoKTtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoUWUsbi52YWx1ZSkpcmV0dXJuIG47dGhyb3cgdGhpcy51bmV4cGVjdGVkKHQpfW5vZGUodCxuKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5ub0xvY2F0aW9uIT09ITAmJihuLmxvYz1uZXcgYm4odCx0aGlzLl9sZXhlci5sYXN0VG9rZW4sdGhpcy5fbGV4ZXIuc291cmNlKSksbn1wZWVrKHQpe3JldHVybiB0aGlzLl9sZXhlci50b2tlbi5raW5kPT09dH1leHBlY3RUb2tlbih0KXtjb25zdCBuPXRoaXMuX2xleGVyLnRva2VuO2lmKG4ua2luZD09PXQpcmV0dXJuIHRoaXMuYWR2YW5jZUxleGVyKCksbjt0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBFeHBlY3RlZCAke1J0KHQpfSwgZm91bmQgJHtDZShuKX0uYCl9ZXhwZWN0T3B0aW9uYWxUb2tlbih0KXtyZXR1cm4gdGhpcy5fbGV4ZXIudG9rZW4ua2luZD09PXQ/KHRoaXMuYWR2YW5jZUxleGVyKCksITApOiExfWV4cGVjdEtleXdvcmQodCl7Y29uc3Qgbj10aGlzLl9sZXhlci50b2tlbjtpZihuLmtpbmQ9PT1sLk5BTUUmJm4udmFsdWU9PT10KXRoaXMuYWR2YW5jZUxleGVyKCk7ZWxzZSB0aHJvdyBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBFeHBlY3RlZCAiJHt0fSIsIGZvdW5kICR7Q2Uobil9LmApfWV4cGVjdE9wdGlvbmFsS2V5d29yZCh0KXtjb25zdCBuPXRoaXMuX2xleGVyLnRva2VuO3JldHVybiBuLmtpbmQ9PT1sLk5BTUUmJm4udmFsdWU9PT10Pyh0aGlzLmFkdmFuY2VMZXhlcigpLCEwKTohMX11bmV4cGVjdGVkKHQpe2NvbnN0IG49dCE9bnVsbD90OnRoaXMuX2xleGVyLnRva2VuO3JldHVybiBHKHRoaXMuX2xleGVyLnNvdXJjZSxuLnN0YXJ0LGBVbmV4cGVjdGVkICR7Q2Uobil9LmApfWFueSh0LG4saSl7dGhpcy5leHBlY3RUb2tlbih0KTtjb25zdCByPVtdO2Zvcig7IXRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihpKTspci5wdXNoKG4uY2FsbCh0aGlzKSk7cmV0dXJuIHJ9b3B0aW9uYWxNYW55KHQsbixpKXtpZih0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4odCkpe2NvbnN0IHI9W107ZG8gci5wdXNoKG4uY2FsbCh0aGlzKSk7d2hpbGUoIXRoaXMuZXhwZWN0T3B0aW9uYWxUb2tlbihpKSk7cmV0dXJuIHJ9cmV0dXJuW119bWFueSh0LG4saSl7dGhpcy5leHBlY3RUb2tlbih0KTtjb25zdCByPVtdO2RvIHIucHVzaChuLmNhbGwodGhpcykpO3doaWxlKCF0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4oaSkpO3JldHVybiByfWRlbGltaXRlZE1hbnkodCxuKXt0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4odCk7Y29uc3QgaT1bXTtkbyBpLnB1c2gobi5jYWxsKHRoaXMpKTt3aGlsZSh0aGlzLmV4cGVjdE9wdGlvbmFsVG9rZW4odCkpO3JldHVybiBpfWFkdmFuY2VMZXhlcigpe2NvbnN0e21heFRva2Vuczp0fT10aGlzLl9vcHRpb25zLG49dGhpcy5fbGV4ZXIuYWR2YW5jZSgpO2lmKHQhPT12b2lkIDAmJm4ua2luZCE9PWwuRU9GJiYoKyt0aGlzLl90b2tlbkNvdW50ZXIsdGhpcy5fdG9rZW5Db3VudGVyPnQpKXRocm93IEcodGhpcy5fbGV4ZXIuc291cmNlLG4uc3RhcnQsYERvY3VtZW50IGNvbnRhaW5zIG1vcmUgdGhhdCAke3R9IHRva2Vucy4gUGFyc2luZyBhYm9ydGVkLmApfX1mdW5jdGlvbiBDZShlKXtjb25zdCB0PWUudmFsdWU7cmV0dXJuIFJ0KGUua2luZCkrKHQhPW51bGw/YCAiJHt0fSJgOiIiKX1mdW5jdGlvbiBSdChlKXtyZXR1cm4gd24oZSk/YCIke2V9ImA6ZX1mdW5jdGlvbiBKbihlKXtyZXR1cm5gIiR7ZS5yZXBsYWNlKFFuLFhuKX0iYH1jb25zdCBRbj0vW1x4MDAtXHgxZlx4MjJceDVjXHg3Zi1ceDlmXS9nO2Z1bmN0aW9uIFhuKGUpe3JldHVybiBXbltlLmNoYXJDb2RlQXQoMCldfWNvbnN0IFduPVsiXFx1MDAwMCIsIlxcdTAwMDEiLCJcXHUwMDAyIiwiXFx1MDAwMyIsIlxcdTAwMDQiLCJcXHUwMDA1IiwiXFx1MDAwNiIsIlxcdTAwMDciLCJcXGIiLCJcXHQiLCJcXG4iLCJcXHUwMDBCIiwiXFxmIiwiXFxyIiwiXFx1MDAwRSIsIlxcdTAwMEYiLCJcXHUwMDEwIiwiXFx1MDAxMSIsIlxcdTAwMTIiLCJcXHUwMDEzIiwiXFx1MDAxNCIsIlxcdTAwMTUiLCJcXHUwMDE2IiwiXFx1MDAxNyIsIlxcdTAwMTgiLCJcXHUwMDE5IiwiXFx1MDAxQSIsIlxcdTAwMUIiLCJcXHUwMDFDIiwiXFx1MDAxRCIsIlxcdTAwMUUiLCJcXHUwMDFGIiwiIiwiIiwnXFwiJywiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiIiwiXFxcXCIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIiIsIlxcdTAwN0YiLCJcXHUwMDgwIiwiXFx1MDA4MSIsIlxcdTAwODIiLCJcXHUwMDgzIiwiXFx1MDA4NCIsIlxcdTAwODUiLCJcXHUwMDg2IiwiXFx1MDA4NyIsIlxcdTAwODgiLCJcXHUwMDg5IiwiXFx1MDA4QSIsIlxcdTAwOEIiLCJcXHUwMDhDIiwiXFx1MDA4RCIsIlxcdTAwOEUiLCJcXHUwMDhGIiwiXFx1MDA5MCIsIlxcdTAwOTEiLCJcXHUwMDkyIiwiXFx1MDA5MyIsIlxcdTAwOTQiLCJcXHUwMDk1IiwiXFx1MDA5NiIsIlxcdTAwOTciLCJcXHUwMDk4IiwiXFx1MDA5OSIsIlxcdTAwOUEiLCJcXHUwMDlCIiwiXFx1MDA5QyIsIlxcdTAwOUQiLCJcXHUwMDlFIiwiXFx1MDA5RiJdLFpuPU9iamVjdC5mcmVlemUoe30pO2Z1bmN0aW9uIEtuKGUsdCxuPU50KXtjb25zdCBpPW5ldyBNYXA7Zm9yKGNvbnN0IEUgb2YgT2JqZWN0LnZhbHVlcyhUKSlpLnNldChFLGVyKHQsRSkpO2xldCByLHM9QXJyYXkuaXNBcnJheShlKSxvPVtlXSxjPS0xLGY9W10sZD1lLHUseTtjb25zdCBnPVtdLGI9W107ZG97YysrO2NvbnN0IEU9Yz09PW8ubGVuZ3RoLGs9RSYmZi5sZW5ndGghPT0wO2lmKEUpe2lmKHU9Yi5sZW5ndGg9PT0wP3ZvaWQgMDpnW2cubGVuZ3RoLTFdLGQ9eSx5PWIucG9wKCksaylpZihzKXtkPWQuc2xpY2UoKTtsZXQgTD0wO2Zvcihjb25zdFskLHFdb2YgZil7Y29uc3QgTT0kLUw7cT09PW51bGw/KGQuc3BsaWNlKE0sMSksTCsrKTpkW01dPXF9fWVsc2V7ZD1PYmplY3QuZGVmaW5lUHJvcGVydGllcyh7fSxPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhkKSk7Zm9yKGNvbnN0W0wsJF1vZiBmKWRbTF09JH1jPXIuaW5kZXgsbz1yLmtleXMsZj1yLmVkaXRzLHM9ci5pbkFycmF5LHI9ci5wcmV2fWVsc2UgaWYoeSl7aWYodT1zP2M6b1tjXSxkPXlbdV0sZD09bnVsbCljb250aW51ZTtnLnB1c2godSl9bGV0IHc7aWYoIUFycmF5LmlzQXJyYXkoZCkpe3ZhciBtLE47eHQoZCl8fFNlKCExLGBJbnZhbGlkIEFTVCBOb2RlOiAke1plKGQpfS5gKTtjb25zdCBMPUU/KG09aS5nZXQoZC5raW5kKSk9PT1udWxsfHxtPT09dm9pZCAwP3ZvaWQgMDptLmxlYXZlOihOPWkuZ2V0KGQua2luZCkpPT09bnVsbHx8Tj09PXZvaWQgMD92b2lkIDA6Ti5lbnRlcjtpZih3PUw9PW51bGw/dm9pZCAwOkwuY2FsbCh0LGQsdSx5LGcsYiksdz09PVpuKWJyZWFrO2lmKHc9PT0hMSl7aWYoIUUpe2cucG9wKCk7Y29udGludWV9fWVsc2UgaWYodyE9PXZvaWQgMCYmKGYucHVzaChbdSx3XSksIUUpKWlmKHh0KHcpKWQ9dztlbHNle2cucG9wKCk7Y29udGludWV9fWlmKHc9PT12b2lkIDAmJmsmJmYucHVzaChbdSxkXSksRSlnLnBvcCgpO2Vsc2V7dmFyIHY7cj17aW5BcnJheTpzLGluZGV4OmMsa2V5czpvLGVkaXRzOmYscHJldjpyfSxzPUFycmF5LmlzQXJyYXkoZCksbz1zP2Q6KHY9bltkLmtpbmRdKSE9PW51bGwmJnYhPT12b2lkIDA/djpbXSxjPS0xLGY9W10seSYmYi5wdXNoKHkpLHk9ZH19d2hpbGUociE9PXZvaWQgMCk7cmV0dXJuIGYubGVuZ3RoIT09MD9mW2YubGVuZ3RoLTFdWzFdOmV9ZnVuY3Rpb24gZXIoZSx0KXtjb25zdCBuPWVbdF07cmV0dXJuIHR5cGVvZiBuPT0ib2JqZWN0Ij9uOnR5cGVvZiBuPT0iZnVuY3Rpb24iP3tlbnRlcjpuLGxlYXZlOnZvaWQgMH06e2VudGVyOmUuZW50ZXIsbGVhdmU6ZS5sZWF2ZX19ZnVuY3Rpb24gdHIoZSl7cmV0dXJuIEtuKGUscnIpfWNvbnN0IG5yPTgwLHJyPXtOYW1lOntsZWF2ZTplPT5lLnZhbHVlfSxWYXJpYWJsZTp7bGVhdmU6ZT0+IiQiK2UubmFtZX0sRG9jdW1lbnQ6e2xlYXZlOmU9PnAoZS5kZWZpbml0aW9ucyxgCgpgKX0sT3BlcmF0aW9uRGVmaW5pdGlvbjp7bGVhdmUoZSl7Y29uc3QgdD1TKCIoIixwKGUudmFyaWFibGVEZWZpbml0aW9ucywiLCAiKSwiKSIpLG49cChbZS5vcGVyYXRpb24scChbZS5uYW1lLHRdKSxwKGUuZGlyZWN0aXZlcywiICIpXSwiICIpO3JldHVybihuPT09InF1ZXJ5Ij8iIjpuKyIgIikrZS5zZWxlY3Rpb25TZXR9fSxWYXJpYWJsZURlZmluaXRpb246e2xlYXZlOih7dmFyaWFibGU6ZSx0eXBlOnQsZGVmYXVsdFZhbHVlOm4sZGlyZWN0aXZlczppfSk9PmUrIjogIit0K1MoIiA9ICIsbikrUygiICIscChpLCIgIikpfSxTZWxlY3Rpb25TZXQ6e2xlYXZlOih7c2VsZWN0aW9uczplfSk9PksoZSl9LEZpZWxkOntsZWF2ZSh7YWxpYXM6ZSxuYW1lOnQsYXJndW1lbnRzOm4sZGlyZWN0aXZlczppLHNlbGVjdGlvblNldDpyfSl7Y29uc3Qgcz1TKCIiLGUsIjogIikrdDtsZXQgbz1zK1MoIigiLHAobiwiLCAiKSwiKSIpO3JldHVybiBvLmxlbmd0aD5uciYmKG89cytTKGAoCmAsa2UocChuLGAKYCkpLGAKKWApKSxwKFtvLHAoaSwiICIpLHJdLCIgIil9fSxBcmd1bWVudDp7bGVhdmU6KHtuYW1lOmUsdmFsdWU6dH0pPT5lKyI6ICIrdH0sRnJhZ21lbnRTcHJlYWQ6e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT4iLi4uIitlK1MoIiAiLHAodCwiICIpKX0sSW5saW5lRnJhZ21lbnQ6e2xlYXZlOih7dHlwZUNvbmRpdGlvbjplLGRpcmVjdGl2ZXM6dCxzZWxlY3Rpb25TZXQ6bn0pPT5wKFsiLi4uIixTKCJvbiAiLGUpLHAodCwiICIpLG5dLCIgIil9LEZyYWdtZW50RGVmaW5pdGlvbjp7bGVhdmU6KHtuYW1lOmUsdHlwZUNvbmRpdGlvbjp0LHZhcmlhYmxlRGVmaW5pdGlvbnM6bixkaXJlY3RpdmVzOmksc2VsZWN0aW9uU2V0OnJ9KT0+YGZyYWdtZW50ICR7ZX0ke1MoIigiLHAobiwiLCAiKSwiKSIpfSBvbiAke3R9ICR7UygiIixwKGksIiAiKSwiICIpfWArcn0sSW50VmFsdWU6e2xlYXZlOih7dmFsdWU6ZX0pPT5lfSxGbG9hdFZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sU3RyaW5nVmFsdWU6e2xlYXZlOih7dmFsdWU6ZSxibG9jazp0fSk9PnQ/T24oZSk6Sm4oZSl9LEJvb2xlYW5WYWx1ZTp7bGVhdmU6KHt2YWx1ZTplfSk9PmU/InRydWUiOiJmYWxzZSJ9LE51bGxWYWx1ZTp7bGVhdmU6KCk9PiJudWxsIn0sRW51bVZhbHVlOntsZWF2ZTooe3ZhbHVlOmV9KT0+ZX0sTGlzdFZhbHVlOntsZWF2ZTooe3ZhbHVlczplfSk9PiJbIitwKGUsIiwgIikrIl0ifSxPYmplY3RWYWx1ZTp7bGVhdmU6KHtmaWVsZHM6ZX0pPT4ieyIrcChlLCIsICIpKyJ9In0sT2JqZWN0RmllbGQ6e2xlYXZlOih7bmFtZTplLHZhbHVlOnR9KT0+ZSsiOiAiK3R9LERpcmVjdGl2ZTp7bGVhdmU6KHtuYW1lOmUsYXJndW1lbnRzOnR9KT0+IkAiK2UrUygiKCIscCh0LCIsICIpLCIpIil9LE5hbWVkVHlwZTp7bGVhdmU6KHtuYW1lOmV9KT0+ZX0sTGlzdFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PiJbIitlKyJdIn0sTm9uTnVsbFR5cGU6e2xlYXZlOih7dHlwZTplfSk9PmUrIiEifSxTY2hlbWFEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsZGlyZWN0aXZlczp0LG9wZXJhdGlvblR5cGVzOm59KT0+UygiIixlLGAKYCkrcChbInNjaGVtYSIscCh0LCIgIiksSyhuKV0sIiAiKX0sT3BlcmF0aW9uVHlwZURlZmluaXRpb246e2xlYXZlOih7b3BlcmF0aW9uOmUsdHlwZTp0fSk9PmUrIjogIit0fSxTY2FsYXJUeXBlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCxkaXJlY3RpdmVzOm59KT0+UygiIixlLGAKYCkrcChbInNjYWxhciIsdCxwKG4sIiAiKV0sIiAiKX0sT2JqZWN0VHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsaW50ZXJmYWNlczpuLGRpcmVjdGl2ZXM6aSxmaWVsZHM6cn0pPT5TKCIiLGUsYApgKStwKFsidHlwZSIsdCxTKCJpbXBsZW1lbnRzICIscChuLCIgJiAiKSkscChpLCIgIiksSyhyKV0sIiAiKX0sRmllbGREZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGFyZ3VtZW50czpuLHR5cGU6aSxkaXJlY3RpdmVzOnJ9KT0+UygiIixlLGAKYCkrdCsoTHQobik/UyhgKApgLGtlKHAobixgCmApKSxgCilgKTpTKCIoIixwKG4sIiwgIiksIikiKSkrIjogIitpK1MoIiAiLHAociwiICIpKX0sSW5wdXRWYWx1ZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsdHlwZTpuLGRlZmF1bHRWYWx1ZTppLGRpcmVjdGl2ZXM6cn0pPT5TKCIiLGUsYApgKStwKFt0KyI6ICIrbixTKCI9ICIsaSkscChyLCIgIildLCIgIil9LEludGVyZmFjZVR5cGVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGludGVyZmFjZXM6bixkaXJlY3RpdmVzOmksZmllbGRzOnJ9KT0+UygiIixlLGAKYCkrcChbImludGVyZmFjZSIsdCxTKCJpbXBsZW1lbnRzICIscChuLCIgJiAiKSkscChpLCIgIiksSyhyKV0sIiAiKX0sVW5pb25UeXBlRGVmaW5pdGlvbjp7bGVhdmU6KHtkZXNjcmlwdGlvbjplLG5hbWU6dCxkaXJlY3RpdmVzOm4sdHlwZXM6aX0pPT5TKCIiLGUsYApgKStwKFsidW5pb24iLHQscChuLCIgIiksUygiPSAiLHAoaSwiIHwgIikpXSwiICIpfSxFbnVtVHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpuLHZhbHVlczppfSk9PlMoIiIsZSxgCmApK3AoWyJlbnVtIix0LHAobiwiICIpLEsoaSldLCIgIil9LEVudW1WYWx1ZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpufSk9PlMoIiIsZSxgCmApK3AoW3QscChuLCIgIildLCIgIil9LElucHV0T2JqZWN0VHlwZURlZmluaXRpb246e2xlYXZlOih7ZGVzY3JpcHRpb246ZSxuYW1lOnQsZGlyZWN0aXZlczpuLGZpZWxkczppfSk9PlMoIiIsZSxgCmApK3AoWyJpbnB1dCIsdCxwKG4sIiAiKSxLKGkpXSwiICIpfSxEaXJlY3RpdmVEZWZpbml0aW9uOntsZWF2ZTooe2Rlc2NyaXB0aW9uOmUsbmFtZTp0LGFyZ3VtZW50czpuLHJlcGVhdGFibGU6aSxsb2NhdGlvbnM6cn0pPT5TKCIiLGUsYApgKSsiZGlyZWN0aXZlIEAiK3QrKEx0KG4pP1MoYCgKYCxrZShwKG4sYApgKSksYAopYCk6UygiKCIscChuLCIsICIpLCIpIikpKyhpPyIgcmVwZWF0YWJsZSI6IiIpKyIgb24gIitwKHIsIiB8ICIpfSxTY2hlbWFFeHRlbnNpb246e2xlYXZlOih7ZGlyZWN0aXZlczplLG9wZXJhdGlvblR5cGVzOnR9KT0+cChbImV4dGVuZCBzY2hlbWEiLHAoZSwiICIpLEsodCldLCIgIil9LFNjYWxhclR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGRpcmVjdGl2ZXM6dH0pPT5wKFsiZXh0ZW5kIHNjYWxhciIsZSxwKHQsIiAiKV0sIiAiKX0sT2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsaW50ZXJmYWNlczp0LGRpcmVjdGl2ZXM6bixmaWVsZHM6aX0pPT5wKFsiZXh0ZW5kIHR5cGUiLGUsUygiaW1wbGVtZW50cyAiLHAodCwiICYgIikpLHAobiwiICIpLEsoaSldLCIgIil9LEludGVyZmFjZVR5cGVFeHRlbnNpb246e2xlYXZlOih7bmFtZTplLGludGVyZmFjZXM6dCxkaXJlY3RpdmVzOm4sZmllbGRzOml9KT0+cChbImV4dGVuZCBpbnRlcmZhY2UiLGUsUygiaW1wbGVtZW50cyAiLHAodCwiICYgIikpLHAobiwiICIpLEsoaSldLCIgIil9LFVuaW9uVHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsZGlyZWN0aXZlczp0LHR5cGVzOm59KT0+cChbImV4dGVuZCB1bmlvbiIsZSxwKHQsIiAiKSxTKCI9ICIscChuLCIgfCAiKSldLCIgIil9LEVudW1UeXBlRXh0ZW5zaW9uOntsZWF2ZTooe25hbWU6ZSxkaXJlY3RpdmVzOnQsdmFsdWVzOm59KT0+cChbImV4dGVuZCBlbnVtIixlLHAodCwiICIpLEsobildLCIgIil9LElucHV0T2JqZWN0VHlwZUV4dGVuc2lvbjp7bGVhdmU6KHtuYW1lOmUsZGlyZWN0aXZlczp0LGZpZWxkczpufSk9PnAoWyJleHRlbmQgaW5wdXQiLGUscCh0LCIgIiksSyhuKV0sIiAiKX19O2Z1bmN0aW9uIHAoZSx0PSIiKXt2YXIgbjtyZXR1cm4obj1lPT1udWxsP3ZvaWQgMDplLmZpbHRlcihpPT5pKS5qb2luKHQpKSE9PW51bGwmJm4hPT12b2lkIDA/bjoiIn1mdW5jdGlvbiBLKGUpe3JldHVybiBTKGB7CmAsa2UocChlLGAKYCkpLGAKfWApfWZ1bmN0aW9uIFMoZSx0LG49IiIpe3JldHVybiB0IT1udWxsJiZ0IT09IiI/ZSt0K246IiJ9ZnVuY3Rpb24ga2UoZSl7cmV0dXJuIFMoIiAgIixlLnJlcGxhY2UoL1xuL2csYAogIGApKX1mdW5jdGlvbiBMdChlKXt2YXIgdDtyZXR1cm4odD1lPT1udWxsP3ZvaWQgMDplLnNvbWUobj0+bi5pbmNsdWRlcyhgCmApKSkhPT1udWxsJiZ0IT09dm9pZCAwP3Q6ITF9Y29uc3QgUHQ9ZT0+e3ZhciBpLHI7bGV0IHQ7Y29uc3Qgbj1lLmRlZmluaXRpb25zLmZpbHRlcihzPT5zLmtpbmQ9PT0iT3BlcmF0aW9uRGVmaW5pdGlvbiIpO3JldHVybiBuLmxlbmd0aD09PTEmJih0PShyPShpPW5bMF0pPT1udWxsP3ZvaWQgMDppLm5hbWUpPT1udWxsP3ZvaWQgMDpyLnZhbHVlKSx0fSxLZT1lPT57aWYodHlwZW9mIGU9PSJzdHJpbmciKXtsZXQgbjt0cnl7Y29uc3QgaT1rdChlKTtuPVB0KGkpfWNhdGNoKGkpe31yZXR1cm57cXVlcnk6ZSxvcGVyYXRpb25OYW1lOm59fWNvbnN0IHQ9UHQoZSk7cmV0dXJue3F1ZXJ5OnRyKGUpLG9wZXJhdGlvbk5hbWU6dH19O2NsYXNzIGhlIGV4dGVuZHMgRXJyb3J7Y29uc3RydWN0b3IodCxuKXtjb25zdCBpPWAke2hlLmV4dHJhY3RNZXNzYWdlKHQpfTogJHtKU09OLnN0cmluZ2lmeSh7cmVzcG9uc2U6dCxyZXF1ZXN0Om59KX1gO3N1cGVyKGkpLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGhlLnByb3RvdHlwZSksdGhpcy5yZXNwb25zZT10LHRoaXMucmVxdWVzdD1uLHR5cGVvZiBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZT09ImZ1bmN0aW9uIiYmRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxoZSl9c3RhdGljIGV4dHJhY3RNZXNzYWdlKHQpe3ZhciBuLGkscjtyZXR1cm4ocj0oaT0obj10LmVycm9ycyk9PW51bGw/dm9pZCAwOm5bMF0pPT1udWxsP3ZvaWQgMDppLm1lc3NhZ2UpIT1udWxsP3I6YEdyYXBoUUwgRXJyb3IgKENvZGU6ICR7dC5zdGF0dXN9KWB9fXZhciBpcj10eXBlb2YgZ2xvYmFsVGhpcyE9InVuZGVmaW5lZCI/Z2xvYmFsVGhpczp0eXBlb2Ygd2luZG93IT0idW5kZWZpbmVkIj93aW5kb3c6dHlwZW9mIGdsb2JhbCE9InVuZGVmaW5lZCI/Z2xvYmFsOnR5cGVvZiBzZWxmIT0idW5kZWZpbmVkIj9zZWxmOnt9O2Z1bmN0aW9uIEZ0KGUpe3JldHVybiBlJiZlLl9fZXNNb2R1bGUmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJkZWZhdWx0Iik/ZS5kZWZhdWx0OmV9dmFyIGV0PXtleHBvcnRzOnt9fTsoZnVuY3Rpb24oZSx0KXt2YXIgbj10eXBlb2Ygc2VsZiE9InVuZGVmaW5lZCI/c2VsZjppcixpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcygpe3RoaXMuZmV0Y2g9ITEsdGhpcy5ET01FeGNlcHRpb249bi5ET01FeGNlcHRpb259cmV0dXJuIHMucHJvdG90eXBlPW4sbmV3IHN9KCk7KGZ1bmN0aW9uKHMpeyhmdW5jdGlvbihvKXt2YXIgYz17c2VhcmNoUGFyYW1zOiJVUkxTZWFyY2hQYXJhbXMiaW4gcyxpdGVyYWJsZToiU3ltYm9sImluIHMmJiJpdGVyYXRvciJpbiBTeW1ib2wsYmxvYjoiRmlsZVJlYWRlciJpbiBzJiYiQmxvYiJpbiBzJiZmdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEJsb2IsITB9Y2F0Y2goYSl7cmV0dXJuITF9fSgpLGZvcm1EYXRhOiJGb3JtRGF0YSJpbiBzLGFycmF5QnVmZmVyOiJBcnJheUJ1ZmZlciJpbiBzfTtmdW5jdGlvbiBmKGEpe3JldHVybiBhJiZEYXRhVmlldy5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihhKX1pZihjLmFycmF5QnVmZmVyKXZhciBkPVsiW29iamVjdCBJbnQ4QXJyYXldIiwiW29iamVjdCBVaW50OEFycmF5XSIsIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIiwiW29iamVjdCBJbnQxNkFycmF5XSIsIltvYmplY3QgVWludDE2QXJyYXldIiwiW29iamVjdCBJbnQzMkFycmF5XSIsIltvYmplY3QgVWludDMyQXJyYXldIiwiW29iamVjdCBGbG9hdDMyQXJyYXldIiwiW29iamVjdCBGbG9hdDY0QXJyYXldIl0sdT1BcnJheUJ1ZmZlci5pc1ZpZXd8fGZ1bmN0aW9uKGEpe3JldHVybiBhJiZkLmluZGV4T2YoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpKT4tMX07ZnVuY3Rpb24geShhKXtpZih0eXBlb2YgYSE9InN0cmluZyImJihhPVN0cmluZyhhKSksL1teYS16MC05XC0jJCUmJyorLl5fYHx+XS9pLnRlc3QoYSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBjaGFyYWN0ZXIgaW4gaGVhZGVyIGZpZWxkIG5hbWUiKTtyZXR1cm4gYS50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGcoYSl7cmV0dXJuIHR5cGVvZiBhIT0ic3RyaW5nIiYmKGE9U3RyaW5nKGEpKSxhfWZ1bmN0aW9uIGIoYSl7dmFyIGg9e25leHQ6ZnVuY3Rpb24oKXt2YXIgXz1hLnNoaWZ0KCk7cmV0dXJue2RvbmU6Xz09PXZvaWQgMCx2YWx1ZTpffX19O3JldHVybiBjLml0ZXJhYmxlJiYoaFtTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIGh9KSxofWZ1bmN0aW9uIG0oYSl7dGhpcy5tYXA9e30sYSBpbnN0YW5jZW9mIG0/YS5mb3JFYWNoKGZ1bmN0aW9uKGgsXyl7dGhpcy5hcHBlbmQoXyxoKX0sdGhpcyk6QXJyYXkuaXNBcnJheShhKT9hLmZvckVhY2goZnVuY3Rpb24oaCl7dGhpcy5hcHBlbmQoaFswXSxoWzFdKX0sdGhpcyk6YSYmT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYSkuZm9yRWFjaChmdW5jdGlvbihoKXt0aGlzLmFwcGVuZChoLGFbaF0pfSx0aGlzKX1tLnByb3RvdHlwZS5hcHBlbmQ9ZnVuY3Rpb24oYSxoKXthPXkoYSksaD1nKGgpO3ZhciBfPXRoaXMubWFwW2FdO3RoaXMubWFwW2FdPV8/XysiLCAiK2g6aH0sbS5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKGEpe2RlbGV0ZSB0aGlzLm1hcFt5KGEpXX0sbS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKGEpe3JldHVybiBhPXkoYSksdGhpcy5oYXMoYSk/dGhpcy5tYXBbYV06bnVsbH0sbS5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eSh5KGEpKX0sbS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKGEsaCl7dGhpcy5tYXBbeShhKV09ZyhoKX0sbS5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihhLGgpe2Zvcih2YXIgXyBpbiB0aGlzLm1hcCl0aGlzLm1hcC5oYXNPd25Qcm9wZXJ0eShfKSYmYS5jYWxsKGgsdGhpcy5tYXBbX10sXyx0aGlzKX0sbS5wcm90b3R5cGUua2V5cz1mdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiB0aGlzLmZvckVhY2goZnVuY3Rpb24oaCxfKXthLnB1c2goXyl9KSxiKGEpfSxtLnByb3RvdHlwZS52YWx1ZXM9ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGgpe2EucHVzaChoKX0pLGIoYSl9LG0ucHJvdG90eXBlLmVudHJpZXM9ZnVuY3Rpb24oKXt2YXIgYT1bXTtyZXR1cm4gdGhpcy5mb3JFYWNoKGZ1bmN0aW9uKGgsXyl7YS5wdXNoKFtfLGhdKX0pLGIoYSl9LGMuaXRlcmFibGUmJihtLnByb3RvdHlwZVtTeW1ib2wuaXRlcmF0b3JdPW0ucHJvdG90eXBlLmVudHJpZXMpO2Z1bmN0aW9uIE4oYSl7aWYoYS5ib2R5VXNlZClyZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IFR5cGVFcnJvcigiQWxyZWFkeSByZWFkIikpO2EuYm9keVVzZWQ9ITB9ZnVuY3Rpb24gdihhKXtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oaCxfKXthLm9ubG9hZD1mdW5jdGlvbigpe2goYS5yZXN1bHQpfSxhLm9uZXJyb3I9ZnVuY3Rpb24oKXtfKGEuZXJyb3IpfX0pfWZ1bmN0aW9uIEUoYSl7dmFyIGg9bmV3IEZpbGVSZWFkZXIsXz12KGgpO3JldHVybiBoLnJlYWRBc0FycmF5QnVmZmVyKGEpLF99ZnVuY3Rpb24gayhhKXt2YXIgaD1uZXcgRmlsZVJlYWRlcixfPXYoaCk7cmV0dXJuIGgucmVhZEFzVGV4dChhKSxffWZ1bmN0aW9uIHcoYSl7Zm9yKHZhciBoPW5ldyBVaW50OEFycmF5KGEpLF89bmV3IEFycmF5KGgubGVuZ3RoKSxBPTA7QTxoLmxlbmd0aDtBKyspX1tBXT1TdHJpbmcuZnJvbUNoYXJDb2RlKGhbQV0pO3JldHVybiBfLmpvaW4oIiIpfWZ1bmN0aW9uIEwoYSl7aWYoYS5zbGljZSlyZXR1cm4gYS5zbGljZSgwKTt2YXIgaD1uZXcgVWludDhBcnJheShhLmJ5dGVMZW5ndGgpO3JldHVybiBoLnNldChuZXcgVWludDhBcnJheShhKSksaC5idWZmZXJ9ZnVuY3Rpb24gJCgpe3JldHVybiB0aGlzLmJvZHlVc2VkPSExLHRoaXMuX2luaXRCb2R5PWZ1bmN0aW9uKGEpe3RoaXMuX2JvZHlJbml0PWEsYT90eXBlb2YgYT09InN0cmluZyI/dGhpcy5fYm9keVRleHQ9YTpjLmJsb2ImJkJsb2IucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoYSk/dGhpcy5fYm9keUJsb2I9YTpjLmZvcm1EYXRhJiZGb3JtRGF0YS5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihhKT90aGlzLl9ib2R5Rm9ybURhdGE9YTpjLnNlYXJjaFBhcmFtcyYmVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpP3RoaXMuX2JvZHlUZXh0PWEudG9TdHJpbmcoKTpjLmFycmF5QnVmZmVyJiZjLmJsb2ImJmYoYSk/KHRoaXMuX2JvZHlBcnJheUJ1ZmZlcj1MKGEuYnVmZmVyKSx0aGlzLl9ib2R5SW5pdD1uZXcgQmxvYihbdGhpcy5fYm9keUFycmF5QnVmZmVyXSkpOmMuYXJyYXlCdWZmZXImJihBcnJheUJ1ZmZlci5wcm90b3R5cGUuaXNQcm90b3R5cGVPZihhKXx8dShhKSk/dGhpcy5fYm9keUFycmF5QnVmZmVyPUwoYSk6dGhpcy5fYm9keVRleHQ9YT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoYSk6dGhpcy5fYm9keVRleHQ9IiIsdGhpcy5oZWFkZXJzLmdldCgiY29udGVudC10eXBlIil8fCh0eXBlb2YgYT09InN0cmluZyI/dGhpcy5oZWFkZXJzLnNldCgiY29udGVudC10eXBlIiwidGV4dC9wbGFpbjtjaGFyc2V0PVVURi04Iik6dGhpcy5fYm9keUJsb2ImJnRoaXMuX2JvZHlCbG9iLnR5cGU/dGhpcy5oZWFkZXJzLnNldCgiY29udGVudC10eXBlIix0aGlzLl9ib2R5QmxvYi50eXBlKTpjLnNlYXJjaFBhcmFtcyYmVVJMU2VhcmNoUGFyYW1zLnByb3RvdHlwZS5pc1Byb3RvdHlwZU9mKGEpJiZ0aGlzLmhlYWRlcnMuc2V0KCJjb250ZW50LXR5cGUiLCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD1VVEYtOCIpKX0sYy5ibG9iJiYodGhpcy5ibG9iPWZ1bmN0aW9uKCl7dmFyIGE9Tih0aGlzKTtpZihhKXJldHVybiBhO2lmKHRoaXMuX2JvZHlCbG9iKXJldHVybiBQcm9taXNlLnJlc29sdmUodGhpcy5fYm9keUJsb2IpO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBCbG9iKFt0aGlzLl9ib2R5QXJyYXlCdWZmZXJdKSk7aWYodGhpcy5fYm9keUZvcm1EYXRhKXRocm93IG5ldyBFcnJvcigiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyBibG9iIik7cmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXcgQmxvYihbdGhpcy5fYm9keVRleHRdKSl9LHRoaXMuYXJyYXlCdWZmZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYm9keUFycmF5QnVmZmVyP04odGhpcyl8fFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5QXJyYXlCdWZmZXIpOnRoaXMuYmxvYigpLnRoZW4oRSl9KSx0aGlzLnRleHQ9ZnVuY3Rpb24oKXt2YXIgYT1OKHRoaXMpO2lmKGEpcmV0dXJuIGE7aWYodGhpcy5fYm9keUJsb2IpcmV0dXJuIGsodGhpcy5fYm9keUJsb2IpO2lmKHRoaXMuX2JvZHlBcnJheUJ1ZmZlcilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHcodGhpcy5fYm9keUFycmF5QnVmZmVyKSk7aWYodGhpcy5fYm9keUZvcm1EYXRhKXRocm93IG5ldyBFcnJvcigiY291bGQgbm90IHJlYWQgRm9ybURhdGEgYm9keSBhcyB0ZXh0Iik7cmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLl9ib2R5VGV4dCl9LGMuZm9ybURhdGEmJih0aGlzLmZvcm1EYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dCgpLnRoZW4oTyl9KSx0aGlzLmpzb249ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0KCkudGhlbihKU09OLnBhcnNlKX0sdGhpc312YXIgcT1bIkRFTEVURSIsIkdFVCIsIkhFQUQiLCJPUFRJT05TIiwiUE9TVCIsIlBVVCJdO2Z1bmN0aW9uIE0oYSl7dmFyIGg9YS50b1VwcGVyQ2FzZSgpO3JldHVybiBxLmluZGV4T2YoaCk+LTE/aDphfWZ1bmN0aW9uIEkoYSxoKXtoPWh8fHt9O3ZhciBfPWguYm9keTtpZihhIGluc3RhbmNlb2YgSSl7aWYoYS5ib2R5VXNlZCl0aHJvdyBuZXcgVHlwZUVycm9yKCJBbHJlYWR5IHJlYWQiKTt0aGlzLnVybD1hLnVybCx0aGlzLmNyZWRlbnRpYWxzPWEuY3JlZGVudGlhbHMsaC5oZWFkZXJzfHwodGhpcy5oZWFkZXJzPW5ldyBtKGEuaGVhZGVycykpLHRoaXMubWV0aG9kPWEubWV0aG9kLHRoaXMubW9kZT1hLm1vZGUsdGhpcy5zaWduYWw9YS5zaWduYWwsIV8mJmEuX2JvZHlJbml0IT1udWxsJiYoXz1hLl9ib2R5SW5pdCxhLmJvZHlVc2VkPSEwKX1lbHNlIHRoaXMudXJsPVN0cmluZyhhKTtpZih0aGlzLmNyZWRlbnRpYWxzPWguY3JlZGVudGlhbHN8fHRoaXMuY3JlZGVudGlhbHN8fCJzYW1lLW9yaWdpbiIsKGguaGVhZGVyc3x8IXRoaXMuaGVhZGVycykmJih0aGlzLmhlYWRlcnM9bmV3IG0oaC5oZWFkZXJzKSksdGhpcy5tZXRob2Q9TShoLm1ldGhvZHx8dGhpcy5tZXRob2R8fCJHRVQiKSx0aGlzLm1vZGU9aC5tb2RlfHx0aGlzLm1vZGV8fG51bGwsdGhpcy5zaWduYWw9aC5zaWduYWx8fHRoaXMuc2lnbmFsLHRoaXMucmVmZXJyZXI9bnVsbCwodGhpcy5tZXRob2Q9PT0iR0VUInx8dGhpcy5tZXRob2Q9PT0iSEVBRCIpJiZfKXRocm93IG5ldyBUeXBlRXJyb3IoIkJvZHkgbm90IGFsbG93ZWQgZm9yIEdFVCBvciBIRUFEIHJlcXVlc3RzIik7dGhpcy5faW5pdEJvZHkoXyl9SS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEkodGhpcyx7Ym9keTp0aGlzLl9ib2R5SW5pdH0pfTtmdW5jdGlvbiBPKGEpe3ZhciBoPW5ldyBGb3JtRGF0YTtyZXR1cm4gYS50cmltKCkuc3BsaXQoIiYiKS5mb3JFYWNoKGZ1bmN0aW9uKF8pe2lmKF8pe3ZhciBBPV8uc3BsaXQoIj0iKSxSPUEuc2hpZnQoKS5yZXBsYWNlKC9cKy9nLCIgIikseD1BLmpvaW4oIj0iKS5yZXBsYWNlKC9cKy9nLCIgIik7aC5hcHBlbmQoZGVjb2RlVVJJQ29tcG9uZW50KFIpLGRlY29kZVVSSUNvbXBvbmVudCh4KSl9fSksaH1mdW5jdGlvbiBqKGEpe3ZhciBoPW5ldyBtLF89YS5yZXBsYWNlKC9ccj9cbltcdCBdKy9nLCIgIik7cmV0dXJuIF8uc3BsaXQoL1xyP1xuLykuZm9yRWFjaChmdW5jdGlvbihBKXt2YXIgUj1BLnNwbGl0KCI6IikseD1SLnNoaWZ0KCkudHJpbSgpO2lmKHgpe3ZhciBzZT1SLmpvaW4oIjoiKS50cmltKCk7aC5hcHBlbmQoeCxzZSl9fSksaH0kLmNhbGwoSS5wcm90b3R5cGUpO2Z1bmN0aW9uIFUoYSxoKXtofHwoaD17fSksdGhpcy50eXBlPSJkZWZhdWx0Iix0aGlzLnN0YXR1cz1oLnN0YXR1cz09PXZvaWQgMD8yMDA6aC5zdGF0dXMsdGhpcy5vaz10aGlzLnN0YXR1cz49MjAwJiZ0aGlzLnN0YXR1czwzMDAsdGhpcy5zdGF0dXNUZXh0PSJzdGF0dXNUZXh0ImluIGg/aC5zdGF0dXNUZXh0OiJPSyIsdGhpcy5oZWFkZXJzPW5ldyBtKGguaGVhZGVycyksdGhpcy51cmw9aC51cmx8fCIiLHRoaXMuX2luaXRCb2R5KGEpfSQuY2FsbChVLnByb3RvdHlwZSksVS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFUodGhpcy5fYm9keUluaXQse3N0YXR1czp0aGlzLnN0YXR1cyxzdGF0dXNUZXh0OnRoaXMuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBtKHRoaXMuaGVhZGVycyksdXJsOnRoaXMudXJsfSl9LFUuZXJyb3I9ZnVuY3Rpb24oKXt2YXIgYT1uZXcgVShudWxsLHtzdGF0dXM6MCxzdGF0dXNUZXh0OiIifSk7cmV0dXJuIGEudHlwZT0iZXJyb3IiLGF9O3ZhciBIPVszMDEsMzAyLDMwMywzMDcsMzA4XTtVLnJlZGlyZWN0PWZ1bmN0aW9uKGEsaCl7aWYoSC5pbmRleE9mKGgpPT09LTEpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkludmFsaWQgc3RhdHVzIGNvZGUiKTtyZXR1cm4gbmV3IFUobnVsbCx7c3RhdHVzOmgsaGVhZGVyczp7bG9jYXRpb246YX19KX0sby5ET01FeGNlcHRpb249cy5ET01FeGNlcHRpb247dHJ5e25ldyBvLkRPTUV4Y2VwdGlvbn1jYXRjaChhKXtvLkRPTUV4Y2VwdGlvbj1mdW5jdGlvbihoLF8pe3RoaXMubWVzc2FnZT1oLHRoaXMubmFtZT1fO3ZhciBBPUVycm9yKGgpO3RoaXMuc3RhY2s9QS5zdGFja30sby5ET01FeGNlcHRpb24ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxvLkRPTUV4Y2VwdGlvbi5wcm90b3R5cGUuY29uc3RydWN0b3I9by5ET01FeGNlcHRpb259ZnVuY3Rpb24gUShhLGgpe3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihfLEEpe3ZhciBSPW5ldyBJKGEsaCk7aWYoUi5zaWduYWwmJlIuc2lnbmFsLmFib3J0ZWQpcmV0dXJuIEEobmV3IG8uRE9NRXhjZXB0aW9uKCJBYm9ydGVkIiwiQWJvcnRFcnJvciIpKTt2YXIgeD1uZXcgWE1MSHR0cFJlcXVlc3Q7ZnVuY3Rpb24gc2UoKXt4LmFib3J0KCl9eC5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgej17c3RhdHVzOnguc3RhdHVzLHN0YXR1c1RleHQ6eC5zdGF0dXNUZXh0LGhlYWRlcnM6aih4LmdldEFsbFJlc3BvbnNlSGVhZGVycygpfHwiIil9O3oudXJsPSJyZXNwb25zZVVSTCJpbiB4P3gucmVzcG9uc2VVUkw6ei5oZWFkZXJzLmdldCgiWC1SZXF1ZXN0LVVSTCIpO3ZhciByZT0icmVzcG9uc2UiaW4geD94LnJlc3BvbnNlOngucmVzcG9uc2VUZXh0O18obmV3IFUocmUseikpfSx4Lm9uZXJyb3I9ZnVuY3Rpb24oKXtBKG5ldyBUeXBlRXJyb3IoIk5ldHdvcmsgcmVxdWVzdCBmYWlsZWQiKSl9LHgub250aW1lb3V0PWZ1bmN0aW9uKCl7QShuZXcgVHlwZUVycm9yKCJOZXR3b3JrIHJlcXVlc3QgZmFpbGVkIikpfSx4Lm9uYWJvcnQ9ZnVuY3Rpb24oKXtBKG5ldyBvLkRPTUV4Y2VwdGlvbigiQWJvcnRlZCIsIkFib3J0RXJyb3IiKSl9LHgub3BlbihSLm1ldGhvZCxSLnVybCwhMCksUi5jcmVkZW50aWFscz09PSJpbmNsdWRlIj94LndpdGhDcmVkZW50aWFscz0hMDpSLmNyZWRlbnRpYWxzPT09Im9taXQiJiYoeC53aXRoQ3JlZGVudGlhbHM9ITEpLCJyZXNwb25zZVR5cGUiaW4geCYmYy5ibG9iJiYoeC5yZXNwb25zZVR5cGU9ImJsb2IiKSxSLmhlYWRlcnMuZm9yRWFjaChmdW5jdGlvbih6LHJlKXt4LnNldFJlcXVlc3RIZWFkZXIocmUseil9KSxSLnNpZ25hbCYmKFIuc2lnbmFsLmFkZEV2ZW50TGlzdGVuZXIoImFib3J0IixzZSkseC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXt4LnJlYWR5U3RhdGU9PT00JiZSLnNpZ25hbC5yZW1vdmVFdmVudExpc3RlbmVyKCJhYm9ydCIsc2UpfSkseC5zZW5kKHR5cGVvZiBSLl9ib2R5SW5pdD09InVuZGVmaW5lZCI/bnVsbDpSLl9ib2R5SW5pdCl9KX1yZXR1cm4gUS5wb2x5ZmlsbD0hMCxzLmZldGNofHwocy5mZXRjaD1RLHMuSGVhZGVycz1tLHMuUmVxdWVzdD1JLHMuUmVzcG9uc2U9VSksby5IZWFkZXJzPW0sby5SZXF1ZXN0PUksby5SZXNwb25zZT1VLG8uZmV0Y2g9USxPYmplY3QuZGVmaW5lUHJvcGVydHkobywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksb30pKHt9KX0pKGkpLGkuZmV0Y2gucG9ueWZpbGw9ITAsZGVsZXRlIGkuZmV0Y2gucG9seWZpbGw7dmFyIHI9aTt0PXIuZmV0Y2gsdC5kZWZhdWx0PXIuZmV0Y2gsdC5mZXRjaD1yLmZldGNoLHQuSGVhZGVycz1yLkhlYWRlcnMsdC5SZXF1ZXN0PXIuUmVxdWVzdCx0LlJlc3BvbnNlPXIuUmVzcG9uc2UsZS5leHBvcnRzPXR9KShldCxldC5leHBvcnRzKTt2YXIgUmU9ZXQuZXhwb3J0cyxMZT1GdChSZSksc3I9Qih7X19wcm90b19fOm51bGwsZGVmYXVsdDpMZX0sW1JlXSk7Y29uc3QgZGU9ZT0+e2xldCB0PXt9O3JldHVybiBlJiYodHlwZW9mIEhlYWRlcnMhPSJ1bmRlZmluZWQiJiZlIGluc3RhbmNlb2YgSGVhZGVyc3x8c3ImJlJlLkhlYWRlcnMmJmUgaW5zdGFuY2VvZiBSZS5IZWFkZXJzP3Q9ZG4oZSk6QXJyYXkuaXNBcnJheShlKT9lLmZvckVhY2goKFtuLGldKT0+e24mJmkhPT12b2lkIDAmJih0W25dPWkpfSk6dD1lKSx0fSxCdD1lPT5lLnJlcGxhY2UoLyhbXHMsXXwjW15cblxyXSspKy9nLCIgIikudHJpbSgpLG9yPWU9PntpZighQXJyYXkuaXNBcnJheShlLnF1ZXJ5KSl7Y29uc3QgaT1lLHI9W2BxdWVyeT0ke2VuY29kZVVSSUNvbXBvbmVudChCdChpLnF1ZXJ5KSl9YF07cmV0dXJuIGUudmFyaWFibGVzJiZyLnB1c2goYHZhcmlhYmxlcz0ke2VuY29kZVVSSUNvbXBvbmVudChpLmpzb25TZXJpYWxpemVyLnN0cmluZ2lmeShpLnZhcmlhYmxlcykpfWApLGkub3BlcmF0aW9uTmFtZSYmci5wdXNoKGBvcGVyYXRpb25OYW1lPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGkub3BlcmF0aW9uTmFtZSl9YCksci5qb2luKCImIil9aWYodHlwZW9mIGUudmFyaWFibGVzIT0idW5kZWZpbmVkIiYmIUFycmF5LmlzQXJyYXkoZS52YXJpYWJsZXMpKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNyZWF0ZSBxdWVyeSB3aXRoIGdpdmVuIHZhcmlhYmxlIHR5cGUsIGFycmF5IGV4cGVjdGVkIik7Y29uc3QgdD1lLG49ZS5xdWVyeS5yZWR1Y2UoKGkscixzKT0+KGkucHVzaCh7cXVlcnk6QnQociksdmFyaWFibGVzOnQudmFyaWFibGVzP3QuanNvblNlcmlhbGl6ZXIuc3RyaW5naWZ5KHQudmFyaWFibGVzW3NdKTp2b2lkIDB9KSxpKSxbXSk7cmV0dXJuYHF1ZXJ5PSR7ZW5jb2RlVVJJQ29tcG9uZW50KHQuanNvblNlcmlhbGl6ZXIuc3RyaW5naWZ5KG4pKX1gfSxhcj1lPT50PT5YKHRoaXMsbnVsbCxmdW5jdGlvbiooKXt2YXIgTjtjb25zdHt1cmw6bixxdWVyeTppLHZhcmlhYmxlczpyLG9wZXJhdGlvbk5hbWU6cyxmZXRjaDpvLGZldGNoT3B0aW9uczpjLG1pZGRsZXdhcmU6Zn09dCxkPVAoe30sdC5oZWFkZXJzKTtsZXQgdT0iIix5O2U9PT0iUE9TVCI/KHk9dXIoaSxyLHMsYy5qc29uU2VyaWFsaXplciksdHlwZW9mIHk9PSJzdHJpbmciJiYoZFsiQ29udGVudC1UeXBlIl09ImFwcGxpY2F0aW9uL2pzb24iKSk6dT1vcih7cXVlcnk6aSx2YXJpYWJsZXM6cixvcGVyYXRpb25OYW1lOnMsanNvblNlcmlhbGl6ZXI6KE49Yy5qc29uU2VyaWFsaXplcikhPW51bGw/Tjp6ZX0pO2NvbnN0IGc9UCh7bWV0aG9kOmUsaGVhZGVyczpkLGJvZHk6eX0sYyk7bGV0IGI9bixtPWc7aWYoZil7Y29uc3Qgdj15aWVsZCBQcm9taXNlLnJlc29sdmUoZihVZShQKHt9LGcpLHt1cmw6bixvcGVyYXRpb25OYW1lOnMsdmFyaWFibGVzOnJ9KSkpLHt1cmw6a309dix3PXZlKHYsWyJ1cmwiXSk7Yj1rLG09d31yZXR1cm4gdSYmKGI9YCR7Yn0/JHt1fWApLHlpZWxkIG8oYixtKX0pO2NsYXNzIGNye2NvbnN0cnVjdG9yKHQsbj17fSl7dGhpcy51cmw9dCx0aGlzLnJlcXVlc3RDb25maWc9bix0aGlzLnJhd1JlcXVlc3Q9KC4uLmkpPT5YKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdFtyLHMsb109aSxjPW1uKHIscyxvKSx2PXRoaXMucmVxdWVzdENvbmZpZyx7aGVhZGVyczpmLGZldGNoOmQ9TGUsbWV0aG9kOnU9IlBPU1QiLHJlcXVlc3RNaWRkbGV3YXJlOnkscmVzcG9uc2VNaWRkbGV3YXJlOmd9PXYsYj12ZSh2LFsiaGVhZGVycyIsImZldGNoIiwibWV0aG9kIiwicmVxdWVzdE1pZGRsZXdhcmUiLCJyZXNwb25zZU1pZGRsZXdhcmUiXSkse3VybDptfT10aGlzO2Muc2lnbmFsIT09dm9pZCAwJiYoYi5zaWduYWw9Yy5zaWduYWwpO2NvbnN0e29wZXJhdGlvbk5hbWU6Tn09S2UoYy5xdWVyeSk7cmV0dXJuIHR0KHt1cmw6bSxxdWVyeTpjLnF1ZXJ5LHZhcmlhYmxlczpjLnZhcmlhYmxlcyxoZWFkZXJzOlAoUCh7fSxkZShudChmKSkpLGRlKGMucmVxdWVzdEhlYWRlcnMpKSxvcGVyYXRpb25OYW1lOk4sZmV0Y2g6ZCxtZXRob2Q6dSxmZXRjaE9wdGlvbnM6YixtaWRkbGV3YXJlOnl9KS50aGVuKEU9PihnJiZnKEUpLEUpKS5jYXRjaChFPT57dGhyb3cgZyYmZyhFKSxFfSl9KX1yZXF1ZXN0KHQsLi4ubil7cmV0dXJuIFgodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0W2kscl09bixzPXBuKHQsaSxyKSxOPXRoaXMucmVxdWVzdENvbmZpZyx7aGVhZGVyczpvLGZldGNoOmM9TGUsbWV0aG9kOmY9IlBPU1QiLHJlcXVlc3RNaWRkbGV3YXJlOmQscmVzcG9uc2VNaWRkbGV3YXJlOnV9PU4seT12ZShOLFsiaGVhZGVycyIsImZldGNoIiwibWV0aG9kIiwicmVxdWVzdE1pZGRsZXdhcmUiLCJyZXNwb25zZU1pZGRsZXdhcmUiXSkse3VybDpnfT10aGlzO3Muc2lnbmFsIT09dm9pZCAwJiYoeS5zaWduYWw9cy5zaWduYWwpO2NvbnN0e3F1ZXJ5OmIsb3BlcmF0aW9uTmFtZTptfT1LZShzLmRvY3VtZW50KTtyZXR1cm4gdHQoe3VybDpnLHF1ZXJ5OmIsdmFyaWFibGVzOnMudmFyaWFibGVzLGhlYWRlcnM6UChQKHt9LGRlKG50KG8pKSksZGUocy5yZXF1ZXN0SGVhZGVycykpLG9wZXJhdGlvbk5hbWU6bSxmZXRjaDpjLG1ldGhvZDpmLGZldGNoT3B0aW9uczp5LG1pZGRsZXdhcmU6ZH0pLnRoZW4odj0+KHUmJnUodiksdi5kYXRhKSkuY2F0Y2godj0+e3Rocm93IHUmJnUodiksdn0pfSl9YmF0Y2hSZXF1ZXN0cyh0LG4pe3ZhciBkO2NvbnN0IGk9eW4odCxuKSxmPXRoaXMucmVxdWVzdENvbmZpZyx7aGVhZGVyczpyfT1mLHM9dmUoZixbImhlYWRlcnMiXSk7aS5zaWduYWwhPT12b2lkIDAmJihzLnNpZ25hbD1pLnNpZ25hbCk7Y29uc3Qgbz1pLmRvY3VtZW50cy5tYXAoKHtkb2N1bWVudDp1fSk9PktlKHUpLnF1ZXJ5KSxjPWkuZG9jdW1lbnRzLm1hcCgoe3ZhcmlhYmxlczp1fSk9PnUpO3JldHVybiB0dCh7dXJsOnRoaXMudXJsLHF1ZXJ5Om8sdmFyaWFibGVzOmMsaGVhZGVyczpQKFAoe30sZGUobnQocikpKSxkZShpLnJlcXVlc3RIZWFkZXJzKSksb3BlcmF0aW9uTmFtZTp2b2lkIDAsZmV0Y2g6KGQ9dGhpcy5yZXF1ZXN0Q29uZmlnLmZldGNoKSE9bnVsbD9kOkxlLG1ldGhvZDp0aGlzLnJlcXVlc3RDb25maWcubWV0aG9kfHwiUE9TVCIsZmV0Y2hPcHRpb25zOnMsbWlkZGxld2FyZTp0aGlzLnJlcXVlc3RDb25maWcucmVxdWVzdE1pZGRsZXdhcmV9KS50aGVuKHU9Pih0aGlzLnJlcXVlc3RDb25maWcucmVzcG9uc2VNaWRkbGV3YXJlJiZ0aGlzLnJlcXVlc3RDb25maWcucmVzcG9uc2VNaWRkbGV3YXJlKHUpLHUuZGF0YSkpLmNhdGNoKHU9Pnt0aHJvdyB0aGlzLnJlcXVlc3RDb25maWcucmVzcG9uc2VNaWRkbGV3YXJlJiZ0aGlzLnJlcXVlc3RDb25maWcucmVzcG9uc2VNaWRkbGV3YXJlKHUpLHV9KX1zZXRIZWFkZXJzKHQpe3JldHVybiB0aGlzLnJlcXVlc3RDb25maWcuaGVhZGVycz10LHRoaXN9c2V0SGVhZGVyKHQsbil7Y29uc3R7aGVhZGVyczppfT10aGlzLnJlcXVlc3RDb25maWc7cmV0dXJuIGk/aVt0XT1uOnRoaXMucmVxdWVzdENvbmZpZy5oZWFkZXJzPXtbdF06bn0sdGhpc31zZXRFbmRwb2ludCh0KXtyZXR1cm4gdGhpcy51cmw9dCx0aGlzfX1jb25zdCB0dD1lPT5YKHRoaXMsbnVsbCxmdW5jdGlvbiooKXt2YXIgdSx5O2NvbnN0e3F1ZXJ5OnQsdmFyaWFibGVzOm4sZmV0Y2hPcHRpb25zOml9PWUscj1hcihobigodT1lLm1ldGhvZCkhPW51bGw/dToicG9zdCIpKSxzPUFycmF5LmlzQXJyYXkoZS5xdWVyeSksbz15aWVsZCByKGUpLGM9eWllbGQgbHIobywoeT1pLmpzb25TZXJpYWxpemVyKSE9bnVsbD95OnplKSxmPUFycmF5LmlzQXJyYXkoYyk/IWMuc29tZSgoe2RhdGE6Yn0pPT4hYik6ISFjLmRhdGEsZD1BcnJheS5pc0FycmF5KGMpfHwhYy5lcnJvcnN8fEFycmF5LmlzQXJyYXkoYy5lcnJvcnMpJiYhYy5lcnJvcnMubGVuZ3RofHxpLmVycm9yUG9saWN5PT09ImFsbCJ8fGkuZXJyb3JQb2xpY3k9PT0iaWdub3JlIjtpZihvLm9rJiZkJiZmKXtjb25zdCBnPShBcnJheS5pc0FycmF5KGMpLGMpLHtlcnJvcnM6Yn09ZyxtPXZlKGcsWyJlcnJvcnMiXSksTj1pLmVycm9yUG9saWN5PT09Imlnbm9yZSI/bTpjO3JldHVybiBVZShQKHt9LHM/e2RhdGE6Tn06Tikse2hlYWRlcnM6by5oZWFkZXJzLHN0YXR1czpvLnN0YXR1c30pfWVsc2V7Y29uc3QgYj10eXBlb2YgYz09InN0cmluZyI/e2Vycm9yOmN9OmM7dGhyb3cgbmV3IGhlKFVlKFAoe30sYikse3N0YXR1czpvLnN0YXR1cyxoZWFkZXJzOm8uaGVhZGVyc30pLHtxdWVyeTp0LHZhcmlhYmxlczpufSl9fSksdXI9KGUsdCxuLGkpPT57Y29uc3Qgcj1pIT1udWxsP2k6emU7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHIuc3RyaW5naWZ5KHtxdWVyeTplLHZhcmlhYmxlczp0LG9wZXJhdGlvbk5hbWU6bn0pO2lmKHR5cGVvZiB0IT0idW5kZWZpbmVkIiYmIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IEVycm9yKCJDYW5ub3QgY3JlYXRlIHJlcXVlc3QgYm9keSB3aXRoIGdpdmVuIHZhcmlhYmxlIHR5cGUsIGFycmF5IGV4cGVjdGVkIik7Y29uc3Qgcz1lLnJlZHVjZSgobyxjLGYpPT4oby5wdXNoKHtxdWVyeTpjLHZhcmlhYmxlczp0P3RbZl06dm9pZCAwfSksbyksW10pO3JldHVybiByLnN0cmluZ2lmeShzKX0sbHI9KGUsdCk9PlgodGhpcyxudWxsLGZ1bmN0aW9uKigpe2xldCBuO3JldHVybiBlLmhlYWRlcnMuZm9yRWFjaCgoaSxyKT0+e3IudG9Mb3dlckNhc2UoKT09PSJjb250ZW50LXR5cGUiJiYobj1pKX0pLG4mJihuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vanNvbiIpfHxuLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aCgiYXBwbGljYXRpb24vZ3JhcGhxbCtqc29uIil8fG4udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKCJhcHBsaWNhdGlvbi9ncmFwaHFsLXJlc3BvbnNlK2pzb24iKSk/dC5wYXJzZSh5aWVsZCBlLnRleHQoKSk6ZS50ZXh0KCl9KSxudD1lPT50eXBlb2YgZT09ImZ1bmN0aW9uIj9lKCk6ZTt2YXIgcnQ9e2V4cG9ydHM6e319OyhmdW5jdGlvbihlLHQpe3Q9ZS5leHBvcnRzPW4sdC5nZXRTZXJpYWxpemU9aTtmdW5jdGlvbiBuKHIscyxvLGMpe3JldHVybiBKU09OLnN0cmluZ2lmeShyLGkocyxjKSxvKX1mdW5jdGlvbiBpKHIscyl7dmFyIG89W10sYz1bXTtyZXR1cm4gcz09bnVsbCYmKHM9ZnVuY3Rpb24oZixkKXtyZXR1cm4gb1swXT09PWQ/IltDaXJjdWxhciB+XSI6IltDaXJjdWxhciB+LiIrYy5zbGljZSgwLG8uaW5kZXhPZihkKSkuam9pbigiLiIpKyJdIn0pLGZ1bmN0aW9uKGYsZCl7aWYoby5sZW5ndGg+MCl7dmFyIHU9by5pbmRleE9mKHRoaXMpO351P28uc3BsaWNlKHUrMSk6by5wdXNoKHRoaXMpLH51P2Muc3BsaWNlKHUsMS8wLGYpOmMucHVzaChmKSx+by5pbmRleE9mKGQpJiYoZD1zLmNhbGwodGhpcyxmLGQpKX1lbHNlIG8ucHVzaChkKTtyZXR1cm4gcj09bnVsbD9kOnIuY2FsbCh0aGlzLGYsZCl9fX0pKHJ0LHJ0LmV4cG9ydHMpO3ZhciBmcj1ydC5leHBvcnRzLHBlPUZ0KGZyKTtjb25zdCAkdD0xZTMqMTU7dmFyIFBlPWZ1bmN0aW9uKCl7cmV0dXJuIFBlPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgbixpPTEscj1hcmd1bWVudHMubGVuZ3RoO2k8cjtpKyspe249YXJndW1lbnRzW2ldO2Zvcih2YXIgcyBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLHMpJiYodFtzXT1uW3NdKX1yZXR1cm4gdH0sUGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfTt0eXBlb2YgU3VwcHJlc3NlZEVycm9yPT0iZnVuY3Rpb24iJiZTdXBwcmVzc2VkRXJyb3I7dmFyIEZlPW5ldyBNYXAsaXQ9bmV3IE1hcCxNdD0hMCxCZT0hMTtmdW5jdGlvbiBVdChlKXtyZXR1cm4gZS5yZXBsYWNlKC9bXHMsXSsvZywiICIpLnRyaW0oKX1mdW5jdGlvbiBocihlKXtyZXR1cm4gVXQoZS5zb3VyY2UuYm9keS5zdWJzdHJpbmcoZS5zdGFydCxlLmVuZCkpfWZ1bmN0aW9uIGRyKGUpe3ZhciB0PW5ldyBTZXQsbj1bXTtyZXR1cm4gZS5kZWZpbml0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKGkpe2lmKGkua2luZD09PSJGcmFnbWVudERlZmluaXRpb24iKXt2YXIgcj1pLm5hbWUudmFsdWUscz1ocihpLmxvYyksbz1pdC5nZXQocik7byYmIW8uaGFzKHMpP010JiZjb25zb2xlLndhcm4oIldhcm5pbmc6IGZyYWdtZW50IHdpdGggbmFtZSAiK3IrYCBhbHJlYWR5IGV4aXN0cy4KZ3JhcGhxbC10YWcgZW5mb3JjZXMgYWxsIGZyYWdtZW50IG5hbWVzIGFjcm9zcyB5b3VyIGFwcGxpY2F0aW9uIHRvIGJlIHVuaXF1ZTsgcmVhZCBtb3JlIGFib3V0CnRoaXMgaW4gdGhlIGRvY3M6IGh0dHA6Ly9kZXYuYXBvbGxvZGF0YS5jb20vY29yZS9mcmFnbWVudHMuaHRtbCN1bmlxdWUtbmFtZXNgKTpvfHxpdC5zZXQocixvPW5ldyBTZXQpLG8uYWRkKHMpLHQuaGFzKHMpfHwodC5hZGQocyksbi5wdXNoKGkpKX1lbHNlIG4ucHVzaChpKX0pLFBlKFBlKHt9LGUpLHtkZWZpbml0aW9uczpufSl9ZnVuY3Rpb24gcHIoZSl7dmFyIHQ9bmV3IFNldChlLmRlZmluaXRpb25zKTt0LmZvckVhY2goZnVuY3Rpb24oaSl7aS5sb2MmJmRlbGV0ZSBpLmxvYyxPYmplY3Qua2V5cyhpKS5mb3JFYWNoKGZ1bmN0aW9uKHIpe3ZhciBzPWlbcl07cyYmdHlwZW9mIHM9PSJvYmplY3QiJiZ0LmFkZChzKX0pfSk7dmFyIG49ZS5sb2M7cmV0dXJuIG4mJihkZWxldGUgbi5zdGFydFRva2VuLGRlbGV0ZSBuLmVuZFRva2VuKSxlfWZ1bmN0aW9uIG1yKGUpe3ZhciB0PVV0KGUpO2lmKCFGZS5oYXModCkpe3ZhciBuPWt0KGUse2V4cGVyaW1lbnRhbEZyYWdtZW50VmFyaWFibGVzOkJlLGFsbG93TGVnYWN5RnJhZ21lbnRWYXJpYWJsZXM6QmV9KTtpZighbnx8bi5raW5kIT09IkRvY3VtZW50Iil0aHJvdyBuZXcgRXJyb3IoIk5vdCBhIHZhbGlkIEdyYXBoUUwgZG9jdW1lbnQuIik7RmUuc2V0KHQscHIoZHIobikpKX1yZXR1cm4gRmUuZ2V0KHQpfWZ1bmN0aW9uIFcoZSl7Zm9yKHZhciB0PVtdLG49MTtuPGFyZ3VtZW50cy5sZW5ndGg7bisrKXRbbi0xXT1hcmd1bWVudHNbbl07dHlwZW9mIGU9PSJzdHJpbmciJiYoZT1bZV0pO3ZhciBpPWVbMF07cmV0dXJuIHQuZm9yRWFjaChmdW5jdGlvbihyLHMpe3ImJnIua2luZD09PSJEb2N1bWVudCI/aSs9ci5sb2Muc291cmNlLmJvZHk6aSs9cixpKz1lW3MrMV19KSxtcihpKX1mdW5jdGlvbiB5cigpe0ZlLmNsZWFyKCksaXQuY2xlYXIoKX1mdW5jdGlvbiB2cigpe010PSExfWZ1bmN0aW9uIGdyKCl7QmU9ITB9ZnVuY3Rpb24gRXIoKXtCZT0hMX12YXIgQWU9e2dxbDpXLHJlc2V0Q2FjaGVzOnlyLGRpc2FibGVGcmFnbWVudFdhcm5pbmdzOnZyLGVuYWJsZUV4cGVyaW1lbnRhbEZyYWdtZW50VmFyaWFibGVzOmdyLGRpc2FibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlczpFcn07KGZ1bmN0aW9uKGUpe2UuZ3FsPUFlLmdxbCxlLnJlc2V0Q2FjaGVzPUFlLnJlc2V0Q2FjaGVzLGUuZGlzYWJsZUZyYWdtZW50V2FybmluZ3M9QWUuZGlzYWJsZUZyYWdtZW50V2FybmluZ3MsZS5lbmFibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlcz1BZS5lbmFibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlcyxlLmRpc2FibGVFeHBlcmltZW50YWxGcmFnbWVudFZhcmlhYmxlcz1BZS5kaXNhYmxlRXhwZXJpbWVudGFsRnJhZ21lbnRWYXJpYWJsZXN9KShXfHwoVz17fSkpLFcuZGVmYXVsdD1XO3ZhciBWdDsoZnVuY3Rpb24oZSl7ZS5CaWxsaW5nUXVvdGFFeGNlZWRlZD0iQmlsbGluZ1F1b3RhRXhjZWVkZWQifSkoVnR8fChWdD17fSkpO2NvbnN0IF9yPVdgCgltdXRhdGlvbiBQdXNoUGF5bG9hZCgKCQkkc2Vzc2lvbl9zZWN1cmVfaWQ6IFN0cmluZyEKCQkkcGF5bG9hZF9pZDogSUQhCgkJJGV2ZW50czogUmVwbGF5RXZlbnRzSW5wdXQhCgkJJG1lc3NhZ2VzOiBTdHJpbmchCgkJJHJlc291cmNlczogU3RyaW5nIQoJCSR3ZWJfc29ja2V0X2V2ZW50czogU3RyaW5nIQoJCSRlcnJvcnM6IFtFcnJvck9iamVjdElucHV0XSEKCQkkaXNfYmVhY29uOiBCb29sZWFuCgkJJGhhc19zZXNzaW9uX3VubG9hZGVkOiBCb29sZWFuCgkJJGhpZ2hsaWdodF9sb2dzOiBTdHJpbmcKCSkgewoJCXB1c2hQYXlsb2FkKAoJCQlzZXNzaW9uX3NlY3VyZV9pZDogJHNlc3Npb25fc2VjdXJlX2lkCgkJCXBheWxvYWRfaWQ6ICRwYXlsb2FkX2lkCgkJCWV2ZW50czogJGV2ZW50cwoJCQltZXNzYWdlczogJG1lc3NhZ2VzCgkJCXJlc291cmNlczogJHJlc291cmNlcwoJCQl3ZWJfc29ja2V0X2V2ZW50czogJHdlYl9zb2NrZXRfZXZlbnRzCgkJCWVycm9yczogJGVycm9ycwoJCQlpc19iZWFjb246ICRpc19iZWFjb24KCQkJaGFzX3Nlc3Npb25fdW5sb2FkZWQ6ICRoYXNfc2Vzc2lvbl91bmxvYWRlZAoJCQloaWdobGlnaHRfbG9nczogJGhpZ2hsaWdodF9sb2dzCgkJKQoJfQpgLFRyPVdgCgltdXRhdGlvbiBQdXNoUGF5bG9hZENvbXByZXNzZWQoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHBheWxvYWRfaWQ6IElEIQoJCSRkYXRhOiBTdHJpbmchCgkpIHsKCQlwdXNoUGF5bG9hZENvbXByZXNzZWQoCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJcGF5bG9hZF9pZDogJHBheWxvYWRfaWQKCQkJZGF0YTogJGRhdGEKCQkpCgl9CmAsYnI9V2AKCW11dGF0aW9uIGlkZW50aWZ5U2Vzc2lvbigKCQkkc2Vzc2lvbl9zZWN1cmVfaWQ6IFN0cmluZyEKCQkkdXNlcl9pZGVudGlmaWVyOiBTdHJpbmchCgkJJHVzZXJfb2JqZWN0OiBBbnkKCSkgewoJCWlkZW50aWZ5U2Vzc2lvbigKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQl1c2VyX2lkZW50aWZpZXI6ICR1c2VyX2lkZW50aWZpZXIKCQkJdXNlcl9vYmplY3Q6ICR1c2VyX29iamVjdAoJCSkKCX0KYCxOcj1XYAoJbXV0YXRpb24gYWRkU2Vzc2lvblByb3BlcnRpZXMoCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHByb3BlcnRpZXNfb2JqZWN0OiBBbnkKCSkgewoJCWFkZFNlc3Npb25Qcm9wZXJ0aWVzKAoJCQlzZXNzaW9uX3NlY3VyZV9pZDogJHNlc3Npb25fc2VjdXJlX2lkCgkJCXByb3BlcnRpZXNfb2JqZWN0OiAkcHJvcGVydGllc19vYmplY3QKCQkpCgl9CmAseHI9V2AKCW11dGF0aW9uIHB1c2hNZXRyaWNzKCRtZXRyaWNzOiBbTWV0cmljSW5wdXRdISkgewoJCXB1c2hNZXRyaWNzKG1ldHJpY3M6ICRtZXRyaWNzKQoJfQpgLEFyPVdgCgltdXRhdGlvbiBhZGRTZXNzaW9uRmVlZGJhY2soCgkJJHNlc3Npb25fc2VjdXJlX2lkOiBTdHJpbmchCgkJJHVzZXJfbmFtZTogU3RyaW5nCgkJJHVzZXJfZW1haWw6IFN0cmluZwoJCSR2ZXJiYXRpbTogU3RyaW5nIQoJCSR0aW1lc3RhbXA6IFRpbWVzdGFtcCEKCSkgewoJCWFkZFNlc3Npb25GZWVkYmFjaygKCQkJc2Vzc2lvbl9zZWN1cmVfaWQ6ICRzZXNzaW9uX3NlY3VyZV9pZAoJCQl1c2VyX25hbWU6ICR1c2VyX25hbWUKCQkJdXNlcl9lbWFpbDogJHVzZXJfZW1haWwKCQkJdmVyYmF0aW06ICR2ZXJiYXRpbQoJCQl0aW1lc3RhbXA6ICR0aW1lc3RhbXAKCQkpCgl9CmAsSXI9V2AKCW11dGF0aW9uIGluaXRpYWxpemVTZXNzaW9uKAoJCSRzZXNzaW9uX3NlY3VyZV9pZDogU3RyaW5nIQoJCSRvcmdhbml6YXRpb25fdmVyYm9zZV9pZDogU3RyaW5nIQoJCSRlbmFibGVfc3RyaWN0X3ByaXZhY3k6IEJvb2xlYW4hCgkJJHByaXZhY3lfc2V0dGluZzogU3RyaW5nIQoJCSRlbmFibGVfcmVjb3JkaW5nX25ldHdvcmtfY29udGVudHM6IEJvb2xlYW4hCgkJJGNsaWVudFZlcnNpb246IFN0cmluZyEKCQkkZmlyc3Rsb2FkVmVyc2lvbjogU3RyaW5nIQoJCSRjbGllbnRDb25maWc6IFN0cmluZyEKCQkkZW52aXJvbm1lbnQ6IFN0cmluZyEKCQkkaWQ6IFN0cmluZyEKCQkkYXBwVmVyc2lvbjogU3RyaW5nCgkJJHNlcnZpY2VOYW1lOiBTdHJpbmchCgkJJGNsaWVudF9pZDogU3RyaW5nIQoJCSRuZXR3b3JrX3JlY29yZGluZ19kb21haW5zOiBbU3RyaW5nIV0KCQkkZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZzogQm9vbGVhbgoJKSB7CgkJaW5pdGlhbGl6ZVNlc3Npb24oCgkJCXNlc3Npb25fc2VjdXJlX2lkOiAkc2Vzc2lvbl9zZWN1cmVfaWQKCQkJb3JnYW5pemF0aW9uX3ZlcmJvc2VfaWQ6ICRvcmdhbml6YXRpb25fdmVyYm9zZV9pZAoJCQllbmFibGVfc3RyaWN0X3ByaXZhY3k6ICRlbmFibGVfc3RyaWN0X3ByaXZhY3kKCQkJZW5hYmxlX3JlY29yZGluZ19uZXR3b3JrX2NvbnRlbnRzOiAkZW5hYmxlX3JlY29yZGluZ19uZXR3b3JrX2NvbnRlbnRzCgkJCWNsaWVudFZlcnNpb246ICRjbGllbnRWZXJzaW9uCgkJCWZpcnN0bG9hZFZlcnNpb246ICRmaXJzdGxvYWRWZXJzaW9uCgkJCWNsaWVudENvbmZpZzogJGNsaWVudENvbmZpZwoJCQllbnZpcm9ubWVudDogJGVudmlyb25tZW50CgkJCWFwcFZlcnNpb246ICRhcHBWZXJzaW9uCgkJCXNlcnZpY2VOYW1lOiAkc2VydmljZU5hbWUKCQkJZmluZ2VycHJpbnQ6ICRpZAoJCQljbGllbnRfaWQ6ICRjbGllbnRfaWQKCQkJbmV0d29ya19yZWNvcmRpbmdfZG9tYWluczogJG5ldHdvcmtfcmVjb3JkaW5nX2RvbWFpbnMKCQkJZGlzYWJsZV9zZXNzaW9uX3JlY29yZGluZzogJGRpc2FibGVfc2Vzc2lvbl9yZWNvcmRpbmcKCQkJcHJpdmFjeV9zZXR0aW5nOiAkcHJpdmFjeV9zZXR0aW5nCgkJKSB7CgkJCXNlY3VyZV9pZAoJCQlwcm9qZWN0X2lkCgkJfQoJfQpgLE9yPVdgCglxdWVyeSBJZ25vcmUoJGlkOiBJRCEpIHsKCQlpZ25vcmUoaWQ6ICRpZCkKCX0KYCxTcj0oZSx0LG4saSk9PmUoKTtmdW5jdGlvbiB3cihlLHQ9U3Ipe3JldHVybntQdXNoUGF5bG9hZChuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChfcixuLFAoUCh7fSxpKSxyKSksIlB1c2hQYXlsb2FkIiwibXV0YXRpb24iLG4pfSxQdXNoUGF5bG9hZENvbXByZXNzZWQobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoVHIsbixQKFAoe30saSkscikpLCJQdXNoUGF5bG9hZENvbXByZXNzZWQiLCJtdXRhdGlvbiIsbil9LGlkZW50aWZ5U2Vzc2lvbihuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChicixuLFAoUCh7fSxpKSxyKSksImlkZW50aWZ5U2Vzc2lvbiIsIm11dGF0aW9uIixuKX0sYWRkU2Vzc2lvblByb3BlcnRpZXMobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoTnIsbixQKFAoe30saSkscikpLCJhZGRTZXNzaW9uUHJvcGVydGllcyIsIm11dGF0aW9uIixuKX0scHVzaE1ldHJpY3MobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoeHIsbixQKFAoe30saSkscikpLCJwdXNoTWV0cmljcyIsIm11dGF0aW9uIixuKX0sYWRkU2Vzc2lvbkZlZWRiYWNrKG4saSl7cmV0dXJuIHQocj0+ZS5yZXF1ZXN0KEFyLG4sUChQKHt9LGkpLHIpKSwiYWRkU2Vzc2lvbkZlZWRiYWNrIiwibXV0YXRpb24iLG4pfSxpbml0aWFsaXplU2Vzc2lvbihuLGkpe3JldHVybiB0KHI9PmUucmVxdWVzdChJcixuLFAoUCh7fSxpKSxyKSksImluaXRpYWxpemVTZXNzaW9uIiwibXV0YXRpb24iLG4pfSxJZ25vcmUobixpKXtyZXR1cm4gdChyPT5lLnJlcXVlc3QoT3IsbixQKFAoe30saSkscikpLCJJZ25vcmUiLCJxdWVyeSIsbil9fX1jbGFzcyBEcntjb25zdHJ1Y3Rvcih0LG4pe2x0KHRoaXMsImRlYnVnIik7bHQodGhpcywibmFtZSIpO3RoaXMuZGVidWc9dCx0aGlzLm5hbWU9bn1sb2coLi4udCl7aWYodGhpcy5kZWJ1Zyl7bGV0IG49YFske0RhdGUubm93KCl9XWA7dGhpcy5uYW1lJiYobis9YCAtICR7dGhpcy5uYW1lfWApLGNvbnNvbGUubG9nLmFwcGx5KGNvbnNvbGUsW24sLi4udF0pfX19dmFyIHN0OyhmdW5jdGlvbihlKXtlLkJpbGxpbmdRdW90YUV4Y2VlZGVkPSJCaWxsaW5nUXVvdGFFeGNlZWRlZCJ9KShzdHx8KHN0PXt9KSk7Y29uc3QgQ3I9MTAsa3I9MWUzLFJyPTUwMCxMcj1bc3QuQmlsbGluZ1F1b3RhRXhjZWVkZWQudG9TdHJpbmcoKV0sUHI9ZT0+e3ZhciBuO3JldHVybigobj1lLnJlc3BvbnNlLmVycm9ycyk9PW51bGw/dm9pZCAwOm4uZmluZChpPT5Mci5pbmNsdWRlcyhpLm1lc3NhZ2UpKSk9PT12b2lkIDB9LEZyPWU9Pntjb25zdCB0PShuLGkscixzLG89MCk9PlgodGhpcyxudWxsLGZ1bmN0aW9uKigpe3RyeXtyZXR1cm4geWllbGQgbigpfWNhdGNoKGMpe2lmKGMgaW5zdGFuY2VvZiBoZSYmIVByKGMpKXRocm93IGM7aWYobzxDcilyZXR1cm4geWllbGQgbmV3IFByb21pc2UoZj0+c2V0VGltZW91dChmLGtyK1JyKk1hdGgucG93KDIsbykpKSx5aWVsZCB0KG4saSxyLHMsbysxKTt0aHJvdyBjb25zb2xlLmVycm9yKGBoaWdobGlnaHQuaW86IFske2V8fGV9XSBkYXRhIHJlcXVlc3QgZmFpbGVkIGFmdGVyICR7b30gcmV0cmllc2ApLGN9fSk7cmV0dXJuIHR9LGp0PTUscXQ9MmUzLEJyPVsibnVtYmVyIiwic3RyaW5nIiwiYm9vbGVhbiJdO3ZhciBaOyhmdW5jdGlvbihlKXtlW2UuSW5pdGlhbGl6ZT0wXT0iSW5pdGlhbGl6ZSIsZVtlLkFzeW5jRXZlbnRzPTFdPSJBc3luY0V2ZW50cyIsZVtlLklkZW50aWZ5PTJdPSJJZGVudGlmeSIsZVtlLlByb3BlcnRpZXM9M109IlByb3BlcnRpZXMiLGVbZS5NZXRyaWNzPTRdPSJNZXRyaWNzIixlW2UuRmVlZGJhY2s9NV09IkZlZWRiYWNrIixlW2UuQ3VzdG9tRXZlbnQ9Nl09IkN1c3RvbUV2ZW50IixlW2UuU3RvcD03XT0iU3RvcCJ9KShafHwoWj17fSkpO2Z1bmN0aW9uICRyKGUpe3JldHVybiBYKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdCB0PXlpZWxkIG5ldyBQcm9taXNlKG49Pntjb25zdCBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPSgpPT5uKGkucmVzdWx0KSxpLnJlYWRBc0RhdGFVUkwobmV3IEJsb2IoW2VdKSl9KTtyZXR1cm4gdC5zbGljZSh0LmluZGV4T2YoIiwiKSsxKX0pfWNvbnN0ICRlPXNlbGY7ZnVuY3Rpb24gR3QoZSx0KXtjb25zdCBuPXt9LGk9W10scj1bXTtmb3IoY29uc3RbcyxvXW9mIE9iamVjdC5lbnRyaWVzKGUpKXtpZihvPT1udWxsKWNvbnRpbnVlO0JyLmluY2x1ZGVzKHR5cGVvZiBvKXx8aS5wdXNoKHtbc106b30pO2xldCBjO3R5cGVvZiBvPT0ic3RyaW5nIj9jPW86Yz1wZShvKSxjLmxlbmd0aD5xdCYmKHIucHVzaCh7W3NdOm99KSxjPWMuc3Vic3RyaW5nKDAscXQpKSxuW3NdPWN9cmV0dXJuIHQhPT0ic2Vzc2lvbiImJihpLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYEhpZ2hsaWdodCB3YXMgcGFzc2VkIG9uZSBvciBtb3JlICR7dH0gcHJvcGVydGllcyBub3Qgb2YgdHlwZSBzdHJpbmcsIG51bWJlciwgb3IgYm9vbGVhbi5gLGkpLHIubGVuZ3RoPjAmJmNvbnNvbGUud2FybihgSGlnaGxpZ2h0IHdhcyBwYXNzZWQgb25lIG9yIG1vcmUgJHt0fSBwcm9wZXJ0aWVzIGV4Y2VlZGluZyAyMDAwIGNoYXJhY3RlcnMsIHdoaWNoIHdpbGwgYmUgdHJ1bmNhdGVkLmAscikpLG59e2xldCBlLHQsbixpPTAscj0wLHM9ITEsbz0wLGM9bmV3IERyKCExLCJbd29ya2VyXSIpO2NvbnN0IGY9W10sZD0oKT0+byE9PTAmJmk8anQmJiEhKG4hPW51bGwmJm4ubGVuZ3RoKSx1PSh2LEUpPT57JGUucG9zdE1lc3NhZ2Uoe3Jlc3BvbnNlOnt0eXBlOlouQ3VzdG9tRXZlbnQsdGFnOnYscGF5bG9hZDpFfX0pfSx5PXY9PlgodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0e2lkOkUsZXZlbnRzOmssbWVzc2FnZXM6dyxlcnJvcnM6TCxyZXNvdXJjZXNTdHJpbmc6JCx3ZWJTb2NrZXRFdmVudHNTdHJpbmc6cSxoYXNTZXNzaW9uVW5sb2FkZWQ6TSxoaWdobGlnaHRMb2dzOkl9PXYsTz1wZSh7bWVzc2FnZXM6d30pO2xldCBqPXtzZXNzaW9uX3NlY3VyZV9pZDpuLHBheWxvYWRfaWQ6RS50b1N0cmluZygpLGV2ZW50czp7ZXZlbnRzOmt9LG1lc3NhZ2VzOk8scmVzb3VyY2VzOiQsd2ViX3NvY2tldF9ldmVudHM6cSxlcnJvcnM6TCxpc19iZWFjb246ITEsaGFzX3Nlc3Npb25fdW5sb2FkZWQ6TX07SSYmKGouaGlnaGxpZ2h0X2xvZ3M9SSk7Y29uc3QgVT1mbihKU09OLnN0cmluZ2lmeShqKSksSD1jbihVKSxRPXlpZWxkICRyKEgpLGE9e3R5cGU6Wi5Bc3luY0V2ZW50cyxpZDpFLGV2ZW50c1NpemU6VS5sZW5ndGgsY29tcHJlc3NlZFNpemU6US5sZW5ndGh9O2MubG9nKGBQdXNoaW5nIHBheWxvYWQ6ICR7SlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25TZWN1cmVJRDpuLGlkOkUsZmlyc3RTSUQ6TWF0aC5taW4oLi4uai5ldmVudHMuZXZlbnRzLm1hcCh4PT54PT1udWxsP3ZvaWQgMDp4Ll9zaWQpLmZpbHRlcih4PT4hIXgpKSxldmVudHNMZW5ndGg6ai5ldmVudHMuZXZlbnRzLmxlbmd0aCxtZXNzYWdlc0xlbmd0aDp3Lmxlbmd0aCxyZXNvdXJjZXNMZW5ndGg6JC5sZW5ndGgsd2ViU29ja2V0TGVuZ3RoOnEubGVuZ3RoLGVycm9yc0xlbmd0aDpMLmxlbmd0aCxidWZMZW5ndGg6VS5sZW5ndGgsY29tcHJlc3NlZExlbmd0aDpILmxlbmd0aCxjb21wcmVzc2VkQmFzZTY0TGVuZ3RoOlEubGVuZ3RofSx2b2lkIDAsMil9YCk7Y29uc3QgaD1lLlB1c2hQYXlsb2FkQ29tcHJlc3NlZCh7c2Vzc2lvbl9zZWN1cmVfaWQ6bixwYXlsb2FkX2lkOkUudG9TdHJpbmcoKSxkYXRhOlF9KTtsZXQgXz1Qcm9taXNlLnJlc29sdmUoKTtmLmxlbmd0aCYmKF89ZS5wdXNoTWV0cmljcyh7bWV0cmljczpmfSksZi5zcGxpY2UoMCkpO2xldCBBPXBlcmZvcm1hbmNlLm5vdygpO2NvbnN0IFI9c2V0SW50ZXJ2YWwoKCk9PntBJiZwZXJmb3JtYW5jZS5ub3coKS1BPiR0JiYoY29uc29sZS53YXJuKGBVcGxvYWRpbmcgcHVzaFBheWxvYWQgdG9vayB0b28gbG9uZywgZmFpbHVyZSBudW1iZXIgIyR7cn0uYCkscis9MSxjbGVhckludGVydmFsKFIpLHI+PWp0JiYoY29uc29sZS53YXJuKCJVcGxvYWRpbmcgcHVzaFBheWxvYWQgdG9vayB0b28gbG9uZywgc3RvcHBpbmcgcmVjb3JkaW5nIHRvIGF2b2lkIE9PTS4iKSwkZS5wb3N0TWVzc2FnZSh7cmVzcG9uc2U6e3R5cGU6Wi5TdG9wLHJlcXVlc3RTdGFydDpBLGFzeW5jRXZlbnRzUmVzcG9uc2U6YX19KSxiKHt0eXBlOlouUHJvcGVydGllcyxwcm9wZXJ0aWVzT2JqZWN0OntzdG9wUmVhc29uOiJQdXNoIFBheWxvYWQgVGltZW91dCJ9LHByb3BlcnR5VHlwZTp7dHlwZToidHJhY2sifX0pKSl9LDEwMCk7dHJ5e3lpZWxkIFByb21pc2UuYWxsKFtoLF9dKSxyJiZwZXJmb3JtYW5jZS5ub3coKS1BPD0kdCYmKGNvbnNvbGUud2FybihgcHVzaFBheWxvYWQgc3VjY2VlZGVkIGFmdGVyICMke3J9IGZhaWx1cmVzLCByZXNldHRpbmcgc3RvcCBzd2l0Y2guYCkscj0wKX1maW5hbGx5e0E9MCxjbGVhckludGVydmFsKFIpfSRlLnBvc3RNZXNzYWdlKHtyZXNwb25zZTphfSl9KSxnPXY9PlgodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0e3VzZXJPYmplY3Q6RSx1c2VySWRlbnRpZmllcjprLHNvdXJjZTp3fT12O3c9PT0ic2VnbWVudCI/dSgiU2VnbWVudCBJZGVudGlmeSIscGUoUCh7dXNlcklkZW50aWZpZXI6a30sRSkpKTp1KCJJZGVudGlmeSIscGUoUCh7dXNlcklkZW50aWZpZXI6a30sRSkpKSx5aWVsZCBlLmlkZW50aWZ5U2Vzc2lvbih7c2Vzc2lvbl9zZWN1cmVfaWQ6bix1c2VyX2lkZW50aWZpZXI6ayx1c2VyX29iamVjdDpHdChFLCJ1c2VyIil9KTtjb25zdCBMPXc9PT0ic2VnbWVudCI/dzoiZGVmYXVsdCI7Yy5sb2coYElkZW50aWZ5ICgke2t9LCBzb3VyY2U6ICR7TH0pIHcvIG9iajogJHtwZShFKX0gQCAke3R9YCl9KSxiPXY9PlgodGhpcyxudWxsLGZ1bmN0aW9uKigpe2NvbnN0e3Byb3BlcnRpZXNPYmplY3Q6RSxwcm9wZXJ0eVR5cGU6a309djtsZXQgdzsoaz09bnVsbD92b2lkIDA6ay50eXBlKT09PSJzZXNzaW9uIj8odz0iU2Vzc2lvbiIseWllbGQgZS5hZGRTZXNzaW9uUHJvcGVydGllcyh7c2Vzc2lvbl9zZWN1cmVfaWQ6bixwcm9wZXJ0aWVzX29iamVjdDpHdChFLCJzZXNzaW9uIil9KSk6KGs9PW51bGw/dm9pZCAwOmsuc291cmNlKT09PSJzZWdtZW50Ij93PSJTZWdtZW50Ijp3PSJUcmFjayIsdyE9PSJTZXNzaW9uIiYmdSh3LHBlKEUpKSxjLmxvZyhgQWRkaW5nICR7d30gUHJvcGVydGllcyB0byBzZXNzaW9uICgke259KSB3LyBvYmo6ICR7SlNPTi5zdHJpbmdpZnkoRSl9IEAgJHt0fWApfSksbT12PT5YKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtmLnB1c2goLi4udi5tZXRyaWNzLm1hcChFPT4oe25hbWU6RS5uYW1lLHZhbHVlOkUudmFsdWUsc2Vzc2lvbl9zZWN1cmVfaWQ6bixjYXRlZ29yeTpFLmNhdGVnb3J5LGdyb3VwOkUuZ3JvdXAsdGltZXN0YW1wOkUudGltZXN0YW1wLnRvSVNPU3RyaW5nKCksdGFnczpFLnRhZ3N9KSkpfSksTj12PT5YKHRoaXMsbnVsbCxmdW5jdGlvbiooKXtjb25zdHt0aW1lc3RhbXA6RSx2ZXJiYXRpbTprLHVzZXJFbWFpbDp3LHVzZXJOYW1lOkx9PXY7eWllbGQgZS5hZGRTZXNzaW9uRmVlZGJhY2soe3Nlc3Npb25fc2VjdXJlX2lkOm4sdGltZXN0YW1wOkUsdmVyYmF0aW06ayx1c2VyX2VtYWlsOncsdXNlcl9uYW1lOkx9KX0pOyRlLm9ubWVzc2FnZT1mdW5jdGlvbih2KXtyZXR1cm4gWCh0aGlzLG51bGwsZnVuY3Rpb24qKCl7aWYodi5kYXRhLm1lc3NhZ2UudHlwZT09PVouSW5pdGlhbGl6ZSl7dD12LmRhdGEubWVzc2FnZS5iYWNrZW5kLG49di5kYXRhLm1lc3NhZ2Uuc2Vzc2lvblNlY3VyZUlELHM9di5kYXRhLm1lc3NhZ2UuZGVidWcsbz12LmRhdGEubWVzc2FnZS5yZWNvcmRpbmdTdGFydFRpbWUsYy5kZWJ1Zz1zLGU9d3IobmV3IGNyKHQse2hlYWRlcnM6e319KSxGcihuKSk7cmV0dXJufWlmKGQoKSl0cnl7di5kYXRhLm1lc3NhZ2UudHlwZT09PVouQXN5bmNFdmVudHM/eWllbGQgeSh2LmRhdGEubWVzc2FnZSk6di5kYXRhLm1lc3NhZ2UudHlwZT09PVouSWRlbnRpZnk/eWllbGQgZyh2LmRhdGEubWVzc2FnZSk6di5kYXRhLm1lc3NhZ2UudHlwZT09PVouUHJvcGVydGllcz95aWVsZCBiKHYuZGF0YS5tZXNzYWdlKTp2LmRhdGEubWVzc2FnZS50eXBlPT09Wi5NZXRyaWNzP3lpZWxkIG0odi5kYXRhLm1lc3NhZ2UpOnYuZGF0YS5tZXNzYWdlLnR5cGU9PT1aLkZlZWRiYWNrJiYoeWllbGQgTih2LmRhdGEubWVzc2FnZSkpLGk9MH1jYXRjaChFKXtzJiZjb25zb2xlLmVycm9yKEUpLGkrPTF9fSl9fX0pKCk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWhpZ2hsaWdodC1jbGllbnQtd29ya2VyLUJlTlRnNWxWLmpzLm1hcAo=",hu="undefined"!=typeof self&&self.Blob&&new Blob([(e=>Uint8Array.from(atob(e),(e=>e.charCodeAt(0))))(uu)],{type:"text/javascript;charset=utf-8"});function pu(e){let t;try{if(t=hu&&(self.URL||self.webkitURL).createObjectURL(hu),!t)throw"";const i=new Worker(t,{name:null==e?void 0:e.name});return i.addEventListener("error",(()=>{(self.URL||self.webkitURL).revokeObjectURL(t)})),i}catch(t){return new Worker("data:text/javascript;base64,"+uu,{name:null==e?void 0:e.name})}finally{t&&(self.URL||self.webkitURL).revokeObjectURL(t)}}var mu;!function(e){e[e.Initialize=0]="Initialize",e[e.AsyncEvents=1]="AsyncEvents",e[e.Identify=2]="Identify",e[e.Properties=3]="Properties",e[e.Metrics=4]="Metrics",e[e.Feedback=5]="Feedback",e[e.CustomEvent=6]="CustomEvent",e[e.Stop=7]="Stop"}(mu||(mu={}));const bu=(e,t)=>{console.warn(`Highlight Warning: (${e}): `,{output:t})};var yu;!function(e){e.CLIENT_ID="highlightClientID"}(yu||(yu={}));class gu{constructor(e,t){var i,n,r,o,l;m(this,"options"),m(this,"isRunningOnHighlight"),m(this,"organizationID"),m(this,"graphqlSDK"),m(this,"events"),m(this,"sessionData"),m(this,"ready"),m(this,"manualStopped"),m(this,"state"),m(this,"logger"),m(this,"enableSegmentIntegration"),m(this,"privacySetting"),m(this,"enableCanvasRecording"),m(this,"enablePerformanceRecording"),m(this,"samplingStrategy"),m(this,"inlineImages"),m(this,"inlineStylesheet"),m(this,"debugOptions"),m(this,"listeners"),m(this,"firstloadVersion"),m(this,"environment"),m(this,"sessionShortcut"),m(this,"appVersion"),m(this,"serviceName"),m(this,"_worker"),m(this,"_optionsInternal"),m(this,"_backendUrl"),m(this,"_recordingStartTime"),m(this,"_isOnLocalHost"),m(this,"_onToggleFeedbackFormVisibility"),m(this,"_firstLoadListeners"),m(this,"_isCrossOriginIframe"),m(this,"_eventBytesSinceSnapshot"),m(this,"_lastSnapshotTime"),m(this,"_lastVisibilityChangeTime"),m(this,"pushPayloadTimerId"),m(this,"hasSessionUnloaded"),m(this,"hasPushedData"),m(this,"reloaded"),m(this,"_hasPreviouslyInitialized"),m(this,"_recordStop"),e.sessionSecureID||(e.sessionSecureID=(0,s.G)()),this.options=e,"boolean"==typeof(null==(i=this.options)?void 0:i.debug)?this.debugOptions=this.options.debug?{clientInteractions:!0}:{}:this.debugOptions=null!=(r=null==(n=this.options)?void 0:n.debug)?r:{},this.logger=new su(this.debugOptions.clientInteractions),e.storageMode&&(this.logger.log(`initializing in ${e.storageMode} session mode`),(0,s.v)(e.storageMode)),(0,s.w)(!(null!=e&&e.skipCookieSessionDataLoad)),this._worker=new pu,this._worker.onmessage=e=>{var t,i,s;(null==(t=e.data.response)?void 0:t.type)===mu.AsyncEvents?(this._eventBytesSinceSnapshot+=e.data.response.eventsSize,this.logger.log(`Web worker sent payloadID ${e.data.response.id} size ${e.data.response.eventsSize} bytes, compression ratio ${e.data.response.eventsSize/e.data.response.compressedSize}.\n Total since snapshot: ${(this._eventBytesSinceSnapshot/1e6).toFixed(1)}MB`)):(null==(i=e.data.response)?void 0:i.type)===mu.CustomEvent?this.addCustomEvent(e.data.response.tag,e.data.response.payload):(null==(s=e.data.response)?void 0:s.type)===mu.Stop&&(bu("Stopping recording due to worker failure",e.data.response),this.stopRecording(!1))};let a=(0,s.f)();if(this.reloaded=!1,null!=(o=this.sessionData)&&o.sessionSecureID||null==a||!a.sessionSecureID){for(const e of Object.values(s.S))(0,s.r)(e);this.sessionData={sessionSecureID:this.options.sessionSecureID,projectID:0,payloadID:1,sessionStartTime:Date.now()}}else this.sessionData=a,this.options.sessionSecureID=a.sessionSecureID,this.reloaded=!0,this.logger.log(`Tab reloaded, continuing previous session: ${this.sessionData.sessionSecureID}`);this._hasPreviouslyInitialized=!1,this._firstLoadListeners=t||new s.F(this.options);try{window.parent.document&&(this._isCrossOriginIframe=!1)}catch(e){this._isCrossOriginIframe=null==(l=this.options.recordCrossOriginIframe)||l}this._initMembers(this.options)}static create(e){return new gu(e)}_reset(e){return b(this,arguments,(function*({forceNew:e}){let t,i;if(this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),!e)try{t=(0,s.e)(s.S.USER_IDENTIFIER);const e=(0,s.e)(s.S.USER_OBJECT);e&&(i=JSON.parse(e))}catch(e){}for(const e of Object.values(s.S))(0,s.r)(e);this.sessionData.sessionSecureID=(0,s.G)(),this.sessionData.sessionStartTime=Date.now(),this.options.sessionSecureID=this.sessionData.sessionSecureID,this.stopRecording(),this._firstLoadListeners=new s.F(this.options),yield this.initialize(),t&&i&&this.identify(t,i)}))}_initMembers(e){var t,i,n,r,o,l,a,c,d,h,m;this.sessionShortcut=!1,this._recordingStartTime=0,this._isOnLocalHost="localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname||""===window.location.hostname,this.ready=!1,this.state="NotRecording",this.manualStopped=!1,this.enableSegmentIntegration=!!e.enableSegmentIntegration,this.privacySetting=null!=(t=e.privacySetting)?t:"default",this.enableCanvasRecording=null!=(i=e.enableCanvasRecording)&&i,this.enablePerformanceRecording=null==(n=e.enablePerformanceRecording)||n,this.inlineImages=null!=(r=e.inlineImages)?r:this._isOnLocalHost,this.inlineStylesheet=null==(o=e.inlineStylesheet)||o,this.samplingStrategy=u({canvasFactor:.5,canvasMaxSnapshotDimension:360,canvasClearWebGLBuffer:!0,dataUrlOptions:(0,s.h)()},null!=(l=e.samplingStrategy)?l:{canvas:2}),this._backendUrl=null!=(a=null==e?void 0:e.backendUrl)?a:"https://pub.highlight.io","/"===this._backendUrl[0]&&(this._backendUrl=new URL(this._backendUrl,document.baseURI).href);const y=new H(`${this._backendUrl}`,{headers:{}});this.graphqlSDK=function(e,t=Kc){return{PushPayload:(i,s)=>t((t=>e.request(xc,i,u(u({},s),t))),"PushPayload","mutation",i),PushPayloadCompressed:(i,s)=>t((t=>e.request(Lc,i,u(u({},s),t))),"PushPayloadCompressed","mutation",i),identifySession:(i,s)=>t((t=>e.request(Yc,i,u(u({},s),t))),"identifySession","mutation",i),addSessionProperties:(i,s)=>t((t=>e.request(Jc,i,u(u({},s),t))),"addSessionProperties","mutation",i),pushMetrics:(i,s)=>t((t=>e.request(Tc,i,u(u({},s),t))),"pushMetrics","mutation",i),addSessionFeedback:(i,s)=>t((t=>e.request(Uc,i,u(u({},s),t))),"addSessionFeedback","mutation",i),initializeSession:(i,s)=>t((t=>e.request(Nc,i,u(u({},s),t))),"initializeSession","mutation",i),Ignore:(i,s)=>t((t=>e.request(Fc,i,u(u({},s),t))),"Ignore","query",i)}}(y,(e=>{const t=(i,s,n,r,o=0)=>b(void 0,null,(function*(){try{return yield i()}catch(l){if(l instanceof J&&!(e=>{var t;return void 0===(null==(t=e.response.errors)?void 0:t.find((e=>lu.includes(e.message))))})(l))throw l;if(o<10)return yield new Promise((e=>setTimeout(e,1e3+500*Math.pow(2,o)))),yield t(i,s,n,r,o+1);throw console.error(`highlight.io: [${e||e}] data request failed after ${o} retries`),l}}));return t})((null==(c=this.sessionData)?void 0:c.sessionSecureID)||(null==(d=this.options)?void 0:d.sessionSecureID))),this.environment=null!=(h=e.environment)?h:"production",this.appVersion=e.appVersion,this.serviceName=null!=(m=e.serviceName)?m:"","string"==typeof e.organizationID?this.organizationID=e.organizationID:this.organizationID=e.organizationID.toString(),this.isRunningOnHighlight="1"===this.organizationID||"1jdkoe52"===this.organizationID,this.firstloadVersion=e.firstloadVersion||"unknown",this.sessionShortcut=e.sessionShortcut||!1,this._onToggleFeedbackFormVisibility=()=>{};const g=e,{firstloadVersion:Z}=g,f=p(g,["firstloadVersion"]);this._optionsInternal=f,this.listeners=[],this.events=[],this.hasSessionUnloaded=!1,this.hasPushedData=!1,window.Intercom&&window.Intercom("onShow",(()=>{window.Intercom("update",{highlightSessionURL:this.getCurrentSessionURLWithTimestamp()}),this.addProperties({event:"Intercom onShow"})})),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=(new Date).getTime(),this._lastVisibilityChangeTime=(new Date).getTime()}identify(e,t={},i){e&&""!==e?(this.sessionData.userIdentifier=e.toString(),this.sessionData.userObject=t,(0,s.s)(s.S.USER_IDENTIFIER,e.toString()),(0,s.s)(s.S.USER_OBJECT,JSON.stringify(t)),this._worker.postMessage({message:{type:mu.Identify,userIdentifier:e,userObject:t,source:i}})):console.warn("Highlight's identify() call was passed an empty identifier.",{user_identifier:e,user_object:t})}pushCustomError(e,t){return this.consumeCustomError(new Error(e),void 0,t)}consumeCustomError(e,t,i){let s={};if(i)try{s=u(u({},JSON.parse(i)),s)}catch(e){}return this.consumeError(e,{message:t,payload:s})}consumeError(e,{message:t,payload:i,source:n,type:r}){var o,l,a,c;e.cause&&(i=h(u({},i),{"exception.cause":e.cause}));let d=t?t+":"+e.message:e.message;"React.ErrorBoundary"===r&&(d="ErrorBoundary: "+d);const p=s.E.parse(e);this._firstLoadListeners.errors.push({event:d,type:null!=r?r:"custom",url:window.location.href,source:null!=n?n:"",lineNumber:null!=(o=p[0])&&o.lineNumber?null==(l=p[0])?void 0:l.lineNumber:0,columnNumber:null!=(a=p[0])&&a.columnNumber?null==(c=p[0])?void 0:c.columnNumber:0,stackTrace:p,timestamp:(new Date).toISOString(),payload:JSON.stringify(i)})}addProperties(e={},t){const i=u({},e);Object.entries(i).forEach((([e,t])=>{try{structuredClone(t)}catch(t){delete i[e]}})),this._worker.postMessage({message:{type:mu.Properties,propertiesObject:i,propertyType:t}})}initialize(e){return b(this,null,(function*(){var t,i,n,r,o,l,a,c,d;if(null!=navigator&&navigator.webdriver&&!window.Cypress||null!=(t=null==navigator?void 0:navigator.userAgent)&&t.includes("Googlebot")||null!=(i=null==navigator?void 0:navigator.userAgent)&&i.includes("AdsBot"))null==(n=this._firstLoadListeners)||n.stopListening();else try{if(null!=e&&e.forceNew)return void(yield this._reset(e));this.logger.log("Initializing...",e,this.sessionData,this.options),this.sessionData=null!=(r=(0,s.f)(this.sessionData.sessionSecureID))?r:this.sessionData,null!=(o=this.sessionData)&&o.sessionStartTime?this._recordingStartTime=null==(l=this.sessionData)?void 0:l.sessionStartTime:(this._recordingStartTime=(new Date).getTime(),this.sessionData.sessionStartTime=this._recordingStartTime),(0,s.j)(""),(0,s.k)(this.sessionData);let t,i=(0,s.e)(yu.CLIENT_ID);i||(i=(0,s.G)(),(0,s.s)(yu.CLIENT_ID,i)),t=!this.options.disableSessionRecording&&void 0===this.options.disableNetworkRecording&&"boolean"!=typeof this.options.networkRecording&&((null==(a=this.options.networkRecording)?void 0:a.recordHeadersAndBody)||!1);let n=[];if("object"==typeof this.options.networkRecording&&null!=(c=this.options.networkRecording.destinationDomains)&&c.length&&(n=this.options.networkRecording.destinationDomains),this._isCrossOriginIframe)yield this._setupCrossOriginIframe();else{const e=yield this.graphqlSDK.initializeSession({organization_verbose_id:this.organizationID,enable_strict_privacy:"strict"===this.privacySetting,privacy_setting:this.privacySetting,enable_recording_network_contents:t,clientVersion:this.firstloadVersion,firstloadVersion:this.firstloadVersion,clientConfig:JSON.stringify(this._optionsInternal),environment:this.environment,id:i,appVersion:this.appVersion,serviceName:this.serviceName,session_secure_id:this.sessionData.sessionSecureID,client_id:i,network_recording_domains:n,disable_session_recording:this.options.disableSessionRecording});if(e.initializeSession.secure_id!==this.sessionData.sessionSecureID&&this.logger.log(`Unexpected secure id returned by initializeSession: ${e.initializeSession.secure_id}, expected ${this.sessionData.sessionSecureID}`),this.sessionData.sessionSecureID=e.initializeSession.secure_id,this.sessionData.projectID=parseInt((null==(d=null==e?void 0:e.initializeSession)?void 0:d.project_id)||"0"),!this.sessionData.projectID||!this.sessionData.sessionSecureID)return void console.error("Failed to initialize Highlight; an error occurred on our end.",this.sessionData)}if(this.logger.log(`Loaded Highlight\nRemote: ${this._backendUrl}\nProject ID: ${this.sessionData.projectID}\nSessionSecureID: ${this.sessionData.sessionSecureID}`),this.options.sessionSecureID=this.sessionData.sessionSecureID,this._worker.postMessage({message:{type:mu.Initialize,sessionSecureID:this.sessionData.sessionSecureID,backend:this._backendUrl,debug:!!this.debugOptions.clientInteractions,recordingStartTime:this._recordingStartTime}}),this.sessionData.userIdentifier&&this.identify(this.sessionData.userIdentifier,this.sessionData.userObject),this._firstLoadListeners.isListening()?this._firstLoadListeners.hasNetworkRecording||s.F.setupNetworkListener(this._firstLoadListeners,this.options):this._firstLoadListeners.startListening(),this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this._isCrossOriginIframe||(this.pushPayloadTimerId=setTimeout((()=>{this._save()}),s.l)),this.options.disableSessionRecording)return this.logger.log("Highlight is NOT RECORDING a session replay per H.init setting."),this.ready=!0,this.state="Recording",void(this.manualStopped=!1);const{getDeviceDetails:u}=(()=>{if(!("performance"in window)||!("memory"in performance))return{getDeviceDetails:void 0,getCurrentDeviceDetails:void 0};const e=window.performance;return{getDeviceDetails:()=>({deviceMemory:du(navigator.deviceMemory||0)}),getCurrentDeviceDetails:()=>({jsHeapSizeLimit:cu(e.memory.jsHeapSizeLimit),totalJSHeapSize:cu(e.memory.totalJSHeapSize),usedJSHeapSize:cu(e.memory.usedJSHeapSize)})}})();u&&this.recordMetric([{name:s.M.DeviceMemory,value:u().deviceMemory,category:s.n.Device,group:window.location.href}]);const h=(e,t)=>{t&&this.logger.log("received isCheckout emit",{event:e}),this.events.push(e)};h.bind(this);const p=!!this._recordStop;this._recordStop&&(this._recordStop(),this._recordStop=void 0);const[m,b]=(()=>{switch(this.privacySetting){case"strict":case"default":return[!0,void 0];case"none":return[!1,{password:!0}]}})();this._recordStop=mc({ignoreClass:"highlight-ignore",blockClass:"highlight-block",emit:h,recordCrossOriginIframes:this.options.recordCrossOriginIframe,privacySetting:this.privacySetting,maskAllInputs:m,maskInputOptions:b,recordCanvas:this.enableCanvasRecording,sampling:{canvas:{fps:this.samplingStrategy.canvas,fpsManual:this.samplingStrategy.canvasManualSnapshot,resizeFactor:this.samplingStrategy.canvasFactor,clearWebGLBuffer:this.samplingStrategy.canvasClearWebGLBuffer,initialSnapshotDelay:this.samplingStrategy.canvasInitialSnapshotDelay,dataURLOptions:this.samplingStrategy.dataUrlOptions,maxSnapshotDimension:this.samplingStrategy.canvasMaxSnapshotDimension}},keepIframeSrcFn:e=>!this.options.recordCrossOriginIframe,inlineImages:this.inlineImages,collectFonts:this.inlineImages,inlineStylesheet:this.inlineStylesheet,plugins:[k()],logger:"boolean"==typeof this.options.debug&&this.options.debug||"object"==typeof this.options.debug&&this.options.debug.domRecording?{debug:this.logger.log,warn:bu}:void 0}),p||this.options.recordCrossOriginIframe&&this._setupCrossOriginIframeParent(),document.referrer&&(window&&document.referrer.includes(window.location.origin)||(this.addCustomEvent("Referrer",document.referrer),this.addProperties({referrer:document.referrer},{type:"session"}))),this._setupWindowListeners(),this.ready=!0,this.state="Recording",this.manualStopped=!1}catch(e){this._isOnLocalHost&&(console.error(e),bu("initializeSession",e))}}))}_visibilityHandler(e){return b(this,null,(function*(){this.manualStopped?this.logger.log("Ignoring visibility event due to manual stop."):(new Date).getTime()-this._lastVisibilityChangeTime<s.V||(this._lastVisibilityChangeTime=(new Date).getTime(),this.logger.log(`Detected window ${e?"hidden":"visible"}.`),e?(this.addCustomEvent("TabHidden",!0),this.options.disableBackgroundRecording&&this.stopRecording()):(this.options.disableBackgroundRecording&&(yield this.initialize()),this.addCustomEvent("TabHidden",!1)))}))}_setupCrossOriginIframe(){return b(this,null,(function*(){this.logger.log("highlight in cross-origin iframe is waiting "),yield new Promise((e=>{const t=i=>{if(i.data.highlight===nu){const s=i.data;this.logger.log("highlight got window message ",s),this.sessionData.projectID=s.projectID,this.sessionData.sessionSecureID=s.sessionSecureID,window.parent.postMessage({highlight:ru},"*"),window.removeEventListener("message",t),e()}};window.addEventListener("message",t)}))}))}_setupCrossOriginIframeParent(){this.logger.log("highlight setting up cross origin iframe parent notification"),setInterval((()=>{window.document.querySelectorAll("iframe").forEach((e=>{var t;null==(t=e.contentWindow)||t.postMessage({highlight:nu,projectID:this.sessionData.projectID,sessionSecureID:this.sessionData.sessionSecureID},"*")}))}),s.l),window.addEventListener("message",(e=>{e.data.highlight===ru&&this.logger.log("highlight got response from initialized iframe")}))}_setupWindowListeners(){var e;try{const t=this;this.enableSegmentIntegration&&this.listeners.push(Dc((e=>{if("track"===e.type){const i={};i["segment-event"]=e.event,t.addProperties(i,{type:"track",source:"segment"})}else if("identify"===e.type){const i=e.userId.replace(/^"(.*)"$/,"$1");t.identify(i,e.traits,"segment")}}))),this.listeners.push(Mc((e=>{this.reloaded?(this.addCustomEvent("Reload",e),this.reloaded=!1,t.addProperties({reload:!0},{type:"session"})):this.addCustomEvent("Navigate",e)}))),this.listeners.push((e=>{let t;const i=()=>{clearTimeout(t),t=setTimeout((()=>{var t,i;e({height:window.innerHeight,width:window.innerWidth,availHeight:window.screen.availHeight,availWidth:window.screen.availWidth,colorDepth:window.screen.colorDepth,pixelDepth:window.screen.pixelDepth,orientation:null!=(i=null==(t=window.screen.orientation)?void 0:t.angle)?i:0})}),500)};return window.addEventListener("resize",i),i(),()=>window.removeEventListener("resize",i)})((e=>{this.addCustomEvent("Viewport",e),this.submitViewportMetrics(e)}))),this.listeners.push((e=>{const t=t=>{if(t.target){const i=zc(t.target);e(i,t)}};return window.addEventListener("click",t),()=>window.removeEventListener("click",t)})(((e,t)=>{let i=null,s=null;if(t&&t.target){const e=t.target;i=Oc(e),s=e.textContent,s&&s.length>2e3&&(s=s.substring(0,2e3))}this.addCustomEvent("Click",{clickTarget:e,clickTextContent:s,clickSelector:i})}))),this.listeners.push((e=>{const t=t=>{if(t.target){const i=zc(t.target);e(i)}};return window.addEventListener("focusin",t),()=>window.removeEventListener("focusin",t)})((e=>{e&&this.addCustomEvent("Focus",e)}))),this.listeners.push(iu((e=>{const{name:t,value:i}=e;this.recordMetric([{name:t,value:i,group:window.location.href,category:s.n.WebVital}])}))),this.sessionShortcut&&((e,t)=>{const i=function(e){"string"!=typeof e&&(e="");const t=(e=e.replace(/\s/g,"")).split(",");let i=t.lastIndexOf("");for(;i>=0;)t[i-1]+=",",t.splice(i,1),i=t.lastIndexOf("");return t}(e);let s=[];for(let e=0;e<i.length;e++){let n=i[e].split("+");s=[],n.length>1&&(s=od(nd,n)),n=n[n.length-1],n="*"===n?"*":rd(n),n in qc||(qc[n]=[]),qc[n].push({mods:s,shortcut:i[e],key:i[e],method:t,keyup:!1,keydown:!0,scope:"all",splitKey:"+"})}!function(e,t,i){e.addEventListener?e.addEventListener(t,i,!1):e.attachEvent&&e.attachEvent(`on${t}`,(()=>{i(window.event)}))}(document,"keydown",(e=>{!function(e){const t=qc["*"];let i=e.keyCode||e.which||e.charCode;if((93===i||224===i)&&(i=91),-1===$c.indexOf(i)&&229!==i&&$c.push(i),["ctrlKey","altKey","shiftKey","metaKey"].forEach((t=>{const i=id[t];e[t]&&-1===$c.indexOf(i)?$c.push(i):!e[t]&&$c.indexOf(i)>-1?$c.splice($c.indexOf(i),1):"metaKey"===t&&e[t]&&3===$c.length&&(e.ctrlKey||e.shiftKey||e.altKey||($c=$c.slice($c.indexOf(i))))})),!(i in sd)||(sd[i]=!0,t)){for(const t in sd)Object.prototype.hasOwnProperty.call(sd,t)&&(sd[t]=e[id[t]]);if(e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===$c.indexOf(17)&&$c.push(17),-1===$c.indexOf(18)&&$c.push(18),sd[17]=!0,sd[18]=!0),i in qc)for(let t=0;t<qc[i].length;t++)if(("keydown"===e.type&&qc[i][t].keydown||"keyup"===e.type&&qc[i][t].keyup)&&qc[i][t].key){const s=qc[i][t];ld(e,s,"all")}}}(e)}))})(this.sessionShortcut,(()=>{window.open(this.getCurrentSessionURLWithTimestamp(),"_blank")})),this.enablePerformanceRecording&&(this.listeners.push(((e,t)=>{let i=0,s=0;const n=()=>{const s=((new Date).getTime()-t)/1e3,n=Ec.memory.jsHeapSizeLimit||0,r=Ec.memory.usedJSHeapSize||0;e({jsHeapSizeLimit:n,usedJSHeapSize:r,relativeTimestamp:s,fps:i})};let r;n(),r=setInterval((()=>{n()}),5e3);let o=0,l=Date.now();const a=function(){var e=Date.now();o++,e>1e3+l&&(i=Math.round(1e3*o/(e-l)),o=0,l=e),s=requestAnimationFrame(a)};return a(),()=>{clearInterval(r),cancelAnimationFrame(s)}})((e=>{this.addCustomEvent("Performance",(0,s.t)(e)),this.recordMetric(Object.entries(e).map((([e,t])=>t?{name:e,value:t,category:s.n.Performance,group:window.location.href}:void 0)).filter((e=>e)))}),this._recordingStartTime)),this.listeners.push(((e,t)=>{let i={},s=16.666666666666668;b(void 0,null,(function*(){const e=[];for(let t=0;t<30;t++)e.push(yield new Promise((e=>requestAnimationFrame((t=>requestAnimationFrame((i=>e(i-t))))))));return e.reduce(((e,t)=>e+t),0)/e.length})).then((e=>s=e));const n=e=>{var t;null!=i&&i.event||(i={event:e,location:window.location.href,timerStart:null==(t=window.performance)?void 0:t.now()},window.requestAnimationFrame(r))},r=()=>{if(null==i||!i.timerStart)return;const e=window.performance.now()-i.timerStart-s;o(e),i={}},o=s=>{const n=((new Date).getTime()-t)/1e3;e({relativeTimestamp:n,jankAmount:s,querySelector:l(),newLocation:window.location.href!=i.location?window.location.href:void 0})},l=()=>{var e;return null!=(e=null==i?void 0:i.event)&&e.target?Oc(i.event.target):""};return window.addEventListener("click",n,!0),window.addEventListener("keydown",n,!0),()=>{window.removeEventListener("keydown",n,!0),window.removeEventListener("click",n,!0)}})((e=>{this.addCustomEvent("Jank",(0,s.t)(e)),this.recordMetric([{name:"Jank",value:e.jankAmount,category:s.n.WebVital,group:e.querySelector}])}),this._recordingStartTime))),this._hasPreviouslyInitialized||(null!=(e=window.electron)&&e.ipcRenderer?(window.electron.ipcRenderer.on("highlight.run",(({visible:e})=>{this._visibilityHandler(!e)})),this.logger.log("Set up Electron highlight.run events.")):((e=>{let t,i;if(void 0!==document.hidden?(t="hidden",i="visibilitychange"):void 0!==document.msHidden?(t="msHidden",i="msvisibilitychange"):void 0!==document.webkitHidden&&(t="webkitHidden",i="webkitvisibilitychange"),void 0===i)return()=>{};if(void 0===t)return()=>{};const s=t;document.addEventListener(i,(()=>{const t=document[s];e(!!t)}))})((e=>this._visibilityHandler(e))),this.logger.log("Set up document visibility listener.")),this._hasPreviouslyInitialized=!0);const i=()=>{this.hasSessionUnloaded=!0,this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0)};window.addEventListener("beforeunload",i),this.listeners.push((()=>window.removeEventListener("beforeunload",i)))}catch(e){this._isOnLocalHost&&(console.error(e),bu("initializeSession _setupWindowListeners",e))}const t=()=>{this.addCustomEvent("Page Unload",""),(0,s.j)(this.sessionData.sessionSecureID),(0,s.k)(this.sessionData)};if(window.addEventListener("beforeunload",t),this.listeners.push((()=>window.removeEventListener("beforeunload",t))),navigator.userAgent.match(/iPad/i)||navigator.userAgent.match(/iPhone/i)){const e=()=>{this.addCustomEvent("Page Unload",""),(0,s.j)(this.sessionData.sessionSecureID),(0,s.k)(this.sessionData)};window.addEventListener("pagehide",e),this.listeners.push((()=>window.removeEventListener("beforeunload",e)))}}submitViewportMetrics({height:e,width:t,availHeight:i,availWidth:n}){this.recordMetric([{name:s.M.ViewportHeight,value:e,category:s.n.Device,group:window.location.href},{name:s.M.ViewportWidth,value:t,category:s.n.Device,group:window.location.href},{name:s.M.ScreenHeight,value:i,category:s.n.Device,group:window.location.href},{name:s.M.ScreenWidth,value:n,category:s.n.Device,group:window.location.href},{name:s.M.ViewportArea,value:e*t,category:s.n.Device,group:window.location.href}])}recordMetric(e){this._worker.postMessage({message:{type:mu.Metrics,metrics:e.map((e=>h(u({},e),{tags:e.tags||[],group:e.group||window.location.href,category:e.category||s.n.Frontend,timestamp:new Date})))}})}stopRecording(e){this.manualStopped=!!e,this.manualStopped&&this.addCustomEvent("Stop","H.stop() was called which stops Highlight from recording."),this.state="NotRecording",e&&this._recordStop&&(this._recordStop(),this._recordStop=void 0),this.listeners.forEach((e=>e())),this.listeners=[]}getCurrentSessionTimestamp(){return this._recordingStartTime}getCurrentSessionURLWithTimestamp(){const e=(new Date).getTime(),{projectID:t,sessionSecureID:i}=this.sessionData,n=(e-this._recordingStartTime)/1e3;return`https://${s.H}/${t}/sessions/${i}?ts=${n}`}getCurrentSessionURL(){const e=this.sessionData.projectID,t=this.sessionData.sessionSecureID;return e&&t?`https://${s.H}/${e}/sessions/${t}`:null}snapshot(e){return b(this,null,(function*(){yield mc.snapshotCanvas(e)}))}addSessionFeedback({timestamp:e,verbatim:t,user_email:i,user_name:s}){var n;this._worker.postMessage({message:{type:mu.Feedback,verbatim:t,timestamp:e,userName:s||this.sessionData.userIdentifier,userEmail:i||(null==(n=this.sessionData.userObject)?void 0:n.name)}})}_save(){return b(this,null,(function*(){var e;try{let t;"Recording"===this.state&&this.listeners&&this.sessionData.sessionStartTime&&Date.now()-this.sessionData.sessionStartTime>s.o&&(this.logger.log("Resetting session",{start:this.sessionData.sessionStartTime}),yield this._reset({})),"local"===(null==(e=this.options)?void 0:e.sendMode)&&(t=e=>b(this,null,(function*(){let t=new Blob([JSON.stringify({query:V(xc),variables:e})],{type:"application/json"});return yield window.fetch(`${this._backendUrl}`,{method:"POST",body:t}),0}))),yield this._sendPayload({sendFn:t}),this.hasPushedData=!0,this.sessionData.lastPushTime=Date.now(),(0,s.k)(this.sessionData)}catch(e){this._isOnLocalHost&&(console.error(e),bu("_save",e))}"Recording"===this.state&&(this.pushPayloadTimerId&&(clearTimeout(this.pushPayloadTimerId),this.pushPayloadTimerId=void 0),this.pushPayloadTimerId=setTimeout((()=>{this._save()}),s.q))}))}addCustomEvent(e,t){if("NotRecording"===this.state){let i;const s=()=>{clearInterval(i),"Recording"===this.state&&this.events.length>0?yc(e,t):i=setTimeout(s,500)};i=setTimeout(s,500)}else"Recording"===this.state&&(this.events.length>0||this.hasPushedData)&&yc(e,t)}_sendPayload(e){return b(this,arguments,(function*({sendFn:e}){const t=s.F.getRecordedNetworkResources(this._firstLoadListeners,this._recordingStartTime),i=s.F.getRecordedWebSocketEvents(this._firstLoadListeners),n=[...this.events],r=[...this._firstLoadListeners.messages],o=[...this._firstLoadListeners.errors],{bytes:l,time:a}=this.enableCanvasRecording?s.u.canvas:s.u.normal;this._eventBytesSinceSnapshot>=l&&(new Date).getTime()-this._lastSnapshotTime>=a&&this.takeFullSnapshot(),this.logger.log(`Sending: ${n.length} events, ${r.length} messages, ${t.length} network resources, ${o.length} errors \nTo: ${this._backendUrl}\nOrg: ${this.organizationID}\nSessionSecureID: ${this.sessionData.sessionSecureID}`);const c=(0,s.e)(au)||"";e?yield e({session_secure_id:this.sessionData.sessionSecureID,payload_id:this.sessionData.payloadID.toString(),events:{events:n},messages:(0,s.t)({messages:r}),resources:JSON.stringify({resources:t}),web_socket_events:JSON.stringify({webSocketEvents:i}),errors:o,is_beacon:!1,has_session_unloaded:this.hasSessionUnloaded}):this._worker.postMessage({message:{type:mu.AsyncEvents,id:this.sessionData.payloadID++,events:n,messages:r,errors:o,resourcesString:JSON.stringify({resources:t}),webSocketEventsString:JSON.stringify({webSocketEvents:i}),hasSessionUnloaded:this.hasSessionUnloaded,highlightLogs:c}}),(0,s.k)(this.sessionData),s.F.clearRecordedNetworkResources(this._firstLoadListeners),this.events=this.events.slice(n.length),this._firstLoadListeners.messages=this._firstLoadListeners.messages.slice(r.length),this._firstLoadListeners.errors=this._firstLoadListeners.errors.slice(o.length),(e=>{if(!e)return;let t=(0,s.e)(au)||"";t&&(t.startsWith(e)?(t=t.slice(e.length),(0,s.s)(au,t)):(e=>{let t=(0,s.e)(au)||"";t=t+"["+(new Date).getTime()+"] "+e+"\n",(0,s.s)(au,t)})("Unable to clear logs "+e.replace("\n"," ")+" from "+t.replace("\n"," ")))})(c)}))}takeFullSnapshot(){this._recordStop?(this.logger.log("taking full snapshot",{bytesSinceSnapshot:this._eventBytesSinceSnapshot,lastSnapshotTime:this._lastSnapshotTime}),mc.takeFullSnapshot(),this._eventBytesSinceSnapshot=0,this._lastSnapshotTime=(new Date).getTime()):this.logger.log("skipping full snapshot as rrweb is not running")}}}}]);
|
|
125
|
+
//# sourceMappingURL=387.index.umd.min.js.map
|