@mochabug/adapt-web 1.0.1-rc.21 → 1.0.1-rc.23

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.
@@ -1,6 +1,6 @@
1
1
  var __MbAdapt_prev = typeof MbAdapt !== 'undefined' ? MbAdapt : undefined;
2
- "use strict";var MbAdapt=(()=>{var $n=Object.defineProperty;var ns=Object.getOwnPropertyDescriptor;var os=Object.getOwnPropertyNames;var rs=Object.prototype.hasOwnProperty;var is=(t,e)=>{for(var n in e)$n(t,n,{get:e[n],enumerable:!0})},as=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of os(e))!rs.call(t,r)&&r!==n&&$n(t,r,{get:()=>e[r],enumerable:!(o=ns(e,r))||o.enumerable});return t};var ss=t=>as($n({},"__esModule",{value:!0}),t);var Oc={};is(Oc,{AdaptAutomationElement:()=>st,FloatingToolbar:()=>we,ForkGroupActions:()=>Re,IframePanelComponent:()=>fe,MinimizeManager:()=>We,PanelManager:()=>Je,WebClient:()=>lt,clearPersistedState:()=>ts,configure:()=>Hn,createConnectClient:()=>Dn,resetConfig:()=>Tn,resolveTheme:()=>Tt});function ut(t,e){return t!==null&&typeof t=="object"&&"$typeName"in t&&typeof t.$typeName=="string"?e===void 0?!0:e.typeName===t.$typeName:!1}var u;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(u||(u={}));function Xr(){let t=0,e=0;for(let o=0;o<28;o+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<o,(r&128)==0)return this.assertBounds(),[t,e]}let n=this.buf[this.pos++];if(t|=(n&15)<<28,e=(n&112)>>4,(n&128)==0)return this.assertBounds(),[t,e];for(let o=3;o<=31;o+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<o,(r&128)==0)return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function _t(t,e,n){for(let i=0;i<28;i=i+7){let a=t>>>i,s=!(!(a>>>7)&&e==0),l=(s?a|128:a)&255;if(n.push(l),!s)return}let o=t>>>28&15|(e&7)<<4,r=e>>3!=0;if(n.push((r?o|128:o)&255),!!r){for(let i=3;i<31;i=i+7){let a=e>>>i,s=!!(a>>>7),l=(s?a|128:a)&255;if(n.push(l),!s)return}n.push(e>>>31&1)}}var Kt=4294967296;function qn(t){let e=t[0]==="-";e&&(t=t.slice(1));let n=1e6,o=0,r=0;function i(a,s){let l=Number(t.slice(a,s));r*=n,o=o*n+l,o>=Kt&&(r=r+(o/Kt|0),o=o%Kt)}return i(-24,-18),i(-18,-12),i(-12,-6),i(-6),e?wr(o,r):to(o,r)}function Wr(t,e){let n=to(t,e),o=n.hi&2147483648;o&&(n=wr(n.lo,n.hi));let r=eo(n.lo,n.hi);return o?"-"+r:r}function eo(t,e){if({lo:t,hi:e}=ls(t,e),e<=2097151)return String(Kt*e+t);let n=t&16777215,o=(t>>>24|e<<8)&16777215,r=e>>16&65535,i=n+o*6777216+r*6710656,a=o+r*8147497,s=r*2,l=1e7;return i>=l&&(a+=Math.floor(i/l),i%=l),a>=l&&(s+=Math.floor(a/l),a%=l),s.toString()+Er(a)+Er(i)}function ls(t,e){return{lo:t>>>0,hi:e>>>0}}function to(t,e){return{lo:t|0,hi:e|0}}function wr(t,e){return e=~e,t?t=~t+1:e+=1,to(t,e)}var Er=t=>{let e=String(t);return"0000000".slice(e.length)+e};function mt(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function Rr(){let t=this.buf[this.pos++],e=t&127;if((t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,(t&128)==0)return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;(t&128)!==0&&n<10;n++)t=this.buf[this.pos++];if((t&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var w=cs();function cs(){let t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(!!globalThis.Deno||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let n=BigInt("-9223372036854775808"),o=BigInt("9223372036854775807"),r=BigInt("0"),i=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(a){let s=typeof a=="bigint"?a:BigInt(a);if(s>o||s<n)throw new Error(`invalid int64: ${a}`);return s},uParse(a){let s=typeof a=="bigint"?a:BigInt(a);if(s>i||s<r)throw new Error(`invalid uint64: ${a}`);return s},enc(a){return t.setBigInt64(0,this.parse(a),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},uEnc(a){return t.setBigInt64(0,this.uParse(a),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},dec(a,s){return t.setInt32(0,a,!0),t.setInt32(4,s,!0),t.getBigInt64(0,!0)},uDec(a,s){return t.setInt32(0,a,!0),t.setInt32(4,s,!0),t.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(n){return typeof n!="string"&&(n=n.toString()),Jr(n),n},uParse(n){return typeof n!="string"&&(n=n.toString()),kr(n),n},enc(n){return typeof n!="string"&&(n=n.toString()),Jr(n),qn(n)},uEnc(n){return typeof n!="string"&&(n=n.toString()),kr(n),qn(n)},dec(n,o){return Wr(n,o)},uDec(n,o){return eo(n,o)}}}function Jr(t){if(!/^-?[0-9]+$/.test(t))throw new Error("invalid int64: "+t)}function kr(t){if(!/^[0-9]+$/.test(t))throw new Error("invalid uint64: "+t)}function O(t,e){switch(t){case u.STRING:return"";case u.BOOL:return!1;case u.DOUBLE:case u.FLOAT:return 0;case u.INT64:case u.UINT64:case u.SFIXED64:case u.FIXED64:case u.SINT64:return e?"0":w.zero;case u.BYTES:return new Uint8Array(0);default:return 0}}function Mr(t,e){switch(t){case u.BOOL:return e===!1;case u.STRING:return e==="";case u.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Fr=2,j=Symbol.for("reflect unsafe local");function Qt(t,e){let n=t[e.localName].case;return n===void 0?n:e.fields.find(o=>o.localName===n)}function no(t,e){let n=e.localName;if(e.oneof)return t[e.oneof.localName].case===n;if(e.presence!=Fr)return t[n]!==void 0&&Object.prototype.hasOwnProperty.call(t,n);switch(e.fieldKind){case"list":return t[n].length>0;case"map":return Object.keys(t[n]).length>0;case"scalar":return!Mr(e.scalar,t[n]);case"enum":return t[n]!==e.enum.values[0].number}throw new Error("message field with implicit presence")}function Ze(t,e){return Object.prototype.hasOwnProperty.call(t,e)&&t[e]!==void 0}function Pt(t,e){if(e.oneof){let n=t[e.oneof.localName];return n.case===e.localName?n.value:void 0}return t[e.localName]}function Ot(t,e,n){e.oneof?t[e.oneof.localName]={case:e.localName,value:n}:t[e.localName]=n}function oo(t,e){let n=e.localName;if(e.oneof){let o=e.oneof.localName;t[o].case===n&&(t[o]={case:void 0})}else if(e.presence!=Fr)delete t[n];else switch(e.fieldKind){case"map":t[n]={};break;case"list":t[n]=[];break;case"enum":t[n]=e.enum.values[0].number;break;case"scalar":t[n]=O(e.scalar,e.longAsString);break}}function ne(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function pt(t,e){var n,o,r,i;if(ne(t)&&j in t&&"add"in t&&"field"in t&&typeof t.field=="function"){if(e!==void 0){let a=e,s=t.field();return a.listKind==s.listKind&&a.scalar===s.scalar&&((n=a.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((r=a.enum)===null||r===void 0?void 0:r.typeName)===((i=s.enum)===null||i===void 0?void 0:i.typeName)}return!0}return!1}function gt(t,e){var n,o,r,i;if(ne(t)&&j in t&&"has"in t&&"field"in t&&typeof t.field=="function"){if(e!==void 0){let a=e,s=t.field();return a.mapKey===s.mapKey&&a.mapKind==s.mapKind&&a.scalar===s.scalar&&((n=a.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((r=a.enum)===null||r===void 0?void 0:r.typeName)===((i=s.enum)===null||i===void 0?void 0:i.typeName)}return!0}return!1}function Ne(t,e){return ne(t)&&j in t&&"desc"in t&&ne(t.desc)&&t.desc.kind==="message"&&(e===void 0||t.desc.typeName==e.typeName)}function Yr(t){return zr(t.$typeName)}function oe(t){let e=t.fields[0];return zr(t.typeName)&&e!==void 0&&e.fieldKind=="scalar"&&e.name=="value"&&e.number==1}function zr(t){return t.startsWith("google.protobuf.")&&["DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue"].includes(t.substring(16))}var ds=999,us=998,jt=2;function R(t,e){if(ut(e,t))return e;let n=fs(t);return e!==void 0&&ms(t,n,e),n}function ms(t,e,n){for(let o of t.members){let r=n[o.localName];if(r==null)continue;let i;if(o.kind=="oneof"){let a=Qt(n,o);if(!a)continue;i=a,r=Pt(n,a)}else i=o;switch(i.fieldKind){case"message":r=io(i,r);break;case"scalar":r=Hr(i,r);break;case"list":r=gs(i,r);break;case"map":r=ps(i,r);break}Ot(e,i,r)}return e}function Hr(t,e){return t.scalar==u.BYTES?ao(e):e}function ps(t,e){if(ne(e)){if(t.scalar==u.BYTES)return Nr(e,ao);if(t.mapKind=="message")return Nr(e,n=>io(t,n))}return e}function gs(t,e){if(Array.isArray(e)){if(t.scalar==u.BYTES)return e.map(ao);if(t.listKind=="message")return e.map(n=>io(t,n))}return e}function io(t,e){if(t.fieldKind=="message"&&!t.oneof&&oe(t.message))return Hr(t.message.fields[0],e);if(ne(e)){if(t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!=="google.protobuf.Value")return e;if(!ut(e,t.message))return R(t.message,e)}return e}function ao(t){return Array.isArray(t)?new Uint8Array(t):t}function Nr(t,e){let n={};for(let o of Object.entries(t))n[o[0]]=e(o[1]);return n}var hs=Symbol(),Lr=new WeakMap;function fs(t){let e;if(bs(t)){let n=Lr.get(t),o,r;if(n)({prototype:o,members:r}=n);else{o={},r=new Set;for(let i of t.members)i.kind!="oneof"&&(i.fieldKind!="scalar"&&i.fieldKind!="enum"||i.presence!=jt&&(r.add(i),o[i.localName]=ro(i)));Lr.set(t,{prototype:o,members:r})}e=Object.create(o),e.$typeName=t.typeName;for(let i of t.members)r.has(i)||i.kind=="field"&&(i.fieldKind=="message"||(i.fieldKind=="scalar"||i.fieldKind=="enum")&&i.presence!=jt)||(e[i.localName]=ro(i))}else{e={$typeName:t.typeName};for(let n of t.members)(n.kind=="oneof"||n.presence==jt)&&(e[n.localName]=ro(n))}return e}function bs(t){switch(t.file.edition){case ds:return!1;case us:return!0;default:return t.fields.some(e=>e.presence!=jt&&e.fieldKind!="message"&&!e.oneof)}}function ro(t){if(t.kind=="oneof")return{case:void 0};if(t.fieldKind=="list")return[];if(t.fieldKind=="map")return{};if(t.fieldKind=="message")return hs;let e=t.getDefaultValue();return e!==void 0?t.fieldKind=="scalar"&&t.longAsString?e.toString():e:t.fieldKind=="scalar"?O(t.scalar,t.longAsString):t.enum.values[0].number}var ys=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],H=class extends Error{constructor(e,n,o="FieldValueInvalidError"){super(n),this.name=o,this.field=()=>e}};function Tr(t){return t instanceof Error&&ys.includes(t.name)&&"field"in t&&typeof t.field=="function"}var so=Symbol.for("@bufbuild/protobuf/text-encoding");function ht(){if(globalThis[so]==null){let t=new globalThis.TextEncoder,e=new globalThis.TextDecoder;globalThis[so]={encodeUtf8(n){return t.encode(n)},decodeUtf8(n){return e.decode(n)},checkUtf8(n){try{return encodeURIComponent(n),!0}catch{return!1}}}}return globalThis[so]}var k;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(k||(k={}));var co=34028234663852886e22,uo=-34028234663852886e22,mo=4294967295,po=2147483647,go=-2147483648,Ce=class{constructor(e=ht().encodeUtf8){this.encodeUtf8=e,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let n=new Uint8Array(e),o=0;for(let r=0;r<this.chunks.length;r++)n.set(this.chunks[r],o),o+=this.chunks[r].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,n){return this.uint32((e<<3|n)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Ur(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return lo(e),mt(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.encodeUtf8(e);return this.uint32(n.byteLength),this.raw(n)}float(e){Is(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){Ur(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){lo(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return lo(e),e=(e<<1^e>>31)>>>0,mt(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),o=new DataView(n.buffer),r=w.enc(e);return o.setInt32(0,r.lo,!0),o.setInt32(4,r.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),o=new DataView(n.buffer),r=w.uEnc(e);return o.setInt32(0,r.lo,!0),o.setInt32(4,r.hi,!0),this.raw(n)}int64(e){let n=w.enc(e);return _t(n.lo,n.hi,this.buf),this}sint64(e){let n=w.enc(e),o=n.hi>>31,r=n.lo<<1^o,i=(n.hi<<1|n.lo>>>31)^o;return _t(r,i,this.buf),this}uint64(e){let n=w.uEnc(e);return _t(n.lo,n.hi,this.buf),this}},be=class{constructor(e,n=ht().decodeUtf8){this.decodeUtf8=n,this.varint64=Xr,this.uint32=Rr,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){let e=this.uint32(),n=e>>>3,o=e&7;if(n<=0||o<0||o>5)throw new Error("illegal tag: field no "+n+" wire type "+o);return[n,o]}skip(e,n){let o=this.pos;switch(e){case k.Varint:for(;this.buf[this.pos++]&128;);break;case k.Bit64:this.pos+=4;case k.Bit32:this.pos+=4;break;case k.LengthDelimited:let r=this.uint32();this.pos+=r;break;case k.StartGroup:for(;;){let[i,a]=this.tag();if(a===k.EndGroup){if(n!==void 0&&i!==n)throw new Error("invalid end group tag");break}this.skip(a,i)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(o,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return w.dec(...this.varint64())}uint64(){return w.uDec(...this.varint64())}sint64(){let[e,n]=this.varint64(),o=-(e&1);return e=(e>>>1|(n&1)<<31)^o,n=n>>>1^o,w.dec(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return w.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return w.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.decodeUtf8(this.bytes())}};function lo(t){if(typeof t=="string")t=Number(t);else if(typeof t!="number")throw new Error("invalid int32: "+typeof t);if(!Number.isInteger(t)||t>po||t<go)throw new Error("invalid int32: "+t)}function Ur(t){if(typeof t=="string")t=Number(t);else if(typeof t!="number")throw new Error("invalid uint32: "+typeof t);if(!Number.isInteger(t)||t>mo||t<0)throw new Error("invalid uint32: "+t)}function Is(t){if(typeof t=="string"){let e=t;if(t=Number(t),Number.isNaN(t)&&e!=="NaN")throw new Error("invalid float32: "+e)}else if(typeof t!="number")throw new Error("invalid float32: "+typeof t);if(Number.isFinite(t)&&(t>co||t<uo))throw new Error("invalid float32: "+t)}function de(t,e){let n=t.fieldKind=="list"?pt(e,t):t.fieldKind=="map"?gt(e,t):fo(t,e);if(n===!0)return;let o;switch(t.fieldKind){case"list":o=`expected ${Qr(t)}, got ${z(e)}`;break;case"map":o=`expected ${Pr(t)}, got ${z(e)}`;break;default:o=$t(t,e,n)}return new H(t,o)}function ho(t,e,n){let o=fo(t,n);if(o!==!0)return new H(t,`list item #${e+1}: ${$t(t,n,o)}`)}function Dr(t,e,n){let o=Kr(e,t.mapKey);if(o!==!0)return new H(t,`invalid map key: ${$t({scalar:t.mapKey},e,o)}`);let r=fo(t,n);if(r!==!0)return new H(t,`map entry ${z(e)}: ${$t(t,n,r)}`)}function fo(t,e){return t.scalar!==void 0?Kr(e,t.scalar):t.enum!==void 0?t.enum.open?Number.isInteger(e):t.enum.values.some(n=>n.number===e):Ne(e,t.message)}function Kr(t,e){switch(e){case u.DOUBLE:return typeof t=="number";case u.FLOAT:return typeof t!="number"?!1:Number.isNaN(t)||!Number.isFinite(t)?!0:t>co||t<uo?`${t.toFixed()} out of range`:!0;case u.INT32:case u.SFIXED32:case u.SINT32:return typeof t!="number"||!Number.isInteger(t)?!1:t>po||t<go?`${t.toFixed()} out of range`:!0;case u.FIXED32:case u.UINT32:return typeof t!="number"||!Number.isInteger(t)?!1:t>mo||t<0?`${t.toFixed()} out of range`:!0;case u.BOOL:return typeof t=="boolean";case u.STRING:return typeof t!="string"?!1:ht().checkUtf8(t)||"invalid UTF8";case u.BYTES:return t instanceof Uint8Array;case u.INT64:case u.SFIXED64:case u.SINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return w.parse(t),!0}catch{return`${t} out of range`}return!1;case u.FIXED64:case u.UINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return w.uParse(t),!0}catch{return`${t} out of range`}return!1}}function $t(t,e,n){return n=typeof n=="string"?`: ${n}`:`, got ${z(e)}`,t.scalar!==void 0?`expected ${Gs(t.scalar)}`+n:t.enum!==void 0?`expected ${t.enum.toString()}`+n:`expected ${_r(t.message)}`+n}function z(t){switch(typeof t){case"object":return t===null?"null":t instanceof Uint8Array?`Uint8Array(${t.length})`:Array.isArray(t)?`Array(${t.length})`:pt(t)?Qr(t.field()):gt(t)?Pr(t.field()):Ne(t)?_r(t.desc):ut(t)?`message ${t.$typeName}`:"object";case"string":return t.length>30?"string":`"${t.split('"').join('\\"')}"`;case"boolean":return String(t);case"number":return String(t);case"bigint":return String(t)+"n";default:return typeof t}}function _r(t){return`ReflectMessage (${t.typeName})`}function Qr(t){switch(t.listKind){case"message":return`ReflectList (${t.message.toString()})`;case"enum":return`ReflectList (${t.enum.toString()})`;case"scalar":return`ReflectList (${u[t.scalar]})`}}function Pr(t){switch(t.mapKind){case"message":return`ReflectMap (${u[t.mapKey]}, ${t.message.toString()})`;case"enum":return`ReflectMap (${u[t.mapKey]}, ${t.enum.toString()})`;case"scalar":return`ReflectMap (${u[t.mapKey]}, ${u[t.scalar]})`}}function Gs(t){switch(t){case u.STRING:return"string";case u.BOOL:return"boolean";case u.INT64:case u.SINT64:case u.SFIXED64:return"bigint (int64)";case u.UINT64:case u.FIXED64:return"bigint (uint64)";case u.BYTES:return"Uint8Array";case u.DOUBLE:return"number (float64)";case u.FLOAT:return"number (float32)";case u.FIXED32:case u.UINT32:return"number (uint32)";case u.INT32:case u.SFIXED32:case u.SINT32:return"number (int32)"}}function L(t,e,n=!0){return new en(t,e,n)}var Or=new WeakMap,en=class{get sortedFields(){let e=Or.get(this.desc);if(e)return e;let n=this.desc.fields.concat().sort((o,r)=>o.number-r.number);return Or.set(this.desc,n),n}constructor(e,n,o=!0){this.lists=new Map,this.maps=new Map,this.check=o,this.desc=e,this.message=this[j]=n??R(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(n=>[n.number,n]))),this._fieldsByNumber.get(e)}oneofCase(e){return ft(this.message,e),Qt(this.message,e)}isSet(e){return ft(this.message,e),no(this.message,e)}clear(e){ft(this.message,e),oo(this.message,e)}get(e){ft(this.message,e);let n=Pt(this.message,e);switch(e.fieldKind){case"list":let o=this.lists.get(e);return(!o||o[j]!==n)&&this.lists.set(e,o=new Io(e,n,this.check)),o;case"map":let r=this.maps.get(e);return(!r||r[j]!==n)&&this.maps.set(e,r=new Go(e,n,this.check)),r;case"message":return vo(e,n,this.check);case"scalar":return n===void 0?O(e.scalar,!1):xo(e,n);case"enum":return n??e.enum.values[0].number}}set(e,n){if(ft(this.message,e),this.check){let r=de(e,n);if(r)throw r}let o;e.fieldKind=="message"?o=Ao(e,n):gt(n)||pt(n)?o=n[j]:o=Zo(e,n),Ot(this.message,e,o)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}};function ft(t,e){if(e.parent.typeName!==t.$typeName)throw new H(e,`cannot use ${e.toString()} with message ${t.$typeName}`,"ForeignFieldError")}var Io=class{field(){return this._field}get size(){return this._arr.length}constructor(e,n,o){this._field=e,this._arr=this[j]=n,this.check=o}get(e){let n=this._arr[e];return n===void 0?void 0:bo(this._field,n,this.check)}set(e,n){if(e<0||e>=this._arr.length)throw new H(this._field,`list item #${e+1}: out of range`);if(this.check){let o=ho(this._field,e,n);if(o)throw o}this._arr[e]=jr(this._field,n)}add(e){if(this.check){let n=ho(this._field,this._arr.length,e);if(n)throw n}this._arr.push(jr(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(let e of this._arr)yield bo(this._field,e,this.check)}*entries(){for(let e=0;e<this._arr.length;e++)yield[e,bo(this._field,this._arr[e],this.check)]}};var Go=class{constructor(e,n,o=!0){this.obj=this[j]=n??{},this.check=o,this._field=e}field(){return this._field}set(e,n){if(this.check){let o=Dr(this._field,e,n);if(o)throw o}return this.obj[qt(e)]=As(this._field,n),this}delete(e){let n=qt(e),o=Object.prototype.hasOwnProperty.call(this.obj,n);return o&&delete this.obj[n],o}clear(){for(let e of Object.keys(this.obj))delete this.obj[e]}get(e){let n=this.obj[qt(e)];return n!==void 0&&(n=yo(this._field,n,this.check)),n}has(e){return Object.prototype.hasOwnProperty.call(this.obj,qt(e))}*keys(){for(let e of Object.keys(this.obj))yield $r(e,this._field.mapKey)}*entries(){for(let e of Object.entries(this.obj))yield[$r(e[0],this._field.mapKey),yo(this._field,e[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(let e of Object.values(this.obj))yield yo(this._field,e,this.check)}forEach(e,n){for(let o of this.entries())e.call(n,o[1],o[0],this)}};function Ao(t,e){return Ne(e)?Yr(e.message)&&!t.oneof&&t.fieldKind=="message"?e.message.value:e.desc.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"?ei(e.message):e.message:e}function vo(t,e,n){return e!==void 0&&(oe(t.message)&&!t.oneof&&t.fieldKind=="message"?e={$typeName:t.message.typeName,value:xo(t.message.fields[0],e)}:t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"&&ne(e)&&(e=qr(e))),new en(t.message,e,n)}function jr(t,e){return t.listKind=="message"?Ao(t,e):Zo(t,e)}function bo(t,e,n){return t.listKind=="message"?vo(t,e,n):xo(t,e)}function As(t,e){return t.mapKind=="message"?Ao(t,e):Zo(t,e)}function yo(t,e,n){return t.mapKind=="message"?vo(t,e,n):e}function qt(t){return typeof t=="string"||typeof t=="number"?t:String(t)}function $r(t,e){switch(e){case u.STRING:return t;case u.INT32:case u.FIXED32:case u.UINT32:case u.SFIXED32:case u.SINT32:{let n=Number.parseInt(t);if(Number.isFinite(n))return n;break}case u.BOOL:switch(t){case"true":return!0;case"false":return!1}break;case u.UINT64:case u.FIXED64:try{return w.uParse(t)}catch{}break;default:try{return w.parse(t)}catch{}break}return t}function xo(t,e){switch(t.scalar){case u.INT64:case u.SFIXED64:case u.SINT64:"longAsString"in t&&t.longAsString&&typeof e=="string"&&(e=w.parse(e));break;case u.FIXED64:case u.UINT64:"longAsString"in t&&t.longAsString&&typeof e=="string"&&(e=w.uParse(e));break}return e}function Zo(t,e){switch(t.scalar){case u.INT64:case u.SFIXED64:case u.SINT64:"longAsString"in t&&t.longAsString?e=String(e):(typeof e=="string"||typeof e=="number")&&(e=w.parse(e));break;case u.FIXED64:case u.UINT64:"longAsString"in t&&t.longAsString?e=String(e):(typeof e=="string"||typeof e=="number")&&(e=w.uParse(e));break}return e}function qr(t){let e={$typeName:"google.protobuf.Struct",fields:{}};if(ne(t))for(let[n,o]of Object.entries(t))e.fields[n]=ni(o);return e}function ei(t){let e={};for(let[n,o]of Object.entries(t.fields))e[n]=ti(o);return e}function ti(t){switch(t.kind.case){case"structValue":return ei(t.kind.value);case"listValue":return t.kind.value.values.map(ti);case"nullValue":case void 0:return null;default:return t.kind.value}}function ni(t){let e={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(t===null)e.kind={case:"nullValue",value:0};else if(Array.isArray(t)){let n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(t))for(let o of t)n.values.push(ni(o));e.kind={case:"listValue",value:n}}else e.kind={case:"structValue",value:qr(t)};break}return e}function ye(t){let e=vs(),n=t.length*3/4;t[t.length-2]=="="?n-=2:t[t.length-1]=="="&&(n-=1);let o=new Uint8Array(n),r=0,i=0,a,s=0;for(let l=0;l<t.length;l++){if(a=e[t.charCodeAt(l)],a===void 0)switch(t[l]){case"=":i=0;case`
3
- `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(i){case 0:s=a,i=1;break;case 1:o[r++]=s<<2|(a&48)>>4,s=a,i=2;break;case 2:o[r++]=(s&15)<<4|(a&60)>>2,s=a,i=3;break;case 3:o[r++]=(s&3)<<6|a,i=0;break}}if(i==1)throw Error("invalid base64 string");return o.subarray(0,r)}function Se(t,e="std"){let n=ri(e),o=e=="std",r="",i=0,a,s=0;for(let l=0;l<t.length;l++)switch(a=t[l],i){case 0:r+=n[a>>2],s=(a&3)<<4,i=1;break;case 1:r+=n[s|a>>4],s=(a&15)<<2,i=2;break;case 2:r+=n[s|a>>6],r+=n[a&63],i=0;break}return i&&(r+=n[s],o&&(r+="=",i==1&&(r+="="))),r}var tn,oi,Le;function ri(t){return tn||(tn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),oi=tn.slice(0,-2).concat("-","_")),t=="url"?oi:tn}function vs(){if(!Le){Le=[];let t=ri("std");for(let e=0;e<t.length;e++)Le[t[e].charCodeAt(0)]=e;Le[45]=t.indexOf("+"),Le[95]=t.indexOf("/")}return Le}function re(t){let e=!1,n=[];for(let o=0;o<t.length;o++){let r=t.charAt(o);switch(r){case"_":e=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(r),e=!1;break;default:e&&(e=!1,r=r.toUpperCase()),n.push(r);break}}return n.join("")}function nn(t){return t.replace(/[A-Z]/g,e=>"_"+e.toLowerCase())}var xs=new Set(["constructor","toString","toJSON","valueOf"]);function He(t){return xs.has(t)?t+"$":t}function bt(t){for(let e of t.field)Ze(e,"jsonName")||(e.jsonName=re(e.name));t.nestedType.forEach(bt)}function ii(t,e){let n=t.values.find(o=>o.name===e);if(!n)throw new Error(`cannot parse ${t} default value: ${e}`);return n.number}function ai(t,e){switch(t){case u.STRING:return e;case u.BYTES:{let n=Zs(e);if(n===!1)throw new Error(`cannot parse ${u[t]} default value: ${e}`);return n}case u.INT64:case u.SFIXED64:case u.SINT64:return w.parse(e);case u.UINT64:case u.FIXED64:return w.uParse(e);case u.DOUBLE:case u.FLOAT:switch(e){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return Number.NaN;default:return parseFloat(e)}case u.BOOL:return e==="true";case u.INT32:case u.UINT32:case u.SINT32:case u.FIXED32:case u.SFIXED32:return parseInt(e,10)}}function Zs(t){let e=[],n={tail:t,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(o){if(this.tail.length>=o){let r=this.tail.substring(0,o);return this.tail=this.tail.substring(o),r}return!1}};for(;n.next();)switch(n.c){case"\\":if(n.next())switch(n.c){case"\\":e.push(n.c.charCodeAt(0));break;case"b":e.push(8);break;case"f":e.push(12);break;case"n":e.push(10);break;case"r":e.push(13);break;case"t":e.push(9);break;case"v":e.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let o=n.c,r=n.take(2);if(r===!1)return!1;let i=parseInt(o+r,8);if(Number.isNaN(i))return!1;e.push(i);break}case"x":{let o=n.c,r=n.take(2);if(r===!1)return!1;let i=parseInt(o+r,16);if(Number.isNaN(i))return!1;e.push(i);break}case"u":{let o=n.c,r=n.take(4);if(r===!1)return!1;let i=parseInt(o+r,16);if(Number.isNaN(i))return!1;let a=new Uint8Array(4);new DataView(a.buffer).setInt32(0,i,!0),e.push(a[0],a[1],a[2],a[3]);break}case"U":{let o=n.c,r=n.take(8);if(r===!1)return!1;let i=w.uEnc(o+r),a=new Uint8Array(8),s=new DataView(a.buffer);s.setInt32(0,i.lo,!0),s.setInt32(4,i.hi,!0),e.push(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);break}}break;default:e.push(n.c.charCodeAt(0))}return new Uint8Array(e)}function*on(t){switch(t.kind){case"file":for(let e of t.messages)yield e,yield*on(e);yield*t.enums,yield*t.services,yield*t.extensions;break;case"message":for(let e of t.nestedMessages)yield e,yield*on(e);yield*t.nestedEnums,yield*t.nestedExtensions;break}}function rn(...t){let e=Cs();if(!t.length)return e;if("$typeName"in t[0]&&t[0].$typeName=="google.protobuf.FileDescriptorSet"){for(let n of t[0].file)di(n,e);return e}if("$typeName"in t[0]){let i=function(a){let s=[];for(let l of a.dependency){if(e.getFile(l)!=null||r.has(l))continue;let c=o(l);if(!c)throw new Error(`Unable to resolve ${l}, imported by ${a.name}`);"kind"in c?e.addFile(c,!1,!0):(r.add(c.name),s.push(c))}return s.concat(...s.map(i))},n=t[0],o=t[1],r=new Set;for(let a of[n,...i(n)].reverse())di(a,e)}else for(let n of t)for(let o of n.files)e.addFile(o);return e}function Cs(){let t=new Map,e=new Map,n=new Map;return{kind:"registry",types:t,extendees:e,[Symbol.iterator](){return t.values()},get files(){return n.values()},addFile(o,r,i){if(n.set(o.proto.name,o),!r)for(let a of on(o))this.add(a);if(i)for(let a of o.dependencies)this.addFile(a,r,i)},add(o){if(o.kind=="extension"){let r=e.get(o.extendee.typeName);r||e.set(o.extendee.typeName,r=new Map),r.set(o.number,o)}t.set(o.typeName,o)},get(o){return t.get(o)},getFile(o){return n.get(o)},getMessage(o){let r=t.get(o);return r?.kind=="message"?r:void 0},getEnum(o){let r=t.get(o);return r?.kind=="enum"?r:void 0},getExtension(o){let r=t.get(o);return r?.kind=="extension"?r:void 0},getExtensionFor(o,r){var i;return(i=e.get(o.typeName))===null||i===void 0?void 0:i.get(r)},getService(o){let r=t.get(o);return r?.kind=="service"?r:void 0}}}var Ss=998,Vs=999,Bs=9,It=10,yt=11,Es=12,si=14,Eo=3,Xs=2,li=1,Ws=0,Co=1,ci=2,ws=3,Rs=1,Js=2,ks=1;var mi={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2}};function di(t,e){var n,o;let r={kind:"file",proto:t,deprecated:(o=(n=t.options)===null||n===void 0?void 0:n.deprecated)!==null&&o!==void 0?o:!1,edition:zs(t),name:t.name.replace(/\.proto$/,""),dependencies:Ns(t,e),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${t.name}`}},i=new Map,a={get(s){return i.get(s)},add(s){var l;$(((l=s.proto.options)===null||l===void 0?void 0:l.mapEntry)===!0),i.set(s.typeName,s)}};for(let s of t.enumType)pi(s,r,void 0,e);for(let s of t.messageType)gi(s,r,void 0,e,a);for(let s of t.service)Ms(s,r,e);So(r,e);for(let s of i.values())Vo(s,e,a);for(let s of r.messages)Vo(s,e,a),So(s,e);e.addFile(r,!0)}function So(t,e){switch(t.kind){case"file":for(let n of t.proto.extension){let o=Bo(n,t,e);t.extensions.push(o),e.add(o)}break;case"message":for(let n of t.proto.extension){let o=Bo(n,t,e);t.nestedExtensions.push(o),e.add(o)}for(let n of t.nestedMessages)So(n,e);break}}function Vo(t,e,n){let o=t.proto.oneofDecl.map(i=>Ys(i,t)),r=new Set;for(let i of t.proto.field){let a=Ts(i,o),s=Bo(i,t,e,a,n);t.fields.push(s),t.field[s.localName]=s,a===void 0?t.members.push(s):(a.fields.push(s),r.has(a)||(r.add(a),t.members.push(a)))}for(let i of o.filter(a=>r.has(a)))t.oneofs.push(i);for(let i of t.nestedMessages)Vo(i,e,n)}function pi(t,e,n,o){var r,i,a,s,l;let c=Ls(t.name,t.value),m={kind:"enum",proto:t,deprecated:(i=(r=t.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,file:e,parent:n,open:!0,name:t.name,typeName:an(t,n,e),value:{},values:[],sharedPrefix:c,toString(){return`enum ${this.typeName}`}};m.open=_s(m),o.add(m);for(let g of t.value){let f=g.name;m.values.push(m.value[g.number]={kind:"enum_value",proto:g,deprecated:(s=(a=g.options)===null||a===void 0?void 0:a.deprecated)!==null&&s!==void 0?s:!1,parent:m,name:f,localName:He(c==null?f:f.substring(c.length)),number:g.number,toString(){return`enum value ${m.typeName}.${f}`}})}((l=n?.nestedEnums)!==null&&l!==void 0?l:e.enums).push(m)}function gi(t,e,n,o,r){var i,a,s,l;let c={kind:"message",proto:t,deprecated:(a=(i=t.options)===null||i===void 0?void 0:i.deprecated)!==null&&a!==void 0?a:!1,file:e,parent:n,name:t.name,typeName:an(t,n,e),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((s=t.options)===null||s===void 0?void 0:s.mapEntry)===!0?r.add(c):(((l=n?.nestedMessages)!==null&&l!==void 0?l:e.messages).push(c),o.add(c));for(let m of t.enumType)pi(m,e,c,o);for(let m of t.nestedType)gi(m,e,c,o,r)}function Ms(t,e,n){var o,r;let i={kind:"service",proto:t,deprecated:(r=(o=t.options)===null||o===void 0?void 0:o.deprecated)!==null&&r!==void 0?r:!1,file:e,name:t.name,typeName:an(t,void 0,e),methods:[],method:{},toString(){return`service ${this.typeName}`}};e.services.push(i),n.add(i);for(let a of t.method){let s=Fs(a,i,n);i.methods.push(s),i.method[s.localName]=s}}function Fs(t,e,n){var o,r,i,a;let s;t.clientStreaming&&t.serverStreaming?s="bidi_streaming":t.clientStreaming?s="client_streaming":t.serverStreaming?s="server_streaming":s="unary";let l=n.getMessage(ue(t.inputType)),c=n.getMessage(ue(t.outputType));$(l,`invalid MethodDescriptorProto: input_type ${t.inputType} not found`),$(c,`invalid MethodDescriptorProto: output_type ${t.inputType} not found`);let m=t.name;return{kind:"rpc",proto:t,deprecated:(r=(o=t.options)===null||o===void 0?void 0:o.deprecated)!==null&&r!==void 0?r:!1,parent:e,name:m,localName:He(m.length?He(m[0].toLowerCase()+m.substring(1)):m),methodKind:s,input:l,output:c,idempotency:(a=(i=t.options)===null||i===void 0?void 0:i.idempotencyLevel)!==null&&a!==void 0?a:Ws,toString(){return`rpc ${e.typeName}.${m}`}}}function Ys(t,e){return{kind:"oneof",proto:t,deprecated:!1,parent:e,fields:[],name:t.name,localName:He(re(t.name)),toString(){return`oneof ${e.typeName}.${this.name}`}}}function Bo(t,e,n,o,r){var i,a,s;let l=r===void 0,c={kind:"field",proto:t,deprecated:(a=(i=t.options)===null||i===void 0?void 0:i.deprecated)!==null&&a!==void 0?a:!1,name:t.name,number:t.number,scalar:void 0,message:void 0,enum:void 0,presence:Us(t,o,l,e),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(l){let p=e.kind=="file"?e:e.file,G=e.kind=="file"?void 0:e,Z=an(t,G,p);c.kind="extension",c.file=p,c.parent=G,c.oneof=void 0,c.typeName=Z,c.jsonName=`[${Z}]`,c.toString=()=>`extension ${Z}`;let x=n.getMessage(ue(t.extendee));$(x,`invalid FieldDescriptorProto: extendee ${t.extendee} not found`),c.extendee=x}else{let p=e;$(p.kind=="message"),c.parent=p,c.oneof=o,c.localName=o?re(t.name):He(re(t.name)),c.jsonName=t.jsonName,c.toString=()=>`field ${p.typeName}.${t.name}`}let m=t.label,g=t.type,f=(s=t.options)===null||s===void 0?void 0:s.jstype;if(m===Eo){let p=g==yt?r?.get(ue(t.typeName)):void 0;if(p){c.fieldKind="map";let{key:G,value:Z}=Ks(p);return c.mapKey=G.scalar,c.mapKind=Z.fieldKind,c.message=Z.message,c.delimitedEncoding=!1,c.enum=Z.enum,c.scalar=Z.scalar,c}switch(c.fieldKind="list",g){case yt:case It:c.listKind="message",c.message=n.getMessage(ue(t.typeName)),$(c.message),c.delimitedEncoding=ui(t,e);break;case si:c.listKind="enum",c.enum=n.getEnum(ue(t.typeName)),$(c.enum);break;default:c.listKind="scalar",c.scalar=g,c.longAsString=f==li;break}return c.packed=Ds(t,e),c}switch(g){case yt:case It:c.fieldKind="message",c.message=n.getMessage(ue(t.typeName)),$(c.message,`invalid FieldDescriptorProto: type_name ${t.typeName} not found`),c.delimitedEncoding=ui(t,e),c.getDefaultValue=()=>{};break;case si:{let p=n.getEnum(ue(t.typeName));$(p!==void 0,`invalid FieldDescriptorProto: type_name ${t.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(ue(t.typeName)),c.getDefaultValue=()=>Ze(t,"defaultValue")?ii(p,t.defaultValue):void 0;break}default:{c.fieldKind="scalar",c.scalar=g,c.longAsString=f==li,c.getDefaultValue=()=>Ze(t,"defaultValue")?ai(g,t.defaultValue):void 0;break}}return c}function zs(t){switch(t.syntax){case"":case"proto2":return Ss;case"proto3":return Vs;case"editions":if(t.edition in mi)return t.edition;throw new Error(`${t.name}: unsupported edition`);default:throw new Error(`${t.name}: unsupported syntax "${t.syntax}"`)}}function Ns(t,e){return t.dependency.map(n=>{let o=e.getFile(n);if(!o)throw new Error(`Cannot find ${n}, imported by ${t.name}`);return o})}function Ls(t,e){let n=Hs(t)+"_";for(let o of e){if(!o.name.toLowerCase().startsWith(n))return;let r=o.name.substring(n.length);if(r.length==0||/^\d/.test(r))return}return n}function Hs(t){return(t.substring(0,1)+t.substring(1).replace(/[A-Z]/g,e=>"_"+e)).toLowerCase()}function an(t,e,n){let o;return e?o=`${e.typeName}.${t.name}`:n.proto.package.length>0?o=`${n.proto.package}.${t.name}`:o=`${t.name}`,o}function ue(t){return t.startsWith(".")?t.substring(1):t}function Ts(t,e){if(!Ze(t,"oneofIndex")||t.proto3Optional)return;let n=e[t.oneofIndex];return $(n,`invalid FieldDescriptorProto: oneof #${t.oneofIndex} for field #${t.number} not found`),n}function Us(t,e,n,o){if(t.label==Xs)return ws;if(t.label==Eo)return ci;if(e||t.proto3Optional||n)return Co;let r=Te("fieldPresence",{proto:t,parent:o});return r==ci&&(t.type==yt||t.type==It)?Co:r}function Ds(t,e){if(t.label!=Eo)return!1;switch(t.type){case Bs:case Es:case It:case yt:return!1}let n=t.options;return n&&Ze(n,"packed")?n.packed:Rs==Te("repeatedFieldEncoding",{proto:t,parent:e})}function Ks(t){let e=t.fields.find(o=>o.number===1),n=t.fields.find(o=>o.number===2);return $(e&&e.fieldKind=="scalar"&&e.scalar!=u.BYTES&&e.scalar!=u.FLOAT&&e.scalar!=u.DOUBLE&&n&&n.fieldKind!="list"&&n.fieldKind!="map"),{key:e,value:n}}function _s(t){var e;return ks==Te("enumType",{proto:t.proto,parent:(e=t.parent)!==null&&e!==void 0?e:t.file})}function ui(t,e){return t.type==It?!0:Js==Te("messageEncoding",{proto:t,parent:e})}function Te(t,e){var n,o;let r=(n=e.proto.options)===null||n===void 0?void 0:n.features;if(r){let i=r[t];if(i!=0)return i}if("kind"in e){if(e.kind=="message")return Te(t,(o=e.parent)!==null&&o!==void 0?o:e.file);let i=mi[e.edition];if(!i)throw new Error(`feature default for edition ${e.edition} not found`);return i[t]}return Te(t,e.parent)}function $(t,e){if(!t)throw new Error(e)}function hi(t){let e=Qs(t);return e.messageType.forEach(bt),rn(e,()=>{}).getFile(e.name)}function Qs(t){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},t),{messageType:t.messageType.map(fi),enumType:t.enumType.map(bi)}))}function fi(t){var e,n,o,r,i,a,s,l;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:t.name,field:(n=(e=t.field)===null||e===void 0?void 0:e.map(Ps))!==null&&n!==void 0?n:[],extension:[],nestedType:(r=(o=t.nestedType)===null||o===void 0?void 0:o.map(fi))!==null&&r!==void 0?r:[],enumType:(a=(i=t.enumType)===null||i===void 0?void 0:i.map(bi))!==null&&a!==void 0?a:[],extensionRange:(l=(s=t.extensionRange)===null||s===void 0?void 0:s.map(m=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},m)))!==null&&l!==void 0?l:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function Ps(t){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},t),{options:t.options?Os(t.options):void 0}))}function Os(t){var e,n,o;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},t),{targets:(e=t.targets)!==null&&e!==void 0?e:[],editionDefaults:(o=(n=t.editionDefaults)===null||n===void 0?void 0:n.map(i=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},i)))!==null&&o!==void 0?o:[],uninterpretedOption:[]}))}function bi(t){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:t.name,reservedName:[],reservedRange:[],value:t.value.map(n=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},n))})}function d(t,e,...n){return n.reduce((o,r)=>o.nestedMessages[r],t.messages[e])}function C(t,e,...n){if(n.length==0)return t.enums[e];let o=n.pop();return n.reduce((r,i)=>r.nestedMessages[i],t.messages[e]).nestedEnums[o]}var y=hi({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false"},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true"},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),hu=d(y,0),Wo=d(y,1),js=d(y,2),fu=d(y,2,0),bu=d(y,2,1),yu=d(y,3),Iu=d(y,3,0),yi;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(yi||(yi={}));var Gu=C(y,3,0),$s=d(y,4),Ii;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(Ii||(Ii={}));var Au=C(y,4,0),Gi;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(Gi||(Gi={}));var vu=C(y,4,1),xu=d(y,5),qs=d(y,6),Zu=d(y,6,0),Cu=d(y,7),Su=d(y,8),Vu=d(y,9),Bu=d(y,10),Ai;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(Ai||(Ai={}));var Eu=C(y,10,0),Xu=d(y,11),el=d(y,12),Wu=d(y,12,0),wu=d(y,12,1),vi;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(vi||(vi={}));var Ru=C(y,12,0),xi;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(xi||(xi={}));var Ju=C(y,12,1),Zi;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(Zi||(Zi={}));var ku=C(y,12,2),Ci;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ci||(Ci={}));var Mu=C(y,12,3),Fu=d(y,13),Yu=d(y,14),zu=d(y,15),Nu=d(y,16),Lu=d(y,17),Ue;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(Ue||(Ue={}));var Hu=C(y,17,0),Tu=d(y,18),Uu=d(y,18,0),Du=d(y,19),Ku=d(y,19,0),Si;(function(t){t[t.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",t[t.EXPORT_ALL=1]="EXPORT_ALL",t[t.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",t[t.LOCAL_ALL=3]="LOCAL_ALL",t[t.STRICT=4]="STRICT"})(Si||(Si={}));var _u=C(y,19,0,0),Vi;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Vi||(Vi={}));var Qu=C(y,19,0),Bi;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(Bi||(Bi={}));var Pu=C(y,19,1),Ei;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(Ei||(Ei={}));var Ou=C(y,19,2),Xi;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.VERIFY=2]="VERIFY",t[t.NONE=3]="NONE"})(Xi||(Xi={}));var ju=C(y,19,3),Wi;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(Wi||(Wi={}));var $u=C(y,19,4),wi;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(wi||(wi={}));var qu=C(y,19,5),Ri;(function(t){t[t.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",t[t.STYLE2024=1]="STYLE2024",t[t.STYLE_LEGACY=2]="STYLE_LEGACY"})(Ri||(Ri={}));var em=C(y,19,6),tm=d(y,20),nm=d(y,20,0),om=d(y,21),rm=d(y,21,0),im=d(y,22),am=d(y,22,0),Ji;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Ji||(Ji={}));var sm=C(y,22,0,0),Xo;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_LEGACY=900]="EDITION_LEGACY",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_2024=1001]="EDITION_2024",t[t.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",t[t.EDITION_MAX=2147483647]="EDITION_MAX"})(Xo||(Xo={}));var lm=C(y,0),ki;(function(t){t[t.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",t[t.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",t[t.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(ki||(ki={}));var cm=C(y,1);var Mi={readUnknownFields:!0};function tl(t){return t?Object.assign(Object.assign({},Mi),t):Mi}function q(t,e,n){let o=L(t,void 0,!1);return Fi(o,new be(e),tl(n),!1,e.byteLength),o.message}function Fi(t,e,n,o,r){var i;let a=o?e.len:e.pos+r,s,l,c=(i=t.getUnknown())!==null&&i!==void 0?i:[];for(;e.pos<a&&([s,l]=e.tag(),!(o&&l==k.EndGroup));){let m=t.findNumber(s);if(!m){let g=e.skip(l,s);n.readUnknownFields&&c.push({no:s,wireType:l,data:g});continue}wo(t,e,m,l,n)}if(o&&(l!=k.EndGroup||s!==r))throw new Error("invalid end group tag");c.length>0&&t.setUnknown(c)}function wo(t,e,n,o,r){var i;switch(n.fieldKind){case"scalar":t.set(n,De(e,n.scalar));break;case"enum":let a=De(e,u.INT32);if(n.enum.open)t.set(n,a);else if(n.enum.values.some(l=>l.number===a))t.set(n,a);else if(r.readUnknownFields){let l=[];mt(a,l);let c=(i=t.getUnknown())!==null&&i!==void 0?i:[];c.push({no:n.number,wireType:o,data:new Uint8Array(l)}),t.setUnknown(c)}break;case"message":t.set(n,Ro(e,r,n,t.get(n)));break;case"list":ol(e,o,t.get(n),r);break;case"map":nl(e,t.get(n),r);break}}function nl(t,e,n){let o=e.field(),r,i,a=t.uint32(),s=t.pos+a;for(;t.pos<s;){let[l]=t.tag();switch(l){case 1:r=De(t,o.mapKey);break;case 2:switch(o.mapKind){case"scalar":i=De(t,o.scalar);break;case"enum":i=t.int32();break;case"message":i=Ro(t,n,o);break}break}}if(r===void 0&&(r=O(o.mapKey,!1)),i===void 0)switch(o.mapKind){case"scalar":i=O(o.scalar,!1);break;case"enum":i=o.enum.values[0].number;break;case"message":i=L(o.message,void 0,!1);break}e.set(r,i)}function ol(t,e,n,o){var r;let i=n.field();if(i.listKind==="message"){n.add(Ro(t,o,i));return}let a=(r=i.scalar)!==null&&r!==void 0?r:u.INT32;if(!(e==k.LengthDelimited&&a!=u.STRING&&a!=u.BYTES)){n.add(De(t,a));return}let l=t.uint32()+t.pos;for(;t.pos<l;)n.add(De(t,a))}function Ro(t,e,n,o){let r=n.delimitedEncoding,i=o??L(n.message,void 0,!1);return Fi(i,t,e,r,r?n.number:t.uint32()),i}function De(t,e){switch(e){case u.STRING:return t.string();case u.BOOL:return t.bool();case u.DOUBLE:return t.double();case u.FLOAT:return t.float();case u.INT32:return t.int32();case u.INT64:return t.int64();case u.UINT64:return t.uint64();case u.FIXED64:return t.fixed64();case u.BYTES:return t.bytes();case u.FIXED32:return t.fixed32();case u.SFIXED32:return t.sfixed32();case u.SFIXED64:return t.sfixed64();case u.SINT64:return t.sint64();case u.UINT32:return t.uint32();case u.SINT32:return t.sint32()}}function S(t,e){var n;let o=q(Wo,ye(t));return o.messageType.forEach(bt),o.dependency=(n=e?.map(i=>i.proto.name))!==null&&n!==void 0?n:[],rn(o,i=>e?.find(a=>a.proto.name===i)).getFile(o.name)}var Gt=S("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),rl=d(Gt,0);function ie(t){return new Date(il(t))}function il(t){return Number(t.seconds)*1e3+Math.round(t.nanos/1e6)}var At=S("Ch5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIqCghEdXJhdGlvbhIPCgdzZWNvbmRzGAEgASgDEg0KBW5hbm9zGAIgASgFQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1EdXJhdGlvblByb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2R1cmF0aW9ucGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw"),al=d(At,0);var vt=S("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),Yi=d(vt,0);var sl=3,zi={writeUnknownFields:!0};function ll(t){return t?Object.assign(Object.assign({},zi),t):zi}function me(t,e,n){return sn(new Ce,ll(n),L(t,e)).finish()}function sn(t,e,n){var o;for(let r of n.sortedFields){if(!n.isSet(r)){if(r.presence==sl)throw new Error(`cannot encode ${r} to binary: required field not set`);continue}Jo(t,e,n,r)}if(e.writeUnknownFields)for(let{no:r,wireType:i,data:a}of(o=n.getUnknown())!==null&&o!==void 0?o:[])t.tag(r,i).raw(a);return t}function Jo(t,e,n,o){var r;switch(o.fieldKind){case"scalar":case"enum":ln(t,n.desc.typeName,o.name,(r=o.scalar)!==null&&r!==void 0?r:u.INT32,o.number,n.get(o));break;case"list":cl(t,e,o,n.get(o));break;case"message":Ni(t,e,o,n.get(o));break;case"map":for(let[i,a]of n.get(o))dl(t,e,o,i,a);break}}function ln(t,e,n,o,r,i){Li(t.tag(r,ul(o)),e,n,o,i)}function Ni(t,e,n,o){n.delimitedEncoding?sn(t.tag(n.number,k.StartGroup),e,o).tag(n.number,k.EndGroup):sn(t.tag(n.number,k.LengthDelimited).fork(),e,o).join()}function cl(t,e,n,o){var r;if(n.listKind=="message"){for(let a of o)Ni(t,e,n,a);return}let i=(r=n.scalar)!==null&&r!==void 0?r:u.INT32;if(n.packed){if(!o.size)return;t.tag(n.number,k.LengthDelimited).fork();for(let a of o)Li(t,n.parent.typeName,n.name,i,a);t.join();return}for(let a of o)ln(t,n.parent.typeName,n.name,i,n.number,a)}function dl(t,e,n,o,r){var i;switch(t.tag(n.number,k.LengthDelimited).fork(),ln(t,n.parent.typeName,n.name,n.mapKey,1,o),n.mapKind){case"scalar":case"enum":ln(t,n.parent.typeName,n.name,(i=n.scalar)!==null&&i!==void 0?i:u.INT32,2,r);break;case"message":sn(t.tag(2,k.LengthDelimited).fork(),e,r).join();break}t.join()}function Li(t,e,n,o,r){try{switch(o){case u.STRING:t.string(r);break;case u.BOOL:t.bool(r);break;case u.DOUBLE:t.double(r);break;case u.FLOAT:t.float(r);break;case u.INT32:t.int32(r);break;case u.INT64:t.int64(r);break;case u.UINT64:t.uint64(r);break;case u.FIXED64:t.fixed64(r);break;case u.BYTES:t.bytes(r);break;case u.FIXED32:t.fixed32(r);break;case u.SFIXED32:t.sfixed32(r);break;case u.SFIXED64:t.sfixed64(r);break;case u.SINT64:t.sint64(r);break;case u.UINT32:t.uint32(r);break;case u.SINT32:t.sint32(r);break}}catch(i){throw i instanceof Error?new Error(`cannot encode field ${e}.${n} to binary: ${i.message}`):i}}function ul(t){switch(t){case u.BYTES:case u.STRING:return k.LengthDelimited;case u.DOUBLE:case u.FIXED64:case u.SFIXED64:return k.Bit64;case u.FIXED32:case u.SFIXED32:case u.FLOAT:return k.Bit32;default:return k.Varint}}function ko(t,e,n){let o=!1;return n||(n=R(Yi),o=!0),n.value=me(t,e),n.typeUrl=gl(e.$typeName),o?n:void 0}function pl(t,e){if(t.typeUrl==="")return!1;let n=typeof e=="string"?e:e.typeName,o=Hi(t.typeUrl);return n===o}function Mo(t,e){if(t.typeUrl==="")return;let n=e.kind=="message"?e:e.getMessage(Hi(t.typeUrl));if(!(!n||!pl(t,n)))return q(n,t.value)}function gl(t){return`type.googleapis.com/${t}`}function Hi(t){let e=t.lastIndexOf("/"),n=e>=0?t.substring(e+1):t;if(!n.length)throw new Error(`invalid type url: ${t}`);return n}var xt=S("CiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIiCg1Tb3VyY2VDb250ZXh0EhEKCWZpbGVfbmFtZRgBIAEoCUKKAQoTY29tLmdvb2dsZS5wcm90b2J1ZkISU291cmNlQ29udGV4dFByb3RvUAFaNmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3NvdXJjZWNvbnRleHRwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc2IGcHJvdG8z"),jm=d(xt,0);var ae=S("Chpnb29nbGUvcHJvdG9idWYvdHlwZS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIugBCgRUeXBlEgwKBG5hbWUYASABKAkSJgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkEg4KBm9uZW9mcxgDIAMoCRIoCgdvcHRpb25zGAQgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhI2Cg5zb3VyY2VfY29udGV4dBgFIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0EicKBnN5bnRheBgGIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXgSDwoHZWRpdGlvbhgHIAEoCSLVBQoFRmllbGQSKQoEa2luZBgBIAEoDjIbLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5LaW5kEjcKC2NhcmRpbmFsaXR5GAIgASgOMiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLkNhcmRpbmFsaXR5Eg4KBm51bWJlchgDIAEoBRIMCgRuYW1lGAQgASgJEhAKCHR5cGVfdXJsGAYgASgJEhMKC29uZW9mX2luZGV4GAcgASgFEg4KBnBhY2tlZBgIIAEoCBIoCgdvcHRpb25zGAkgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhIRCglqc29uX25hbWUYCiABKAkSFQoNZGVmYXVsdF92YWx1ZRgLIAEoCSLIAgoES2luZBIQCgxUWVBFX1VOS05PV04QABIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIidAoLQ2FyZGluYWxpdHkSFwoTQ0FSRElOQUxJVFlfVU5LTk9XThAAEhgKFENBUkRJTkFMSVRZX09QVElPTkFMEAESGAoUQ0FSRElOQUxJVFlfUkVRVUlSRUQQAhIYChRDQVJESU5BTElUWV9SRVBFQVRFRBADIt8BCgRFbnVtEgwKBG5hbWUYASABKAkSLQoJZW51bXZhbHVlGAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZRIoCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhI2Cg5zb3VyY2VfY29udGV4dBgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0EicKBnN5bnRheBgFIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXgSDwoHZWRpdGlvbhgGIAEoCSJTCglFbnVtVmFsdWUSDAoEbmFtZRgBIAEoCRIOCgZudW1iZXIYAiABKAUSKAoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb24iOwoGT3B0aW9uEgwKBG5hbWUYASABKAkSIwoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55KkMKBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABEhMKD1NZTlRBWF9FRElUSU9OUxACQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw",[vt,xt]),rp=d(ae,0),ip=d(ae,1),Ti;(function(t){t[t.TYPE_UNKNOWN=0]="TYPE_UNKNOWN",t[t.TYPE_DOUBLE=1]="TYPE_DOUBLE",t[t.TYPE_FLOAT=2]="TYPE_FLOAT",t[t.TYPE_INT64=3]="TYPE_INT64",t[t.TYPE_UINT64=4]="TYPE_UINT64",t[t.TYPE_INT32=5]="TYPE_INT32",t[t.TYPE_FIXED64=6]="TYPE_FIXED64",t[t.TYPE_FIXED32=7]="TYPE_FIXED32",t[t.TYPE_BOOL=8]="TYPE_BOOL",t[t.TYPE_STRING=9]="TYPE_STRING",t[t.TYPE_GROUP=10]="TYPE_GROUP",t[t.TYPE_MESSAGE=11]="TYPE_MESSAGE",t[t.TYPE_BYTES=12]="TYPE_BYTES",t[t.TYPE_UINT32=13]="TYPE_UINT32",t[t.TYPE_ENUM=14]="TYPE_ENUM",t[t.TYPE_SFIXED32=15]="TYPE_SFIXED32",t[t.TYPE_SFIXED64=16]="TYPE_SFIXED64",t[t.TYPE_SINT32=17]="TYPE_SINT32",t[t.TYPE_SINT64=18]="TYPE_SINT64"})(Ti||(Ti={}));var ap=C(ae,1,0),Ui;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.OPTIONAL=1]="OPTIONAL",t[t.REQUIRED=2]="REQUIRED",t[t.REPEATED=3]="REPEATED"})(Ui||(Ui={}));var sp=C(ae,1,1),lp=d(ae,2),cp=d(ae,3),dp=d(ae,4),Di;(function(t){t[t.PROTO2=0]="PROTO2",t[t.PROTO3=1]="PROTO3",t[t.EDITIONS=2]="EDITIONS"})(Di||(Di={}));var up=C(ae,0);var Fo=S("Chlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYikgIKA0FwaRIMCgRuYW1lGAEgASgJEigKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kEigKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uEg8KB3ZlcnNpb24YBCABKAkSNgoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dBImCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW4SJwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheBIPCgdlZGl0aW9uGAggASgJIu4BCgZNZXRob2QSDAoEbmFtZRgBIAEoCRIYChByZXF1ZXN0X3R5cGVfdXJsGAIgASgJEhkKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIEhkKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJEhoKEnJlc3BvbnNlX3N0cmVhbWluZxgFIAEoCBIoCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhIrCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4QgIYARITCgdlZGl0aW9uGAggASgJQgIYASIjCgVNaXhpbhIMCgRuYW1lGAEgASgJEgwKBHJvb3QYAiABKAlCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQXBpUHJvdG9QAVosZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vYXBpcGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw",[xt,ae]),bp=d(Fo,0),yp=d(Fo,1),Ip=d(Fo,2);function T(t,e,...n){if(n.length==0)return t.extensions[e];let o=n.pop();return n.reduce((r,i)=>r.nestedMessages[i],t.messages[e]).nestedExtensions[o]}var Yo=S("CiJnb29nbGUvcHJvdG9idWYvY3BwX2ZlYXR1cmVzLnByb3RvEgJwYiL8AwoLQ3BwRmVhdHVyZXMS+wEKEmxlZ2FjeV9jbG9zZWRfZW51bRgBIAEoCELeAYgBAZgBBJgBAaIBCRIEdHJ1ZRiEB6IBChIFZmFsc2UY5weyAbgBCOgHEOgHGq8BVGhlIGxlZ2FjeSBjbG9zZWQgZW51bSBiZWhhdmlvciBpbiBDKysgaXMgZGVwcmVjYXRlZCBhbmQgaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gZWRpdGlvbiAyMDI1LiAgU2VlIGh0dHA6Ly9wcm90b2J1Zi5kZXYvcHJvZ3JhbW1pbmctZ3VpZGVzL2VudW0vI2NwcCBmb3IgbW9yZSBpbmZvcm1hdGlvbhJaCgtzdHJpbmdfdHlwZRgCIAEoDjIaLnBiLkNwcEZlYXR1cmVzLlN0cmluZ1R5cGVCKYgBAZgBBJgBAaIBCxIGU1RSSU5HGIQHogEJEgRWSUVXGOkHsgEDCOgHEkwKGmVudW1fbmFtZV91c2VzX3N0cmluZ192aWV3GAMgASgIQiiIAQGYAQaYAQGiAQoSBWZhbHNlGIQHogEJEgR0cnVlGOkHsgEDCOkHIkUKClN0cmluZ1R5cGUSFwoTU1RSSU5HX1RZUEVfVU5LTk9XThAAEggKBFZJRVcQARIICgRDT1JEEAISCgoGU1RSSU5HEAM6PwoDY3BwEhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQY6AcgASgLMg8ucGIuQ3BwRmVhdHVyZXNSA2NwcA",[y]),Vp=d(Yo,0),Ki;(function(t){t[t.STRING_TYPE_UNKNOWN=0]="STRING_TYPE_UNKNOWN",t[t.VIEW=1]="VIEW",t[t.CORD=2]="CORD",t[t.STRING=3]="STRING"})(Ki||(Ki={}));var Bp=C(Yo,0,0),Ep=T(Yo,0);var hl=S("Chtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw"),Rp=d(hl,0);var zo=S("CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIhoKCUZpZWxkTWFzaxINCgVwYXRocxgBIAMoCUKFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZmllbGRtYXNrcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw"),Fp=d(zo,0);var cn=S("CiFnb29nbGUvcHJvdG9idWYvZ29fZmVhdHVyZXMucHJvdG8SAnBiIvcECgpHb0ZlYXR1cmVzEqUBChpsZWdhY3lfdW5tYXJzaGFsX2pzb25fZW51bRgBIAEoCEKAAYgBAZgBBpgBAaIBCRIEdHJ1ZRiEB6IBChIFZmFsc2UY5weyAVsI6AcQ6AcaU1RoZSBsZWdhY3kgVW5tYXJzaGFsSlNPTiBBUEkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIGVkaXRpb24uEmoKCWFwaV9sZXZlbBgCIAEoDjIXLnBiLkdvRmVhdHVyZXMuQVBJTGV2ZWxCPogBAZgBA5gBAaIBGhIVQVBJX0xFVkVMX1VOU1BFQ0lGSUVEGIQHogEPEgpBUElfT1BBUVVFGOkHsgEDCOgHEmsKEXN0cmlwX2VudW1fcHJlZml4GAMgASgOMh4ucGIuR29GZWF0dXJlcy5TdHJpcEVudW1QcmVmaXhCMIgBAZgBBpgBB5gBAaIBGxIWU1RSSVBfRU5VTV9QUkVGSVhfS0VFUBiEB7IBAwjpByJTCghBUElMZXZlbBIZChVBUElfTEVWRUxfVU5TUEVDSUZJRUQQABIMCghBUElfT1BFThABEg4KCkFQSV9IWUJSSUQQAhIOCgpBUElfT1BBUVVFEAMikgEKD1N0cmlwRW51bVByZWZpeBIhCh1TVFJJUF9FTlVNX1BSRUZJWF9VTlNQRUNJRklFRBAAEhoKFlNUUklQX0VOVU1fUFJFRklYX0tFRVAQARIjCh9TVFJJUF9FTlVNX1BSRUZJWF9HRU5FUkFURV9CT1RIEAISGwoXU1RSSVBfRU5VTV9QUkVGSVhfU1RSSVAQAzo8CgJnbxIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0GOoHIAEoCzIOLnBiLkdvRmVhdHVyZXNSAmdvQi9aLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2dvZmVhdHVyZXNwYg",[y]),Up=d(cn,0),_i;(function(t){t[t.API_LEVEL_UNSPECIFIED=0]="API_LEVEL_UNSPECIFIED",t[t.API_OPEN=1]="API_OPEN",t[t.API_HYBRID=2]="API_HYBRID",t[t.API_OPAQUE=3]="API_OPAQUE"})(_i||(_i={}));var Dp=C(cn,0,0),Qi;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.KEEP=1]="KEEP",t[t.GENERATE_BOTH=2]="GENERATE_BOTH",t[t.STRIP=3]="STRIP"})(Qi||(Qi={}));var Kp=C(cn,0,1),_p=T(cn,0);var Zt=S("CiNnb29nbGUvcHJvdG9idWYvamF2YV9mZWF0dXJlcy5wcm90bxICcGIigwgKDEphdmFGZWF0dXJlcxL+AQoSbGVnYWN5X2Nsb3NlZF9lbnVtGAEgASgIQuEBiAEBmAEEmAEBogEJEgR0cnVlGIQHogEKEgVmYWxzZRjnB7IBuwEI6AcQ6AcasgFUaGUgbGVnYWN5IGNsb3NlZCBlbnVtIGJlaGF2aW9yIGluIEphdmEgaXMgZGVwcmVjYXRlZCBhbmQgaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gZWRpdGlvbiAyMDI1LiAgU2VlIGh0dHA6Ly9wcm90b2J1Zi5kZXYvcHJvZ3JhbW1pbmctZ3VpZGVzL2VudW0vI2phdmEgZm9yIG1vcmUgaW5mb3JtYXRpb24uEp8CCg91dGY4X3ZhbGlkYXRpb24YAiABKA4yHy5wYi5KYXZhRmVhdHVyZXMuVXRmOFZhbGlkYXRpb25C5AGIAQGYAQSYAQGiAQwSB0RFRkFVTFQYhAeyAcgBCOgHEOkHGr8BVGhlIEphdmEtc3BlY2lmaWMgdXRmOCB2YWxpZGF0aW9uIGZlYXR1cmUgaXMgZGVwcmVjYXRlZCBhbmQgaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gZWRpdGlvbiAyMDI1LiAgVXRmOCB2YWxpZGF0aW9uIGJlaGF2aW9yIHNob3VsZCB1c2UgdGhlIGdsb2JhbCBjcm9zcy1sYW5ndWFnZSB1dGY4X3ZhbGlkYXRpb24gZmVhdHVyZS4SMAoKbGFyZ2VfZW51bRgDIAEoCEIciAEBmAEGmAEBogEKEgVmYWxzZRiEB7IBAwjpBxJRCh91c2Vfb2xkX291dGVyX2NsYXNzbmFtZV9kZWZhdWx0GAQgASgIQiiIAQGYAQGiAQkSBHRydWUYhAeiAQoSBWZhbHNlGOkHsgEGCOkHIOkHEn8KEm5lc3RfaW5fZmlsZV9jbGFzcxgFIAEoDjI3LnBiLkphdmFGZWF0dXJlcy5OZXN0SW5GaWxlQ2xhc3NGZWF0dXJlLk5lc3RJbkZpbGVDbGFzc0IqiAEBmAEDmAEGmAEIogELEgZMRUdBQ1kYhAeiAQcSAk5PGOkHsgEDCOkHGnwKFk5lc3RJbkZpbGVDbGFzc0ZlYXR1cmUiWAoPTmVzdEluRmlsZUNsYXNzEh4KGk5FU1RfSU5fRklMRV9DTEFTU19VTktOT1dOEAASBgoCTk8QARIHCgNZRVMQAhIUCgZMRUdBQ1kQAxoIIgYI6Qcg6QdKCAgBEICAgIACIkYKDlV0ZjhWYWxpZGF0aW9uEhsKF1VURjhfVkFMSURBVElPTl9VTktOT1dOEAASCwoHREVGQVVMVBABEgoKBlZFUklGWRACSgQIBhAHOkIKBGphdmESGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBjpByABKAsyEC5wYi5KYXZhRmVhdHVyZXNSBGphdmFCKAoTY29tLmdvb2dsZS5wcm90b2J1ZkIRSmF2YUZlYXR1cmVzUHJvdG8",[y]),eg=d(Zt,0),tg=d(Zt,0,0),Pi;(function(t){t[t.NEST_IN_FILE_CLASS_UNKNOWN=0]="NEST_IN_FILE_CLASS_UNKNOWN",t[t.NO=1]="NO",t[t.YES=2]="YES",t[t.LEGACY=3]="LEGACY"})(Pi||(Pi={}));var ng=C(Zt,0,0,0),Oi;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.DEFAULT=1]="DEFAULT",t[t.VERIFY=2]="VERIFY"})(Oi||(Oi={}));var og=C(Zt,0,0),rg=T(Zt,0);var un=S("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),ji=d(un,0),No=d(un,1),$i=d(un,2),dn;(function(t){t[t.NULL_VALUE=0]="NULL_VALUE"})(dn||(dn={}));var cg=C(un,0);var pe=S("Ch5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIcCgtEb3VibGVWYWx1ZRINCgV2YWx1ZRgBIAEoASIbCgpGbG9hdFZhbHVlEg0KBXZhbHVlGAEgASgCIhsKCkludDY0VmFsdWUSDQoFdmFsdWUYASABKAMiHAoLVUludDY0VmFsdWUSDQoFdmFsdWUYASABKAQiGwoKSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoBSIcCgtVSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoDSIaCglCb29sVmFsdWUSDQoFdmFsdWUYASABKAgiHAoLU3RyaW5nVmFsdWUSDQoFdmFsdWUYASABKAkiGwoKQnl0ZXNWYWx1ZRINCgV2YWx1ZRgBIAEoDEKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),pg=d(pe,0),gg=d(pe,1),hg=d(pe,2),fg=d(pe,3),bg=d(pe,4),yg=d(pe,5),Ig=d(pe,6),Gg=d(pe,7),Ag=d(pe,8);var Ct=S("CiVnb29nbGUvcHJvdG9idWYvY29tcGlsZXIvcGx1Z2luLnByb3RvEhhnb29nbGUucHJvdG9idWYuY29tcGlsZXIiRgoHVmVyc2lvbhINCgVtYWpvchgBIAEoBRINCgVtaW5vchgCIAEoBRINCgVwYXRjaBgDIAEoBRIOCgZzdWZmaXgYBCABKAkigQIKFENvZGVHZW5lcmF0b3JSZXF1ZXN0EhgKEGZpbGVfdG9fZ2VuZXJhdGUYASADKAkSEQoJcGFyYW1ldGVyGAIgASgJEjgKCnByb3RvX2ZpbGUYDyADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90bxJFChdzb3VyY2VfZmlsZV9kZXNjcmlwdG9ycxgRIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3RvEjsKEGNvbXBpbGVyX3ZlcnNpb24YAyABKAsyIS5nb29nbGUucHJvdG9idWYuY29tcGlsZXIuVmVyc2lvbiKSAwoVQ29kZUdlbmVyYXRvclJlc3BvbnNlEg0KBWVycm9yGAEgASgJEhoKEnN1cHBvcnRlZF9mZWF0dXJlcxgCIAEoBBIXCg9taW5pbXVtX2VkaXRpb24YAyABKAUSFwoPbWF4aW11bV9lZGl0aW9uGAQgASgFEkIKBGZpbGUYDyADKAsyNC5nb29nbGUucHJvdG9idWYuY29tcGlsZXIuQ29kZUdlbmVyYXRvclJlc3BvbnNlLkZpbGUafwoERmlsZRIMCgRuYW1lGAEgASgJEhcKD2luc2VydGlvbl9wb2ludBgCIAEoCRIPCgdjb250ZW50GA8gASgJEj8KE2dlbmVyYXRlZF9jb2RlX2luZm8YECABKAsyIi5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8iVwoHRmVhdHVyZRIQCgxGRUFUVVJFX05PTkUQABIbChdGRUFUVVJFX1BST1RPM19PUFRJT05BTBABEh0KGUZFQVRVUkVfU1VQUE9SVFNfRURJVElPTlMQAkJyChxjb20uZ29vZ2xlLnByb3RvYnVmLmNvbXBpbGVyQgxQbHVnaW5Qcm90b3NaKWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL3BsdWdpbnBiqgIYR29vZ2xlLlByb3RvYnVmLkNvbXBpbGVy",[y]),Vg=d(Ct,0),Bg=d(Ct,1),Eg=d(Ct,2),Xg=d(Ct,2,0),qi;(function(t){t[t.NONE=0]="NONE",t[t.PROTO3_OPTIONAL=1]="PROTO3_OPTIONAL",t[t.SUPPORTS_EDITIONS=2]="SUPPORTS_EDITIONS"})(qi||(qi={}));var Wg=C(Ct,2,0);function mn(t,e){ea(e,t);let n=fl(t.$unknown,e),[o,r,i]=Ve(e);for(let a of n)wo(o,new be(a.data),r,a.wireType,{readUnknownFields:!0});return i()}function Lo(t,e,n){var o;ea(e,t);let r=((o=t.$unknown)!==null&&o!==void 0?o:[]).filter(c=>c.no!==e.number),[i,a]=Ve(e,n),s=new Ce;Jo(s,{writeUnknownFields:!0},i,a);let l=new be(s.finish());for(;l.pos<l.len;){let[c,m]=l.tag(),g=l.skip(m,c);r.push({no:c,wireType:m,data:g})}t.$unknown=r}function fl(t,e){if(t===void 0)return[];if(e.fieldKind==="enum"||e.fieldKind==="scalar"){for(let n=t.length-1;n>=0;--n)if(t[n].no==e.number)return[t[n]];return[]}return t.filter(n=>n.no===e.number)}function Ve(t,e){let n=t.typeName,o=Object.assign(Object.assign({},t),{kind:"field",parent:t.extendee,localName:n}),r=Object.assign(Object.assign({},t.extendee),{fields:[o],members:[o],oneofs:[]}),i=R(r,e!==void 0?{[n]:e}:void 0);return[L(r,i),o,()=>{let a=i[n];if(a===void 0){let s=t.message;return oe(s)?O(s.fields[0].scalar,s.fields[0].longAsString):R(s)}return a}]}function ea(t,e){if(t.extendee.typeName!=e.$typeName)throw new Error(`extension ${t.typeName} can only be applied to message ${t.extendee.typeName}`)}var bl=3,yl=2,ta={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function Il(t){return t?Object.assign(Object.assign({},ta),t):ta}function oa(t,e,n){return St(L(t,e),Il(n))}function ra(t,e,n){var o;let r=oa(t,e,n);return JSON.stringify(r,null,(o=n?.prettySpaces)!==null&&o!==void 0?o:0)}function Ke(t,e){var n;if(t.typeName=="google.protobuf.NullValue")return null;let o=(n=t.value[e])===null||n===void 0?void 0:n.name;if(o===void 0)throw new Error(`${e} is not a value in ${t}`);return o}function St(t,e){var n;let o=xl(t,e);if(o!==void 0)return o;let r={};for(let i of t.sortedFields){if(!t.isSet(i)){if(i.presence==bl)throw new Error(`cannot encode ${i} to JSON: required field not set`);if(!e.alwaysEmitImplicit||i.presence!==yl)continue}let a=na(i,t.get(i),e);a!==void 0&&(r[vl(i,e)]=a)}if(e.registry){let i=new Set;for(let{no:a}of(n=t.getUnknown())!==null&&n!==void 0?n:[])if(!i.has(a)){i.add(a);let s=e.registry.getExtensionFor(t.desc,a);if(!s)continue;let l=mn(t.message,s),[c,m]=Ve(s,l),g=na(m,c.get(m),e);g!==void 0&&(r[s.jsonName]=g)}}return r}function na(t,e,n){switch(t.fieldKind){case"scalar":return pn(t,e);case"message":return St(e,n);case"enum":return Ho(t.enum,e,n.enumAsInteger);case"list":return Al(e,n);case"map":return Gl(e,n)}}function Gl(t,e){let n=t.field(),o={};switch(n.mapKind){case"scalar":for(let[r,i]of t)o[r]=pn(n,i);break;case"message":for(let[r,i]of t)o[r]=St(i,e);break;case"enum":for(let[r,i]of t)o[r]=Ho(n.enum,i,e.enumAsInteger);break}return e.alwaysEmitImplicit||t.size>0?o:void 0}function Al(t,e){let n=t.field(),o=[];switch(n.listKind){case"scalar":for(let r of t)o.push(pn(n,r));break;case"enum":for(let r of t)o.push(Ho(n.enum,r,e.enumAsInteger));break;case"message":for(let r of t)o.push(St(r,e));break}return e.alwaysEmitImplicit||o.length>0?o:void 0}function Ho(t,e,n){var o;if(typeof e!="number")throw new Error(`cannot encode ${t} to JSON: expected number, got ${z(e)}`);if(t.typeName=="google.protobuf.NullValue")return null;if(n)return e;let r=t.value[e];return(o=r?.name)!==null&&o!==void 0?o:e}function pn(t,e){var n,o,r,i,a,s;switch(t.scalar){case u.INT32:case u.SFIXED32:case u.SINT32:case u.FIXED32:case u.UINT32:if(typeof e!="number")throw new Error(`cannot encode ${t} to JSON: ${(n=de(t,e))===null||n===void 0?void 0:n.message}`);return e;case u.FLOAT:case u.DOUBLE:if(typeof e!="number")throw new Error(`cannot encode ${t} to JSON: ${(o=de(t,e))===null||o===void 0?void 0:o.message}`);return Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case u.STRING:if(typeof e!="string")throw new Error(`cannot encode ${t} to JSON: ${(r=de(t,e))===null||r===void 0?void 0:r.message}`);return e;case u.BOOL:if(typeof e!="boolean")throw new Error(`cannot encode ${t} to JSON: ${(i=de(t,e))===null||i===void 0?void 0:i.message}`);return e;case u.UINT64:case u.FIXED64:case u.INT64:case u.SFIXED64:case u.SINT64:if(typeof e!="bigint"&&typeof e!="string")throw new Error(`cannot encode ${t} to JSON: ${(a=de(t,e))===null||a===void 0?void 0:a.message}`);return e.toString();case u.BYTES:if(e instanceof Uint8Array)return Se(e);throw new Error(`cannot encode ${t} to JSON: ${(s=de(t,e))===null||s===void 0?void 0:s.message}`)}}function vl(t,e){return e.useProtoFieldName?t.name:t.jsonName}function xl(t,e){if(t.desc.typeName.startsWith("google.protobuf."))switch(t.desc.typeName){case"google.protobuf.Any":return Zl(t.message,e);case"google.protobuf.Timestamp":return Vl(t.message);case"google.protobuf.Duration":return Cl(t.message);case"google.protobuf.FieldMask":return Sl(t.message);case"google.protobuf.Struct":return ia(t.message);case"google.protobuf.Value":return To(t.message);case"google.protobuf.ListValue":return aa(t.message);default:if(oe(t.desc)){let n=t.desc.fields[0];return pn(n,t.get(n))}return}}function Zl(t,e){if(t.typeUrl==="")return{};let{registry:n}=e,o,r;if(n&&(o=Mo(t,n),o&&(r=n.getMessage(o.$typeName))),!r||!o)throw new Error(`cannot encode message ${t.$typeName} to JSON: "${t.typeUrl}" is not in the type registry`);let i=St(L(r,o),e);return(r.typeName.startsWith("google.protobuf.")||i===null||Array.isArray(i)||typeof i!="object")&&(i={value:i}),i["@type"]=t.typeUrl,i}function Cl(t){let e=Number(t.seconds),n=t.nanos;if(e>315576e6||e<-315576e6)throw new Error(`cannot encode message ${t.$typeName} to JSON: value out of range`);if(e>0&&n<0||e<0&&n>0)throw new Error(`cannot encode message ${t.$typeName} to JSON: nanos sign must match seconds sign`);let o=t.seconds.toString();if(n!==0){let r=Math.abs(n).toString();r="0".repeat(9-r.length)+r,r.substring(3)==="000000"?r=r.substring(0,3):r.substring(6)==="000"&&(r=r.substring(0,6)),o+="."+r,n<0&&e==0&&(o="-"+o)}return o+"s"}function Sl(t){return t.paths.map(e=>{if(nn(re(e))!==e)throw new Error(`cannot encode message ${t.$typeName} to JSON: lowerCamelCase of path name "${e}" is irreversible`);return re(e)}).join(",")}function ia(t){let e={};for(let[n,o]of Object.entries(t.fields))e[n]=To(o);return e}function To(t){switch(t.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(t.kind.value))throw new Error(`${t.$typeName} cannot be NaN or Infinity`);return t.kind.value;case"boolValue":return t.kind.value;case"stringValue":return t.kind.value;case"structValue":return ia(t.kind.value);case"listValue":return aa(t.kind.value);default:throw new Error(`${t.$typeName} must have a value`)}}function aa(t){return t.values.map(To)}function Vl(t){let e=Number(t.seconds)*1e3;if(e<Date.parse("0001-01-01T00:00:00Z")||e>Date.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot encode message ${t.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(t.nanos<0)throw new Error(`cannot encode message ${t.$typeName} to JSON: nanos must not be negative`);if(t.nanos>999999999)throw new Error(`cannot encode message ${t.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(t.nanos>0){let o=(t.nanos+1e9).toString().substring(1);o.substring(3)==="000000"?n="."+o.substring(0,3)+"Z":o.substring(6)==="000"?n="."+o.substring(0,6)+"Z":n="."+o+"Z"}return new Date(e).toISOString().replace(".000Z",n)}var sa={ignoreUnknownFields:!1};function Bl(t){return t?Object.assign(Object.assign({},sa),t):sa}function ca(t,e,n){return hn(t,Ml(e,t.typeName),n)}function hn(t,e,n){let o=L(t);try{Vt(o,e,Bl(n))}catch(r){throw Tr(r)?new Error(`cannot decode ${r.field()} from JSON: ${r.message}`,{cause:r}):r}return o.message}var Uo=new WeakMap;function El(t,e){var n;if(!Uo.has(t)){let o=new Map;for(let r of t.fields)o.set(r.name,r).set(r.jsonName,r);Uo.set(t,o)}return(n=Uo.get(t))===null||n===void 0?void 0:n.get(e)}function Vt(t,e,n){var o;if(Fl(t,e,n))return;if(e==null||Array.isArray(e)||typeof e!="object")throw new Error(`cannot decode ${t.desc} from JSON: ${z(e)}`);let r=new Map;for(let[i,a]of Object.entries(e)){let s=El(t.desc,i);if(s){if(s.oneof){if(a===null&&s.fieldKind=="scalar")continue;let l=r.get(s.oneof);if(l!==void 0)throw new H(s.oneof,`oneof set multiple times by ${l.name} and ${s.name}`);r.set(s.oneof,s)}la(t,s,a,n)}else{let l;if(i.startsWith("[")&&i.endsWith("]")&&(l=(o=n.registry)===null||o===void 0?void 0:o.getExtension(i.substring(1,i.length-1)))&&l.extendee.typeName===t.desc.typeName){let[c,m,g]=Ve(l);la(c,m,a,n),Lo(t.message,l,g())}if(!l&&!n.ignoreUnknownFields)throw new Error(`cannot decode ${t.desc} from JSON: key "${i}" is unknown`)}}}function la(t,e,n,o){switch(e.fieldKind){case"scalar":Jl(t,e,n);break;case"enum":Rl(t,e,n,o);break;case"message":wl(t,e,n,o);break;case"list":Wl(t.get(e),n,o);break;case"map":Xl(t.get(e),n,o);break}}function da(t,e,n){if(t.scalar&&e!==null)return Do(t,e);if(t.message&&!gn(t,e)){let o=L(t.message);return Vt(o,e,n),o}if(t.enum&&!gn(t,e))return ua(t.enum,e,n.ignoreUnknownFields);throw new H(t,`${t.fieldKind==="list"?"list item":"map value"} must not be null`)}function Xl(t,e,n){if(e===null)return;let o=t.field();if(typeof e!="object"||Array.isArray(e))throw new H(o,"expected object, got "+z(e));for(let[r,i]of Object.entries(e)){let a=kl(o.mapKey,r),s=da(o,i,n);s!==fn&&t.set(a,s)}}function Wl(t,e,n){if(e===null)return;let o=t.field();if(!Array.isArray(e))throw new H(o,"expected Array, got "+z(e));for(let r of e){let i=da(o,r,n);i!==fn&&t.add(i)}}function wl(t,e,n,o){if(gn(e,n)){t.clear(e);return}let r=t.isSet(e)?t.get(e):L(e.message);Vt(r,n,o),t.set(e,r)}function Rl(t,e,n,o){if(gn(e,n)){t.clear(e);return}let r=ua(e.enum,n,o.ignoreUnknownFields);r!==fn&&t.set(e,r)}function Jl(t,e,n){n===null?t.clear(e):t.set(e,Do(e,n))}function gn(t,e){var n,o;return e===null&&((n=t.message)===null||n===void 0?void 0:n.typeName)!="google.protobuf.Value"&&((o=t.enum)===null||o===void 0?void 0:o.typeName)!="google.protobuf.NullValue"}var fn=Symbol();function ua(t,e,n){if(e===null)return t.values[0].number;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let o=t.values.find(r=>r.name===e);if(o!==void 0)return o.number;if(n)return fn;break}throw new Error(`cannot decode ${t} from JSON: ${z(e)}`)}function Do(t,e){switch(t.scalar){case u.DOUBLE:case u.FLOAT:if(e==="NaN")return NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof e=="number"){if(Number.isNaN(e))throw new H(t,"unexpected NaN number");if(!Number.isFinite(e))throw new H(t,"unexpected infinite number");break}if(typeof e=="string"){if(e===""||e.trim().length!==e.length)break;let n=Number(e);if(!Number.isFinite(n))break;return n}break;case u.INT32:case u.FIXED32:case u.SFIXED32:case u.SINT32:case u.UINT32:return ma(e);case u.BYTES:if(typeof e=="string"){if(e==="")return new Uint8Array(0);try{return ye(e)}catch(n){let o=n instanceof Error?n.message:String(n);throw new H(t,o)}}break}return e}function kl(t,e){switch(t){case u.BOOL:switch(e){case"true":return!0;case"false":return!1}return e;case u.INT32:case u.FIXED32:case u.UINT32:case u.SFIXED32:case u.SINT32:return ma(e);default:return e}}function ma(t){if(typeof t=="string"){if(t===""||t.trim().length!==t.length)return t;let e=Number(t);return Number.isNaN(e)?t:e}return t}function Ml(t,e){try{return JSON.parse(t)}catch(n){let o=n instanceof Error?n.message:String(n);throw new Error(`cannot decode message ${e} from JSON: ${o}`,{cause:n})}}function Fl(t,e,n){if(!t.desc.typeName.startsWith("google.protobuf."))return!1;switch(t.desc.typeName){case"google.protobuf.Any":return Yl(t.message,e,n),!0;case"google.protobuf.Timestamp":return zl(t.message,e),!0;case"google.protobuf.Duration":return Nl(t.message,e),!0;case"google.protobuf.FieldMask":return Ll(t.message,e),!0;case"google.protobuf.Struct":return pa(t.message,e),!0;case"google.protobuf.Value":return Ko(t.message,e),!0;case"google.protobuf.ListValue":return ga(t.message,e),!0;default:if(oe(t.desc)){let o=t.desc.fields[0];return e===null?t.clear(o):t.set(o,Do(o,e)),!0}return!1}}function Yl(t,e,n){var o;if(e===null||Array.isArray(e)||typeof e!="object")throw new Error(`cannot decode message ${t.$typeName} from JSON: expected object but got ${z(e)}`);if(Object.keys(e).length==0)return;let r=e["@type"];if(typeof r!="string"||r=="")throw new Error(`cannot decode message ${t.$typeName} from JSON: "@type" is empty`);let i=r.includes("/")?r.substring(r.lastIndexOf("/")+1):r;if(!i.length)throw new Error(`cannot decode message ${t.$typeName} from JSON: "@type" is invalid`);let a=(o=n.registry)===null||o===void 0?void 0:o.getMessage(i);if(!a)throw new Error(`cannot decode message ${t.$typeName} from JSON: ${r} is not in the type registry`);let s=L(a);if(i.startsWith("google.protobuf.")&&Object.prototype.hasOwnProperty.call(e,"value")){let l=e.value;Vt(s,l,n)}else{let l=Object.assign({},e);delete l["@type"],Vt(s,l,n)}ko(s.desc,s.message,t)}function zl(t,e){if(typeof e!="string")throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);let n=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${t.$typeName} from JSON: invalid RFC 3339 string`);let o=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(o))throw new Error(`cannot decode message ${t.$typeName} from JSON: invalid RFC 3339 string`);if(o<Date.parse("0001-01-01T00:00:00Z")||o>Date.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot decode message ${t.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);t.seconds=w.parse(o/1e3),t.nanos=0,n[7]&&(t.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}function Nl(t,e){if(typeof e!="string")throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);let n=e.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(n===null)throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);let o=Number(n[1]);if(o>315576e6||o<-315576e6)throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);if(t.seconds=w.parse(o),typeof n[2]!="string")return;let r=n[2]+"0".repeat(9-n[2].length);t.nanos=parseInt(r),(o<0||Object.is(o,-0))&&(t.nanos=-t.nanos)}function Ll(t,e){if(typeof e!="string")throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);e!==""&&(t.paths=e.split(",").map(n=>{if(n.includes("_"))throw new Error(`cannot decode message ${t.$typeName} from JSON: path names must be lowerCamelCase`);return nn(n)}))}function pa(t,e){if(typeof e!="object"||e==null||Array.isArray(e))throw new Error(`cannot decode message ${t.$typeName} from JSON ${z(e)}`);for(let[n,o]of Object.entries(e)){let r=R(No);Ko(r,o),t.fields[n]=r}}function Ko(t,e){switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(e===null)t.kind={case:"nullValue",value:dn.NULL_VALUE};else if(Array.isArray(e)){let n=R($i);ga(n,e),t.kind={case:"listValue",value:n}}else{let n=R(ji);pa(n,e),t.kind={case:"structValue",value:n}}break;default:throw new Error(`cannot decode message ${t.$typeName} from JSON ${z(e)}`)}return t}function ga(t,e){if(!Array.isArray(e))throw new Error(`cannot decode message ${t.$typeName} from JSON ${z(e)}`);for(let n of e){let o=R(No);Ko(o,n),t.values.push(o)}}var h;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(h||(h={}));function _e(t){let e=h[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var bn;function _o(t){if(!bn){bn={};for(let e of Object.values(h))typeof e!="string"&&(bn[_e(e)]=e)}return bn[t]}var A=class t extends Error{constructor(e,n=h.Unknown,o,r,i){super(Hl(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(o??{}),this.details=r??[],this.cause=i}static from(e,n=h.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"||e.name=="TimeoutError"?new t(e.message,h.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n=e.kind==="message"?{getMessage:r=>r===e.typeName?e:void 0}:e,o=[];for(let r of this.details){if("desc"in r){n.getMessage(r.desc.typeName)&&o.push(R(r.desc,r.value));continue}let i=n.getMessage(r.type);if(i)try{o.push(q(i,r.value))}catch{}}return o}};function Hl(t,e){return t.length?`[${_e(e)}] ${t}`:`[${_e(e)}]`}function Bt(...t){let e=new Headers;for(let n of t)n.forEach((o,r)=>{e.append(r,o)});return e}function yn(t,e){let n={};for(let o of t.methods){let r=e(o);r!=null&&(n[o.localName]=r)}return n}var Qe=1;function In(t,e,n=!1){if(e>t){let o=`message size is larger than configured readMaxBytes ${t}`;throw n&&(o=`message size ${e} is larger than configured readMaxBytes ${t}`),new A(o,h.ResourceExhausted)}}function ha(t){return new Qo(t)}var Qo=class{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,n)=>e+n.byteLength,0)}decode(e){this.buf.push(e);let n=[];for(;;){let o=this.pop();if(!o)break;n.push(o)}return n}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){let e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;let e=this.headerView.getUint8(0),n=this.headerView.getUint32(1);return In(this.readMaxBytes,n,!0),{flags:e,data:new Uint8Array(n)}}cons(e){let n=e.byteLength;if(this.byteLength<n)return!1;let o=0;for(;o<n;){let r=this.buf.shift();r.byteLength>n-o?(e.set(r.subarray(0,n-o),o),this.buf.unshift(r.subarray(n-o)),o+=n-o):(e.set(r,o),o+=r.byteLength)}return!0}};function Gn(t){let e,n=ha(4294967295);return new ReadableStream({start(){e=t.getReader()},async pull(o){let r=!1;for(;!r;){let i=await e.read();if(i.done)n.byteLength>0&&o.error(new A("protocol error: incomplete envelope",h.InvalidArgument)),o.close();else for(let a of n.decode(i.value))o.enqueue(a),r=!0}}})}function Et(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let o=new DataView(n.buffer,n.byteOffset,n.byteLength);return o.setUint8(0,t),o.setUint32(1,e.length),n}var Dl=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(i){n[i]=t[i]&&function(a){return new Promise(function(s,l){a=t[i](a),r(s,l,a.done,a.value)})}}function r(i,a,s,l){Promise.resolve(l).then(function(c){i({value:c,done:s})},a)}},Xt=function(t){return this instanceof Xt?(this.v=t,this):new Xt(t)},Kl=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(t,e||[]),r,i=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(p){return function(G){return Promise.resolve(G).then(p,g)}}function s(p,G){o[p]&&(r[p]=function(Z){return new Promise(function(x,J){i.push([p,Z,x,J])>1||l(p,Z)})},G&&(r[p]=G(r[p])))}function l(p,G){try{c(o[p](G))}catch(Z){f(i[0][3],Z)}}function c(p){p.value instanceof Xt?Promise.resolve(p.value.v).then(m,g):f(i[0][2],p)}function m(p){l("next",p)}function g(p){l("throw",p)}function f(p,G){p(G),i.shift(),i.length&&l(i[0][0],i[0][1])}},_l=function(t){var e,n;return e={},o("next"),o("throw",function(r){throw r}),o("return"),e[Symbol.iterator]=function(){return this},e;function o(r,i){e[r]=t[r]?function(a){return(n=!n)?{value:Xt(t[r](a)),done:!1}:i?i(a):a}:i}};function se(t){return Kl(this,arguments,function*(){yield Xt(yield*_l(Dl(t)))})}var fa=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(i){n[i]=t[i]&&function(a){return new Promise(function(s,l){a=t[i](a),r(s,l,a.done,a.value)})}}function r(i,a,s,l){Promise.resolve(l).then(function(c){i({value:c,done:s})},a)}},Pe=function(t){return this instanceof Pe?(this.v=t,this):new Pe(t)},Ql=function(t){var e,n;return e={},o("next"),o("throw",function(r){throw r}),o("return"),e[Symbol.iterator]=function(){return this},e;function o(r,i){e[r]=t[r]?function(a){return(n=!n)?{value:Pe(t[r](a)),done:!1}:i?i(a):a}:i}},Pl=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(t,e||[]),r,i=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(p){return function(G){return Promise.resolve(G).then(p,g)}}function s(p,G){o[p]&&(r[p]=function(Z){return new Promise(function(x,J){i.push([p,Z,x,J])>1||l(p,Z)})},G&&(r[p]=G(r[p])))}function l(p,G){try{c(o[p](G))}catch(Z){f(i[0][3],Z)}}function c(p){p.value instanceof Pe?Promise.resolve(p.value.v).then(m,g):f(i[0][2],p)}function m(p){l("next",p)}function g(p){l("throw",p)}function f(p,G){p(G),i.shift(),i.length&&l(i[0][0],i[0][1])}};function Po(t,e){return yn(t,n=>{switch(n.methodKind){case"unary":return Ol(e,n);case"server_streaming":return jl(e,n);case"client_streaming":return $l(e,n);case"bidi_streaming":return ql(e,n);default:return null}})}function Ol(t,e){return async(n,o)=>{var r,i;let a=await t.unary(e,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);return(r=o?.onHeader)===null||r===void 0||r.call(o,a.header),(i=o?.onTrailer)===null||i===void 0||i.call(o,a.trailer),a.message}}function jl(t,e){return(n,o)=>ba(t.stream(e,o?.signal,o?.timeoutMs,o?.headers,se([n]),o?.contextValues),o)}function $l(t,e){return async(n,o)=>{var r,i,a,s,l,c;let m=await t.stream(e,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);(l=o?.onHeader)===null||l===void 0||l.call(o,m.header);let g,f=0;try{for(var p=!0,G=fa(m.message),Z;Z=await G.next(),r=Z.done,!r;p=!0)s=Z.value,p=!1,g=s,f++}catch(x){i={error:x}}finally{try{!p&&!r&&(a=G.return)&&await a.call(G)}finally{if(i)throw i.error}}if(!g)throw new A("protocol error: missing response message",h.Unimplemented);if(f>1)throw new A("protocol error: received extra messages for client streaming method",h.Unimplemented);return(c=o?.onTrailer)===null||c===void 0||c.call(o,m.trailer),g}}function ql(t,e){return(n,o)=>ba(t.stream(e,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues),o)}function ba(t,e){let n=(function(){return Pl(this,arguments,function*(){var o,r;let i=yield Pe(t);(o=e?.onHeader)===null||o===void 0||o.call(e,i.header),yield Pe(yield*Ql(fa(i.message))),(r=e?.onTrailer)===null||r===void 0||r.call(e,i.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function An(...t){let e=new AbortController,n=t.filter(r=>r!==void 0).concat(e.signal);for(let r of n){if(r.aborted){o.apply(r);break}r.addEventListener("abort",o)}function o(){e.signal.aborted||e.abort(Wt(this));for(let r of n)r.removeEventListener("abort",o)}return e}function vn(t){let e=new AbortController,n=()=>{e.abort(new A("the operation timed out",h.DeadlineExceeded))},o;return t!==void 0&&(t<=0?n():o=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(o)}}function Wt(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function ge(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function Ga(t,e,...n){if(n.length>0)throw new Error;return t.services[e]}var X="@bufbuild/protobuf",Bb={"google/protobuf/compiler/plugin.proto":X+"/wkt","google/protobuf/any.proto":X+"/wkt","google/protobuf/api.proto":X+"/wkt","google/protobuf/cpp_features.proto":X+"/wkt","google/protobuf/descriptor.proto":X+"/wkt","google/protobuf/duration.proto":X+"/wkt","google/protobuf/empty.proto":X+"/wkt","google/protobuf/field_mask.proto":X+"/wkt","google/protobuf/go_features.proto":X+"/wkt","google/protobuf/java_features.proto":X+"/wkt","google/protobuf/source_context.proto":X+"/wkt","google/protobuf/struct.proto":X+"/wkt","google/protobuf/timestamp.proto":X+"/wkt","google/protobuf/type.proto":X+"/wkt","google/protobuf/wrappers.proto":X+"/wkt"},Eb={isMessage:{typeOnly:!1,bootstrapWktFrom:"../../is-message.js",from:X},Message:{typeOnly:!0,bootstrapWktFrom:"../../types.js",from:X},create:{typeOnly:!1,bootstrapWktFrom:"../../create.js",from:X},fromJson:{typeOnly:!1,bootstrapWktFrom:"../../from-json.js",from:X},fromJsonString:{typeOnly:!1,bootstrapWktFrom:"../../from-json.js",from:X},fromBinary:{typeOnly:!1,bootstrapWktFrom:"../../from-binary.js",from:X},toBinary:{typeOnly:!1,bootstrapWktFrom:"../../to-binary.js",from:X},toJson:{typeOnly:!1,bootstrapWktFrom:"../../to-json.js",from:X},toJsonString:{typeOnly:!1,bootstrapWktFrom:"../../to-json.js",from:X},protoInt64:{typeOnly:!1,bootstrapWktFrom:"../../proto-int64.js",from:X},JsonValue:{typeOnly:!0,bootstrapWktFrom:"../../json-value.js",from:X},JsonObject:{typeOnly:!0,bootstrapWktFrom:"../../json-value.js",from:X},codegen:{boot:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/boot.js",from:X+"/codegenv2"},fileDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/file.js",from:X+"/codegenv2"},enumDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/enum.js",from:X+"/codegenv2"},extDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/extension.js",from:X+"/codegenv2"},messageDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/message.js",from:X+"/codegenv2"},serviceDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/service.js",from:X+"/codegenv2"},tsEnum:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/enum.js",from:X+"/codegenv2"},GenFile:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenEnum:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenExtension:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenMessage:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenService:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"}}};var nc=S("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[vt]),oc=d(nc,0);function ee(t,e){return t.toString().replace(/\/?$/,`/${e.parent.typeName}/${e.name}`)}function Zn(t,e){return R(t,e)}function jo(t,e){function n(o){return o.done===!0?o:{done:o.done,value:Zn(t,o.value)}}return{[Symbol.asyncIterator](){let o=e[Symbol.asyncIterator](),r={next:()=>o.next().then(n)};return o.throw!==void 0&&(r.throw=i=>o.throw(i).then(n)),o.return!==void 0&&(r.return=i=>o.return(i).then(n)),r}}}function Cn(t,e){if(!e)return t;for(let n of e.concat().reverse())t=n(t);return t}function Sn(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function Jt(t,e,n,o){let r=e?Aa(t.input,o):va(t.input,n);return{parse:(e?Aa(t.output,o):va(t.output,n)).parse,serialize:r.serialize}}function Aa(t,e){return{parse(n){try{return q(t,n,e)}catch(o){let r=o instanceof Error?o.message:String(o);throw new A(`parse binary: ${r}`,h.Internal)}},serialize(n){try{return me(t,n,e)}catch(o){let r=o instanceof Error?o.message:String(o);throw new A(`serialize binary: ${r}`,h.Internal)}}}}function va(t,e){var n,o;let r=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,i=(o=e?.textDecoder)!==null&&o!==void 0?o:new TextDecoder,a=Sn(e);return{parse(s){try{let l=i.decode(s);return ca(t,l,a)}catch(l){throw A.from(l,h.InvalidArgument)}},serialize(s){try{let l=ra(t,s,a);return r.encode(l)}catch(l){throw A.from(l,h.Internal)}}}}var Ea=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var Wn="application/proto",wn="application/json",Rn="application/connect+proto",Jn="application/connect+json";function kn(t){let e=t?.match(Ea);if(!e)return;let n=!!e[1],o=!!e[3];return{stream:n,binary:o}}function kt(t,e,n){var o;if(e&&new Headers(e).forEach((s,l)=>n.metadata.append(l,s)),typeof t!="object"||t==null||Array.isArray(t))throw n;let r=n.code;"code"in t&&typeof t.code=="string"&&(r=(o=_o(t.code))!==null&&o!==void 0?o:r);let i=t.message;if(i!=null&&typeof i!="string")throw n;let a=new A(i??"",r,e);if("details"in t&&Array.isArray(t.details))for(let s of t.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string")throw n;try{a.details.push({type:s.type,value:ye(s.value),debug:s.debug})}catch{throw n}}return a}var rt=2;function dr(t){let e=new A("invalid end stream",h.Unknown),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let o=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[i,a]of Object.entries(n.metadata)){if(!Array.isArray(a)||a.some(s=>typeof s!="string"))throw e;for(let s of a)o.append(i,s)}}let r="error"in n&&n.error!=null?kt(n.error,o,e):void 0;return{metadata:o,error:r}}var he="Content-Type",Mn="Content-Length",Ie="Content-Encoding";var Mt="Accept-Encoding";var Fn="Connect-Timeout-Ms",it="Connect-Protocol-Version",ur="User-Agent";function mr(t){switch(t){case 400:return h.Internal;case 401:return h.Unauthenticated;case 403:return h.PermissionDenied;case 404:return h.Unimplemented;case 429:return h.Unavailable;case 502:return h.Unavailable;case 503:return h.Unavailable;case 504:return h.Unavailable;default:return h.Unknown}}function Ft(t){let e=new Headers,n=new Headers;return t.forEach((o,r)=>{r.toLowerCase().startsWith("trailer-")?n.append(r.substring(8),o):e.append(r,o)}),[e,n]}var Yt="1";function Yn(t,e,n,o,r){let i=new Headers(o??{});return n!==void 0&&i.set(Fn,`${n}`),i.set(he,t=="unary"?e?Wn:wn:e?Rn:Jn),i.set(it,Yt),!i.has(ur)&&r&&i.set(ur,"connect-es/2.1.1"),i}function zn(t,e,n,o){let r=o.get(he),i=kn(r);if(n!==200){let s=new A(`HTTP ${n}`,mr(n),o);if(t=="unary"&&i&&!i.binary)return{isUnaryError:!0,unaryError:s};throw s}let a={binary:e,stream:t!=="unary"};if(i?.binary!==a.binary||i.stream!==a.stream)throw new A(`unsupported content type ${r}`,i===void 0?h.Unknown:h.Internal,o);return{isUnaryError:!1}}var wa="application/";function Xc(t,e){return e?Se(t,"url"):encodeURIComponent(new TextDecoder().decode(t))}function Nn(t,e,n){let o=`?connect=v${Yt}`,r=t.header.get(he);r?.indexOf(wa)===0&&(o+="&encoding="+encodeURIComponent(r.slice(wa.length)));let i=t.header.get(Ie);i!==null&&i!=="identity"&&(o+="&compression="+encodeURIComponent(i),n=!0),n&&(o+="&base64=1"),o+="&message="+Xc(e,n);let a=t.url+o,s=new Headers(t.header);for(let l of[it,he,Mn,Ie,Mt])s.delete(l);return Object.assign(Object.assign({},t),{requestMethod:"GET",url:a,header:s})}function Ee(t){let e=Cn(t.next,t.interceptors),[n,o,r]=Ra(t),i=Object.assign(Object.assign({},t.req),{message:Zn(t.req.method.input,t.req.message),signal:n});return e(i).then(a=>(r(),a),o)}function Xe(t){let e=Cn(t.next,t.interceptors),[n,o,r]=Ra(t),i=Object.assign(Object.assign({},t.req),{message:jo(t.req.method.input,t.req.message),signal:n}),a=!1;return n.addEventListener("abort",function(){var s,l;let c=t.req.message[Symbol.asyncIterator]();a||(s=c.throw)===null||s===void 0||s.call(c,this.reason).catch(()=>{}),(l=c.return)===null||l===void 0||l.call(c).catch(()=>{})}),e(i).then(s=>Object.assign(Object.assign({},s),{message:{[Symbol.asyncIterator](){let l=s.message[Symbol.asyncIterator]();return{next(){return l.next().then(c=>(c.done==!0&&(a=!0,r()),c),o)}}}}}),o)}function Ra(t){let{signal:e,cleanup:n}=vn(t.timeoutMs),o=An(t.signal,e);return[o.signal,function(i){let a=A.from(e.aborted?Wt(e):i);return o.abort(a),n(),Promise.reject(a)},function(){n(),o.abort()}]}var B=S("ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZSI3CgRSdWxlEgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKZXhwcmVzc2lvbhgDIAEoCSKGAQoMTWVzc2FnZVJ1bGVzEhYKDmNlbF9leHByZXNzaW9uGAUgAygJEh8KA2NlbBgDIAMoCzISLmJ1Zi52YWxpZGF0ZS5SdWxlEi0KBW9uZW9mGAQgAygLMh4uYnVmLnZhbGlkYXRlLk1lc3NhZ2VPbmVvZlJ1bGVKBAgBEAJSCGRpc2FibGVkIjQKEE1lc3NhZ2VPbmVvZlJ1bGUSDgoGZmllbGRzGAEgAygJEhAKCHJlcXVpcmVkGAIgASgIIh4KCk9uZW9mUnVsZXMSEAoIcmVxdWlyZWQYASABKAgiiwkKCkZpZWxkUnVsZXMSFgoOY2VsX2V4cHJlc3Npb24YHSADKAkSHwoDY2VsGBcgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGUSEAoIcmVxdWlyZWQYGSABKAgSJAoGaWdub3JlGBsgASgOMhQuYnVmLnZhbGlkYXRlLklnbm9yZRIpCgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GbG9hdFJ1bGVzSAASKwoGZG91YmxlGAIgASgLMhkuYnVmLnZhbGlkYXRlLkRvdWJsZVJ1bGVzSAASKQoFaW50MzIYAyABKAsyGC5idWYudmFsaWRhdGUuSW50MzJSdWxlc0gAEikKBWludDY0GAQgASgLMhguYnVmLnZhbGlkYXRlLkludDY0UnVsZXNIABIrCgZ1aW50MzIYBSABKAsyGS5idWYudmFsaWRhdGUuVUludDMyUnVsZXNIABIrCgZ1aW50NjQYBiABKAsyGS5idWYudmFsaWRhdGUuVUludDY0UnVsZXNIABIrCgZzaW50MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0ludDMyUnVsZXNIABIrCgZzaW50NjQYCCABKAsyGS5idWYudmFsaWRhdGUuU0ludDY0UnVsZXNIABItCgdmaXhlZDMyGAkgASgLMhouYnVmLnZhbGlkYXRlLkZpeGVkMzJSdWxlc0gAEi0KB2ZpeGVkNjQYCiABKAsyGi5idWYudmFsaWRhdGUuRml4ZWQ2NFJ1bGVzSAASLwoIc2ZpeGVkMzIYCyABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkMzJSdWxlc0gAEi8KCHNmaXhlZDY0GAwgASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDY0UnVsZXNIABInCgRib29sGA0gASgLMhcuYnVmLnZhbGlkYXRlLkJvb2xSdWxlc0gAEisKBnN0cmluZxgOIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAEikKBWJ5dGVzGA8gASgLMhguYnVmLnZhbGlkYXRlLkJ5dGVzUnVsZXNIABInCgRlbnVtGBAgASgLMhcuYnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAEi8KCHJlcGVhdGVkGBIgASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIABIlCgNtYXAYEyABKAsyFi5idWYudmFsaWRhdGUuTWFwUnVsZXNIABIlCgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUuQW55UnVsZXNIABIvCghkdXJhdGlvbhgVIAEoCzIbLmJ1Zi52YWxpZGF0ZS5EdXJhdGlvblJ1bGVzSAASMgoKZmllbGRfbWFzaxgcIAEoCzIcLmJ1Zi52YWxpZGF0ZS5GaWVsZE1hc2tSdWxlc0gAEjEKCXRpbWVzdGFtcBgWIAEoCzIcLmJ1Zi52YWxpZGF0ZS5UaW1lc3RhbXBSdWxlc0gAQgYKBHR5cGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSJVCg9QcmVkZWZpbmVkUnVsZXMSHwoDY2VsGAEgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSLaFwoKRmxvYXRSdWxlcxKDAQoFY29uc3QYASABKAJCdMJIcQpvCgtmbG9hdC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEp8BCgJsdBgCIAEoAkKQAcJIjAEKiQEKCGZsb2F0Lmx0Gn0haGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0KT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEq8BCgNsdGUYAyABKAJCnwHCSJsBCpgBCglmbG9hdC5sdGUaigEhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlKT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABLvBwoCZ3QYBCABKAJC4AfCSNwHCo0BCghmbG9hdC5ndBqAASFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCsMBCgtmbG9hdC5ndF9sdBqzAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCs0BChVmbG9hdC5ndF9sdF9leGNsdXNpdmUaswFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrTAQoMZmxvYXQuZ3RfbHRlGsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycK3QEKFmZsb2F0Lmd0X2x0ZV9leGNsdXNpdmUawgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEroICgNndGUYBSABKAJCqgjCSKYICpsBCglmbG9hdC5ndGUajQEhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycK0gEKDGZsb2F0Lmd0ZV9sdBrBAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK3AEKFmZsb2F0Lmd0ZV9sdF9leGNsdXNpdmUawQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCuIBCg1mbG9hdC5ndGVfbHRlGtABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrsAQoXZmxvYXQuZ3RlX2x0ZV9leGNsdXNpdmUa0AFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESfwoCaW4YBiADKAJCc8JIcApuCghmbG9hdC5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdgoGbm90X2luGAcgAygCQmbCSGMKYQoMZmxvYXQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSdQoGZmluaXRlGAggASgIQmXCSGIKYAoMZmxvYXQuZmluaXRlGlBydWxlcy5maW5pdGUgPyAodGhpcy5pc05hbigpIHx8IHRoaXMuaXNJbmYoKSA/ICd2YWx1ZSBtdXN0IGJlIGZpbml0ZScgOiAnJykgOiAnJxIrCgdleGFtcGxlGAkgAygCQhrCSBcKFQoNZmxvYXQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i7RcKC0RvdWJsZVJ1bGVzEoQBCgVjb25zdBgBIAEoAUJ1wkhyCnAKDGRvdWJsZS5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEqABCgJsdBgCIAEoAUKRAcJIjQEKigEKCWRvdWJsZS5sdBp9IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCk/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKwAQoDbHRlGAMgASgBQqABwkicAQqZAQoKZG91YmxlLmx0ZRqKASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEvQHCgJndBgEIAEoAULlB8JI4QcKjgEKCWRvdWJsZS5ndBqAASFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCsQBCgxkb3VibGUuZ3RfbHQaswFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrOAQoWZG91YmxlLmd0X2x0X2V4Y2x1c2l2ZRqzAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCtQBCg1kb3VibGUuZ3RfbHRlGsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycK3gEKF2RvdWJsZS5ndF9sdGVfZXhjbHVzaXZlGsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARK/CAoDZ3RlGAUgASgBQq8IwkirCAqcAQoKZG91YmxlLmd0ZRqNASFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrTAQoNZG91YmxlLmd0ZV9sdBrBAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK3QEKF2RvdWJsZS5ndGVfbHRfZXhjbHVzaXZlGsEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrjAQoOZG91YmxlLmd0ZV9sdGUa0AFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCu0BChhkb3VibGUuZ3RlX2x0ZV9leGNsdXNpdmUa0AFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygBQnTCSHEKbwoJZG91YmxlLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKAFCZ8JIZApiCg1kb3VibGUubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSdgoGZmluaXRlGAggASgIQmbCSGMKYQoNZG91YmxlLmZpbml0ZRpQcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5mKCkgPyAndmFsdWUgbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJycSLAoHZXhhbXBsZRgJIAMoAUIbwkgYChYKDmRvdWJsZS5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKMFQoKSW50MzJSdWxlcxKDAQoFY29uc3QYASABKAVCdMJIcQpvCgtpbnQzMi5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEooBCgJsdBgCIAEoBUJ8wkh5CncKCGludDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpwBCgNsdGUYAyABKAVCjAHCSIgBCoUBCglpbnQzMi5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEpcHCgJndBgEIAEoBUKIB8JIhAcKegoIaW50MzIuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrMBCgtpbnQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKuwEKFWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsMBCgxpbnQzMi5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCssBChZpbnQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLjBwoDZ3RlGAUgASgFQtMHwkjPBwqIAQoJaW50MzIuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwgEKDGludDMyLmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrKAQoWaW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0gEKDWludDMyLmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2gEKF2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEn8KAmluGAYgAygFQnPCSHAKbgoIaW50MzIuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnYKBm5vdF9pbhgHIAMoBUJmwkhjCmEKDGludDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCCADKAVCGsJIFwoVCg1pbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKMFQoKSW50NjRSdWxlcxKDAQoFY29uc3QYASABKANCdMJIcQpvCgtpbnQ2NC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEooBCgJsdBgCIAEoA0J8wkh5CncKCGludDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpwBCgNsdGUYAyABKANCjAHCSIgBCoUBCglpbnQ2NC5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEpcHCgJndBgEIAEoA0KIB8JIhAcKegoIaW50NjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrMBCgtpbnQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKuwEKFWludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsMBCgxpbnQ2NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCssBChZpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLjBwoDZ3RlGAUgASgDQtMHwkjPBwqIAQoJaW50NjQuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwgEKDGludDY0Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrKAQoWaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0gEKDWludDY0Lmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2gEKF2ludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEn8KAmluGAYgAygDQnPCSHAKbgoIaW50NjQuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnYKBm5vdF9pbhgHIAMoA0JmwkhjCmEKDGludDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCSADKANCGsJIFwoVCg1pbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLVUludDMyUnVsZXMShAEKBWNvbnN0GAEgASgNQnXCSHIKcAoMdWludDMyLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgNQn3CSHoKeAoJdWludDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKA1CjQHCSIkBCoYBCgp1aW50MzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKA1CjQfCSIkHCnsKCXVpbnQzMi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHVpbnQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnVpbnQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNdWludDMyLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3VpbnQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgNQtgHwkjUBwqJAQoKdWludDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg11aW50MzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChd1aW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnVpbnQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChh1aW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygNQnTCSHEKbwoJdWludDMyLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKA1CZ8JIZApiCg11aW50MzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoDUIbwkgYChYKDnVpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLVUludDY0UnVsZXMShAEKBWNvbnN0GAEgASgEQnXCSHIKcAoMdWludDY0LmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgEQn3CSHoKeAoJdWludDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKARCjQHCSIkBCoYBCgp1aW50NjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKARCjQfCSIkHCnsKCXVpbnQ2NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHVpbnQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnVpbnQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNdWludDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgEQtgHwkjUBwqJAQoKdWludDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg11aW50NjQuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChd1aW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnVpbnQ2NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChh1aW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygEQnTCSHEKbwoJdWludDY0LmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKARCZ8JIZApiCg11aW50NjQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoBEIbwkgYChYKDnVpbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLU0ludDMyUnVsZXMShAEKBWNvbnN0GAEgASgRQnXCSHIKcAoMc2ludDMyLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgRQn3CSHoKeAoJc2ludDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKBFCjQHCSIkBCoYBCgpzaW50MzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKBFCjQfCSIkHCnsKCXNpbnQzMi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHNpbnQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnNpbnQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNc2ludDMyLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3NpbnQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgRQtgHwkjUBwqJAQoKc2ludDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg1zaW50MzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChdzaW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnNpbnQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChhzaW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygRQnTCSHEKbwoJc2ludDMyLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKBFCZ8JIZApiCg1zaW50MzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEUIbwkgYChYKDnNpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLU0ludDY0UnVsZXMShAEKBWNvbnN0GAEgASgSQnXCSHIKcAoMc2ludDY0LmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgSQn3CSHoKeAoJc2ludDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKBJCjQHCSIkBCoYBCgpzaW50NjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKBJCjQfCSIkHCnsKCXNpbnQ2NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHNpbnQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnNpbnQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNc2ludDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3NpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgSQtgHwkjUBwqJAQoKc2ludDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg1zaW50NjQuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChdzaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnNpbnQ2NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChhzaW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygSQnTCSHEKbwoJc2ludDY0LmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKBJCZ8JIZApiCg1zaW50NjQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEkIbwkgYChYKDnNpbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKvFQoMRml4ZWQzMlJ1bGVzEoUBCgVjb25zdBgBIAEoB0J2wkhzCnEKDWZpeGVkMzIuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKMAQoCbHQYAiABKAdCfsJIewp5CgpmaXhlZDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp4BCgNsdGUYAyABKAdCjgHCSIoBCocBCgtmaXhlZDMyLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASoQcKAmd0GAQgASgHQpIHwkiOBwp8CgpmaXhlZDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq1AQoNZml4ZWQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKF2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxQEKDmZpeGVkMzIuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrNAQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLtBwoDZ3RlGAUgASgHQt0HwkjZBwqKAQoLZml4ZWQzMi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrEAQoOZml4ZWQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKGGZpeGVkMzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1AEKD2ZpeGVkMzIuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrcAQoZZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARKBAQoCaW4YBiADKAdCdcJIcgpwCgpmaXhlZDMyLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ4CgZub3RfaW4YByADKAdCaMJIZQpjCg5maXhlZDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEi0KB2V4YW1wbGUYCCADKAdCHMJIGQoXCg9maXhlZDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIq8VCgxGaXhlZDY0UnVsZXMShQEKBWNvbnN0GAEgASgGQnbCSHMKcQoNZml4ZWQ2NC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEowBCgJsdBgCIAEoBkJ+wkh7CnkKCmZpeGVkNjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASngEKA2x0ZRgDIAEoBkKOAcJIigEKhwEKC2ZpeGVkNjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKhBwoCZ3QYBCABKAZCkgfCSI4HCnwKCmZpeGVkNjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrUBCg1maXhlZDY0Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq9AQoXZml4ZWQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrFAQoOZml4ZWQ2NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCs0BChhmaXhlZDY0Lmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEu0HCgNndGUYBSABKAZC3QfCSNkHCooBCgtmaXhlZDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsQBCg5maXhlZDY0Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrMAQoYZml4ZWQ2NC5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrUAQoPZml4ZWQ2NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtwBChlmaXhlZDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoEBCgJpbhgGIAMoBkJ1wkhyCnAKCmZpeGVkNjQuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEngKBm5vdF9pbhgHIAMoBkJowkhlCmMKDmZpeGVkNjQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoBkIcwkgZChcKD2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwBUKDVNGaXhlZDMyUnVsZXMShgEKBWNvbnN0GAEgASgPQnfCSHQKcgoOc2ZpeGVkMzIuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKNAQoCbHQYAiABKA9Cf8JIfAp6CgtzZml4ZWQzMi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKfAQoDbHRlGAMgASgPQo8BwkiLAQqIAQoMc2ZpeGVkMzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKmBwoCZ3QYBCABKA9ClwfCSJMHCn0KC3NmaXhlZDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq2AQoOc2ZpeGVkMzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BChhzZml4ZWQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrGAQoPc2ZpeGVkMzIuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrOAQoZc2ZpeGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES8gcKA2d0ZRgFIAEoD0LiB8JI3gcKiwEKDHNmaXhlZDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsUBCg9zZml4ZWQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKGXNmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtUBChBzZml4ZWQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCt0BChpzZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARKCAQoCaW4YBiADKA9CdsJIcwpxCgtzZml4ZWQzMi5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSeQoGbm90X2luGAcgAygPQmnCSGYKZAoPc2ZpeGVkMzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLgoHZXhhbXBsZRgIIAMoD0IdwkgaChgKEHNmaXhlZDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsAVCg1TRml4ZWQ2NFJ1bGVzEoYBCgVjb25zdBgBIAEoEEJ3wkh0CnIKDnNmaXhlZDY0LmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSjQEKAmx0GAIgASgQQn/CSHwKegoLc2ZpeGVkNjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASnwEKA2x0ZRgDIAEoEEKPAcJIiwEKiAEKDHNmaXhlZDY0Lmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASpgcKAmd0GAQgASgQQpcHwkiTBwp9CgtzZml4ZWQ2NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtgEKDnNmaXhlZDY0Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoYc2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxgEKD3NmaXhlZDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzgEKGXNmaXhlZDY0Lmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEvIHCgNndGUYBSABKBBC4gfCSN4HCosBCgxzZml4ZWQ2NC5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrFAQoPc2ZpeGVkNjQuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BChlzZml4ZWQ2NC5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrVAQoQc2ZpeGVkNjQuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrdAQoac2ZpeGVkNjQuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESggEKAmluGAYgAygQQnbCSHMKcQoLc2ZpeGVkNjQuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnkKBm5vdF9pbhgHIAMoEEJpwkhmCmQKD3NmaXhlZDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEi4KB2V4YW1wbGUYCCADKBBCHcJIGgoYChBzZml4ZWQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLHAQoJQm9vbFJ1bGVzEoIBCgVjb25zdBgBIAEoCEJzwkhwCm4KCmJvb2wuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIqCgdleGFtcGxlGAIgAygIQhnCSBYKFAoMYm9vbC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIiiDkKC1N0cmluZ1J1bGVzEoYBCgVjb25zdBgBIAEoCUJ3wkh0CnIKDHN0cmluZy5jb25zdBpidGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCBgJXNgJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSfgoDbGVuGBMgASgEQnHCSG4KbAoKc3RyaW5nLmxlbhpedWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubGVuXSkgOiAnJxKZAQoHbWluX2xlbhgCIAEoBEKHAcJIgwEKgAEKDnN0cmluZy5taW5fbGVuGm51aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgYXQgbGVhc3QgJXMgY2hhcmFjdGVycycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkgOiAnJxKXAQoHbWF4X2xlbhgDIAEoBEKFAcJIgQEKfwoOc3RyaW5nLm1heF9sZW4abXVpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSBhdCBtb3N0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubWF4X2xlbl0pIDogJycSmwEKCWxlbl9ieXRlcxgUIAEoBEKHAcJIgwEKgAEKEHN0cmluZy5sZW5fYnl0ZXMabHVpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSAhPSBydWxlcy5sZW5fYnl0ZXMgPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuX2J5dGVzXSkgOiAnJxKjAQoJbWluX2J5dGVzGAQgASgEQo8BwkiLAQqIAQoQc3RyaW5nLm1pbl9ieXRlcxp0dWludChieXRlcyh0aGlzKS5zaXplKCkpIDwgcnVsZXMubWluX2J5dGVzID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlIGF0IGxlYXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9ieXRlc10pIDogJycSogEKCW1heF9ieXRlcxgFIAEoBEKOAcJIigEKhwEKEHN0cmluZy5tYXhfYnl0ZXMac3VpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA+IHJ1bGVzLm1heF9ieXRlcyA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSBhdCBtb3N0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1heF9ieXRlc10pIDogJycSjQEKB3BhdHRlcm4YBiABKAlCfMJIeQp3Cg5zdHJpbmcucGF0dGVybhplIXRoaXMubWF0Y2hlcyhydWxlcy5wYXR0ZXJuKSA/ICd2YWx1ZSBkb2VzIG5vdCBtYXRjaCByZWdleCBwYXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJycShAEKBnByZWZpeBgHIAEoCUJ0wkhxCm8KDXN0cmluZy5wcmVmaXgaXiF0aGlzLnN0YXJ0c1dpdGgocnVsZXMucHJlZml4KSA/ICd2YWx1ZSBkb2VzIG5vdCBoYXZlIHByZWZpeCBgJXNgJy5mb3JtYXQoW3J1bGVzLnByZWZpeF0pIDogJycSggEKBnN1ZmZpeBgIIAEoCUJywkhvCm0KDXN0cmluZy5zdWZmaXgaXCF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAndmFsdWUgZG9lcyBub3QgaGF2ZSBzdWZmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEpABCghjb250YWlucxgJIAEoCUJ+wkh7CnkKD3N0cmluZy5jb250YWlucxpmIXRoaXMuY29udGFpbnMocnVsZXMuY29udGFpbnMpID8gJ3ZhbHVlIGRvZXMgbm90IGNvbnRhaW4gc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMuY29udGFpbnNdKSA6ICcnEpgBCgxub3RfY29udGFpbnMYFyABKAlCgQHCSH4KfAoTc3RyaW5nLm5vdF9jb250YWlucxpldGhpcy5jb250YWlucyhydWxlcy5ub3RfY29udGFpbnMpID8gJ3ZhbHVlIGNvbnRhaW5zIHN1YnN0cmluZyBgJXNgJy5mb3JtYXQoW3J1bGVzLm5vdF9jb250YWluc10pIDogJycSgAEKAmluGAogAygJQnTCSHEKbwoJc3RyaW5nLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YCyADKAlCZ8JIZApiCg1zdHJpbmcubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycS3wEKBWVtYWlsGAwgASgIQs0BwkjJAQphCgxzdHJpbmcuZW1haWwSI3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzGiwhcnVsZXMuZW1haWwgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzRW1haWwoKQpkChJzdHJpbmcuZW1haWxfZW1wdHkSMnZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzGhohcnVsZXMuZW1haWwgfHwgdGhpcyAhPSAnJ0gAEucBCghob3N0bmFtZRgNIAEoCELSAcJIzgEKZQoPc3RyaW5nLmhvc3RuYW1lEh52YWx1ZSBtdXN0IGJlIGEgdmFsaWQgaG9zdG5hbWUaMiFydWxlcy5ob3N0bmFtZSB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpCmUKFXN0cmluZy5ob3N0bmFtZV9lbXB0eRItdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3RuYW1lGh0hcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyAhPSAnJ0gAEscBCgJpcBgOIAEoCEK4AcJItAEKVQoJc3RyaW5nLmlwEiB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxomIXJ1bGVzLmlwIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwKCkKWwoPc3RyaW5nLmlwX2VtcHR5Ei92YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgYWRkcmVzcxoXIXJ1bGVzLmlwIHx8IHRoaXMgIT0gJydIABLWAQoEaXB2NBgPIAEoCELFAcJIwQEKXAoLc3RyaW5nLmlwdjQSInZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaKSFydWxlcy5pcHY0IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwKDQpCmEKEXN0cmluZy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGhkhcnVsZXMuaXB2NCB8fCB0aGlzICE9ICcnSAAS1gEKBGlwdjYYECABKAhCxQHCSMEBClwKC3N0cmluZy5pcHY2EiJ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NiBhZGRyZXNzGikhcnVsZXMuaXB2NiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCg2KQphChFzdHJpbmcuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxoZIXJ1bGVzLmlwdjYgfHwgdGhpcyAhPSAnJ0gAEr8BCgN1cmkYESABKAhCrwHCSKsBClEKCnN0cmluZy51cmkSGXZhbHVlIG11c3QgYmUgYSB2YWxpZCBVUkkaKCFydWxlcy51cmkgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzVXJpKCkKVgoQc3RyaW5nLnVyaV9lbXB0eRIodmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIFVSSRoYIXJ1bGVzLnVyaSB8fCB0aGlzICE9ICcnSAAScAoHdXJpX3JlZhgSIAEoCEJdwkhaClgKDnN0cmluZy51cmlfcmVmEiN2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVJJIFJlZmVyZW5jZRohIXJ1bGVzLnVyaV9yZWYgfHwgdGhpcy5pc1VyaVJlZigpSAASkAIKB2FkZHJlc3MYFSABKAhC/AHCSPgBCoEBCg5zdHJpbmcuYWRkcmVzcxItdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lLCBvciBpcCBhZGRyZXNzGkAhcnVsZXMuYWRkcmVzcyB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpIHx8IHRoaXMuaXNJcCgpCnIKFHN0cmluZy5hZGRyZXNzX2VtcHR5Ejx2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgaG9zdG5hbWUsIG9yIGlwIGFkZHJlc3MaHCFydWxlcy5hZGRyZXNzIHx8IHRoaXMgIT0gJydIABKYAgoEdXVpZBgWIAEoCEKHAsJIgwIKpQEKC3N0cmluZy51dWlkEhp2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVVJRBp6IXJ1bGVzLnV1aWQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykKWQoRc3RyaW5nLnV1aWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVVUlEGhkhcnVsZXMudXVpZCB8fCB0aGlzICE9ICcnSAAS8AEKBXR1dWlkGCEgASgIQt4BwkjaAQpzCgxzdHJpbmcudHV1aWQSInZhbHVlIG11c3QgYmUgYSB2YWxpZCB0cmltbWVkIFVVSUQaPyFydWxlcy50dXVpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezMyfSQnKQpjChJzdHJpbmcudHV1aWRfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCB0cmltbWVkIFVVSUQaGiFydWxlcy50dXVpZCB8fCB0aGlzICE9ICcnSAASlgIKEWlwX3dpdGhfcHJlZml4bGVuGBogASgIQvgBwkj0AQp4ChhzdHJpbmcuaXBfd2l0aF9wcmVmaXhsZW4SH3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUCBwcmVmaXgaOyFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCgpCngKHnN0cmluZy5pcF93aXRoX3ByZWZpeGxlbl9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHByZWZpeBomIXJ1bGVzLmlwX3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgIT0gJydIABLPAgoTaXB2NF93aXRoX3ByZWZpeGxlbhgbIAEoCEKvAsJIqwIKkwEKGnN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuEjV2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBo+IXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCkKkgEKIHN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuX2VtcHR5EkR2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBooIXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyAhPSAnJ0gAEs8CChNpcHY2X3dpdGhfcHJlZml4bGVuGBwgASgIQq8CwkirAgqTAQoac3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW4SNXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGj4hcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2KQqSAQogc3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGighcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSAAS8gEKCWlwX3ByZWZpeBgdIAEoCELcAcJI2AEKbAoQc3RyaW5nLmlwX3ByZWZpeBIfdmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQIHByZWZpeBo3IXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCh0cnVlKQpoChZzdHJpbmcuaXBfcHJlZml4X2VtcHR5Ei52YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgcHJlZml4Gh4hcnVsZXMuaXBfcHJlZml4IHx8IHRoaXMgIT0gJydIABKDAgoLaXB2NF9wcmVmaXgYHiABKAhC6wHCSOcBCnUKEnN0cmluZy5pcHY0X3ByZWZpeBIhdmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjQgcHJlZml4GjwhcnVsZXMuaXB2NF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCwgdHJ1ZSkKbgoYc3RyaW5nLmlwdjRfcHJlZml4X2VtcHR5EjB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBwcmVmaXgaICFydWxlcy5pcHY0X3ByZWZpeCB8fCB0aGlzICE9ICcnSAASgwIKC2lwdjZfcHJlZml4GB8gASgIQusBwkjnAQp1ChJzdHJpbmcuaXB2Nl9wcmVmaXgSIXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IHByZWZpeBo8IXJ1bGVzLmlwdjZfcHJlZml4IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDYsIHRydWUpCm4KGHN0cmluZy5pcHY2X3ByZWZpeF9lbXB0eRIwdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgcHJlZml4GiAhcnVsZXMuaXB2Nl9wcmVmaXggfHwgdGhpcyAhPSAnJ0gAErUCCg1ob3N0X2FuZF9wb3J0GCAgASgIQpsCwkiXAgqZAQoUc3RyaW5nLmhvc3RfYW5kX3BvcnQSQXZhbHVlIG11c3QgYmUgYSB2YWxpZCBob3N0IChob3N0bmFtZSBvciBJUCBhZGRyZXNzKSBhbmQgcG9ydCBwYWlyGj4hcnVsZXMuaG9zdF9hbmRfcG9ydCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0QW5kUG9ydCh0cnVlKQp5ChpzdHJpbmcuaG9zdF9hbmRfcG9ydF9lbXB0eRI3dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3QgYW5kIHBvcnQgcGFpchoiIXJ1bGVzLmhvc3RfYW5kX3BvcnQgfHwgdGhpcyAhPSAnJ0gAEvUBCgR1bGlkGCMgASgIQuQBwkjgAQqCAQoLc3RyaW5nLnVsaWQSGnZhbHVlIG11c3QgYmUgYSB2YWxpZCBVTElEGlchcnVsZXMudWxpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTddWzAtOUEtSEpLTU5QLVRWLVphLWhqa21ucC10di16XXsyNX0kJykKWQoRc3RyaW5nLnVsaWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVTElEGhkhcnVsZXMudWxpZCB8fCB0aGlzICE9ICcnSAASqAUKEHdlbGxfa25vd25fcmVnZXgYGCABKA4yGC5idWYudmFsaWRhdGUuS25vd25SZWdleELxBMJI7QQK8AEKI3N0cmluZy53ZWxsX2tub3duX3JlZ2V4LmhlYWRlcl9uYW1lEiZ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSFRUUCBoZWFkZXIgbmFtZRqgAXJ1bGVzLndlbGxfa25vd25fcmVnZXggIT0gMSB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcyghaGFzKHJ1bGVzLnN0cmljdCkgfHwgcnVsZXMuc3RyaWN0ID8nXjo/WzAtOWEtekEtWiEjJCUmXCcqKy0uXl98flx4NjBdKyQnIDonXlteXHUwMDAwXHUwMDBBXHUwMDBEXSskJykKjQEKKXN0cmluZy53ZWxsX2tub3duX3JlZ2V4LmhlYWRlcl9uYW1lX2VtcHR5EjV2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSFRUUCBoZWFkZXIgbmFtZRopcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAxIHx8IHRoaXMgIT0gJycK5wEKJHN0cmluZy53ZWxsX2tub3duX3JlZ2V4LmhlYWRlcl92YWx1ZRIndmFsdWUgbXVzdCBiZSBhIHZhbGlkIEhUVFAgaGVhZGVyIHZhbHVlGpUBcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAyIHx8IHRoaXMubWF0Y2hlcyghaGFzKHJ1bGVzLnN0cmljdCkgfHwgcnVsZXMuc3RyaWN0ID8nXlteXHUwMDAwLVx1MDAwOFx1MDAwQS1cdTAwMUZcdTAwN0ZdKiQnIDonXlteXHUwMDAwXHUwMDBBXHUwMDBEXSokJylIABIOCgZzdHJpY3QYGSABKAgSLAoHZXhhbXBsZRgiIAMoCUIbwkgYChYKDnN0cmluZy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLCEgoKQnl0ZXNSdWxlcxKAAQoFY29uc3QYASABKAxCccJIbgpsCgtieXRlcy5jb25zdBpddGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBiZSAleCcuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEngKA2xlbhgNIAEoBEJrwkhoCmYKCWJ5dGVzLmxlbhpZdWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxlbl0pIDogJycSkAEKB21pbl9sZW4YAiABKARCf8JIfAp6Cg1ieXRlcy5taW5fbGVuGml1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgYXQgbGVhc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJycSiAEKB21heF9sZW4YAyABKARCd8JIdApyCg1ieXRlcy5tYXhfbGVuGmF1aW50KHRoaXMuc2l6ZSgpKSA+IHJ1bGVzLm1heF9sZW4gPyAndmFsdWUgbXVzdCBiZSBhdCBtb3N0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1heF9sZW5dKSA6ICcnEpABCgdwYXR0ZXJuGAQgASgJQn/CSHwKegoNYnl0ZXMucGF0dGVybhppIXN0cmluZyh0aGlzKS5tYXRjaGVzKHJ1bGVzLnBhdHRlcm4pID8gJ3ZhbHVlIG11c3QgbWF0Y2ggcmVnZXggcGF0dGVybiBgJXNgJy5mb3JtYXQoW3J1bGVzLnBhdHRlcm5dKSA6ICcnEoEBCgZwcmVmaXgYBSABKAxCccJIbgpsCgxieXRlcy5wcmVmaXgaXCF0aGlzLnN0YXJ0c1dpdGgocnVsZXMucHJlZml4KSA/ICd2YWx1ZSBkb2VzIG5vdCBoYXZlIHByZWZpeCAleCcuZm9ybWF0KFtydWxlcy5wcmVmaXhdKSA6ICcnEn8KBnN1ZmZpeBgGIAEoDEJvwkhsCmoKDGJ5dGVzLnN1ZmZpeBpaIXRoaXMuZW5kc1dpdGgocnVsZXMuc3VmZml4KSA/ICd2YWx1ZSBkb2VzIG5vdCBoYXZlIHN1ZmZpeCAleCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEoMBCghjb250YWlucxgHIAEoDEJxwkhuCmwKDmJ5dGVzLmNvbnRhaW5zGlohdGhpcy5jb250YWlucyhydWxlcy5jb250YWlucykgPyAndmFsdWUgZG9lcyBub3QgY29udGFpbiAleCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJycSpwEKAmluGAggAygMQpoBwkiWAQqTAQoIYnl0ZXMuaW4ahgFnZXRGaWVsZChydWxlcywgJ2luJykuc2l6ZSgpID4gMCAmJiAhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ2CgZub3RfaW4YCSADKAxCZsJIYwphCgxieXRlcy5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxLrAQoCaXAYCiABKAhC3AHCSNgBCnQKCGJ5dGVzLmlwEiB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxpGIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNCB8fCB0aGlzLnNpemUoKSA9PSAxNgpgCg5ieXRlcy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaHSFydWxlcy5pcCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS5AEKBGlwdjQYCyABKAhC0wHCSM8BCmUKCmJ5dGVzLmlwdjQSInZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaMyFydWxlcy5pcHY0IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNApmChBieXRlcy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGh8hcnVsZXMuaXB2NCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS5QEKBGlwdjYYDCABKAhC1AHCSNABCmYKCmJ5dGVzLmlwdjYSInZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3MaNCFydWxlcy5pcHY2IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gMTYKZgoQYnl0ZXMuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxofIXJ1bGVzLmlwdjYgfHwgdGhpcy5zaXplKCkgIT0gMEgAEtUBCgR1dWlkGA8gASgIQsQBwkjAAQpeCgpieXRlcy51dWlkEhp2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVVJRBo0IXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSAxNgpeChBieXRlcy51dWlkX2VtcHR5Eil2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgVVVJRBofIXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgIT0gMEgAEisKB2V4YW1wbGUYDiADKAxCGsJIFwoVCg1ieXRlcy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLUAwoJRW51bVJ1bGVzEoIBCgVjb25zdBgBIAEoBUJzwkhwCm4KCmVudW0uY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIUCgxkZWZpbmVkX29ubHkYAiABKAgSfgoCaW4YAyADKAVCcsJIbwptCgdlbnVtLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ1CgZub3RfaW4YBCADKAVCZcJIYgpgCgtlbnVtLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEioKB2V4YW1wbGUYBSADKAVCGcJIFgoUCgxlbnVtLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAiL7AwoNUmVwZWF0ZWRSdWxlcxKeAQoJbWluX2l0ZW1zGAEgASgEQooBwkiGAQqDAQoScmVwZWF0ZWQubWluX2l0ZW1zGm11aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9pdGVtcyA/ICd2YWx1ZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJWQgaXRlbShzKScuZm9ybWF0KFtydWxlcy5taW5faXRlbXNdKSA6ICcnEqIBCgltYXhfaXRlbXMYAiABKARCjgHCSIoBCocBChJyZXBlYXRlZC5tYXhfaXRlbXMacXVpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2l0ZW1zID8gJ3ZhbHVlIG11c3QgY29udGFpbiBubyBtb3JlIHRoYW4gJXMgaXRlbShzKScuZm9ybWF0KFtydWxlcy5tYXhfaXRlbXNdKSA6ICcnEnAKBnVuaXF1ZRgDIAEoCEJgwkhdClsKD3JlcGVhdGVkLnVuaXF1ZRIocmVwZWF0ZWQgdmFsdWUgbXVzdCBjb250YWluIHVuaXF1ZSBpdGVtcxoeIXJ1bGVzLnVuaXF1ZSB8fCB0aGlzLnVuaXF1ZSgpEicKBWl0ZW1zGAQgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMqCQjoBxCAgICAAiKKAwoITWFwUnVsZXMSjwEKCW1pbl9wYWlycxgBIAEoBEJ8wkh5CncKDW1hcC5taW5fcGFpcnMaZnVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX3BhaXJzID8gJ21hcCBtdXN0IGJlIGF0IGxlYXN0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWluX3BhaXJzXSkgOiAnJxKOAQoJbWF4X3BhaXJzGAIgASgEQnvCSHgKdgoNbWFwLm1heF9wYWlycxpldWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfcGFpcnMgPyAnbWFwIG11c3QgYmUgYXQgbW9zdCAlZCBlbnRyaWVzJy5mb3JtYXQoW3J1bGVzLm1heF9wYWlyc10pIDogJycSJgoEa2V5cxgEIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzEigKBnZhbHVlcxgFIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzKgkI6AcQgICAgAIiJgoIQW55UnVsZXMSCgoCaW4YAiADKAkSDgoGbm90X2luGAMgAygJIpkXCg1EdXJhdGlvblJ1bGVzEqEBCgVjb25zdBgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJ3wkh0CnIKDmR1cmF0aW9uLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSqAEKAmx0GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQn/CSHwKegoLZHVyYXRpb24ubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASugEKA2x0ZRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKPAcJIiwEKiAEKDGR1cmF0aW9uLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASwQcKAmd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQpcHwkiTBwp9CgtkdXJhdGlvbi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtgEKDmR1cmF0aW9uLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoYZHVyYXRpb24uZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxgEKD2R1cmF0aW9uLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzgEKGWR1cmF0aW9uLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEo0ICgNndGUYBiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25C4gfCSN4HCosBCgxkdXJhdGlvbi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrFAQoPZHVyYXRpb24uZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BChlkdXJhdGlvbi5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrVAQoQZHVyYXRpb24uZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrdAQoaZHVyYXRpb24uZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESnQEKAmluGAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnbCSHMKcQoLZHVyYXRpb24uaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEpQBCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CacJIZgpkCg9kdXJhdGlvbi5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxJJCgdleGFtcGxlGAkgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQh3CSBoKGAoQZHVyYXRpb24uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i/QUKDkZpZWxkTWFza1J1bGVzEr8BCgVjb25zdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCkwHCSI8BCowBChBmaWVsZF9tYXNrLmNvbnN0Gnh0aGlzLnBhdGhzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRocyA/ICd2YWx1ZSBtdXN0IGVxdWFsIHBhdGhzICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRoc10pIDogJycS2QEKAmluGAIgAygJQswBwkjIAQrFAQoNZmllbGRfbWFzay5pbhqzASF0aGlzLnBhdGhzLmFsbChwLCBwIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ2luJykuZXhpc3RzKGYsIHAuc3RhcnRzV2l0aChmKycuJykpKSA/ICd2YWx1ZSBtdXN0IG9ubHkgY29udGFpbiBwYXRocyBpbiAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEvMBCgZub3RfaW4YAyADKAlC4gHCSN4BCtsBChFmaWVsZF9tYXNrLm5vdF9pbhrFASF0aGlzLnBhdGhzLmFsbChwLCAhKHAgaW4gZ2V0RmllbGQocnVsZXMsICdub3RfaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ25vdF9pbicpLmV4aXN0cyhmLCBwLnN0YXJ0c1dpdGgoZisnLicpKSkpID8gJ3ZhbHVlIG11c3Qgbm90IGNvbnRhaW4gYW55IHBhdGhzIGluICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnbm90X2luJyldKSA6ICcnEkwKB2V4YW1wbGUYBCADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQh/CSBwKGgoSZmllbGRfbWFzay5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIikhgKDlRpbWVzdGFtcFJ1bGVzEqMBCgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCeMJIdQpzCg90aW1lc3RhbXAuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKrAQoCbHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQoABwkh9CnsKDHRpbWVzdGFtcC5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABK8AQoDbHRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEKQAcJIjAEKiQEKDXRpbWVzdGFtcC5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEmwKBmx0X25vdxgHIAEoCEJawkhXClUKEHRpbWVzdGFtcC5sdF9ub3caQShydWxlcy5sdF9ub3cgJiYgdGhpcyA+IG5vdykgPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gbm93JyA6ICcnSAASxwcKAmd0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEKcB8JImAcKfgoMdGltZXN0YW1wLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq3AQoPdGltZXN0YW1wLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq/AQoZdGltZXN0YW1wLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCscBChB0aW1lc3RhbXAuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrPAQoadGltZXN0YW1wLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEpMICgNndGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQucHwkjjBwqMAQoNdGltZXN0YW1wLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsYBChB0aW1lc3RhbXAuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs4BChp0aW1lc3RhbXAuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1gEKEXRpbWVzdGFtcC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCt4BCht0aW1lc3RhbXAuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESbwoGZ3Rfbm93GAggASgIQl3CSFoKWAoQdGltZXN0YW1wLmd0X25vdxpEKHJ1bGVzLmd0X25vdyAmJiB0aGlzIDwgbm93KSA/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBub3cnIDogJydIARK4AQoGd2l0aGluGAkgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQowBwkiIAQqFAQoQdGltZXN0YW1wLndpdGhpbhpxdGhpcyA8IG5vdy1ydWxlcy53aXRoaW4gfHwgdGhpcyA+IG5vdytydWxlcy53aXRoaW4gPyAndmFsdWUgbXVzdCBiZSB3aXRoaW4gJXMgb2Ygbm93Jy5mb3JtYXQoW3J1bGVzLndpdGhpbl0pIDogJycSSwoHZXhhbXBsZRgKIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCHsJIGwoZChF0aW1lc3RhbXAuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iOQoKVmlvbGF0aW9ucxIrCgp2aW9sYXRpb25zGAEgAygLMhcuYnVmLnZhbGlkYXRlLlZpb2xhdGlvbiKfAQoJVmlvbGF0aW9uEiYKBWZpZWxkGAUgASgLMhcuYnVmLnZhbGlkYXRlLkZpZWxkUGF0aBIlCgRydWxlGAYgASgLMhcuYnVmLnZhbGlkYXRlLkZpZWxkUGF0aBIPCgdydWxlX2lkGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSDwoHZm9yX2tleRgEIAEoCEoECAEQAlIKZmllbGRfcGF0aCI9CglGaWVsZFBhdGgSMAoIZWxlbWVudHMYASADKAsyHi5idWYudmFsaWRhdGUuRmllbGRQYXRoRWxlbWVudCLpAgoQRmllbGRQYXRoRWxlbWVudBIUCgxmaWVsZF9udW1iZXIYASABKAUSEgoKZmllbGRfbmFtZRgCIAEoCRI+CgpmaWVsZF90eXBlGAMgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSPAoIa2V5X3R5cGUYBCABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRI+Cgp2YWx1ZV90eXBlGAUgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSDwoFaW5kZXgYBiABKARIABISCghib29sX2tleRgHIAEoCEgAEhEKB2ludF9rZXkYCCABKANIABISCgh1aW50X2tleRgJIAEoBEgAEhQKCnN0cmluZ19rZXkYCiABKAlIAEILCglzdWJzY3JpcHQqoQEKBklnbm9yZRIWChJJR05PUkVfVU5TUEVDSUZJRUQQABIYChRJR05PUkVfSUZfWkVST19WQUxVRRABEhEKDUlHTk9SRV9BTFdBWVMQAyIECAIQAioMSUdOT1JFX0VNUFRZKg5JR05PUkVfREVGQVVMVCoXSUdOT1JFX0lGX0RFRkFVTFRfVkFMVUUqFUlHTk9SRV9JRl9VTlBPUFVMQVRFRCpuCgpLbm93blJlZ2V4EhsKF0tOT1dOX1JFR0VYX1VOU1BFQ0lGSUVEEAASIAocS05PV05fUkVHRVhfSFRUUF9IRUFERVJfTkFNRRABEiEKHUtOT1dOX1JFR0VYX0hUVFBfSEVBREVSX1ZBTFVFEAI6VgoHbWVzc2FnZRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiHCSABKAsyGi5idWYudmFsaWRhdGUuTWVzc2FnZVJ1bGVzUgdtZXNzYWdlOk4KBW9uZW9mEh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9ucxiHCSABKAsyGC5idWYudmFsaWRhdGUuT25lb2ZSdWxlc1IFb25lb2Y6TgoFZmllbGQSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGIcJIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzUgVmaWVsZDpdCgpwcmVkZWZpbmVkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiICSABKAsyHS5idWYudmFsaWRhdGUuUHJlZGVmaW5lZFJ1bGVzUgpwcmVkZWZpbmVkQm4KEmJ1aWxkLmJ1Zi52YWxpZGF0ZUINVmFsaWRhdGVQcm90b1ABWkdidWYuYnVpbGQvZ2VuL2dvL2J1ZmJ1aWxkL3Byb3RvdmFsaWRhdGUvcHJvdG9jb2xidWZmZXJzL2dvL2J1Zi92YWxpZGF0ZQ",[y,At,zo,Gt]),V0=d(B,0),B0=d(B,1),E0=d(B,2),X0=d(B,3),W0=d(B,4),w0=d(B,5),R0=d(B,6),J0=d(B,7),k0=d(B,8),M0=d(B,9),F0=d(B,10),Y0=d(B,11),z0=d(B,12),N0=d(B,13),L0=d(B,14),H0=d(B,15),T0=d(B,16),U0=d(B,17),D0=d(B,18),K0=d(B,19),_0=d(B,20),Q0=d(B,21),P0=d(B,22),O0=d(B,23),j0=d(B,24),$0=d(B,25),q0=d(B,26),eA=d(B,27),tA=d(B,28),nA=d(B,29),oA=d(B,30),rA=d(B,31),Ja;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.IF_ZERO_VALUE=1]="IF_ZERO_VALUE",t[t.ALWAYS=3]="ALWAYS"})(Ja||(Ja={}));var iA=C(B,0),ka;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.HTTP_HEADER_NAME=1]="HTTP_HEADER_NAME",t[t.HTTP_HEADER_VALUE=2]="HTTP_HEADER_VALUE"})(ka||(ka={}));var aA=C(B,1),sA=T(B,0),lA=T(B,1),cA=T(B,2),dA=T(B,3);var zt=S("ChVnb29nbGUvYXBpL2h0dHAucHJvdG8SCmdvb2dsZS5hcGkiVAoESHR0cBIjCgVydWxlcxgBIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGUSJwofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCCKBAgoISHR0cFJ1bGUSEAoIc2VsZWN0b3IYASABKAkSDQoDZ2V0GAIgASgJSAASDQoDcHV0GAMgASgJSAASDgoEcG9zdBgEIAEoCUgAEhAKBmRlbGV0ZRgFIAEoCUgAEg8KBXBhdGNoGAYgASgJSAASLwoGY3VzdG9tGAggASgLMh0uZ29vZ2xlLmFwaS5DdXN0b21IdHRwUGF0dGVybkgAEgwKBGJvZHkYByABKAkSFQoNcmVzcG9uc2VfYm9keRgMIAEoCRIxChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZUIJCgdwYXR0ZXJuIi8KEUN1c3RvbUh0dHBQYXR0ZXJuEgwKBGtpbmQYASABKAkSDAoEcGF0aBgCIAEoCUJnCg5jb20uZ29vZ2xlLmFwaUIJSHR0cFByb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSWIGcHJvdG8z"),pA=d(zt,0),gA=d(zt,1),hA=d(zt,2);var hr=S("Chxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpOksKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBGh0dHBCbgoOY29tLmdvb2dsZS5hcGlCEEFubm90YXRpb25zUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgRHQVBJYgZwcm90bzM",[zt,y]),GA=T(hr,0);var fr=S("Ch1nb29nbGUvYXBpL2xhdW5jaF9zdGFnZS5wcm90bxIKZ29vZ2xlLmFwaSqMAQoLTGF1bmNoU3RhZ2USHAoYTEFVTkNIX1NUQUdFX1VOU1BFQ0lGSUVEEAASEQoNVU5JTVBMRU1FTlRFRBAGEg0KCVBSRUxBVU5DSBAHEhAKDEVBUkxZX0FDQ0VTUxABEgkKBUFMUEhBEAISCAoEQkVUQRADEgYKAkdBEAQSDgoKREVQUkVDQVRFRBAFQloKDmNvbS5nb29nbGUuYXBpQhBMYXVuY2hTdGFnZVByb3RvUAFaLWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpO2FwaaICBEdBUEliBnByb3RvMw"),Ma;(function(t){t[t.LAUNCH_STAGE_UNSPECIFIED=0]="LAUNCH_STAGE_UNSPECIFIED",t[t.UNIMPLEMENTED=6]="UNIMPLEMENTED",t[t.PRELAUNCH=7]="PRELAUNCH",t[t.EARLY_ACCESS=1]="EARLY_ACCESS",t[t.ALPHA=2]="ALPHA",t[t.BETA=3]="BETA",t[t.GA=4]="GA",t[t.DEPRECATED=5]="DEPRECATED"})(Ma||(Ma={}));var xA=C(fr,0);var M=S("Chdnb29nbGUvYXBpL2NsaWVudC5wcm90bxIKZ29vZ2xlLmFwaSK+AQoWQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxIeChJyZWZlcmVuY2VfZG9jc191cmkYASABKAlCAhgBEjoKDGRlc3RpbmF0aW9ucxgCIAMoDjIkLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeURlc3RpbmF0aW9uEkgKGnNlbGVjdGl2ZV9nYXBpY19nZW5lcmF0aW9uGAMgASgLMiQuZ29vZ2xlLmFwaS5TZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24i+wMKFUNsaWVudExpYnJhcnlTZXR0aW5ncxIPCgd2ZXJzaW9uGAEgASgJEi0KDGxhdW5jaF9zdGFnZRgCIAEoDjIXLmdvb2dsZS5hcGkuTGF1bmNoU3RhZ2USGgoScmVzdF9udW1lcmljX2VudW1zGAMgASgIEi8KDWphdmFfc2V0dGluZ3MYFSABKAsyGC5nb29nbGUuYXBpLkphdmFTZXR0aW5ncxItCgxjcHBfc2V0dGluZ3MYFiABKAsyFy5nb29nbGUuYXBpLkNwcFNldHRpbmdzEi0KDHBocF9zZXR0aW5ncxgXIAEoCzIXLmdvb2dsZS5hcGkuUGhwU2V0dGluZ3MSMwoPcHl0aG9uX3NldHRpbmdzGBggASgLMhouZ29vZ2xlLmFwaS5QeXRob25TZXR0aW5ncxIvCg1ub2RlX3NldHRpbmdzGBkgASgLMhguZ29vZ2xlLmFwaS5Ob2RlU2V0dGluZ3MSMwoPZG90bmV0X3NldHRpbmdzGBogASgLMhouZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncxIvCg1ydWJ5X3NldHRpbmdzGBsgASgLMhguZ29vZ2xlLmFwaS5SdWJ5U2V0dGluZ3MSKwoLZ29fc2V0dGluZ3MYHCABKAsyFi5nb29nbGUuYXBpLkdvU2V0dGluZ3MiqAMKClB1Ymxpc2hpbmcSMwoPbWV0aG9kX3NldHRpbmdzGAIgAygLMhouZ29vZ2xlLmFwaS5NZXRob2RTZXR0aW5ncxIVCg1uZXdfaXNzdWVfdXJpGGUgASgJEhkKEWRvY3VtZW50YXRpb25fdXJpGGYgASgJEhYKDmFwaV9zaG9ydF9uYW1lGGcgASgJEhQKDGdpdGh1Yl9sYWJlbBhoIAEoCRIeChZjb2Rlb3duZXJfZ2l0aHViX3RlYW1zGGkgAygJEhYKDmRvY190YWdfcHJlZml4GGogASgJEjsKDG9yZ2FuaXphdGlvbhhrIAEoDjIlLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeU9yZ2FuaXphdGlvbhI7ChBsaWJyYXJ5X3NldHRpbmdzGG0gAygLMiEuZ29vZ2xlLmFwaS5DbGllbnRMaWJyYXJ5U2V0dGluZ3MSKQohcHJvdG9fcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG4gASgJEigKIHJlc3RfcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG8gASgJIuMBCgxKYXZhU2V0dGluZ3MSFwoPbGlicmFyeV9wYWNrYWdlGAEgASgJEkwKE3NlcnZpY2VfY2xhc3NfbmFtZXMYAiADKAsyLy5nb29nbGUuYXBpLkphdmFTZXR0aW5ncy5TZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EjIKBmNvbW1vbhgDIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxo4ChZTZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiQQoLQ3BwU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIkEKC1BocFNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKbAgoOUHl0aG9uU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEk4KFWV4cGVyaW1lbnRhbF9mZWF0dXJlcxgCIAEoCzIvLmdvb2dsZS5hcGkuUHl0aG9uU2V0dGluZ3MuRXhwZXJpbWVudGFsRmVhdHVyZXMahAEKFEV4cGVyaW1lbnRhbEZlYXR1cmVzEh0KFXJlc3RfYXN5bmNfaW9fZW5hYmxlZBgBIAEoCBInCh9wcm90b2J1Zl9weXRob25pY190eXBlc19lbmFibGVkGAIgASgIEiQKHHVudmVyc2lvbmVkX3BhY2thZ2VfZGlzYWJsZWQYAyABKAgiQgoMTm9kZVNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKqAwoORG90bmV0U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEkkKEHJlbmFtZWRfc2VydmljZXMYAiADKAsyLy5nb29nbGUuYXBpLkRvdG5ldFNldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5EksKEXJlbmFtZWRfcmVzb3VyY2VzGAMgAygLMjAuZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncy5SZW5hbWVkUmVzb3VyY2VzRW50cnkSGQoRaWdub3JlZF9yZXNvdXJjZXMYBCADKAkSIAoYZm9yY2VkX25hbWVzcGFjZV9hbGlhc2VzGAUgAygJEh4KFmhhbmR3cml0dGVuX3NpZ25hdHVyZXMYBiADKAkaNgoUUmVuYW1lZFNlcnZpY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo3ChVSZW5hbWVkUmVzb3VyY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJCCgxSdWJ5U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIr8BCgpHb1NldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxJFChByZW5hbWVkX3NlcnZpY2VzGAIgAygLMisuZ29vZ2xlLmFwaS5Hb1NldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5GjYKFFJlbmFtZWRTZXJ2aWNlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEizwIKDk1ldGhvZFNldHRpbmdzEhAKCHNlbGVjdG9yGAEgASgJEjwKDGxvbmdfcnVubmluZxgCIAEoCzImLmdvb2dsZS5hcGkuTWV0aG9kU2V0dGluZ3MuTG9uZ1J1bm5pbmcSHQoVYXV0b19wb3B1bGF0ZWRfZmllbGRzGAMgAygJGs0BCgtMb25nUnVubmluZxI1ChJpbml0aWFsX3BvbGxfZGVsYXkYASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SHQoVcG9sbF9kZWxheV9tdWx0aXBsaWVyGAIgASgCEjEKDm1heF9wb2xsX2RlbGF5GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjUKEnRvdGFsX3BvbGxfdGltZW91dBgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiJRChhTZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24SDwoHbWV0aG9kcxgBIAMoCRIkChxnZW5lcmF0ZV9vbWl0dGVkX2FzX2ludGVybmFsGAIgASgIKqMBChlDbGllbnRMaWJyYXJ5T3JnYW5pemF0aW9uEisKJ0NMSUVOVF9MSUJSQVJZX09SR0FOSVpBVElPTl9VTlNQRUNJRklFRBAAEgkKBUNMT1VEEAESBwoDQURTEAISCgoGUEhPVE9TEAMSDwoLU1RSRUVUX1ZJRVcQBBIMCghTSE9QUElORxAFEgcKA0dFTxAGEhEKDUdFTkVSQVRJVkVfQUkQBypnChhDbGllbnRMaWJyYXJ5RGVzdGluYXRpb24SKgomQ0xJRU5UX0xJQlJBUllfREVTVElOQVRJT05fVU5TUEVDSUZJRUQQABIKCgZHSVRIVUIQChITCg9QQUNLQUdFX01BTkFHRVIQFDpKChBtZXRob2Rfc2lnbmF0dXJlEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYmwggAygJUg9tZXRob2RTaWduYXR1cmU6QwoMZGVmYXVsdF9ob3N0Eh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJkIIAEoCVILZGVmYXVsdEhvc3Q6QwoMb2F1dGhfc2NvcGVzEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJoIIAEoCVILb2F1dGhTY29wZXM6RAoLYXBpX3ZlcnNpb24SHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYwbqr+gEgASgJUgphcGlWZXJzaW9uQmkKDmNvbS5nb29nbGUuYXBpQgtDbGllbnRQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICBEdBUEliBnByb3RvMw",[fr,y,At]),BA=d(M,0),EA=d(M,1),XA=d(M,2),WA=d(M,3),wA=d(M,4),RA=d(M,5),JA=d(M,6),kA=d(M,6,0),MA=d(M,7),FA=d(M,8),YA=d(M,9),zA=d(M,10),NA=d(M,11),LA=d(M,11,0),HA=d(M,12),Fa;(function(t){t[t.CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED=0]="CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED",t[t.CLOUD=1]="CLOUD",t[t.ADS=2]="ADS",t[t.PHOTOS=3]="PHOTOS",t[t.STREET_VIEW=4]="STREET_VIEW",t[t.SHOPPING=5]="SHOPPING",t[t.GEO=6]="GEO",t[t.GENERATIVE_AI=7]="GENERATIVE_AI"})(Fa||(Fa={}));var TA=C(M,0),Ya;(function(t){t[t.CLIENT_LIBRARY_DESTINATION_UNSPECIFIED=0]="CLIENT_LIBRARY_DESTINATION_UNSPECIFIED",t[t.GITHUB=10]="GITHUB",t[t.PACKAGE_MANAGER=20]="PACKAGE_MANAGER"})(Ya||(Ya={}));var UA=C(M,1),DA=T(M,0),KA=T(M,1),_A=T(M,2),QA=T(M,3);var br=S("Ciptb2NoYWJ1Z2FwaXMvYWRhcHQvZ3JhcGgvc2lnbmFsX2RhdGEucHJvdG8SGG1vY2hhYnVnYXBpcy5hZGFwdC5ncmFwaCKmCgoKU2lnbmFsRGF0YRL3BQoIZmlsZW5hbWUYASABKAlC3wW6SNsFugGvAQobZmlsZW5hbWUubm9fcGF0aF9zZXBhcmF0b3JzEmNGaWxlbmFtZSBjYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKCcvJyBvciAnXCcpLiBVc2Ugb25seSB0aGUgZmlsZW5hbWUgd2l0aG91dCBkaXJlY3RvcnkgcGF0aC4aKyF0aGlzLmNvbnRhaW5zKCcvJykgJiYgIXRoaXMuY29udGFpbnMoJ1xcJym6AbsBCh5maWxlbmFtZS5ub19jb250cm9sX2NoYXJhY3RlcnMSOUZpbGVuYW1lIGNhbm5vdCBjb250YWluIGNvbnRyb2wgY2hhcmFjdGVycyBvciBudWxsIGJ5dGVzLhpeIXRoaXMuY29udGFpbnMoJ1x4MDAnKSAmJiAhdGhpcy5jb250YWlucygnXG4nKSAmJiAhdGhpcy5jb250YWlucygnXHInKSAmJiAhdGhpcy5jb250YWlucygnXHQnKboBbQonZmlsZW5hbWUubm9fbGVhZGluZ190cmFpbGluZ193aGl0ZXNwYWNlEi1GaWxlbmFtZSBjYW5ub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZS4aE3RoaXMgPT0gdGhpcy50cmltKCm6AdMBChxmaWxlbmFtZS5ub193aW5kb3dzX3Jlc2VydmVkEmpGaWxlbmFtZSBjYW5ub3QgYmUgYSBXaW5kb3dzIHJlc2VydmVkIG5hbWUgKENPTiwgUFJOLCBBVVgsIE5VTCwgQ09NMS05LCBMUFQxLTkpIHdpdGggb3Igd2l0aG91dCBleHRlbnNpb24uGkchdGhpcy5tYXRjaGVzKCdeKD9pKShDT058UFJOfEFVWHxOVUx8Q09NWzEtOV18TFBUWzEtOV0pKD86XFwuW14uXSopPyQnKXIgEAEY/wEyGV5bXi88PjoifD8qXHgwMC1ceDFGXFxdKyRIAIgBARKCBAoJbWltZV90eXBlGAIgASgJQu4DukjqA7oByQEKFm1pbWVfdHlwZS5ub193aWxkY2FyZHMSmQFNSU1FIHR5cGUgd2lsZGNhcmRzIGFyZSBub3QgYWxsb3dlZCBpbiBTaWduYWxEYXRhLiBVc2UgYSBjb25jcmV0ZSBNSU1FIHR5cGUgbGlrZSAnaW1hZ2UvcG5nJyBvciAnYXBwbGljYXRpb24vcGRmJywgbm90IHdpbGRjYXJkcyBsaWtlICdpbWFnZS8qJyBvciAnKi8qJy4aEyF0aGlzLmNvbnRhaW5zKCcqJym6Ab8BChdtaW1lX3R5cGUubm9fcGFyYW1ldGVycxKOAU1JTUUgdHlwZSBwYXJhbWV0ZXJzIGFyZSBub3QgYWxsb3dlZC4gVXNlICd0ZXh0L3BsYWluJyBpbnN0ZWFkIG9mICd0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04Jy4gVVRGLTggZW5jb2RpbmcgaXMgYXNzdW1lZCBmb3IgYWxsIHRleHQgZm9ybWF0cy4aEyF0aGlzLmNvbnRhaW5zKCc7JylyWBADGP8BMlFeW2EtekEtWjAtOV1bYS16QS1aMC05ISMkJlwtXl8uK117MCwxMjZ9L1thLXpBLVowLTldW2EtekEtWjAtOSEjJCZcLV5fLitdezAsMTI2fSQSDAoEZGF0YRgDIAEoDEILCglfZmlsZW5hbWViBnByb3RvMw",[B]),yr=d(br,0);var V=S("CjNtb2NoYWJ1Z2FwaXMvYWRhcHQvYXV0b21hdGlvbnMvdjEvYXV0b21hdGlvbnMucHJvdG8SIW1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MSIwChZDcmVhdGVDaGFsbGVuZ2VSZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDIqIBChdDcmVhdGVDaGFsbGVuZ2VSZXNwb25zZRINCgVjb3VudBgBIAEoDRIMCgRzaXplGAIgASgNEhIKCmRpZmZpY3VsdHkYAyABKA0SKwoHZXhwaXJlcxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFdG9rZW4YBSABKAkSGgoSdmVyaWZpY2F0aW9uX3Rva2VuGAYgASgJIngKFlJlZGVlbUNoYWxsZW5nZVJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSJgoSdmVyaWZpY2F0aW9uX3Rva2VuGAIgASgJQgq6SAdyBRABGNAPEh4KCXNvbHV0aW9ucxgDIAMoA0ILukgIkgEFCAEQ6AciVQoXUmVkZWVtQ2hhbGxlbmdlUmVzcG9uc2USDQoFdG9rZW4YASABKAkSKwoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoVSW5oZXJpdFNlc3Npb25SZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDImUKFkluaGVyaXRTZXNzaW9uUmVzcG9uc2USDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyKvAQoRUmVhZE91dHB1dFJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSGgoJcGFnZV9zaXplGAIgASgNQge6SAQqAhhkEikKBnZlcnRleBgDIAEoCUIUukgRcg8yDV5bMC05YS16XXs0fSRIAIgBARIhCgpuZXdlcl90aGFuGAQgASgJQgi6SAVyA7ABAUgBiAEBQgkKB192ZXJ0ZXhCDQoLX25ld2VyX3RoYW4iywEKElJlYWRPdXRwdXRSZXNwb25zZRI7CgdzZXNzaW9uGAEgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb24SOgoHb3V0cHV0cxgCIAMoCzIpLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5PdXRwdXQSJwoQbmV4dF9wYWdlX2N1cnNvchgDIAEoCUIIukgFcgOwAQFIAIgBAUITChFfbmV4dF9wYWdlX2N1cnNvciJ3Cg9SZWFkVXJsc1JlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSGgoJcGFnZV9zaXplGAIgASgNQge6SAQqAhhkEiEKCm5ld2VyX3RoYW4YAyABKAlCCLpIBXIDsAEBSACIAQFCDQoLX25ld2VyX3RoYW4iwwEKEFJlYWRVcmxzUmVzcG9uc2USOwoHc2Vzc2lvbhgBIAEoCzIqLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TZXNzaW9uEjQKBHVybHMYAiADKAsyJi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuVXJsEicKEG5leHRfcGFnZV9jdXJzb3IYAyABKAlCCLpIBXIDsAEBSACIAQFCEwoRX25leHRfcGFnZV9jdXJzb3IikQMKE1N0YXJ0U2Vzc2lvblJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSOwoLdHJhbnNtaXR0ZXIYAiABKAlCIbpIHnIcEAEYZDIWXlthLXpBLVowLTlfLV17MSwxMDB9JEgAiAEBEoABCgdzaWduYWxzGAMgAygLMkMubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0YXJ0U2Vzc2lvblJlcXVlc3QuU2lnbmFsc0VudHJ5Qiq6SCeaASQiInIgEAEYZDIaXltfJGEtekEtWl1bXyRhLXpBLVowLTldKiQSKAoPY2hhbGxlbmdlX3Rva2VuGAQgASgJQgq6SAdyBRABGPQDSAGIAQEaVAoMU2lnbmFsc0VudHJ5EgsKA2tleRgBIAEoCRIzCgV2YWx1ZRgCIAEoCzIkLm1vY2hhYnVnYXBpcy5hZGFwdC5ncmFwaC5TaWduYWxEYXRhOgI4AUIOCgxfdHJhbnNtaXR0ZXJCEgoQX2NoYWxsZW5nZV90b2tlbiJjChRTdGFydFNlc3Npb25SZXNwb25zZRINCgV0b2tlbhgBIAEoCRIwCgdleHBpcmVzGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQgoKCF9leHBpcmVzIlIKElN0b3BTZXNzaW9uUmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AxIbCgRmb3JrGAIgASgJQgi6SAVyAxjoB0gAiAEBQgcKBV9mb3JrIhUKE1N0b3BTZXNzaW9uUmVzcG9uc2UiKwoRR2V0U2Vzc2lvblJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMiWQoSR2V0U2Vzc2lvblJlc3BvbnNlEkMKB3Nlc3Npb24YASABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkIGukgDyAEBIukBCgZPdXRwdXQSDgoGdmVydGV4GAEgASgJEgwKBGZvcmsYAiABKAkSQQoEZGF0YRgDIAMoCzIzLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5PdXRwdXQuRGF0YUVudHJ5EisKB2NyZWF0ZWQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGlEKCURhdGFFbnRyeRILCgNrZXkYASABKAkSMwoFdmFsdWUYAiABKAsyJC5tb2NoYWJ1Z2FwaXMuYWRhcHQuZ3JhcGguU2lnbmFsRGF0YToCOAEiCwoJVXJsUmV0YWluIjwKCFVybENsb3NlEhwKD3RpbWVvdXRfc2Vjb25kcxgBIAEoBUgAiAEBQhIKEF90aW1lb3V0X3NlY29uZHMiDAoKVXJsUmVjeWNsZSLvAgoDVXJsEgsKA3VybBgBIAEoCRIMCgRmb3JrGAIgASgJEg4KBnZlcnRleBgDIAEoCRIMCgRkb25lGAQgASgIEisKB2NyZWF0ZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXRva2VuGAYgASgJEg8KB3N0b3BwZWQYByABKAgSDgoGc291cmNlGAggASgJEj4KBnJldGFpbhgJIAEoCzIsLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxSZXRhaW5IABI8CgVjbG9zZRgKIAEoCzIrLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxDbG9zZUgAEkAKB3JlY3ljbGUYCyABKAsyLS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuVXJsUmVjeWNsZUgAQhIKEHJldGVudGlvbl9wb2xpY3kiUgoHU2Vzc2lvbhIMCgRmb3JrGAEgASgJEjkKBnN0YXR1cxgCIAEoDjIpLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TdGF0dXMiLgoUU3RyZWFtU2Vzc2lvblJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMiSQoRQWNrTWVzc2FnZVJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSHAoKbWVzc2FnZV9pZBgCIAEoCUIIukgFcgOwAQEiFAoSQWNrTWVzc2FnZVJlc3BvbnNlIhIKEFJlY29ubmVjdE1lc3NhZ2Ui6wEKFVN0cmVhbVNlc3Npb25SZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESOwoGb3V0cHV0GAIgASgLMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dEgAEjUKA3VybBgDIAEoCzImLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxIABI9CgdzZXNzaW9uGAQgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb25IAEIJCgdtZXNzYWdlIowDChFSdW5TZXNzaW9uUmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AxI7Cgt0cmFuc21pdHRlchgCIAEoCUIhukgechwQARhkMhZeW2EtekEtWjAtOV8tXXsxLDEwMH0kSACIAQESfgoHc2lnbmFscxgDIAMoCzJBLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5TZXNzaW9uUmVxdWVzdC5TaWduYWxzRW50cnlCKrpIJ5oBJCIiciAQARhkMhpeW18kYS16QS1aXVtfJGEtekEtWjAtOV0qJBIoCg9jaGFsbGVuZ2VfdG9rZW4YBCABKAlCCrpIB3IFEAEY9ANIAYgBARpUCgxTaWduYWxzRW50cnkSCwoDa2V5GAEgASgJEjMKBXZhbHVlGAIgASgLMiQubW9jaGFidWdhcGlzLmFkYXB0LmdyYXBoLlNpZ25hbERhdGE6AjgBQg4KDF90cmFuc21pdHRlckISChBfY2hhbGxlbmdlX3Rva2VuIrECChJSdW5TZXNzaW9uUmVzcG9uc2USFAoCaWQYASABKAlCCLpIBXIDsAEBEkcKB3N0YXJ0ZWQYAiABKAsyNC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUnVuU2Vzc2lvblN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAQgkKB21lc3NhZ2UiYAoRUnVuU2Vzc2lvblN0YXJ0ZWQSDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyIrChFSdW5Jbmhlcml0UmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AyKzAgoSUnVuSW5oZXJpdFJlc3BvbnNlEhQKAmlkGAEgASgJQgi6SAVyA7ABARJJCglpbmhlcml0ZWQYAiABKAsyNC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUnVuSW5oZXJpdFN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAQgkKB21lc3NhZ2UiYAoRUnVuSW5oZXJpdFN0YXJ0ZWQSDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyItChNXYXRjaFNlc3Npb25SZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDIrQCChRXYXRjaFNlc3Npb25SZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESOwoGb3V0cHV0GAIgASgLMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dEgAEjUKA3VybBgDIAEoCzImLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxIABI9CgdzZXNzaW9uGAQgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb25IABJICglyZWNvbm5lY3QYBSABKAsyMy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVjb25uZWN0TWVzc2FnZUgAQgkKB21lc3NhZ2UiiAMKD1dhdGNoUnVuUmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AxI7Cgt0cmFuc21pdHRlchgCIAEoCUIhukgechwQARhkMhZeW2EtekEtWjAtOV8tXXsxLDEwMH0kSACIAQESfAoHc2lnbmFscxgDIAMoCzI/Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFJ1blJlcXVlc3QuU2lnbmFsc0VudHJ5Qiq6SCeaASQiInIgEAEYZDIaXltfJGEtekEtWl1bXyRhLXpBLVowLTldKiQSKAoPY2hhbGxlbmdlX3Rva2VuGAQgASgJQgq6SAdyBRABGPQDSAGIAQEaVAoMU2lnbmFsc0VudHJ5EgsKA2tleRgBIAEoCRIzCgV2YWx1ZRgCIAEoCzIkLm1vY2hhYnVnYXBpcy5hZGFwdC5ncmFwaC5TaWduYWxEYXRhOgI4AUIOCgxfdHJhbnNtaXR0ZXJCEgoQX2NoYWxsZW5nZV90b2tlbiL3AgoQV2F0Y2hSdW5SZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESRQoHc3RhcnRlZBgCIAEoCzIyLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFJ1blN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAEkgKCXJlY29ubmVjdBgGIAEoCzIzLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SZWNvbm5lY3RNZXNzYWdlSABCCQoHbWVzc2FnZSJeCg9XYXRjaFJ1blN0YXJ0ZWQSDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyItChNXYXRjaEluaGVyaXRSZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDIoEDChRXYXRjaEluaGVyaXRSZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESSwoJaW5oZXJpdGVkGAIgASgLMjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLldhdGNoSW5oZXJpdFN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAEkgKCXJlY29ubmVjdBgGIAEoCzIzLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SZWNvbm5lY3RNZXNzYWdlSABCCQoHbWVzc2FnZSJiChNXYXRjaEluaGVyaXRTdGFydGVkEg0KBXRva2VuGAEgASgJEjAKB2V4cGlyZXMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCCgoIX2V4cGlyZXMqyAEKBlN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABISCg5TVEFUVVNfUlVOTklORxABEhIKDlNUQVRVU19TVE9QUEVEEAISEwoPU1RBVFVTX1NUT1BQSU5HEAMSFAoQU1RBVFVTX0NPTVBMRVRFRBAEEhIKDlNUQVRVU19FWFBJUkVEEAUSEgoOU1RBVFVTX0VSUk9SRUQQBhIVChFTVEFUVVNfREVMRUdBVElORxAHEhQKEFNUQVRVU19ERUxFR0FURUQQCDLJFQoRQXV0b21hdGlvblNlcnZpY2USswEKD0NyZWF0ZUNoYWxsZW5nZRI5Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5DcmVhdGVDaGFsbGVuZ2VSZXF1ZXN0GjoubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkNyZWF0ZUNoYWxsZW5nZVJlc3BvbnNlIimC0+STAiM6ASoiHi92MS9hdXRvbWF0aW9ucy97aWR9L2NoYWxsZW5nZRK6AQoPUmVkZWVtQ2hhbGxlbmdlEjkubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlZGVlbUNoYWxsZW5nZVJlcXVlc3QaOi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVkZWVtQ2hhbGxlbmdlUmVzcG9uc2UiMILT5JMCKjoBKiIlL3YxL2F1dG9tYXRpb25zL3tpZH0vY2hhbGxlbmdlL3JlZGVlbRKuAQoMU3RhcnRTZXNzaW9uEjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0YXJ0U2Vzc2lvblJlcXVlc3QaNy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU3RhcnRTZXNzaW9uUmVzcG9uc2UiLYLT5JMCJzoBKiIiL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9zdGFydBKiAQoLU3RvcFNlc3Npb24SNS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU3RvcFNlc3Npb25SZXF1ZXN0GjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0b3BTZXNzaW9uUmVzcG9uc2UiJILT5JMCHiocL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbhK2AQoOSW5oZXJpdFNlc3Npb24SOC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuSW5oZXJpdFNlc3Npb25SZXF1ZXN0GjkubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkluaGVyaXRTZXNzaW9uUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9pbmhlcml0Ep8BCgpHZXRTZXNzaW9uEjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkdldFNlc3Npb25SZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkdldFNlc3Npb25SZXNwb25zZSIkgtPkkwIeEhwvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uEqYBCgpSZWFkT3V0cHV0EjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRPdXRwdXRSZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRPdXRwdXRSZXNwb25zZSIrgtPkkwIlEiMvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uL291dHB1dBKeAQoIUmVhZFVybHMSMi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVhZFVybHNSZXF1ZXN0GjMubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRVcmxzUmVzcG9uc2UiKYLT5JMCIxIhL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi91cmxzErEBCg1TdHJlYW1TZXNzaW9uEjcubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0cmVhbVNlc3Npb25SZXF1ZXN0GjgubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0cmVhbVNlc3Npb25SZXNwb25zZSIrgtPkkwIlEiMvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uL3N0cmVhbTABEqYBCgpBY2tNZXNzYWdlEjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkFja01lc3NhZ2VSZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkFja01lc3NhZ2VSZXNwb25zZSIrgtPkkwIlOgEqIiAvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uL2FjaxKoAQoKUnVuU2Vzc2lvbhI0Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5TZXNzaW9uUmVxdWVzdBo1Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5TZXNzaW9uUmVzcG9uc2UiK4LT5JMCJToBKiIgL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9ydW4wARKwAQoKUnVuSW5oZXJpdBI0Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5Jbmhlcml0UmVxdWVzdBo1Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5Jbmhlcml0UmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9ydW4taW5oZXJpdDABEqgBCgxXYXRjaFNlc3Npb24SNi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuV2F0Y2hTZXNzaW9uUmVxdWVzdBo3Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFNlc3Npb25SZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvYXV0b21hdGlvbnMve2lkfS93YXRjaDABEqABCghXYXRjaFJ1bhIyLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFJ1blJlcXVlc3QaMy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuV2F0Y2hSdW5SZXNwb25zZSIpgtPkkwIjOgEqIh4vdjEvYXV0b21hdGlvbnMve2lkfS93YXRjaC1ydW4wARKwAQoMV2F0Y2hJbmhlcml0EjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLldhdGNoSW5oZXJpdFJlcXVlc3QaNy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuV2F0Y2hJbmhlcml0UmVzcG9uc2UiLYLT5JMCJzoBKiIiL3YxL2F1dG9tYXRpb25zL3tpZH0vd2F0Y2gtaW5oZXJpdDABGokBykEWYWRhcHQubW9jaGFidWdhcGlzLmNvbdJBbWh0dHBzOi8vd3d3Lm1vY2hhYnVnYXBpcy5jb20vYXV0aC9hZGFwdC5hdXRvbWF0aW9ucyxodHRwczovL3d3dy5tb2NoYWJ1Z2FwaXMuY29tL2F1dGgvYWRhcHQuYXV0b21hdGlvbnMuc3RhcnRiBnByb3RvMw",[B,hr,M,Gt,br]),iv=d(V,0),av=d(V,1),sv=d(V,2),lv=d(V,3),cv=d(V,4),dv=d(V,5),uv=d(V,6),mv=d(V,7),pv=d(V,8),gv=d(V,9),za=d(V,10),hv=d(V,11),fv=d(V,12),bv=d(V,13),yv=d(V,14),Iv=d(V,15),Gv=d(V,16),Av=d(V,17),vv=d(V,18),xv=d(V,19),Zv=d(V,20),Cv=d(V,21),Sv=d(V,22),Vv=d(V,23),Bv=d(V,24),Ev=d(V,25),Xv=d(V,26),Wv=d(V,27),wv=d(V,28),Rv=d(V,29),Jv=d(V,30),kv=d(V,31),Mv=d(V,32),Fv=d(V,33),Yv=d(V,34),Na=d(V,35),zv=d(V,36),Nv=d(V,37),La=d(V,38),Lv=d(V,39),Hv=d(V,40),Ge;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.RUNNING=1]="RUNNING",t[t.STOPPED=2]="STOPPED",t[t.STOPPING=3]="STOPPING",t[t.COMPLETED=4]="COMPLETED",t[t.EXPIRED=5]="EXPIRED",t[t.ERRORED=6]="ERRORED",t[t.DELEGATING=7]="DELEGATING",t[t.DELEGATED=8]="DELEGATED"})(Ge||(Ge={}));var at=C(V,0),Ir=Ga(V,0);var Ha={webUrl:"https://adapt.mochabugapis.com/v1/automations",grpcUrl:"https://adapt-grpc.mochabugapis.com"},Ln={...Ha};function Hn(t){Ln={...Ln,...t}}function Gr(){return{...Ln}}function Tn(){Ln={...Ha}}function Ta(t){switch(t.case){case"retain":return{case:"retain"};case"close":return{case:"close",timeoutSeconds:t.value?.timeoutSeconds};case"recycle":return{case:"recycle"};default:return}}var Yc=[Ge.STOPPED,Ge.COMPLETED,Ge.ERRORED,Ge.EXPIRED,Ge.DELEGATED];function Ua(t,e,n){let o=n?.debug??!1,r=b=>({Authorization:`Bearer ${b}`}),i=(b,v,I)=>{if(!o&&b==="info")return;(b==="error"?console.error:b==="warn"?console.warn:console.log)(`[Adapt] ${v}`,I??"")},a=null,s=null,l=null,c=0,m=null,g=new Set,f=[],p=1e3,G=()=>{m&&(clearTimeout(m),m=null)},Z=[h.NotFound,h.PermissionDenied,h.Unauthenticated,h.InvalidArgument,h.FailedPrecondition,h.ResourceExhausted],x=b=>b instanceof A?!Z.includes(b.code):!0,J=async(b,v=3)=>{for(let I=0;I<=v;I++)try{return await b()}catch(E){if(I===v||!x(E))throw E;let W=Math.min(500*(1<<I),5e3);await new Promise(N=>setTimeout(N,Math.random()*W))}throw new Error("unreachable")},ke=()=>{g.clear(),f.length=0},Me=b=>{if(!g.has(b)){if(g.size>=p){let v=f.shift();g.delete(v)}g.add(b),f.push(b)}},Fe=b=>g.has(b),Dt=b=>{let{case:v,value:I}=b.message;switch(v){case"output":return s?.onOutput?.({vertex:I.vertex,fork:I.fork,data:I.data,created:ie(I.created)}),!1;case"url":return s?.onUrl?.({url:I.url,vertex:I.vertex,done:I.done,stopped:I.stopped,created:ie(I.created),token:I.token,fork:I.fork,source:I.source||void 0,retentionPolicy:Ta(I.retentionPolicy)}),!1;case"session":{let E=Yc.includes(I.status)&&!I.fork,W=Ke(at,I.status);return s?.onSession?.({status:W,fork:I.fork}),E&&i("info",`Session ended: ${W}`),E}case"reconnect":return i("info","Reconnect message received"),!1;case"started":case"inherited":throw new Error(`Unexpected '${v}' message in stream - should only be first message`);default:return i("warn",`Unknown message type: ${v}`),!1}},Ye=(b,v)=>{let I=Fe(b.id);I||Me(b.id);let E=I?!1:Dt(b);return!E&&s&&b.message.case!=="reconnect"&&t.ackMessage({id:e,messageId:b.id},{headers:v}).catch(W=>i("error",`ACK failed: ${b.id}`,W)),E},te=()=>{if(!s||!l)return;c++;let b=c===1?0:Math.min(50*Math.pow(2,c-2),3e4);i("info",`Reconnecting in ${b}ms (attempt ${c})`),m=setTimeout(()=>{m=null,ve()},b)},ve=async()=>{if(!s||!l)return;let b=new AbortController;a=b;let v=r(l);i("info",`Connecting to stream: ${e}`);let I=null,E=!1,W=()=>{E||(E=!0,c=0,I&&(clearTimeout(I),I=null))};try{let N=t.watchSession({id:e},{signal:b.signal,headers:v});I=setTimeout(W,1e3);let Q=!1;for await(let ce of N)if(W(),Ye(ce,v)){Q=!0;break}i("info","Stream ended normally"),!Q&&s&&l&&(c=0,te())}catch(N){if(I&&(clearTimeout(I),I=null),b.signal.aborted)return;i("error","Stream error",N),x(N)?te():s?.onError?.(N)}},ze=b=>{if(!b)return;let v={};for(let[I,E]of Object.entries(b))E?.data instanceof Uint8Array&&typeof E?.mimeType=="string"&&E.mimeType?v[I]=R(yr,{data:E.data,mimeType:E.mimeType,filename:E.filename}):v[I]=R(yr,{data:new TextEncoder().encode(JSON.stringify(E)),mimeType:"application/json"});return Object.keys(v).length>0?v:void 0};return{raw:t,async run(b){i("info","run",{transmitter:b?.transmitter}),a&&await this.unsubscribe();let v=R(Na,{id:e,transmitter:b?.transmitter,signals:ze(b?.signals),challengeToken:b?.challengeToken}),I=new AbortController;a=I,s=b??{},c=0;let E={...b?.authToken?r(b.authToken):{},"x-idempotency-key":crypto.randomUUID()},W,N,Q=new Promise((P,Y)=>{W=P,N=Y}),ce=async()=>{let P=t.watchRun(v,{signal:I.signal,headers:E}),Y,D=null,ct=!1,dt=()=>{ct||(ct=!0,c=0,D&&(clearTimeout(D),D=null))};try{D=setTimeout(dt,1e3);let U=!1;for await(let K of P){if(dt(),!Y){if(K.message.case!=="started"){N(new Error("Expected started message as first response"));return}let xe=K.message.value;Y=xe.token,l=Y,i("info","run success",{token:Y}),W({sessionToken:Y,expiresAt:xe.expires?ie(xe.expires):void 0});continue}if(Ye(K,r(Y))){U=!0;break}}i("info","Stream ended normally"),Y&&!U&&s&&l&&(c=0,te())}catch(U){if(D&&(clearTimeout(D),D=null),I.signal.aborted)return;if(i("error","Stream error",U),Y)x(U)?te():s?.onError?.(U);else if(x(U)){c++;let K=c===1?0:Math.min(50*Math.pow(2,c-2),3e4);i("info",`Retrying watchRun in ${K}ms (attempt ${c})`),K===0?ce():m=setTimeout(()=>{m=null,ce()},K)}else N(U)}};ce();try{return await Q}catch(P){throw a=null,s=null,l=null,P}},async runInherit(b,v){i("info","runInherit"),a&&await this.unsubscribe();let I=new AbortController;a=I,s=v??{},c=0;let E=R(La,{id:e}),W,N,Q=new Promise((P,Y)=>{W=P,N=Y}),ce=async()=>{let P=t.watchInherit(E,{signal:I.signal,headers:r(b)}),Y,D=null,ct=!1,dt=()=>{ct||(ct=!0,c=0,D&&(clearTimeout(D),D=null))};try{D=setTimeout(dt,1e3);let U=!1;for await(let K of P){if(dt(),!Y){if(K.message.case!=="inherited"){N(new Error("Expected inherited message as first response"));return}let xe=K.message.value;Y=xe.token,l=Y,i("info","runInherit success",{token:Y}),W({sessionToken:Y,expiresAt:xe.expires?ie(xe.expires):void 0});continue}if(Ye(K,r(Y))){U=!0;break}}i("info","Stream ended normally"),Y&&!U&&s&&l&&(c=0,te())}catch(U){if(D&&(clearTimeout(D),D=null),I.signal.aborted)return;if(i("error","Stream error",U),Y)x(U)?te():s?.onError?.(U);else if(x(U)){c++;let K=c===1?0:Math.min(50*Math.pow(2,c-2),3e4);i("info",`Retrying watchInherit in ${K}ms (attempt ${c})`),K===0?ce():m=setTimeout(()=>{m=null,ce()},K)}else N(U)}};ce();try{return await Q}catch(P){throw a=null,s=null,l=null,P}},async start(b){i("info","start",{transmitter:b?.transmitter});let v=R(za,{id:e,transmitter:b?.transmitter,signals:ze(b?.signals),challengeToken:b?.challengeToken}),I={...b?.authToken?r(b.authToken):{},"x-idempotency-key":crypto.randomUUID()},E=await J(()=>t.startSession(v,{headers:I}));return i("info","start success",{token:E.token}),{sessionToken:E.token,expiresAt:E.expires?ie(E.expires):void 0}},async inherit(b){i("info","inherit");let v=await J(()=>t.inheritSession({id:e},{headers:r(b)}));return i("info","inherit success",{token:v.token}),{sessionToken:v.token,expiresAt:v.expires?ie(v.expires):void 0}},async subscribe(b,v){i("info","subscribe"),a&&await this.unsubscribe(),l=b,s=v,c=0,await ve()},async stop(b,v){i("info","stop",v?{fork:v}:void 0),await J(()=>t.stopSession({id:e,fork:v},{headers:r(b)})),i("info","stop success")},async unsubscribe(){i("info","unsubscribe"),G(),ke(),a?.abort(),a=null,s=null,l=null},async getSession(b){i("info","getSession");let v=await J(()=>t.getSession({id:e},{headers:r(b)})),I={status:Ke(at,v.session.status),fork:v.session.fork};return i("info","getSession success",I),I},async readOutput(b,v){i("info","readOutput",v);let I=await J(()=>t.readOutput({id:e,pageSize:v?.pageSize,vertex:v?.vertex,newerThan:v?.newerThan?.toISOString()},{headers:r(b)})),E={session:{status:Ke(at,I.session.status),fork:I.session.fork},nextPageCursor:I.nextPageCursor,outputs:I.outputs.map(W=>({vertex:W.vertex,fork:W.fork,created:ie(W.created),data:Object.fromEntries(Object.entries(W.data).map(([N,Q])=>{if(Q.mimeType==="application/json")try{return[N,JSON.parse(new TextDecoder().decode(Q.data))]}catch{return[N,Q]}return[N,Q]}))}))};return i("info","readOutput success",{outputCount:E.outputs.length}),E},async readOutputBinary(b,v){i("info","readOutputBinary",v);let I=await J(()=>t.readOutput({id:e,pageSize:v?.pageSize,vertex:v?.vertex,newerThan:v?.newerThan?.toISOString()},{headers:r(b)})),E={session:{status:Ke(at,I.session.status),fork:I.session.fork},nextPageCursor:I.nextPageCursor,outputs:I.outputs.map(W=>({vertex:W.vertex,fork:W.fork,created:ie(W.created),data:W.data}))};return i("info","readOutputBinary success",{outputCount:E.outputs.length}),E},async readUrls(b,v){i("info","readUrls",v);let I=await J(()=>t.readUrls({id:e,pageSize:v?.pageSize,newerThan:v?.newerThan},{headers:r(b)})),E={session:{status:Ke(at,I.session.status),fork:I.session.fork},nextPageCursor:I.nextPageCursor,urls:I.urls.map(W=>({url:W.url,vertex:W.vertex,done:W.done,stopped:W.stopped,created:ie(W.created),token:W.token,fork:W.fork,source:W.source||void 0,retentionPolicy:Ta(W.retentionPolicy)}))};return i("info","readUrls success",{urlCount:E.urls.length}),E}}}function Ar(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Nt=function(t){return this instanceof Nt?(this.v=t,this):new Nt(t)},zc=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(t,e||[]),r,i=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(p){return function(G){return Promise.resolve(G).then(p,g)}}function s(p,G){o[p]&&(r[p]=function(Z){return new Promise(function(x,J){i.push([p,Z,x,J])>1||l(p,Z)})},G&&(r[p]=G(r[p])))}function l(p,G){try{c(o[p](G))}catch(Z){f(i[0][3],Z)}}function c(p){p.value instanceof Nt?Promise.resolve(p.value.v).then(m,g):f(i[0][2],p)}function m(p){l("next",p)}function g(p){l("throw",p)}function f(p,G){p(G),i.shift(),i.length&&l(i[0][0],i[0][1])}},Da={redirect:"error"};function vr(t){var e;Ar();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(o,r,i,a,s,l){let{serialize:c,parse:m}=Jt(o,n,t.jsonOptions,t.binaryOptions);return i=i===void 0?t.defaultTimeoutMs:i<=0?void 0:i,await Ee({interceptors:t.interceptors,signal:r,timeoutMs:i,req:{stream:!1,service:o.parent,method:o,requestMethod:"POST",url:ee(t.baseUrl,o),header:Yn(o.methodKind,n,i,a,!1),contextValues:l??ge(),message:s},next:async g=>{var f;let p=t.useHttpGet===!0&&o.idempotency===Ue.NO_SIDE_EFFECTS,G=null;p?g=Nn(g,c(g.message),n):G=c(g.message);let x=await((f=t.fetch)!==null&&f!==void 0?f:globalThis.fetch)(g.url,Object.assign(Object.assign({},Da),{method:g.requestMethod,headers:g.header,signal:g.signal,body:G})),{isUnaryError:J,unaryError:ke}=zn(o.methodKind,n,x.status,x.headers);if(J)throw kt(await x.json(),Bt(...Ft(x.headers)),ke);let[Me,Fe]=Ft(x.headers);return{stream:!1,service:o.parent,method:o,header:Me,message:n?m(new Uint8Array(await x.arrayBuffer())):hn(o.output,await x.json(),Sn(t.jsonOptions)),trailer:Fe}}})},async stream(o,r,i,a,s,l){let{serialize:c,parse:m}=Jt(o,n,t.jsonOptions,t.binaryOptions);function g(p,G,Z,x){return zc(this,arguments,function*(){let ke=Gn(p).getReader(),Me=!1;for(;;){let Fe=yield Nt(ke.read());if(Fe.done)break;let{flags:Dt,data:Ye}=Fe.value;if((Dt&Qe)===Qe)throw new A("protocol error: received unsupported compressed output",h.Internal);if((Dt&rt)===rt){Me=!0;let te=dr(Ye);if(te.error){let ve=te.error;throw Z.forEach((ze,b)=>{ve.metadata.append(b,ze)}),ve}te.metadata.forEach((ve,ze)=>G.set(ze,ve));continue}yield yield Nt(m(Ye))}if("throwIfAborted"in x&&x.throwIfAborted(),!Me)throw"missing EndStreamResponse"})}async function f(p){if(o.methodKind!="server_streaming")throw"The fetch API does not support streaming request bodies";let G=await p[Symbol.asyncIterator]().next();if(G.done==!0)throw"missing request message";return Et(0,c(G.value))}return i=i===void 0?t.defaultTimeoutMs:i<=0?void 0:i,await Xe({interceptors:t.interceptors,timeoutMs:i,signal:r,req:{stream:!0,service:o.parent,method:o,requestMethod:"POST",url:ee(t.baseUrl,o),header:Yn(o.methodKind,n,i,a,!1),contextValues:l??ge(),message:s},next:async p=>{var G;let x=await((G=t.fetch)!==null&&G!==void 0?G:globalThis.fetch)(p.url,Object.assign(Object.assign({},Da),{method:p.requestMethod,headers:p.header,signal:p.signal,body:await f(p.message)}));if(zn(o.methodKind,n,x.status,x.headers),x.body===null)throw"missing response body";let J=new Headers;return Object.assign(Object.assign({},p),{header:x.headers,trailer:J,message:g(x.body,J,x.headers,p.signal)})}})}}}function Dn(t){if(!t.id)throw new Error('[adapt] createConnectClient requires "id" (the automation ID). Usage: createConnectClient({ id: "your-automation-id" })');let e=Gr(),n=vr({baseUrl:`${e.webUrl}/${t.id}`,useBinaryFormat:!0});return Po(Ir,n)}function _a(t,e){return`${t}${e?`#mb_token=${encodeURIComponent(e)}`:""}`}var Qa=`/* ==========================================================================
2
+ "use strict";var MbAdapt=(()=>{var $n=Object.defineProperty;var ns=Object.getOwnPropertyDescriptor;var os=Object.getOwnPropertyNames;var rs=Object.prototype.hasOwnProperty;var is=(t,e)=>{for(var n in e)$n(t,n,{get:e[n],enumerable:!0})},as=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of os(e))!rs.call(t,r)&&r!==n&&$n(t,r,{get:()=>e[r],enumerable:!(o=ns(e,r))||o.enumerable});return t};var ss=t=>as($n({},"__esModule",{value:!0}),t);var Oc={};is(Oc,{AdaptAutomationElement:()=>st,FloatingToolbar:()=>ke,ForkGroupActions:()=>Me,IframePanelComponent:()=>Ie,MinimizeManager:()=>Je,PanelManager:()=>Fe,WebClient:()=>lt,clearPersistedState:()=>ts,configure:()=>Hn,createConnectClient:()=>Dn,resetConfig:()=>Tn,resolveTheme:()=>Tt});function ut(t,e){return t!==null&&typeof t=="object"&&"$typeName"in t&&typeof t.$typeName=="string"?e===void 0?!0:e.typeName===t.$typeName:!1}var u;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(u||(u={}));function Xr(){let t=0,e=0;for(let o=0;o<28;o+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<o,(r&128)==0)return this.assertBounds(),[t,e]}let n=this.buf[this.pos++];if(t|=(n&15)<<28,e=(n&112)>>4,(n&128)==0)return this.assertBounds(),[t,e];for(let o=3;o<=31;o+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<o,(r&128)==0)return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function _t(t,e,n){for(let i=0;i<28;i=i+7){let a=t>>>i,s=!(!(a>>>7)&&e==0),l=(s?a|128:a)&255;if(n.push(l),!s)return}let o=t>>>28&15|(e&7)<<4,r=e>>3!=0;if(n.push((r?o|128:o)&255),!!r){for(let i=3;i<31;i=i+7){let a=e>>>i,s=!!(a>>>7),l=(s?a|128:a)&255;if(n.push(l),!s)return}n.push(e>>>31&1)}}var Kt=4294967296;function qn(t){let e=t[0]==="-";e&&(t=t.slice(1));let n=1e6,o=0,r=0;function i(a,s){let l=Number(t.slice(a,s));r*=n,o=o*n+l,o>=Kt&&(r=r+(o/Kt|0),o=o%Kt)}return i(-24,-18),i(-18,-12),i(-12,-6),i(-6),e?wr(o,r):to(o,r)}function Wr(t,e){let n=to(t,e),o=n.hi&2147483648;o&&(n=wr(n.lo,n.hi));let r=eo(n.lo,n.hi);return o?"-"+r:r}function eo(t,e){if({lo:t,hi:e}=ls(t,e),e<=2097151)return String(Kt*e+t);let n=t&16777215,o=(t>>>24|e<<8)&16777215,r=e>>16&65535,i=n+o*6777216+r*6710656,a=o+r*8147497,s=r*2,l=1e7;return i>=l&&(a+=Math.floor(i/l),i%=l),a>=l&&(s+=Math.floor(a/l),a%=l),s.toString()+Er(a)+Er(i)}function ls(t,e){return{lo:t>>>0,hi:e>>>0}}function to(t,e){return{lo:t|0,hi:e|0}}function wr(t,e){return e=~e,t?t=~t+1:e+=1,to(t,e)}var Er=t=>{let e=String(t);return"0000000".slice(e.length)+e};function mt(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let n=0;n<9;n++)e.push(t&127|128),t=t>>7;e.push(1)}}function Rr(){let t=this.buf[this.pos++],e=t&127;if((t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,(t&128)==0)return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let n=5;(t&128)!==0&&n<10;n++)t=this.buf[this.pos++];if((t&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}var w=cs();function cs(){let t=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"&&(!!globalThis.Deno||typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let n=BigInt("-9223372036854775808"),o=BigInt("9223372036854775807"),r=BigInt("0"),i=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(a){let s=typeof a=="bigint"?a:BigInt(a);if(s>o||s<n)throw new Error(`invalid int64: ${a}`);return s},uParse(a){let s=typeof a=="bigint"?a:BigInt(a);if(s>i||s<r)throw new Error(`invalid uint64: ${a}`);return s},enc(a){return t.setBigInt64(0,this.parse(a),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},uEnc(a){return t.setBigInt64(0,this.uParse(a),!0),{lo:t.getInt32(0,!0),hi:t.getInt32(4,!0)}},dec(a,s){return t.setInt32(0,a,!0),t.setInt32(4,s,!0),t.getBigInt64(0,!0)},uDec(a,s){return t.setInt32(0,a,!0),t.setInt32(4,s,!0),t.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(n){return typeof n!="string"&&(n=n.toString()),Jr(n),n},uParse(n){return typeof n!="string"&&(n=n.toString()),kr(n),n},enc(n){return typeof n!="string"&&(n=n.toString()),Jr(n),qn(n)},uEnc(n){return typeof n!="string"&&(n=n.toString()),kr(n),qn(n)},dec(n,o){return Wr(n,o)},uDec(n,o){return eo(n,o)}}}function Jr(t){if(!/^-?[0-9]+$/.test(t))throw new Error("invalid int64: "+t)}function kr(t){if(!/^[0-9]+$/.test(t))throw new Error("invalid uint64: "+t)}function j(t,e){switch(t){case u.STRING:return"";case u.BOOL:return!1;case u.DOUBLE:case u.FLOAT:return 0;case u.INT64:case u.UINT64:case u.SFIXED64:case u.FIXED64:case u.SINT64:return e?"0":w.zero;case u.BYTES:return new Uint8Array(0);default:return 0}}function Mr(t,e){switch(t){case u.BOOL:return e===!1;case u.STRING:return e==="";case u.BYTES:return e instanceof Uint8Array&&!e.byteLength;default:return e==0}}var Fr=2,$=Symbol.for("reflect unsafe local");function Qt(t,e){let n=t[e.localName].case;return n===void 0?n:e.fields.find(o=>o.localName===n)}function no(t,e){let n=e.localName;if(e.oneof)return t[e.oneof.localName].case===n;if(e.presence!=Fr)return t[n]!==void 0&&Object.prototype.hasOwnProperty.call(t,n);switch(e.fieldKind){case"list":return t[n].length>0;case"map":return Object.keys(t[n]).length>0;case"scalar":return!Mr(e.scalar,t[n]);case"enum":return t[n]!==e.enum.values[0].number}throw new Error("message field with implicit presence")}function Ve(t,e){return Object.prototype.hasOwnProperty.call(t,e)&&t[e]!==void 0}function Pt(t,e){if(e.oneof){let n=t[e.oneof.localName];return n.case===e.localName?n.value:void 0}return t[e.localName]}function Ot(t,e,n){e.oneof?t[e.oneof.localName]={case:e.localName,value:n}:t[e.localName]=n}function oo(t,e){let n=e.localName;if(e.oneof){let o=e.oneof.localName;t[o].case===n&&(t[o]={case:void 0})}else if(e.presence!=Fr)delete t[n];else switch(e.fieldKind){case"map":t[n]={};break;case"list":t[n]=[];break;case"enum":t[n]=e.enum.values[0].number;break;case"scalar":t[n]=j(e.scalar,e.longAsString);break}}function oe(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function pt(t,e){var n,o,r,i;if(oe(t)&&$ in t&&"add"in t&&"field"in t&&typeof t.field=="function"){if(e!==void 0){let a=e,s=t.field();return a.listKind==s.listKind&&a.scalar===s.scalar&&((n=a.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((r=a.enum)===null||r===void 0?void 0:r.typeName)===((i=s.enum)===null||i===void 0?void 0:i.typeName)}return!0}return!1}function gt(t,e){var n,o,r,i;if(oe(t)&&$ in t&&"has"in t&&"field"in t&&typeof t.field=="function"){if(e!==void 0){let a=e,s=t.field();return a.mapKey===s.mapKey&&a.mapKind==s.mapKind&&a.scalar===s.scalar&&((n=a.message)===null||n===void 0?void 0:n.typeName)===((o=s.message)===null||o===void 0?void 0:o.typeName)&&((r=a.enum)===null||r===void 0?void 0:r.typeName)===((i=s.enum)===null||i===void 0?void 0:i.typeName)}return!0}return!1}function Ne(t,e){return oe(t)&&$ in t&&"desc"in t&&oe(t.desc)&&t.desc.kind==="message"&&(e===void 0||t.desc.typeName==e.typeName)}function Yr(t){return zr(t.$typeName)}function re(t){let e=t.fields[0];return zr(t.typeName)&&e!==void 0&&e.fieldKind=="scalar"&&e.name=="value"&&e.number==1}function zr(t){return t.startsWith("google.protobuf.")&&["DoubleValue","FloatValue","Int64Value","UInt64Value","Int32Value","UInt32Value","BoolValue","StringValue","BytesValue"].includes(t.substring(16))}var ds=999,us=998,jt=2;function R(t,e){if(ut(e,t))return e;let n=fs(t);return e!==void 0&&ms(t,n,e),n}function ms(t,e,n){for(let o of t.members){let r=n[o.localName];if(r==null)continue;let i;if(o.kind=="oneof"){let a=Qt(n,o);if(!a)continue;i=a,r=Pt(n,a)}else i=o;switch(i.fieldKind){case"message":r=io(i,r);break;case"scalar":r=Hr(i,r);break;case"list":r=gs(i,r);break;case"map":r=ps(i,r);break}Ot(e,i,r)}return e}function Hr(t,e){return t.scalar==u.BYTES?ao(e):e}function ps(t,e){if(oe(e)){if(t.scalar==u.BYTES)return Nr(e,ao);if(t.mapKind=="message")return Nr(e,n=>io(t,n))}return e}function gs(t,e){if(Array.isArray(e)){if(t.scalar==u.BYTES)return e.map(ao);if(t.listKind=="message")return e.map(n=>io(t,n))}return e}function io(t,e){if(t.fieldKind=="message"&&!t.oneof&&re(t.message))return Hr(t.message.fields[0],e);if(oe(e)){if(t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!=="google.protobuf.Value")return e;if(!ut(e,t.message))return R(t.message,e)}return e}function ao(t){return Array.isArray(t)?new Uint8Array(t):t}function Nr(t,e){let n={};for(let o of Object.entries(t))n[o[0]]=e(o[1]);return n}var hs=Symbol(),Lr=new WeakMap;function fs(t){let e;if(bs(t)){let n=Lr.get(t),o,r;if(n)({prototype:o,members:r}=n);else{o={},r=new Set;for(let i of t.members)i.kind!="oneof"&&(i.fieldKind!="scalar"&&i.fieldKind!="enum"||i.presence!=jt&&(r.add(i),o[i.localName]=ro(i)));Lr.set(t,{prototype:o,members:r})}e=Object.create(o),e.$typeName=t.typeName;for(let i of t.members)r.has(i)||i.kind=="field"&&(i.fieldKind=="message"||(i.fieldKind=="scalar"||i.fieldKind=="enum")&&i.presence!=jt)||(e[i.localName]=ro(i))}else{e={$typeName:t.typeName};for(let n of t.members)(n.kind=="oneof"||n.presence==jt)&&(e[n.localName]=ro(n))}return e}function bs(t){switch(t.file.edition){case ds:return!1;case us:return!0;default:return t.fields.some(e=>e.presence!=jt&&e.fieldKind!="message"&&!e.oneof)}}function ro(t){if(t.kind=="oneof")return{case:void 0};if(t.fieldKind=="list")return[];if(t.fieldKind=="map")return{};if(t.fieldKind=="message")return hs;let e=t.getDefaultValue();return e!==void 0?t.fieldKind=="scalar"&&t.longAsString?e.toString():e:t.fieldKind=="scalar"?j(t.scalar,t.longAsString):t.enum.values[0].number}var ys=["FieldValueInvalidError","FieldListRangeError","ForeignFieldError"],T=class extends Error{constructor(e,n,o="FieldValueInvalidError"){super(n),this.name=o,this.field=()=>e}};function Tr(t){return t instanceof Error&&ys.includes(t.name)&&"field"in t&&typeof t.field=="function"}var so=Symbol.for("@bufbuild/protobuf/text-encoding");function ht(){if(globalThis[so]==null){let t=new globalThis.TextEncoder,e=new globalThis.TextDecoder;globalThis[so]={encodeUtf8(n){return t.encode(n)},decodeUtf8(n){return e.decode(n)},checkUtf8(n){try{return encodeURIComponent(n),!0}catch{return!1}}}}return globalThis[so]}var k;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(k||(k={}));var co=34028234663852886e22,uo=-34028234663852886e22,mo=4294967295,po=2147483647,go=-2147483648,Be=class{constructor(e=ht().encodeUtf8){this.encodeUtf8=e,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let e=0;for(let r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let n=new Uint8Array(e),o=0;for(let r=0;r<this.chunks.length;r++)n.set(this.chunks[r],o),o+=this.chunks[r].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,n){return this.uint32((e<<3|n)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(Ur(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return lo(e),mt(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let n=this.encodeUtf8(e);return this.uint32(n.byteLength),this.raw(n)}float(e){Is(e);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,e,!0),this.raw(n)}double(e){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,e,!0),this.raw(n)}fixed32(e){Ur(e);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,e,!0),this.raw(n)}sfixed32(e){lo(e);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,e,!0),this.raw(n)}sint32(e){return lo(e),e=(e<<1^e>>31)>>>0,mt(e,this.buf),this}sfixed64(e){let n=new Uint8Array(8),o=new DataView(n.buffer),r=w.enc(e);return o.setInt32(0,r.lo,!0),o.setInt32(4,r.hi,!0),this.raw(n)}fixed64(e){let n=new Uint8Array(8),o=new DataView(n.buffer),r=w.uEnc(e);return o.setInt32(0,r.lo,!0),o.setInt32(4,r.hi,!0),this.raw(n)}int64(e){let n=w.enc(e);return _t(n.lo,n.hi,this.buf),this}sint64(e){let n=w.enc(e),o=n.hi>>31,r=n.lo<<1^o,i=(n.hi<<1|n.lo>>>31)^o;return _t(r,i,this.buf),this}uint64(e){let n=w.uEnc(e);return _t(n.lo,n.hi,this.buf),this}},Ge=class{constructor(e,n=ht().decodeUtf8){this.decodeUtf8=n,this.varint64=Xr,this.uint32=Rr,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength)}tag(){let e=this.uint32(),n=e>>>3,o=e&7;if(n<=0||o<0||o>5)throw new Error("illegal tag: field no "+n+" wire type "+o);return[n,o]}skip(e,n){let o=this.pos;switch(e){case k.Varint:for(;this.buf[this.pos++]&128;);break;case k.Bit64:this.pos+=4;case k.Bit32:this.pos+=4;break;case k.LengthDelimited:let r=this.uint32();this.pos+=r;break;case k.StartGroup:for(;;){let[i,a]=this.tag();if(a===k.EndGroup){if(n!==void 0&&i!==n)throw new Error("invalid end group tag");break}this.skip(a,i)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(o,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return w.dec(...this.varint64())}uint64(){return w.uDec(...this.varint64())}sint64(){let[e,n]=this.varint64(),o=-(e&1);return e=(e>>>1|(n&1)<<31)^o,n=n>>>1^o,w.dec(e,n)}bool(){let[e,n]=this.varint64();return e!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return w.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return w.dec(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),n=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(n,n+e)}string(){return this.decodeUtf8(this.bytes())}};function lo(t){if(typeof t=="string")t=Number(t);else if(typeof t!="number")throw new Error("invalid int32: "+typeof t);if(!Number.isInteger(t)||t>po||t<go)throw new Error("invalid int32: "+t)}function Ur(t){if(typeof t=="string")t=Number(t);else if(typeof t!="number")throw new Error("invalid uint32: "+typeof t);if(!Number.isInteger(t)||t>mo||t<0)throw new Error("invalid uint32: "+t)}function Is(t){if(typeof t=="string"){let e=t;if(t=Number(t),Number.isNaN(t)&&e!=="NaN")throw new Error("invalid float32: "+e)}else if(typeof t!="number")throw new Error("invalid float32: "+typeof t);if(Number.isFinite(t)&&(t>co||t<uo))throw new Error("invalid float32: "+t)}function pe(t,e){let n=t.fieldKind=="list"?pt(e,t):t.fieldKind=="map"?gt(e,t):fo(t,e);if(n===!0)return;let o;switch(t.fieldKind){case"list":o=`expected ${Qr(t)}, got ${z(e)}`;break;case"map":o=`expected ${Pr(t)}, got ${z(e)}`;break;default:o=$t(t,e,n)}return new T(t,o)}function ho(t,e,n){let o=fo(t,n);if(o!==!0)return new T(t,`list item #${e+1}: ${$t(t,n,o)}`)}function Dr(t,e,n){let o=Kr(e,t.mapKey);if(o!==!0)return new T(t,`invalid map key: ${$t({scalar:t.mapKey},e,o)}`);let r=fo(t,n);if(r!==!0)return new T(t,`map entry ${z(e)}: ${$t(t,n,r)}`)}function fo(t,e){return t.scalar!==void 0?Kr(e,t.scalar):t.enum!==void 0?t.enum.open?Number.isInteger(e):t.enum.values.some(n=>n.number===e):Ne(e,t.message)}function Kr(t,e){switch(e){case u.DOUBLE:return typeof t=="number";case u.FLOAT:return typeof t!="number"?!1:Number.isNaN(t)||!Number.isFinite(t)?!0:t>co||t<uo?`${t.toFixed()} out of range`:!0;case u.INT32:case u.SFIXED32:case u.SINT32:return typeof t!="number"||!Number.isInteger(t)?!1:t>po||t<go?`${t.toFixed()} out of range`:!0;case u.FIXED32:case u.UINT32:return typeof t!="number"||!Number.isInteger(t)?!1:t>mo||t<0?`${t.toFixed()} out of range`:!0;case u.BOOL:return typeof t=="boolean";case u.STRING:return typeof t!="string"?!1:ht().checkUtf8(t)||"invalid UTF8";case u.BYTES:return t instanceof Uint8Array;case u.INT64:case u.SFIXED64:case u.SINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return w.parse(t),!0}catch{return`${t} out of range`}return!1;case u.FIXED64:case u.UINT64:if(typeof t=="bigint"||typeof t=="number"||typeof t=="string"&&t.length>0)try{return w.uParse(t),!0}catch{return`${t} out of range`}return!1}}function $t(t,e,n){return n=typeof n=="string"?`: ${n}`:`, got ${z(e)}`,t.scalar!==void 0?`expected ${Gs(t.scalar)}`+n:t.enum!==void 0?`expected ${t.enum.toString()}`+n:`expected ${_r(t.message)}`+n}function z(t){switch(typeof t){case"object":return t===null?"null":t instanceof Uint8Array?`Uint8Array(${t.length})`:Array.isArray(t)?`Array(${t.length})`:pt(t)?Qr(t.field()):gt(t)?Pr(t.field()):Ne(t)?_r(t.desc):ut(t)?`message ${t.$typeName}`:"object";case"string":return t.length>30?"string":`"${t.split('"').join('\\"')}"`;case"boolean":return String(t);case"number":return String(t);case"bigint":return String(t)+"n";default:return typeof t}}function _r(t){return`ReflectMessage (${t.typeName})`}function Qr(t){switch(t.listKind){case"message":return`ReflectList (${t.message.toString()})`;case"enum":return`ReflectList (${t.enum.toString()})`;case"scalar":return`ReflectList (${u[t.scalar]})`}}function Pr(t){switch(t.mapKind){case"message":return`ReflectMap (${u[t.mapKey]}, ${t.message.toString()})`;case"enum":return`ReflectMap (${u[t.mapKey]}, ${t.enum.toString()})`;case"scalar":return`ReflectMap (${u[t.mapKey]}, ${u[t.scalar]})`}}function Gs(t){switch(t){case u.STRING:return"string";case u.BOOL:return"boolean";case u.INT64:case u.SINT64:case u.SFIXED64:return"bigint (int64)";case u.UINT64:case u.FIXED64:return"bigint (uint64)";case u.BYTES:return"Uint8Array";case u.DOUBLE:return"number (float64)";case u.FLOAT:return"number (float32)";case u.FIXED32:case u.UINT32:return"number (uint32)";case u.INT32:case u.SFIXED32:case u.SINT32:return"number (int32)"}}function L(t,e,n=!0){return new en(t,e,n)}var Or=new WeakMap,en=class{get sortedFields(){let e=Or.get(this.desc);if(e)return e;let n=this.desc.fields.concat().sort((o,r)=>o.number-r.number);return Or.set(this.desc,n),n}constructor(e,n,o=!0){this.lists=new Map,this.maps=new Map,this.check=o,this.desc=e,this.message=this[$]=n??R(e),this.fields=e.fields,this.oneofs=e.oneofs,this.members=e.members}findNumber(e){return this._fieldsByNumber||(this._fieldsByNumber=new Map(this.desc.fields.map(n=>[n.number,n]))),this._fieldsByNumber.get(e)}oneofCase(e){return ft(this.message,e),Qt(this.message,e)}isSet(e){return ft(this.message,e),no(this.message,e)}clear(e){ft(this.message,e),oo(this.message,e)}get(e){ft(this.message,e);let n=Pt(this.message,e);switch(e.fieldKind){case"list":let o=this.lists.get(e);return(!o||o[$]!==n)&&this.lists.set(e,o=new Io(e,n,this.check)),o;case"map":let r=this.maps.get(e);return(!r||r[$]!==n)&&this.maps.set(e,r=new Go(e,n,this.check)),r;case"message":return vo(e,n,this.check);case"scalar":return n===void 0?j(e.scalar,!1):xo(e,n);case"enum":return n??e.enum.values[0].number}}set(e,n){if(ft(this.message,e),this.check){let r=pe(e,n);if(r)throw r}let o;e.fieldKind=="message"?o=Ao(e,n):gt(n)||pt(n)?o=n[$]:o=Zo(e,n),Ot(this.message,e,o)}getUnknown(){return this.message.$unknown}setUnknown(e){this.message.$unknown=e}};function ft(t,e){if(e.parent.typeName!==t.$typeName)throw new T(e,`cannot use ${e.toString()} with message ${t.$typeName}`,"ForeignFieldError")}var Io=class{field(){return this._field}get size(){return this._arr.length}constructor(e,n,o){this._field=e,this._arr=this[$]=n,this.check=o}get(e){let n=this._arr[e];return n===void 0?void 0:bo(this._field,n,this.check)}set(e,n){if(e<0||e>=this._arr.length)throw new T(this._field,`list item #${e+1}: out of range`);if(this.check){let o=ho(this._field,e,n);if(o)throw o}this._arr[e]=jr(this._field,n)}add(e){if(this.check){let n=ho(this._field,this._arr.length,e);if(n)throw n}this._arr.push(jr(this._field,e))}clear(){this._arr.splice(0,this._arr.length)}[Symbol.iterator](){return this.values()}keys(){return this._arr.keys()}*values(){for(let e of this._arr)yield bo(this._field,e,this.check)}*entries(){for(let e=0;e<this._arr.length;e++)yield[e,bo(this._field,this._arr[e],this.check)]}};var Go=class{constructor(e,n,o=!0){this.obj=this[$]=n??{},this.check=o,this._field=e}field(){return this._field}set(e,n){if(this.check){let o=Dr(this._field,e,n);if(o)throw o}return this.obj[qt(e)]=As(this._field,n),this}delete(e){let n=qt(e),o=Object.prototype.hasOwnProperty.call(this.obj,n);return o&&delete this.obj[n],o}clear(){for(let e of Object.keys(this.obj))delete this.obj[e]}get(e){let n=this.obj[qt(e)];return n!==void 0&&(n=yo(this._field,n,this.check)),n}has(e){return Object.prototype.hasOwnProperty.call(this.obj,qt(e))}*keys(){for(let e of Object.keys(this.obj))yield $r(e,this._field.mapKey)}*entries(){for(let e of Object.entries(this.obj))yield[$r(e[0],this._field.mapKey),yo(this._field,e[1],this.check)]}[Symbol.iterator](){return this.entries()}get size(){return Object.keys(this.obj).length}*values(){for(let e of Object.values(this.obj))yield yo(this._field,e,this.check)}forEach(e,n){for(let o of this.entries())e.call(n,o[1],o[0],this)}};function Ao(t,e){return Ne(e)?Yr(e.message)&&!t.oneof&&t.fieldKind=="message"?e.message.value:e.desc.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"?ei(e.message):e.message:e}function vo(t,e,n){return e!==void 0&&(re(t.message)&&!t.oneof&&t.fieldKind=="message"?e={$typeName:t.message.typeName,value:xo(t.message.fields[0],e)}:t.message.typeName=="google.protobuf.Struct"&&t.parent.typeName!="google.protobuf.Value"&&oe(e)&&(e=qr(e))),new en(t.message,e,n)}function jr(t,e){return t.listKind=="message"?Ao(t,e):Zo(t,e)}function bo(t,e,n){return t.listKind=="message"?vo(t,e,n):xo(t,e)}function As(t,e){return t.mapKind=="message"?Ao(t,e):Zo(t,e)}function yo(t,e,n){return t.mapKind=="message"?vo(t,e,n):e}function qt(t){return typeof t=="string"||typeof t=="number"?t:String(t)}function $r(t,e){switch(e){case u.STRING:return t;case u.INT32:case u.FIXED32:case u.UINT32:case u.SFIXED32:case u.SINT32:{let n=Number.parseInt(t);if(Number.isFinite(n))return n;break}case u.BOOL:switch(t){case"true":return!0;case"false":return!1}break;case u.UINT64:case u.FIXED64:try{return w.uParse(t)}catch{}break;default:try{return w.parse(t)}catch{}break}return t}function xo(t,e){switch(t.scalar){case u.INT64:case u.SFIXED64:case u.SINT64:"longAsString"in t&&t.longAsString&&typeof e=="string"&&(e=w.parse(e));break;case u.FIXED64:case u.UINT64:"longAsString"in t&&t.longAsString&&typeof e=="string"&&(e=w.uParse(e));break}return e}function Zo(t,e){switch(t.scalar){case u.INT64:case u.SFIXED64:case u.SINT64:"longAsString"in t&&t.longAsString?e=String(e):(typeof e=="string"||typeof e=="number")&&(e=w.parse(e));break;case u.FIXED64:case u.UINT64:"longAsString"in t&&t.longAsString?e=String(e):(typeof e=="string"||typeof e=="number")&&(e=w.uParse(e));break}return e}function qr(t){let e={$typeName:"google.protobuf.Struct",fields:{}};if(oe(t))for(let[n,o]of Object.entries(t))e.fields[n]=ni(o);return e}function ei(t){let e={};for(let[n,o]of Object.entries(t.fields))e[n]=ti(o);return e}function ti(t){switch(t.kind.case){case"structValue":return ei(t.kind.value);case"listValue":return t.kind.value.values.map(ti);case"nullValue":case void 0:return null;default:return t.kind.value}}function ni(t){let e={$typeName:"google.protobuf.Value",kind:{case:void 0}};switch(typeof t){case"number":e.kind={case:"numberValue",value:t};break;case"string":e.kind={case:"stringValue",value:t};break;case"boolean":e.kind={case:"boolValue",value:t};break;case"object":if(t===null)e.kind={case:"nullValue",value:0};else if(Array.isArray(t)){let n={$typeName:"google.protobuf.ListValue",values:[]};if(Array.isArray(t))for(let o of t)n.values.push(ni(o));e.kind={case:"listValue",value:n}}else e.kind={case:"structValue",value:qr(t)};break}return e}function Ae(t){let e=vs(),n=t.length*3/4;t[t.length-2]=="="?n-=2:t[t.length-1]=="="&&(n-=1);let o=new Uint8Array(n),r=0,i=0,a,s=0;for(let l=0;l<t.length;l++){if(a=e[t.charCodeAt(l)],a===void 0)switch(t[l]){case"=":i=0;case`
3
+ `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string")}switch(i){case 0:s=a,i=1;break;case 1:o[r++]=s<<2|(a&48)>>4,s=a,i=2;break;case 2:o[r++]=(s&15)<<4|(a&60)>>2,s=a,i=3;break;case 3:o[r++]=(s&3)<<6|a,i=0;break}}if(i==1)throw Error("invalid base64 string");return o.subarray(0,r)}function Ee(t,e="std"){let n=ri(e),o=e=="std",r="",i=0,a,s=0;for(let l=0;l<t.length;l++)switch(a=t[l],i){case 0:r+=n[a>>2],s=(a&3)<<4,i=1;break;case 1:r+=n[s|a>>4],s=(a&15)<<2,i=2;break;case 2:r+=n[s|a>>6],r+=n[a&63],i=0;break}return i&&(r+=n[s],o&&(r+="=",i==1&&(r+="="))),r}var tn,oi,Le;function ri(t){return tn||(tn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),oi=tn.slice(0,-2).concat("-","_")),t=="url"?oi:tn}function vs(){if(!Le){Le=[];let t=ri("std");for(let e=0;e<t.length;e++)Le[t[e].charCodeAt(0)]=e;Le[45]=t.indexOf("+"),Le[95]=t.indexOf("/")}return Le}function ie(t){let e=!1,n=[];for(let o=0;o<t.length;o++){let r=t.charAt(o);switch(r){case"_":e=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(r),e=!1;break;default:e&&(e=!1,r=r.toUpperCase()),n.push(r);break}}return n.join("")}function nn(t){return t.replace(/[A-Z]/g,e=>"_"+e.toLowerCase())}var xs=new Set(["constructor","toString","toJSON","valueOf"]);function He(t){return xs.has(t)?t+"$":t}function bt(t){for(let e of t.field)Ve(e,"jsonName")||(e.jsonName=ie(e.name));t.nestedType.forEach(bt)}function ii(t,e){let n=t.values.find(o=>o.name===e);if(!n)throw new Error(`cannot parse ${t} default value: ${e}`);return n.number}function ai(t,e){switch(t){case u.STRING:return e;case u.BYTES:{let n=Zs(e);if(n===!1)throw new Error(`cannot parse ${u[t]} default value: ${e}`);return n}case u.INT64:case u.SFIXED64:case u.SINT64:return w.parse(e);case u.UINT64:case u.FIXED64:return w.uParse(e);case u.DOUBLE:case u.FLOAT:switch(e){case"inf":return Number.POSITIVE_INFINITY;case"-inf":return Number.NEGATIVE_INFINITY;case"nan":return Number.NaN;default:return parseFloat(e)}case u.BOOL:return e==="true";case u.INT32:case u.UINT32:case u.SINT32:case u.FIXED32:case u.SFIXED32:return parseInt(e,10)}}function Zs(t){let e=[],n={tail:t,c:"",next(){return this.tail.length==0?!1:(this.c=this.tail[0],this.tail=this.tail.substring(1),!0)},take(o){if(this.tail.length>=o){let r=this.tail.substring(0,o);return this.tail=this.tail.substring(o),r}return!1}};for(;n.next();)switch(n.c){case"\\":if(n.next())switch(n.c){case"\\":e.push(n.c.charCodeAt(0));break;case"b":e.push(8);break;case"f":e.push(12);break;case"n":e.push(10);break;case"r":e.push(13);break;case"t":e.push(9);break;case"v":e.push(11);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":{let o=n.c,r=n.take(2);if(r===!1)return!1;let i=parseInt(o+r,8);if(Number.isNaN(i))return!1;e.push(i);break}case"x":{let o=n.c,r=n.take(2);if(r===!1)return!1;let i=parseInt(o+r,16);if(Number.isNaN(i))return!1;e.push(i);break}case"u":{let o=n.c,r=n.take(4);if(r===!1)return!1;let i=parseInt(o+r,16);if(Number.isNaN(i))return!1;let a=new Uint8Array(4);new DataView(a.buffer).setInt32(0,i,!0),e.push(a[0],a[1],a[2],a[3]);break}case"U":{let o=n.c,r=n.take(8);if(r===!1)return!1;let i=w.uEnc(o+r),a=new Uint8Array(8),s=new DataView(a.buffer);s.setInt32(0,i.lo,!0),s.setInt32(4,i.hi,!0),e.push(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7]);break}}break;default:e.push(n.c.charCodeAt(0))}return new Uint8Array(e)}function*on(t){switch(t.kind){case"file":for(let e of t.messages)yield e,yield*on(e);yield*t.enums,yield*t.services,yield*t.extensions;break;case"message":for(let e of t.nestedMessages)yield e,yield*on(e);yield*t.nestedEnums,yield*t.nestedExtensions;break}}function rn(...t){let e=Cs();if(!t.length)return e;if("$typeName"in t[0]&&t[0].$typeName=="google.protobuf.FileDescriptorSet"){for(let n of t[0].file)di(n,e);return e}if("$typeName"in t[0]){let i=function(a){let s=[];for(let l of a.dependency){if(e.getFile(l)!=null||r.has(l))continue;let c=o(l);if(!c)throw new Error(`Unable to resolve ${l}, imported by ${a.name}`);"kind"in c?e.addFile(c,!1,!0):(r.add(c.name),s.push(c))}return s.concat(...s.map(i))},n=t[0],o=t[1],r=new Set;for(let a of[n,...i(n)].reverse())di(a,e)}else for(let n of t)for(let o of n.files)e.addFile(o);return e}function Cs(){let t=new Map,e=new Map,n=new Map;return{kind:"registry",types:t,extendees:e,[Symbol.iterator](){return t.values()},get files(){return n.values()},addFile(o,r,i){if(n.set(o.proto.name,o),!r)for(let a of on(o))this.add(a);if(i)for(let a of o.dependencies)this.addFile(a,r,i)},add(o){if(o.kind=="extension"){let r=e.get(o.extendee.typeName);r||e.set(o.extendee.typeName,r=new Map),r.set(o.number,o)}t.set(o.typeName,o)},get(o){return t.get(o)},getFile(o){return n.get(o)},getMessage(o){let r=t.get(o);return r?.kind=="message"?r:void 0},getEnum(o){let r=t.get(o);return r?.kind=="enum"?r:void 0},getExtension(o){let r=t.get(o);return r?.kind=="extension"?r:void 0},getExtensionFor(o,r){var i;return(i=e.get(o.typeName))===null||i===void 0?void 0:i.get(r)},getService(o){let r=t.get(o);return r?.kind=="service"?r:void 0}}}var Ss=998,Vs=999,Bs=9,It=10,yt=11,Es=12,si=14,Eo=3,Xs=2,li=1,Ws=0,Co=1,ci=2,ws=3,Rs=1,Js=2,ks=1;var mi={998:{fieldPresence:1,enumType:2,repeatedFieldEncoding:2,utf8Validation:3,messageEncoding:1,jsonFormat:2,enforceNamingStyle:2,defaultSymbolVisibility:1},999:{fieldPresence:2,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1e3:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:2,defaultSymbolVisibility:1},1001:{fieldPresence:1,enumType:1,repeatedFieldEncoding:1,utf8Validation:2,messageEncoding:1,jsonFormat:1,enforceNamingStyle:1,defaultSymbolVisibility:2}};function di(t,e){var n,o;let r={kind:"file",proto:t,deprecated:(o=(n=t.options)===null||n===void 0?void 0:n.deprecated)!==null&&o!==void 0?o:!1,edition:zs(t),name:t.name.replace(/\.proto$/,""),dependencies:Ns(t,e),enums:[],messages:[],extensions:[],services:[],toString(){return`file ${t.name}`}},i=new Map,a={get(s){return i.get(s)},add(s){var l;q(((l=s.proto.options)===null||l===void 0?void 0:l.mapEntry)===!0),i.set(s.typeName,s)}};for(let s of t.enumType)pi(s,r,void 0,e);for(let s of t.messageType)gi(s,r,void 0,e,a);for(let s of t.service)Ms(s,r,e);So(r,e);for(let s of i.values())Vo(s,e,a);for(let s of r.messages)Vo(s,e,a),So(s,e);e.addFile(r,!0)}function So(t,e){switch(t.kind){case"file":for(let n of t.proto.extension){let o=Bo(n,t,e);t.extensions.push(o),e.add(o)}break;case"message":for(let n of t.proto.extension){let o=Bo(n,t,e);t.nestedExtensions.push(o),e.add(o)}for(let n of t.nestedMessages)So(n,e);break}}function Vo(t,e,n){let o=t.proto.oneofDecl.map(i=>Ys(i,t)),r=new Set;for(let i of t.proto.field){let a=Ts(i,o),s=Bo(i,t,e,a,n);t.fields.push(s),t.field[s.localName]=s,a===void 0?t.members.push(s):(a.fields.push(s),r.has(a)||(r.add(a),t.members.push(a)))}for(let i of o.filter(a=>r.has(a)))t.oneofs.push(i);for(let i of t.nestedMessages)Vo(i,e,n)}function pi(t,e,n,o){var r,i,a,s,l;let c=Ls(t.name,t.value),m={kind:"enum",proto:t,deprecated:(i=(r=t.options)===null||r===void 0?void 0:r.deprecated)!==null&&i!==void 0?i:!1,file:e,parent:n,open:!0,name:t.name,typeName:an(t,n,e),value:{},values:[],sharedPrefix:c,toString(){return`enum ${this.typeName}`}};m.open=_s(m),o.add(m);for(let g of t.value){let f=g.name;m.values.push(m.value[g.number]={kind:"enum_value",proto:g,deprecated:(s=(a=g.options)===null||a===void 0?void 0:a.deprecated)!==null&&s!==void 0?s:!1,parent:m,name:f,localName:He(c==null?f:f.substring(c.length)),number:g.number,toString(){return`enum value ${m.typeName}.${f}`}})}((l=n?.nestedEnums)!==null&&l!==void 0?l:e.enums).push(m)}function gi(t,e,n,o,r){var i,a,s,l;let c={kind:"message",proto:t,deprecated:(a=(i=t.options)===null||i===void 0?void 0:i.deprecated)!==null&&a!==void 0?a:!1,file:e,parent:n,name:t.name,typeName:an(t,n,e),fields:[],field:{},oneofs:[],members:[],nestedEnums:[],nestedMessages:[],nestedExtensions:[],toString(){return`message ${this.typeName}`}};((s=t.options)===null||s===void 0?void 0:s.mapEntry)===!0?r.add(c):(((l=n?.nestedMessages)!==null&&l!==void 0?l:e.messages).push(c),o.add(c));for(let m of t.enumType)pi(m,e,c,o);for(let m of t.nestedType)gi(m,e,c,o,r)}function Ms(t,e,n){var o,r;let i={kind:"service",proto:t,deprecated:(r=(o=t.options)===null||o===void 0?void 0:o.deprecated)!==null&&r!==void 0?r:!1,file:e,name:t.name,typeName:an(t,void 0,e),methods:[],method:{},toString(){return`service ${this.typeName}`}};e.services.push(i),n.add(i);for(let a of t.method){let s=Fs(a,i,n);i.methods.push(s),i.method[s.localName]=s}}function Fs(t,e,n){var o,r,i,a;let s;t.clientStreaming&&t.serverStreaming?s="bidi_streaming":t.clientStreaming?s="client_streaming":t.serverStreaming?s="server_streaming":s="unary";let l=n.getMessage(ge(t.inputType)),c=n.getMessage(ge(t.outputType));q(l,`invalid MethodDescriptorProto: input_type ${t.inputType} not found`),q(c,`invalid MethodDescriptorProto: output_type ${t.inputType} not found`);let m=t.name;return{kind:"rpc",proto:t,deprecated:(r=(o=t.options)===null||o===void 0?void 0:o.deprecated)!==null&&r!==void 0?r:!1,parent:e,name:m,localName:He(m.length?He(m[0].toLowerCase()+m.substring(1)):m),methodKind:s,input:l,output:c,idempotency:(a=(i=t.options)===null||i===void 0?void 0:i.idempotencyLevel)!==null&&a!==void 0?a:Ws,toString(){return`rpc ${e.typeName}.${m}`}}}function Ys(t,e){return{kind:"oneof",proto:t,deprecated:!1,parent:e,fields:[],name:t.name,localName:He(ie(t.name)),toString(){return`oneof ${e.typeName}.${this.name}`}}}function Bo(t,e,n,o,r){var i,a,s;let l=r===void 0,c={kind:"field",proto:t,deprecated:(a=(i=t.options)===null||i===void 0?void 0:i.deprecated)!==null&&a!==void 0?a:!1,name:t.name,number:t.number,scalar:void 0,message:void 0,enum:void 0,presence:Us(t,o,l,e),listKind:void 0,mapKind:void 0,mapKey:void 0,delimitedEncoding:void 0,packed:void 0,longAsString:!1,getDefaultValue:void 0};if(l){let p=e.kind=="file"?e:e.file,I=e.kind=="file"?void 0:e,Z=an(t,I,p);c.kind="extension",c.file=p,c.parent=I,c.oneof=void 0,c.typeName=Z,c.jsonName=`[${Z}]`,c.toString=()=>`extension ${Z}`;let v=n.getMessage(ge(t.extendee));q(v,`invalid FieldDescriptorProto: extendee ${t.extendee} not found`),c.extendee=v}else{let p=e;q(p.kind=="message"),c.parent=p,c.oneof=o,c.localName=o?ie(t.name):He(ie(t.name)),c.jsonName=t.jsonName,c.toString=()=>`field ${p.typeName}.${t.name}`}let m=t.label,g=t.type,f=(s=t.options)===null||s===void 0?void 0:s.jstype;if(m===Eo){let p=g==yt?r?.get(ge(t.typeName)):void 0;if(p){c.fieldKind="map";let{key:I,value:Z}=Ks(p);return c.mapKey=I.scalar,c.mapKind=Z.fieldKind,c.message=Z.message,c.delimitedEncoding=!1,c.enum=Z.enum,c.scalar=Z.scalar,c}switch(c.fieldKind="list",g){case yt:case It:c.listKind="message",c.message=n.getMessage(ge(t.typeName)),q(c.message),c.delimitedEncoding=ui(t,e);break;case si:c.listKind="enum",c.enum=n.getEnum(ge(t.typeName)),q(c.enum);break;default:c.listKind="scalar",c.scalar=g,c.longAsString=f==li;break}return c.packed=Ds(t,e),c}switch(g){case yt:case It:c.fieldKind="message",c.message=n.getMessage(ge(t.typeName)),q(c.message,`invalid FieldDescriptorProto: type_name ${t.typeName} not found`),c.delimitedEncoding=ui(t,e),c.getDefaultValue=()=>{};break;case si:{let p=n.getEnum(ge(t.typeName));q(p!==void 0,`invalid FieldDescriptorProto: type_name ${t.typeName} not found`),c.fieldKind="enum",c.enum=n.getEnum(ge(t.typeName)),c.getDefaultValue=()=>Ve(t,"defaultValue")?ii(p,t.defaultValue):void 0;break}default:{c.fieldKind="scalar",c.scalar=g,c.longAsString=f==li,c.getDefaultValue=()=>Ve(t,"defaultValue")?ai(g,t.defaultValue):void 0;break}}return c}function zs(t){switch(t.syntax){case"":case"proto2":return Ss;case"proto3":return Vs;case"editions":if(t.edition in mi)return t.edition;throw new Error(`${t.name}: unsupported edition`);default:throw new Error(`${t.name}: unsupported syntax "${t.syntax}"`)}}function Ns(t,e){return t.dependency.map(n=>{let o=e.getFile(n);if(!o)throw new Error(`Cannot find ${n}, imported by ${t.name}`);return o})}function Ls(t,e){let n=Hs(t)+"_";for(let o of e){if(!o.name.toLowerCase().startsWith(n))return;let r=o.name.substring(n.length);if(r.length==0||/^\d/.test(r))return}return n}function Hs(t){return(t.substring(0,1)+t.substring(1).replace(/[A-Z]/g,e=>"_"+e)).toLowerCase()}function an(t,e,n){let o;return e?o=`${e.typeName}.${t.name}`:n.proto.package.length>0?o=`${n.proto.package}.${t.name}`:o=`${t.name}`,o}function ge(t){return t.startsWith(".")?t.substring(1):t}function Ts(t,e){if(!Ve(t,"oneofIndex")||t.proto3Optional)return;let n=e[t.oneofIndex];return q(n,`invalid FieldDescriptorProto: oneof #${t.oneofIndex} for field #${t.number} not found`),n}function Us(t,e,n,o){if(t.label==Xs)return ws;if(t.label==Eo)return ci;if(e||t.proto3Optional||n)return Co;let r=Te("fieldPresence",{proto:t,parent:o});return r==ci&&(t.type==yt||t.type==It)?Co:r}function Ds(t,e){if(t.label!=Eo)return!1;switch(t.type){case Bs:case Es:case It:case yt:return!1}let n=t.options;return n&&Ve(n,"packed")?n.packed:Rs==Te("repeatedFieldEncoding",{proto:t,parent:e})}function Ks(t){let e=t.fields.find(o=>o.number===1),n=t.fields.find(o=>o.number===2);return q(e&&e.fieldKind=="scalar"&&e.scalar!=u.BYTES&&e.scalar!=u.FLOAT&&e.scalar!=u.DOUBLE&&n&&n.fieldKind!="list"&&n.fieldKind!="map"),{key:e,value:n}}function _s(t){var e;return ks==Te("enumType",{proto:t.proto,parent:(e=t.parent)!==null&&e!==void 0?e:t.file})}function ui(t,e){return t.type==It?!0:Js==Te("messageEncoding",{proto:t,parent:e})}function Te(t,e){var n,o;let r=(n=e.proto.options)===null||n===void 0?void 0:n.features;if(r){let i=r[t];if(i!=0)return i}if("kind"in e){if(e.kind=="message")return Te(t,(o=e.parent)!==null&&o!==void 0?o:e.file);let i=mi[e.edition];if(!i)throw new Error(`feature default for edition ${e.edition} not found`);return i[t]}return Te(t,e.parent)}function q(t,e){if(!t)throw new Error(e)}function hi(t){let e=Qs(t);return e.messageType.forEach(bt),rn(e,()=>{}).getFile(e.name)}function Qs(t){return Object.assign(Object.create({syntax:"",edition:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FileDescriptorProto",dependency:[],publicDependency:[],weakDependency:[],optionDependency:[],service:[],extension:[]},t),{messageType:t.messageType.map(fi),enumType:t.enumType.map(bi)}))}function fi(t){var e,n,o,r,i,a,s,l;return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.DescriptorProto",name:t.name,field:(n=(e=t.field)===null||e===void 0?void 0:e.map(Ps))!==null&&n!==void 0?n:[],extension:[],nestedType:(r=(o=t.nestedType)===null||o===void 0?void 0:o.map(fi))!==null&&r!==void 0?r:[],enumType:(a=(i=t.enumType)===null||i===void 0?void 0:i.map(bi))!==null&&a!==void 0?a:[],extensionRange:(l=(s=t.extensionRange)===null||s===void 0?void 0:s.map(m=>Object.assign({$typeName:"google.protobuf.DescriptorProto.ExtensionRange"},m)))!==null&&l!==void 0?l:[],oneofDecl:[],reservedRange:[],reservedName:[]})}function Ps(t){return Object.assign(Object.create({label:1,typeName:"",extendee:"",defaultValue:"",oneofIndex:0,jsonName:"",proto3Optional:!1}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldDescriptorProto"},t),{options:t.options?Os(t.options):void 0}))}function Os(t){var e,n,o;return Object.assign(Object.create({ctype:0,packed:!1,jstype:0,lazy:!1,unverifiedLazy:!1,deprecated:!1,weak:!1,debugRedact:!1,retention:0}),Object.assign(Object.assign({$typeName:"google.protobuf.FieldOptions"},t),{targets:(e=t.targets)!==null&&e!==void 0?e:[],editionDefaults:(o=(n=t.editionDefaults)===null||n===void 0?void 0:n.map(i=>Object.assign({$typeName:"google.protobuf.FieldOptions.EditionDefault"},i)))!==null&&o!==void 0?o:[],uninterpretedOption:[]}))}function bi(t){return Object.assign(Object.create({visibility:0}),{$typeName:"google.protobuf.EnumDescriptorProto",name:t.name,reservedName:[],reservedRange:[],value:t.value.map(n=>Object.assign({$typeName:"google.protobuf.EnumValueDescriptorProto"},n))})}function d(t,e,...n){return n.reduce((o,r)=>o.nestedMessages[r],t.messages[e])}function C(t,e,...n){if(n.length==0)return t.enums[e];let o=n.pop();return n.reduce((r,i)=>r.nestedMessages[i],t.messages[e]).nestedEnums[o]}var y=hi({name:"google/protobuf/descriptor.proto",package:"google.protobuf",messageType:[{name:"FileDescriptorSet",field:[{name:"file",number:1,type:11,label:3,typeName:".google.protobuf.FileDescriptorProto"}],extensionRange:[{start:536e6,end:536000001}]},{name:"FileDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"package",number:2,type:9,label:1},{name:"dependency",number:3,type:9,label:3},{name:"public_dependency",number:10,type:5,label:3},{name:"weak_dependency",number:11,type:5,label:3},{name:"option_dependency",number:15,type:9,label:3},{name:"message_type",number:4,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:5,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"service",number:6,type:11,label:3,typeName:".google.protobuf.ServiceDescriptorProto"},{name:"extension",number:7,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FileOptions"},{name:"source_code_info",number:9,type:11,label:1,typeName:".google.protobuf.SourceCodeInfo"},{name:"syntax",number:12,type:9,label:1},{name:"edition",number:14,type:14,label:1,typeName:".google.protobuf.Edition"}]},{name:"DescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"field",number:2,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"extension",number:6,type:11,label:3,typeName:".google.protobuf.FieldDescriptorProto"},{name:"nested_type",number:3,type:11,label:3,typeName:".google.protobuf.DescriptorProto"},{name:"enum_type",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto"},{name:"extension_range",number:5,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ExtensionRange"},{name:"oneof_decl",number:8,type:11,label:3,typeName:".google.protobuf.OneofDescriptorProto"},{name:"options",number:7,type:11,label:1,typeName:".google.protobuf.MessageOptions"},{name:"reserved_range",number:9,type:11,label:3,typeName:".google.protobuf.DescriptorProto.ReservedRange"},{name:"reserved_name",number:10,type:9,label:3},{name:"visibility",number:11,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"ExtensionRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ExtensionRangeOptions"}]},{name:"ReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"ExtensionRangeOptions",field:[{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"},{name:"declaration",number:2,type:11,label:3,typeName:".google.protobuf.ExtensionRangeOptions.Declaration",options:{retention:2}},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"verification",number:3,type:14,label:1,typeName:".google.protobuf.ExtensionRangeOptions.VerificationState",defaultValue:"UNVERIFIED",options:{retention:2}}],nestedType:[{name:"Declaration",field:[{name:"number",number:1,type:5,label:1},{name:"full_name",number:2,type:9,label:1},{name:"type",number:3,type:9,label:1},{name:"reserved",number:5,type:8,label:1},{name:"repeated",number:6,type:8,label:1}]}],enumType:[{name:"VerificationState",value:[{name:"DECLARATION",number:0},{name:"UNVERIFIED",number:1}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:3,type:5,label:1},{name:"label",number:4,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Label"},{name:"type",number:5,type:14,label:1,typeName:".google.protobuf.FieldDescriptorProto.Type"},{name:"type_name",number:6,type:9,label:1},{name:"extendee",number:2,type:9,label:1},{name:"default_value",number:7,type:9,label:1},{name:"oneof_index",number:9,type:5,label:1},{name:"json_name",number:10,type:9,label:1},{name:"options",number:8,type:11,label:1,typeName:".google.protobuf.FieldOptions"},{name:"proto3_optional",number:17,type:8,label:1}],enumType:[{name:"Type",value:[{name:"TYPE_DOUBLE",number:1},{name:"TYPE_FLOAT",number:2},{name:"TYPE_INT64",number:3},{name:"TYPE_UINT64",number:4},{name:"TYPE_INT32",number:5},{name:"TYPE_FIXED64",number:6},{name:"TYPE_FIXED32",number:7},{name:"TYPE_BOOL",number:8},{name:"TYPE_STRING",number:9},{name:"TYPE_GROUP",number:10},{name:"TYPE_MESSAGE",number:11},{name:"TYPE_BYTES",number:12},{name:"TYPE_UINT32",number:13},{name:"TYPE_ENUM",number:14},{name:"TYPE_SFIXED32",number:15},{name:"TYPE_SFIXED64",number:16},{name:"TYPE_SINT32",number:17},{name:"TYPE_SINT64",number:18}]},{name:"Label",value:[{name:"LABEL_OPTIONAL",number:1},{name:"LABEL_REPEATED",number:3},{name:"LABEL_REQUIRED",number:2}]}]},{name:"OneofDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"options",number:2,type:11,label:1,typeName:".google.protobuf.OneofOptions"}]},{name:"EnumDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"value",number:2,type:11,label:3,typeName:".google.protobuf.EnumValueDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumOptions"},{name:"reserved_range",number:4,type:11,label:3,typeName:".google.protobuf.EnumDescriptorProto.EnumReservedRange"},{name:"reserved_name",number:5,type:9,label:3},{name:"visibility",number:6,type:14,label:1,typeName:".google.protobuf.SymbolVisibility"}],nestedType:[{name:"EnumReservedRange",field:[{name:"start",number:1,type:5,label:1},{name:"end",number:2,type:5,label:1}]}]},{name:"EnumValueDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"number",number:2,type:5,label:1},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.EnumValueOptions"}]},{name:"ServiceDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"method",number:2,type:11,label:3,typeName:".google.protobuf.MethodDescriptorProto"},{name:"options",number:3,type:11,label:1,typeName:".google.protobuf.ServiceOptions"}]},{name:"MethodDescriptorProto",field:[{name:"name",number:1,type:9,label:1},{name:"input_type",number:2,type:9,label:1},{name:"output_type",number:3,type:9,label:1},{name:"options",number:4,type:11,label:1,typeName:".google.protobuf.MethodOptions"},{name:"client_streaming",number:5,type:8,label:1,defaultValue:"false"},{name:"server_streaming",number:6,type:8,label:1,defaultValue:"false"}]},{name:"FileOptions",field:[{name:"java_package",number:1,type:9,label:1},{name:"java_outer_classname",number:8,type:9,label:1},{name:"java_multiple_files",number:10,type:8,label:1,defaultValue:"false"},{name:"java_generate_equals_and_hash",number:20,type:8,label:1,options:{deprecated:!0}},{name:"java_string_check_utf8",number:27,type:8,label:1,defaultValue:"false"},{name:"optimize_for",number:9,type:14,label:1,typeName:".google.protobuf.FileOptions.OptimizeMode",defaultValue:"SPEED"},{name:"go_package",number:11,type:9,label:1},{name:"cc_generic_services",number:16,type:8,label:1,defaultValue:"false"},{name:"java_generic_services",number:17,type:8,label:1,defaultValue:"false"},{name:"py_generic_services",number:18,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:23,type:8,label:1,defaultValue:"false"},{name:"cc_enable_arenas",number:31,type:8,label:1,defaultValue:"true"},{name:"objc_class_prefix",number:36,type:9,label:1},{name:"csharp_namespace",number:37,type:9,label:1},{name:"swift_prefix",number:39,type:9,label:1},{name:"php_class_prefix",number:40,type:9,label:1},{name:"php_namespace",number:41,type:9,label:1},{name:"php_metadata_namespace",number:44,type:9,label:1},{name:"ruby_package",number:45,type:9,label:1},{name:"features",number:50,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"OptimizeMode",value:[{name:"SPEED",number:1},{name:"CODE_SIZE",number:2},{name:"LITE_RUNTIME",number:3}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"MessageOptions",field:[{name:"message_set_wire_format",number:1,type:8,label:1,defaultValue:"false"},{name:"no_standard_descriptor_accessor",number:2,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"map_entry",number:7,type:8,label:1},{name:"deprecated_legacy_json_field_conflicts",number:11,type:8,label:1,options:{deprecated:!0}},{name:"features",number:12,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"FieldOptions",field:[{name:"ctype",number:1,type:14,label:1,typeName:".google.protobuf.FieldOptions.CType",defaultValue:"STRING"},{name:"packed",number:2,type:8,label:1},{name:"jstype",number:6,type:14,label:1,typeName:".google.protobuf.FieldOptions.JSType",defaultValue:"JS_NORMAL"},{name:"lazy",number:5,type:8,label:1,defaultValue:"false"},{name:"unverified_lazy",number:15,type:8,label:1,defaultValue:"false"},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"weak",number:10,type:8,label:1,defaultValue:"false",options:{deprecated:!0}},{name:"debug_redact",number:16,type:8,label:1,defaultValue:"false"},{name:"retention",number:17,type:14,label:1,typeName:".google.protobuf.FieldOptions.OptionRetention"},{name:"targets",number:19,type:14,label:3,typeName:".google.protobuf.FieldOptions.OptionTargetType"},{name:"edition_defaults",number:20,type:11,label:3,typeName:".google.protobuf.FieldOptions.EditionDefault"},{name:"features",number:21,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"feature_support",number:22,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],nestedType:[{name:"EditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"value",number:2,type:9,label:1}]},{name:"FeatureSupport",field:[{name:"edition_introduced",number:1,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"edition_deprecated",number:2,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"deprecation_warning",number:3,type:9,label:1},{name:"edition_removed",number:4,type:14,label:1,typeName:".google.protobuf.Edition"}]}],enumType:[{name:"CType",value:[{name:"STRING",number:0},{name:"CORD",number:1},{name:"STRING_PIECE",number:2}]},{name:"JSType",value:[{name:"JS_NORMAL",number:0},{name:"JS_STRING",number:1},{name:"JS_NUMBER",number:2}]},{name:"OptionRetention",value:[{name:"RETENTION_UNKNOWN",number:0},{name:"RETENTION_RUNTIME",number:1},{name:"RETENTION_SOURCE",number:2}]},{name:"OptionTargetType",value:[{name:"TARGET_TYPE_UNKNOWN",number:0},{name:"TARGET_TYPE_FILE",number:1},{name:"TARGET_TYPE_EXTENSION_RANGE",number:2},{name:"TARGET_TYPE_MESSAGE",number:3},{name:"TARGET_TYPE_FIELD",number:4},{name:"TARGET_TYPE_ONEOF",number:5},{name:"TARGET_TYPE_ENUM",number:6},{name:"TARGET_TYPE_ENUM_ENTRY",number:7},{name:"TARGET_TYPE_SERVICE",number:8},{name:"TARGET_TYPE_METHOD",number:9}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"OneofOptions",field:[{name:"features",number:1,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumOptions",field:[{name:"allow_alias",number:2,type:8,label:1},{name:"deprecated",number:3,type:8,label:1,defaultValue:"false"},{name:"deprecated_legacy_json_field_conflicts",number:6,type:8,label:1,options:{deprecated:!0}},{name:"features",number:7,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"EnumValueOptions",field:[{name:"deprecated",number:1,type:8,label:1,defaultValue:"false"},{name:"features",number:2,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"debug_redact",number:3,type:8,label:1,defaultValue:"false"},{name:"feature_support",number:4,type:11,label:1,typeName:".google.protobuf.FieldOptions.FeatureSupport"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"ServiceOptions",field:[{name:"features",number:34,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],extensionRange:[{start:1e3,end:536870912}]},{name:"MethodOptions",field:[{name:"deprecated",number:33,type:8,label:1,defaultValue:"false"},{name:"idempotency_level",number:34,type:14,label:1,typeName:".google.protobuf.MethodOptions.IdempotencyLevel",defaultValue:"IDEMPOTENCY_UNKNOWN"},{name:"features",number:35,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"uninterpreted_option",number:999,type:11,label:3,typeName:".google.protobuf.UninterpretedOption"}],enumType:[{name:"IdempotencyLevel",value:[{name:"IDEMPOTENCY_UNKNOWN",number:0},{name:"NO_SIDE_EFFECTS",number:1},{name:"IDEMPOTENT",number:2}]}],extensionRange:[{start:1e3,end:536870912}]},{name:"UninterpretedOption",field:[{name:"name",number:2,type:11,label:3,typeName:".google.protobuf.UninterpretedOption.NamePart"},{name:"identifier_value",number:3,type:9,label:1},{name:"positive_int_value",number:4,type:4,label:1},{name:"negative_int_value",number:5,type:3,label:1},{name:"double_value",number:6,type:1,label:1},{name:"string_value",number:7,type:12,label:1},{name:"aggregate_value",number:8,type:9,label:1}],nestedType:[{name:"NamePart",field:[{name:"name_part",number:1,type:9,label:2},{name:"is_extension",number:2,type:8,label:2}]}]},{name:"FeatureSet",field:[{name:"field_presence",number:1,type:14,label:1,typeName:".google.protobuf.FeatureSet.FieldPresence",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPLICIT",edition:900},{value:"IMPLICIT",edition:999},{value:"EXPLICIT",edition:1e3}]}},{name:"enum_type",number:2,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnumType",options:{retention:1,targets:[6,1],editionDefaults:[{value:"CLOSED",edition:900},{value:"OPEN",edition:999}]}},{name:"repeated_field_encoding",number:3,type:14,label:1,typeName:".google.protobuf.FeatureSet.RepeatedFieldEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"EXPANDED",edition:900},{value:"PACKED",edition:999}]}},{name:"utf8_validation",number:4,type:14,label:1,typeName:".google.protobuf.FeatureSet.Utf8Validation",options:{retention:1,targets:[4,1],editionDefaults:[{value:"NONE",edition:900},{value:"VERIFY",edition:999}]}},{name:"message_encoding",number:5,type:14,label:1,typeName:".google.protobuf.FeatureSet.MessageEncoding",options:{retention:1,targets:[4,1],editionDefaults:[{value:"LENGTH_PREFIXED",edition:900}]}},{name:"json_format",number:6,type:14,label:1,typeName:".google.protobuf.FeatureSet.JsonFormat",options:{retention:1,targets:[3,6,1],editionDefaults:[{value:"LEGACY_BEST_EFFORT",edition:900},{value:"ALLOW",edition:999}]}},{name:"enforce_naming_style",number:7,type:14,label:1,typeName:".google.protobuf.FeatureSet.EnforceNamingStyle",options:{retention:2,targets:[1,2,3,4,5,6,7,8,9],editionDefaults:[{value:"STYLE_LEGACY",edition:900},{value:"STYLE2024",edition:1001}]}},{name:"default_symbol_visibility",number:8,type:14,label:1,typeName:".google.protobuf.FeatureSet.VisibilityFeature.DefaultSymbolVisibility",options:{retention:2,targets:[1],editionDefaults:[{value:"EXPORT_ALL",edition:900},{value:"EXPORT_TOP_LEVEL",edition:1001}]}}],nestedType:[{name:"VisibilityFeature",enumType:[{name:"DefaultSymbolVisibility",value:[{name:"DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",number:0},{name:"EXPORT_ALL",number:1},{name:"EXPORT_TOP_LEVEL",number:2},{name:"LOCAL_ALL",number:3},{name:"STRICT",number:4}]}]}],enumType:[{name:"FieldPresence",value:[{name:"FIELD_PRESENCE_UNKNOWN",number:0},{name:"EXPLICIT",number:1},{name:"IMPLICIT",number:2},{name:"LEGACY_REQUIRED",number:3}]},{name:"EnumType",value:[{name:"ENUM_TYPE_UNKNOWN",number:0},{name:"OPEN",number:1},{name:"CLOSED",number:2}]},{name:"RepeatedFieldEncoding",value:[{name:"REPEATED_FIELD_ENCODING_UNKNOWN",number:0},{name:"PACKED",number:1},{name:"EXPANDED",number:2}]},{name:"Utf8Validation",value:[{name:"UTF8_VALIDATION_UNKNOWN",number:0},{name:"VERIFY",number:2},{name:"NONE",number:3}]},{name:"MessageEncoding",value:[{name:"MESSAGE_ENCODING_UNKNOWN",number:0},{name:"LENGTH_PREFIXED",number:1},{name:"DELIMITED",number:2}]},{name:"JsonFormat",value:[{name:"JSON_FORMAT_UNKNOWN",number:0},{name:"ALLOW",number:1},{name:"LEGACY_BEST_EFFORT",number:2}]},{name:"EnforceNamingStyle",value:[{name:"ENFORCE_NAMING_STYLE_UNKNOWN",number:0},{name:"STYLE2024",number:1},{name:"STYLE_LEGACY",number:2}]}],extensionRange:[{start:1e3,end:9995},{start:9995,end:1e4},{start:1e4,end:10001}]},{name:"FeatureSetDefaults",field:[{name:"defaults",number:1,type:11,label:3,typeName:".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"},{name:"minimum_edition",number:4,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"maximum_edition",number:5,type:14,label:1,typeName:".google.protobuf.Edition"}],nestedType:[{name:"FeatureSetEditionDefault",field:[{name:"edition",number:3,type:14,label:1,typeName:".google.protobuf.Edition"},{name:"overridable_features",number:4,type:11,label:1,typeName:".google.protobuf.FeatureSet"},{name:"fixed_features",number:5,type:11,label:1,typeName:".google.protobuf.FeatureSet"}]}]},{name:"SourceCodeInfo",field:[{name:"location",number:1,type:11,label:3,typeName:".google.protobuf.SourceCodeInfo.Location"}],nestedType:[{name:"Location",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"span",number:2,type:5,label:3,options:{packed:!0}},{name:"leading_comments",number:3,type:9,label:1},{name:"trailing_comments",number:4,type:9,label:1},{name:"leading_detached_comments",number:6,type:9,label:3}]}],extensionRange:[{start:536e6,end:536000001}]},{name:"GeneratedCodeInfo",field:[{name:"annotation",number:1,type:11,label:3,typeName:".google.protobuf.GeneratedCodeInfo.Annotation"}],nestedType:[{name:"Annotation",field:[{name:"path",number:1,type:5,label:3,options:{packed:!0}},{name:"source_file",number:2,type:9,label:1},{name:"begin",number:3,type:5,label:1},{name:"end",number:4,type:5,label:1},{name:"semantic",number:5,type:14,label:1,typeName:".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"}],enumType:[{name:"Semantic",value:[{name:"NONE",number:0},{name:"SET",number:1},{name:"ALIAS",number:2}]}]}]}],enumType:[{name:"Edition",value:[{name:"EDITION_UNKNOWN",number:0},{name:"EDITION_LEGACY",number:900},{name:"EDITION_PROTO2",number:998},{name:"EDITION_PROTO3",number:999},{name:"EDITION_2023",number:1e3},{name:"EDITION_2024",number:1001},{name:"EDITION_UNSTABLE",number:9999},{name:"EDITION_1_TEST_ONLY",number:1},{name:"EDITION_2_TEST_ONLY",number:2},{name:"EDITION_99997_TEST_ONLY",number:99997},{name:"EDITION_99998_TEST_ONLY",number:99998},{name:"EDITION_99999_TEST_ONLY",number:99999},{name:"EDITION_MAX",number:2147483647}]},{name:"SymbolVisibility",value:[{name:"VISIBILITY_UNSET",number:0},{name:"VISIBILITY_LOCAL",number:1},{name:"VISIBILITY_EXPORT",number:2}]}]}),hu=d(y,0),Wo=d(y,1),js=d(y,2),fu=d(y,2,0),bu=d(y,2,1),yu=d(y,3),Iu=d(y,3,0),yi;(function(t){t[t.DECLARATION=0]="DECLARATION",t[t.UNVERIFIED=1]="UNVERIFIED"})(yi||(yi={}));var Gu=C(y,3,0),$s=d(y,4),Ii;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.GROUP=10]="GROUP",t[t.MESSAGE=11]="MESSAGE",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.ENUM=14]="ENUM",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(Ii||(Ii={}));var Au=C(y,4,0),Gi;(function(t){t[t.OPTIONAL=1]="OPTIONAL",t[t.REPEATED=3]="REPEATED",t[t.REQUIRED=2]="REQUIRED"})(Gi||(Gi={}));var vu=C(y,4,1),xu=d(y,5),qs=d(y,6),Zu=d(y,6,0),Cu=d(y,7),Su=d(y,8),Vu=d(y,9),Bu=d(y,10),Ai;(function(t){t[t.SPEED=1]="SPEED",t[t.CODE_SIZE=2]="CODE_SIZE",t[t.LITE_RUNTIME=3]="LITE_RUNTIME"})(Ai||(Ai={}));var Eu=C(y,10,0),Xu=d(y,11),el=d(y,12),Wu=d(y,12,0),wu=d(y,12,1),vi;(function(t){t[t.STRING=0]="STRING",t[t.CORD=1]="CORD",t[t.STRING_PIECE=2]="STRING_PIECE"})(vi||(vi={}));var Ru=C(y,12,0),xi;(function(t){t[t.JS_NORMAL=0]="JS_NORMAL",t[t.JS_STRING=1]="JS_STRING",t[t.JS_NUMBER=2]="JS_NUMBER"})(xi||(xi={}));var Ju=C(y,12,1),Zi;(function(t){t[t.RETENTION_UNKNOWN=0]="RETENTION_UNKNOWN",t[t.RETENTION_RUNTIME=1]="RETENTION_RUNTIME",t[t.RETENTION_SOURCE=2]="RETENTION_SOURCE"})(Zi||(Zi={}));var ku=C(y,12,2),Ci;(function(t){t[t.TARGET_TYPE_UNKNOWN=0]="TARGET_TYPE_UNKNOWN",t[t.TARGET_TYPE_FILE=1]="TARGET_TYPE_FILE",t[t.TARGET_TYPE_EXTENSION_RANGE=2]="TARGET_TYPE_EXTENSION_RANGE",t[t.TARGET_TYPE_MESSAGE=3]="TARGET_TYPE_MESSAGE",t[t.TARGET_TYPE_FIELD=4]="TARGET_TYPE_FIELD",t[t.TARGET_TYPE_ONEOF=5]="TARGET_TYPE_ONEOF",t[t.TARGET_TYPE_ENUM=6]="TARGET_TYPE_ENUM",t[t.TARGET_TYPE_ENUM_ENTRY=7]="TARGET_TYPE_ENUM_ENTRY",t[t.TARGET_TYPE_SERVICE=8]="TARGET_TYPE_SERVICE",t[t.TARGET_TYPE_METHOD=9]="TARGET_TYPE_METHOD"})(Ci||(Ci={}));var Mu=C(y,12,3),Fu=d(y,13),Yu=d(y,14),zu=d(y,15),Nu=d(y,16),Lu=d(y,17),Ue;(function(t){t[t.IDEMPOTENCY_UNKNOWN=0]="IDEMPOTENCY_UNKNOWN",t[t.NO_SIDE_EFFECTS=1]="NO_SIDE_EFFECTS",t[t.IDEMPOTENT=2]="IDEMPOTENT"})(Ue||(Ue={}));var Hu=C(y,17,0),Tu=d(y,18),Uu=d(y,18,0),Du=d(y,19),Ku=d(y,19,0),Si;(function(t){t[t.DEFAULT_SYMBOL_VISIBILITY_UNKNOWN=0]="DEFAULT_SYMBOL_VISIBILITY_UNKNOWN",t[t.EXPORT_ALL=1]="EXPORT_ALL",t[t.EXPORT_TOP_LEVEL=2]="EXPORT_TOP_LEVEL",t[t.LOCAL_ALL=3]="LOCAL_ALL",t[t.STRICT=4]="STRICT"})(Si||(Si={}));var _u=C(y,19,0,0),Vi;(function(t){t[t.FIELD_PRESENCE_UNKNOWN=0]="FIELD_PRESENCE_UNKNOWN",t[t.EXPLICIT=1]="EXPLICIT",t[t.IMPLICIT=2]="IMPLICIT",t[t.LEGACY_REQUIRED=3]="LEGACY_REQUIRED"})(Vi||(Vi={}));var Qu=C(y,19,0),Bi;(function(t){t[t.ENUM_TYPE_UNKNOWN=0]="ENUM_TYPE_UNKNOWN",t[t.OPEN=1]="OPEN",t[t.CLOSED=2]="CLOSED"})(Bi||(Bi={}));var Pu=C(y,19,1),Ei;(function(t){t[t.REPEATED_FIELD_ENCODING_UNKNOWN=0]="REPEATED_FIELD_ENCODING_UNKNOWN",t[t.PACKED=1]="PACKED",t[t.EXPANDED=2]="EXPANDED"})(Ei||(Ei={}));var Ou=C(y,19,2),Xi;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.VERIFY=2]="VERIFY",t[t.NONE=3]="NONE"})(Xi||(Xi={}));var ju=C(y,19,3),Wi;(function(t){t[t.MESSAGE_ENCODING_UNKNOWN=0]="MESSAGE_ENCODING_UNKNOWN",t[t.LENGTH_PREFIXED=1]="LENGTH_PREFIXED",t[t.DELIMITED=2]="DELIMITED"})(Wi||(Wi={}));var $u=C(y,19,4),wi;(function(t){t[t.JSON_FORMAT_UNKNOWN=0]="JSON_FORMAT_UNKNOWN",t[t.ALLOW=1]="ALLOW",t[t.LEGACY_BEST_EFFORT=2]="LEGACY_BEST_EFFORT"})(wi||(wi={}));var qu=C(y,19,5),Ri;(function(t){t[t.ENFORCE_NAMING_STYLE_UNKNOWN=0]="ENFORCE_NAMING_STYLE_UNKNOWN",t[t.STYLE2024=1]="STYLE2024",t[t.STYLE_LEGACY=2]="STYLE_LEGACY"})(Ri||(Ri={}));var em=C(y,19,6),tm=d(y,20),nm=d(y,20,0),om=d(y,21),rm=d(y,21,0),im=d(y,22),am=d(y,22,0),Ji;(function(t){t[t.NONE=0]="NONE",t[t.SET=1]="SET",t[t.ALIAS=2]="ALIAS"})(Ji||(Ji={}));var sm=C(y,22,0,0),Xo;(function(t){t[t.EDITION_UNKNOWN=0]="EDITION_UNKNOWN",t[t.EDITION_LEGACY=900]="EDITION_LEGACY",t[t.EDITION_PROTO2=998]="EDITION_PROTO2",t[t.EDITION_PROTO3=999]="EDITION_PROTO3",t[t.EDITION_2023=1e3]="EDITION_2023",t[t.EDITION_2024=1001]="EDITION_2024",t[t.EDITION_UNSTABLE=9999]="EDITION_UNSTABLE",t[t.EDITION_1_TEST_ONLY=1]="EDITION_1_TEST_ONLY",t[t.EDITION_2_TEST_ONLY=2]="EDITION_2_TEST_ONLY",t[t.EDITION_99997_TEST_ONLY=99997]="EDITION_99997_TEST_ONLY",t[t.EDITION_99998_TEST_ONLY=99998]="EDITION_99998_TEST_ONLY",t[t.EDITION_99999_TEST_ONLY=99999]="EDITION_99999_TEST_ONLY",t[t.EDITION_MAX=2147483647]="EDITION_MAX"})(Xo||(Xo={}));var lm=C(y,0),ki;(function(t){t[t.VISIBILITY_UNSET=0]="VISIBILITY_UNSET",t[t.VISIBILITY_LOCAL=1]="VISIBILITY_LOCAL",t[t.VISIBILITY_EXPORT=2]="VISIBILITY_EXPORT"})(ki||(ki={}));var cm=C(y,1);var Mi={readUnknownFields:!0};function tl(t){return t?Object.assign(Object.assign({},Mi),t):Mi}function ee(t,e,n){let o=L(t,void 0,!1);return Fi(o,new Ge(e),tl(n),!1,e.byteLength),o.message}function Fi(t,e,n,o,r){var i;let a=o?e.len:e.pos+r,s,l,c=(i=t.getUnknown())!==null&&i!==void 0?i:[];for(;e.pos<a&&([s,l]=e.tag(),!(o&&l==k.EndGroup));){let m=t.findNumber(s);if(!m){let g=e.skip(l,s);n.readUnknownFields&&c.push({no:s,wireType:l,data:g});continue}wo(t,e,m,l,n)}if(o&&(l!=k.EndGroup||s!==r))throw new Error("invalid end group tag");c.length>0&&t.setUnknown(c)}function wo(t,e,n,o,r){var i;switch(n.fieldKind){case"scalar":t.set(n,De(e,n.scalar));break;case"enum":let a=De(e,u.INT32);if(n.enum.open)t.set(n,a);else if(n.enum.values.some(l=>l.number===a))t.set(n,a);else if(r.readUnknownFields){let l=[];mt(a,l);let c=(i=t.getUnknown())!==null&&i!==void 0?i:[];c.push({no:n.number,wireType:o,data:new Uint8Array(l)}),t.setUnknown(c)}break;case"message":t.set(n,Ro(e,r,n,t.get(n)));break;case"list":ol(e,o,t.get(n),r);break;case"map":nl(e,t.get(n),r);break}}function nl(t,e,n){let o=e.field(),r,i,a=t.uint32(),s=t.pos+a;for(;t.pos<s;){let[l]=t.tag();switch(l){case 1:r=De(t,o.mapKey);break;case 2:switch(o.mapKind){case"scalar":i=De(t,o.scalar);break;case"enum":i=t.int32();break;case"message":i=Ro(t,n,o);break}break}}if(r===void 0&&(r=j(o.mapKey,!1)),i===void 0)switch(o.mapKind){case"scalar":i=j(o.scalar,!1);break;case"enum":i=o.enum.values[0].number;break;case"message":i=L(o.message,void 0,!1);break}e.set(r,i)}function ol(t,e,n,o){var r;let i=n.field();if(i.listKind==="message"){n.add(Ro(t,o,i));return}let a=(r=i.scalar)!==null&&r!==void 0?r:u.INT32;if(!(e==k.LengthDelimited&&a!=u.STRING&&a!=u.BYTES)){n.add(De(t,a));return}let l=t.uint32()+t.pos;for(;t.pos<l;)n.add(De(t,a))}function Ro(t,e,n,o){let r=n.delimitedEncoding,i=o??L(n.message,void 0,!1);return Fi(i,t,e,r,r?n.number:t.uint32()),i}function De(t,e){switch(e){case u.STRING:return t.string();case u.BOOL:return t.bool();case u.DOUBLE:return t.double();case u.FLOAT:return t.float();case u.INT32:return t.int32();case u.INT64:return t.int64();case u.UINT64:return t.uint64();case u.FIXED64:return t.fixed64();case u.BYTES:return t.bytes();case u.FIXED32:return t.fixed32();case u.SFIXED32:return t.sfixed32();case u.SFIXED64:return t.sfixed64();case u.SINT64:return t.sint64();case u.UINT32:return t.uint32();case u.SINT32:return t.sint32()}}function S(t,e){var n;let o=ee(Wo,Ae(t));return o.messageType.forEach(bt),o.dependency=(n=e?.map(i=>i.proto.name))!==null&&n!==void 0?n:[],rn(o,i=>e?.find(a=>a.proto.name===i)).getFile(o.name)}var Gt=S("Ch9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiKwoJVGltZXN0YW1wEg8KB3NlY29uZHMYASABKAMSDQoFbmFub3MYAiABKAVChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),rl=d(Gt,0);function ae(t){return new Date(il(t))}function il(t){return Number(t.seconds)*1e3+Math.round(t.nanos/1e6)}var At=S("Ch5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIqCghEdXJhdGlvbhIPCgdzZWNvbmRzGAEgASgDEg0KBW5hbm9zGAIgASgFQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1EdXJhdGlvblByb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2R1cmF0aW9ucGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw"),al=d(At,0);var vt=S("Chlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiJgoDQW55EhAKCHR5cGVfdXJsGAEgASgJEg0KBXZhbHVlGAIgASgMQnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFueVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FueXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),Yi=d(vt,0);var sl=3,zi={writeUnknownFields:!0};function ll(t){return t?Object.assign(Object.assign({},zi),t):zi}function he(t,e,n){return sn(new Be,ll(n),L(t,e)).finish()}function sn(t,e,n){var o;for(let r of n.sortedFields){if(!n.isSet(r)){if(r.presence==sl)throw new Error(`cannot encode ${r} to binary: required field not set`);continue}Jo(t,e,n,r)}if(e.writeUnknownFields)for(let{no:r,wireType:i,data:a}of(o=n.getUnknown())!==null&&o!==void 0?o:[])t.tag(r,i).raw(a);return t}function Jo(t,e,n,o){var r;switch(o.fieldKind){case"scalar":case"enum":ln(t,n.desc.typeName,o.name,(r=o.scalar)!==null&&r!==void 0?r:u.INT32,o.number,n.get(o));break;case"list":cl(t,e,o,n.get(o));break;case"message":Ni(t,e,o,n.get(o));break;case"map":for(let[i,a]of n.get(o))dl(t,e,o,i,a);break}}function ln(t,e,n,o,r,i){Li(t.tag(r,ul(o)),e,n,o,i)}function Ni(t,e,n,o){n.delimitedEncoding?sn(t.tag(n.number,k.StartGroup),e,o).tag(n.number,k.EndGroup):sn(t.tag(n.number,k.LengthDelimited).fork(),e,o).join()}function cl(t,e,n,o){var r;if(n.listKind=="message"){for(let a of o)Ni(t,e,n,a);return}let i=(r=n.scalar)!==null&&r!==void 0?r:u.INT32;if(n.packed){if(!o.size)return;t.tag(n.number,k.LengthDelimited).fork();for(let a of o)Li(t,n.parent.typeName,n.name,i,a);t.join();return}for(let a of o)ln(t,n.parent.typeName,n.name,i,n.number,a)}function dl(t,e,n,o,r){var i;switch(t.tag(n.number,k.LengthDelimited).fork(),ln(t,n.parent.typeName,n.name,n.mapKey,1,o),n.mapKind){case"scalar":case"enum":ln(t,n.parent.typeName,n.name,(i=n.scalar)!==null&&i!==void 0?i:u.INT32,2,r);break;case"message":sn(t.tag(2,k.LengthDelimited).fork(),e,r).join();break}t.join()}function Li(t,e,n,o,r){try{switch(o){case u.STRING:t.string(r);break;case u.BOOL:t.bool(r);break;case u.DOUBLE:t.double(r);break;case u.FLOAT:t.float(r);break;case u.INT32:t.int32(r);break;case u.INT64:t.int64(r);break;case u.UINT64:t.uint64(r);break;case u.FIXED64:t.fixed64(r);break;case u.BYTES:t.bytes(r);break;case u.FIXED32:t.fixed32(r);break;case u.SFIXED32:t.sfixed32(r);break;case u.SFIXED64:t.sfixed64(r);break;case u.SINT64:t.sint64(r);break;case u.UINT32:t.uint32(r);break;case u.SINT32:t.sint32(r);break}}catch(i){throw i instanceof Error?new Error(`cannot encode field ${e}.${n} to binary: ${i.message}`):i}}function ul(t){switch(t){case u.BYTES:case u.STRING:return k.LengthDelimited;case u.DOUBLE:case u.FIXED64:case u.SFIXED64:return k.Bit64;case u.FIXED32:case u.SFIXED32:case u.FLOAT:return k.Bit32;default:return k.Varint}}function ko(t,e,n){let o=!1;return n||(n=R(Yi),o=!0),n.value=he(t,e),n.typeUrl=gl(e.$typeName),o?n:void 0}function pl(t,e){if(t.typeUrl==="")return!1;let n=typeof e=="string"?e:e.typeName,o=Hi(t.typeUrl);return n===o}function Mo(t,e){if(t.typeUrl==="")return;let n=e.kind=="message"?e:e.getMessage(Hi(t.typeUrl));if(!(!n||!pl(t,n)))return ee(n,t.value)}function gl(t){return`type.googleapis.com/${t}`}function Hi(t){let e=t.lastIndexOf("/"),n=e>=0?t.substring(e+1):t;if(!n.length)throw new Error(`invalid type url: ${t}`);return n}var xt=S("CiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIiCg1Tb3VyY2VDb250ZXh0EhEKCWZpbGVfbmFtZRgBIAEoCUKKAQoTY29tLmdvb2dsZS5wcm90b2J1ZkISU291cmNlQ29udGV4dFByb3RvUAFaNmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3NvdXJjZWNvbnRleHRwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc2IGcHJvdG8z"),jm=d(xt,0);var se=S("Chpnb29nbGUvcHJvdG9idWYvdHlwZS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIugBCgRUeXBlEgwKBG5hbWUYASABKAkSJgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkEg4KBm9uZW9mcxgDIAMoCRIoCgdvcHRpb25zGAQgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhI2Cg5zb3VyY2VfY29udGV4dBgFIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0EicKBnN5bnRheBgGIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXgSDwoHZWRpdGlvbhgHIAEoCSLVBQoFRmllbGQSKQoEa2luZBgBIAEoDjIbLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5LaW5kEjcKC2NhcmRpbmFsaXR5GAIgASgOMiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLkNhcmRpbmFsaXR5Eg4KBm51bWJlchgDIAEoBRIMCgRuYW1lGAQgASgJEhAKCHR5cGVfdXJsGAYgASgJEhMKC29uZW9mX2luZGV4GAcgASgFEg4KBnBhY2tlZBgIIAEoCBIoCgdvcHRpb25zGAkgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhIRCglqc29uX25hbWUYCiABKAkSFQoNZGVmYXVsdF92YWx1ZRgLIAEoCSLIAgoES2luZBIQCgxUWVBFX1VOS05PV04QABIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIidAoLQ2FyZGluYWxpdHkSFwoTQ0FSRElOQUxJVFlfVU5LTk9XThAAEhgKFENBUkRJTkFMSVRZX09QVElPTkFMEAESGAoUQ0FSRElOQUxJVFlfUkVRVUlSRUQQAhIYChRDQVJESU5BTElUWV9SRVBFQVRFRBADIt8BCgRFbnVtEgwKBG5hbWUYASABKAkSLQoJZW51bXZhbHVlGAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZRIoCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhI2Cg5zb3VyY2VfY29udGV4dBgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0EicKBnN5bnRheBgFIAEoDjIXLmdvb2dsZS5wcm90b2J1Zi5TeW50YXgSDwoHZWRpdGlvbhgGIAEoCSJTCglFbnVtVmFsdWUSDAoEbmFtZRgBIAEoCRIOCgZudW1iZXIYAiABKAUSKAoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb24iOwoGT3B0aW9uEgwKBG5hbWUYASABKAkSIwoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55KkMKBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABEhMKD1NZTlRBWF9FRElUSU9OUxACQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw",[vt,xt]),rp=d(se,0),ip=d(se,1),Ti;(function(t){t[t.TYPE_UNKNOWN=0]="TYPE_UNKNOWN",t[t.TYPE_DOUBLE=1]="TYPE_DOUBLE",t[t.TYPE_FLOAT=2]="TYPE_FLOAT",t[t.TYPE_INT64=3]="TYPE_INT64",t[t.TYPE_UINT64=4]="TYPE_UINT64",t[t.TYPE_INT32=5]="TYPE_INT32",t[t.TYPE_FIXED64=6]="TYPE_FIXED64",t[t.TYPE_FIXED32=7]="TYPE_FIXED32",t[t.TYPE_BOOL=8]="TYPE_BOOL",t[t.TYPE_STRING=9]="TYPE_STRING",t[t.TYPE_GROUP=10]="TYPE_GROUP",t[t.TYPE_MESSAGE=11]="TYPE_MESSAGE",t[t.TYPE_BYTES=12]="TYPE_BYTES",t[t.TYPE_UINT32=13]="TYPE_UINT32",t[t.TYPE_ENUM=14]="TYPE_ENUM",t[t.TYPE_SFIXED32=15]="TYPE_SFIXED32",t[t.TYPE_SFIXED64=16]="TYPE_SFIXED64",t[t.TYPE_SINT32=17]="TYPE_SINT32",t[t.TYPE_SINT64=18]="TYPE_SINT64"})(Ti||(Ti={}));var ap=C(se,1,0),Ui;(function(t){t[t.UNKNOWN=0]="UNKNOWN",t[t.OPTIONAL=1]="OPTIONAL",t[t.REQUIRED=2]="REQUIRED",t[t.REPEATED=3]="REPEATED"})(Ui||(Ui={}));var sp=C(se,1,1),lp=d(se,2),cp=d(se,3),dp=d(se,4),Di;(function(t){t[t.PROTO2=0]="PROTO2",t[t.PROTO3=1]="PROTO3",t[t.EDITIONS=2]="EDITIONS"})(Di||(Di={}));var up=C(se,0);var Fo=S("Chlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYikgIKA0FwaRIMCgRuYW1lGAEgASgJEigKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kEigKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uEg8KB3ZlcnNpb24YBCABKAkSNgoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dBImCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW4SJwoGc3ludGF4GAcgASgOMhcuZ29vZ2xlLnByb3RvYnVmLlN5bnRheBIPCgdlZGl0aW9uGAggASgJIu4BCgZNZXRob2QSDAoEbmFtZRgBIAEoCRIYChByZXF1ZXN0X3R5cGVfdXJsGAIgASgJEhkKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIEhkKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJEhoKEnJlc3BvbnNlX3N0cmVhbWluZxgFIAEoCBIoCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvbhIrCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4QgIYARITCgdlZGl0aW9uGAggASgJQgIYASIjCgVNaXhpbhIMCgRuYW1lGAEgASgJEgwKBHJvb3QYAiABKAlCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQXBpUHJvdG9QAVosZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vYXBpcGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw",[xt,se]),bp=d(Fo,0),yp=d(Fo,1),Ip=d(Fo,2);function U(t,e,...n){if(n.length==0)return t.extensions[e];let o=n.pop();return n.reduce((r,i)=>r.nestedMessages[i],t.messages[e]).nestedExtensions[o]}var Yo=S("CiJnb29nbGUvcHJvdG9idWYvY3BwX2ZlYXR1cmVzLnByb3RvEgJwYiL8AwoLQ3BwRmVhdHVyZXMS+wEKEmxlZ2FjeV9jbG9zZWRfZW51bRgBIAEoCELeAYgBAZgBBJgBAaIBCRIEdHJ1ZRiEB6IBChIFZmFsc2UY5weyAbgBCOgHEOgHGq8BVGhlIGxlZ2FjeSBjbG9zZWQgZW51bSBiZWhhdmlvciBpbiBDKysgaXMgZGVwcmVjYXRlZCBhbmQgaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gZWRpdGlvbiAyMDI1LiAgU2VlIGh0dHA6Ly9wcm90b2J1Zi5kZXYvcHJvZ3JhbW1pbmctZ3VpZGVzL2VudW0vI2NwcCBmb3IgbW9yZSBpbmZvcm1hdGlvbhJaCgtzdHJpbmdfdHlwZRgCIAEoDjIaLnBiLkNwcEZlYXR1cmVzLlN0cmluZ1R5cGVCKYgBAZgBBJgBAaIBCxIGU1RSSU5HGIQHogEJEgRWSUVXGOkHsgEDCOgHEkwKGmVudW1fbmFtZV91c2VzX3N0cmluZ192aWV3GAMgASgIQiiIAQGYAQaYAQGiAQoSBWZhbHNlGIQHogEJEgR0cnVlGOkHsgEDCOkHIkUKClN0cmluZ1R5cGUSFwoTU1RSSU5HX1RZUEVfVU5LTk9XThAAEggKBFZJRVcQARIICgRDT1JEEAISCgoGU1RSSU5HEAM6PwoDY3BwEhsuZ29vZ2xlLnByb3RvYnVmLkZlYXR1cmVTZXQY6AcgASgLMg8ucGIuQ3BwRmVhdHVyZXNSA2NwcA",[y]),Vp=d(Yo,0),Ki;(function(t){t[t.STRING_TYPE_UNKNOWN=0]="STRING_TYPE_UNKNOWN",t[t.VIEW=1]="VIEW",t[t.CORD=2]="CORD",t[t.STRING=3]="STRING"})(Ki||(Ki={}));var Bp=C(Yo,0,0),Ep=U(Yo,0);var hl=S("Chtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw"),Rp=d(hl,0);var zo=S("CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIhoKCUZpZWxkTWFzaxINCgVwYXRocxgBIAMoCUKFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZmllbGRtYXNrcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNiBnByb3RvMw"),Fp=d(zo,0);var cn=S("CiFnb29nbGUvcHJvdG9idWYvZ29fZmVhdHVyZXMucHJvdG8SAnBiIvcECgpHb0ZlYXR1cmVzEqUBChpsZWdhY3lfdW5tYXJzaGFsX2pzb25fZW51bRgBIAEoCEKAAYgBAZgBBpgBAaIBCRIEdHJ1ZRiEB6IBChIFZmFsc2UY5weyAVsI6AcQ6AcaU1RoZSBsZWdhY3kgVW5tYXJzaGFsSlNPTiBBUEkgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIGVkaXRpb24uEmoKCWFwaV9sZXZlbBgCIAEoDjIXLnBiLkdvRmVhdHVyZXMuQVBJTGV2ZWxCPogBAZgBA5gBAaIBGhIVQVBJX0xFVkVMX1VOU1BFQ0lGSUVEGIQHogEPEgpBUElfT1BBUVVFGOkHsgEDCOgHEmsKEXN0cmlwX2VudW1fcHJlZml4GAMgASgOMh4ucGIuR29GZWF0dXJlcy5TdHJpcEVudW1QcmVmaXhCMIgBAZgBBpgBB5gBAaIBGxIWU1RSSVBfRU5VTV9QUkVGSVhfS0VFUBiEB7IBAwjpByJTCghBUElMZXZlbBIZChVBUElfTEVWRUxfVU5TUEVDSUZJRUQQABIMCghBUElfT1BFThABEg4KCkFQSV9IWUJSSUQQAhIOCgpBUElfT1BBUVVFEAMikgEKD1N0cmlwRW51bVByZWZpeBIhCh1TVFJJUF9FTlVNX1BSRUZJWF9VTlNQRUNJRklFRBAAEhoKFlNUUklQX0VOVU1fUFJFRklYX0tFRVAQARIjCh9TVFJJUF9FTlVNX1BSRUZJWF9HRU5FUkFURV9CT1RIEAISGwoXU1RSSVBfRU5VTV9QUkVGSVhfU1RSSVAQAzo8CgJnbxIbLmdvb2dsZS5wcm90b2J1Zi5GZWF0dXJlU2V0GOoHIAEoCzIOLnBiLkdvRmVhdHVyZXNSAmdvQi9aLWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2dvZmVhdHVyZXNwYg",[y]),Up=d(cn,0),_i;(function(t){t[t.API_LEVEL_UNSPECIFIED=0]="API_LEVEL_UNSPECIFIED",t[t.API_OPEN=1]="API_OPEN",t[t.API_HYBRID=2]="API_HYBRID",t[t.API_OPAQUE=3]="API_OPAQUE"})(_i||(_i={}));var Dp=C(cn,0,0),Qi;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.KEEP=1]="KEEP",t[t.GENERATE_BOTH=2]="GENERATE_BOTH",t[t.STRIP=3]="STRIP"})(Qi||(Qi={}));var Kp=C(cn,0,1),_p=U(cn,0);var Zt=S("CiNnb29nbGUvcHJvdG9idWYvamF2YV9mZWF0dXJlcy5wcm90bxICcGIigwgKDEphdmFGZWF0dXJlcxL+AQoSbGVnYWN5X2Nsb3NlZF9lbnVtGAEgASgIQuEBiAEBmAEEmAEBogEJEgR0cnVlGIQHogEKEgVmYWxzZRjnB7IBuwEI6AcQ6AcasgFUaGUgbGVnYWN5IGNsb3NlZCBlbnVtIGJlaGF2aW9yIGluIEphdmEgaXMgZGVwcmVjYXRlZCBhbmQgaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gZWRpdGlvbiAyMDI1LiAgU2VlIGh0dHA6Ly9wcm90b2J1Zi5kZXYvcHJvZ3JhbW1pbmctZ3VpZGVzL2VudW0vI2phdmEgZm9yIG1vcmUgaW5mb3JtYXRpb24uEp8CCg91dGY4X3ZhbGlkYXRpb24YAiABKA4yHy5wYi5KYXZhRmVhdHVyZXMuVXRmOFZhbGlkYXRpb25C5AGIAQGYAQSYAQGiAQwSB0RFRkFVTFQYhAeyAcgBCOgHEOkHGr8BVGhlIEphdmEtc3BlY2lmaWMgdXRmOCB2YWxpZGF0aW9uIGZlYXR1cmUgaXMgZGVwcmVjYXRlZCBhbmQgaXMgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gZWRpdGlvbiAyMDI1LiAgVXRmOCB2YWxpZGF0aW9uIGJlaGF2aW9yIHNob3VsZCB1c2UgdGhlIGdsb2JhbCBjcm9zcy1sYW5ndWFnZSB1dGY4X3ZhbGlkYXRpb24gZmVhdHVyZS4SMAoKbGFyZ2VfZW51bRgDIAEoCEIciAEBmAEGmAEBogEKEgVmYWxzZRiEB7IBAwjpBxJRCh91c2Vfb2xkX291dGVyX2NsYXNzbmFtZV9kZWZhdWx0GAQgASgIQiiIAQGYAQGiAQkSBHRydWUYhAeiAQoSBWZhbHNlGOkHsgEGCOkHIOkHEn8KEm5lc3RfaW5fZmlsZV9jbGFzcxgFIAEoDjI3LnBiLkphdmFGZWF0dXJlcy5OZXN0SW5GaWxlQ2xhc3NGZWF0dXJlLk5lc3RJbkZpbGVDbGFzc0IqiAEBmAEDmAEGmAEIogELEgZMRUdBQ1kYhAeiAQcSAk5PGOkHsgEDCOkHGnwKFk5lc3RJbkZpbGVDbGFzc0ZlYXR1cmUiWAoPTmVzdEluRmlsZUNsYXNzEh4KGk5FU1RfSU5fRklMRV9DTEFTU19VTktOT1dOEAASBgoCTk8QARIHCgNZRVMQAhIUCgZMRUdBQ1kQAxoIIgYI6Qcg6QdKCAgBEICAgIACIkYKDlV0ZjhWYWxpZGF0aW9uEhsKF1VURjhfVkFMSURBVElPTl9VTktOT1dOEAASCwoHREVGQVVMVBABEgoKBlZFUklGWRACSgQIBhAHOkIKBGphdmESGy5nb29nbGUucHJvdG9idWYuRmVhdHVyZVNldBjpByABKAsyEC5wYi5KYXZhRmVhdHVyZXNSBGphdmFCKAoTY29tLmdvb2dsZS5wcm90b2J1ZkIRSmF2YUZlYXR1cmVzUHJvdG8",[y]),eg=d(Zt,0),tg=d(Zt,0,0),Pi;(function(t){t[t.NEST_IN_FILE_CLASS_UNKNOWN=0]="NEST_IN_FILE_CLASS_UNKNOWN",t[t.NO=1]="NO",t[t.YES=2]="YES",t[t.LEGACY=3]="LEGACY"})(Pi||(Pi={}));var ng=C(Zt,0,0,0),Oi;(function(t){t[t.UTF8_VALIDATION_UNKNOWN=0]="UTF8_VALIDATION_UNKNOWN",t[t.DEFAULT=1]="DEFAULT",t[t.VERIFY=2]="VERIFY"})(Oi||(Oi={}));var og=C(Zt,0,0),rg=U(Zt,0);var un=S("Chxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYihAEKBlN0cnVjdBIzCgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5GkUKC0ZpZWxkc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEi6gEKBVZhbHVlEjAKCm51bGxfdmFsdWUYASABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSAASFgoMbnVtYmVyX3ZhbHVlGAIgASgBSAASFgoMc3RyaW5nX3ZhbHVlGAMgASgJSAASFAoKYm9vbF92YWx1ZRgEIAEoCEgAEi8KDHN0cnVjdF92YWx1ZRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIABIwCgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAQgYKBGtpbmQiMwoJTGlzdFZhbHVlEiYKBnZhbHVlcxgBIAMoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSobCglOdWxsVmFsdWUSDgoKTlVMTF9WQUxVRRAAQn8KE2NvbS5nb29nbGUucHJvdG9idWZCC1N0cnVjdFByb3RvUAFaL2dvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3N0cnVjdHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),ji=d(un,0),No=d(un,1),$i=d(un,2),dn;(function(t){t[t.NULL_VALUE=0]="NULL_VALUE"})(dn||(dn={}));var cg=C(un,0);var fe=S("Ch5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIcCgtEb3VibGVWYWx1ZRINCgV2YWx1ZRgBIAEoASIbCgpGbG9hdFZhbHVlEg0KBXZhbHVlGAEgASgCIhsKCkludDY0VmFsdWUSDQoFdmFsdWUYASABKAMiHAoLVUludDY0VmFsdWUSDQoFdmFsdWUYASABKAQiGwoKSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoBSIcCgtVSW50MzJWYWx1ZRINCgV2YWx1ZRgBIAEoDSIaCglCb29sVmFsdWUSDQoFdmFsdWUYASABKAgiHAoLU3RyaW5nVmFsdWUSDQoFdmFsdWUYASABKAkiGwoKQnl0ZXNWYWx1ZRINCgV2YWx1ZRgBIAEoDEKDAQoTY29tLmdvb2dsZS5wcm90b2J1ZkINV3JhcHBlcnNQcm90b1ABWjFnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi93cmFwcGVyc3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM"),pg=d(fe,0),gg=d(fe,1),hg=d(fe,2),fg=d(fe,3),bg=d(fe,4),yg=d(fe,5),Ig=d(fe,6),Gg=d(fe,7),Ag=d(fe,8);var Ct=S("CiVnb29nbGUvcHJvdG9idWYvY29tcGlsZXIvcGx1Z2luLnByb3RvEhhnb29nbGUucHJvdG9idWYuY29tcGlsZXIiRgoHVmVyc2lvbhINCgVtYWpvchgBIAEoBRINCgVtaW5vchgCIAEoBRINCgVwYXRjaBgDIAEoBRIOCgZzdWZmaXgYBCABKAkigQIKFENvZGVHZW5lcmF0b3JSZXF1ZXN0EhgKEGZpbGVfdG9fZ2VuZXJhdGUYASADKAkSEQoJcGFyYW1ldGVyGAIgASgJEjgKCnByb3RvX2ZpbGUYDyADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90bxJFChdzb3VyY2VfZmlsZV9kZXNjcmlwdG9ycxgRIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5GaWxlRGVzY3JpcHRvclByb3RvEjsKEGNvbXBpbGVyX3ZlcnNpb24YAyABKAsyIS5nb29nbGUucHJvdG9idWYuY29tcGlsZXIuVmVyc2lvbiKSAwoVQ29kZUdlbmVyYXRvclJlc3BvbnNlEg0KBWVycm9yGAEgASgJEhoKEnN1cHBvcnRlZF9mZWF0dXJlcxgCIAEoBBIXCg9taW5pbXVtX2VkaXRpb24YAyABKAUSFwoPbWF4aW11bV9lZGl0aW9uGAQgASgFEkIKBGZpbGUYDyADKAsyNC5nb29nbGUucHJvdG9idWYuY29tcGlsZXIuQ29kZUdlbmVyYXRvclJlc3BvbnNlLkZpbGUafwoERmlsZRIMCgRuYW1lGAEgASgJEhcKD2luc2VydGlvbl9wb2ludBgCIAEoCRIPCgdjb250ZW50GA8gASgJEj8KE2dlbmVyYXRlZF9jb2RlX2luZm8YECABKAsyIi5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8iVwoHRmVhdHVyZRIQCgxGRUFUVVJFX05PTkUQABIbChdGRUFUVVJFX1BST1RPM19PUFRJT05BTBABEh0KGUZFQVRVUkVfU1VQUE9SVFNfRURJVElPTlMQAkJyChxjb20uZ29vZ2xlLnByb3RvYnVmLmNvbXBpbGVyQgxQbHVnaW5Qcm90b3NaKWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL3BsdWdpbnBiqgIYR29vZ2xlLlByb3RvYnVmLkNvbXBpbGVy",[y]),Vg=d(Ct,0),Bg=d(Ct,1),Eg=d(Ct,2),Xg=d(Ct,2,0),qi;(function(t){t[t.NONE=0]="NONE",t[t.PROTO3_OPTIONAL=1]="PROTO3_OPTIONAL",t[t.SUPPORTS_EDITIONS=2]="SUPPORTS_EDITIONS"})(qi||(qi={}));var Wg=C(Ct,2,0);function mn(t,e){ea(e,t);let n=fl(t.$unknown,e),[o,r,i]=Xe(e);for(let a of n)wo(o,new Ge(a.data),r,a.wireType,{readUnknownFields:!0});return i()}function Lo(t,e,n){var o;ea(e,t);let r=((o=t.$unknown)!==null&&o!==void 0?o:[]).filter(c=>c.no!==e.number),[i,a]=Xe(e,n),s=new Be;Jo(s,{writeUnknownFields:!0},i,a);let l=new Ge(s.finish());for(;l.pos<l.len;){let[c,m]=l.tag(),g=l.skip(m,c);r.push({no:c,wireType:m,data:g})}t.$unknown=r}function fl(t,e){if(t===void 0)return[];if(e.fieldKind==="enum"||e.fieldKind==="scalar"){for(let n=t.length-1;n>=0;--n)if(t[n].no==e.number)return[t[n]];return[]}return t.filter(n=>n.no===e.number)}function Xe(t,e){let n=t.typeName,o=Object.assign(Object.assign({},t),{kind:"field",parent:t.extendee,localName:n}),r=Object.assign(Object.assign({},t.extendee),{fields:[o],members:[o],oneofs:[]}),i=R(r,e!==void 0?{[n]:e}:void 0);return[L(r,i),o,()=>{let a=i[n];if(a===void 0){let s=t.message;return re(s)?j(s.fields[0].scalar,s.fields[0].longAsString):R(s)}return a}]}function ea(t,e){if(t.extendee.typeName!=e.$typeName)throw new Error(`extension ${t.typeName} can only be applied to message ${t.extendee.typeName}`)}var bl=3,yl=2,ta={alwaysEmitImplicit:!1,enumAsInteger:!1,useProtoFieldName:!1};function Il(t){return t?Object.assign(Object.assign({},ta),t):ta}function oa(t,e,n){return St(L(t,e),Il(n))}function ra(t,e,n){var o;let r=oa(t,e,n);return JSON.stringify(r,null,(o=n?.prettySpaces)!==null&&o!==void 0?o:0)}function Ke(t,e){var n;if(t.typeName=="google.protobuf.NullValue")return null;let o=(n=t.value[e])===null||n===void 0?void 0:n.name;if(o===void 0)throw new Error(`${e} is not a value in ${t}`);return o}function St(t,e){var n;let o=xl(t,e);if(o!==void 0)return o;let r={};for(let i of t.sortedFields){if(!t.isSet(i)){if(i.presence==bl)throw new Error(`cannot encode ${i} to JSON: required field not set`);if(!e.alwaysEmitImplicit||i.presence!==yl)continue}let a=na(i,t.get(i),e);a!==void 0&&(r[vl(i,e)]=a)}if(e.registry){let i=new Set;for(let{no:a}of(n=t.getUnknown())!==null&&n!==void 0?n:[])if(!i.has(a)){i.add(a);let s=e.registry.getExtensionFor(t.desc,a);if(!s)continue;let l=mn(t.message,s),[c,m]=Xe(s,l),g=na(m,c.get(m),e);g!==void 0&&(r[s.jsonName]=g)}}return r}function na(t,e,n){switch(t.fieldKind){case"scalar":return pn(t,e);case"message":return St(e,n);case"enum":return Ho(t.enum,e,n.enumAsInteger);case"list":return Al(e,n);case"map":return Gl(e,n)}}function Gl(t,e){let n=t.field(),o={};switch(n.mapKind){case"scalar":for(let[r,i]of t)o[r]=pn(n,i);break;case"message":for(let[r,i]of t)o[r]=St(i,e);break;case"enum":for(let[r,i]of t)o[r]=Ho(n.enum,i,e.enumAsInteger);break}return e.alwaysEmitImplicit||t.size>0?o:void 0}function Al(t,e){let n=t.field(),o=[];switch(n.listKind){case"scalar":for(let r of t)o.push(pn(n,r));break;case"enum":for(let r of t)o.push(Ho(n.enum,r,e.enumAsInteger));break;case"message":for(let r of t)o.push(St(r,e));break}return e.alwaysEmitImplicit||o.length>0?o:void 0}function Ho(t,e,n){var o;if(typeof e!="number")throw new Error(`cannot encode ${t} to JSON: expected number, got ${z(e)}`);if(t.typeName=="google.protobuf.NullValue")return null;if(n)return e;let r=t.value[e];return(o=r?.name)!==null&&o!==void 0?o:e}function pn(t,e){var n,o,r,i,a,s;switch(t.scalar){case u.INT32:case u.SFIXED32:case u.SINT32:case u.FIXED32:case u.UINT32:if(typeof e!="number")throw new Error(`cannot encode ${t} to JSON: ${(n=pe(t,e))===null||n===void 0?void 0:n.message}`);return e;case u.FLOAT:case u.DOUBLE:if(typeof e!="number")throw new Error(`cannot encode ${t} to JSON: ${(o=pe(t,e))===null||o===void 0?void 0:o.message}`);return Number.isNaN(e)?"NaN":e===Number.POSITIVE_INFINITY?"Infinity":e===Number.NEGATIVE_INFINITY?"-Infinity":e;case u.STRING:if(typeof e!="string")throw new Error(`cannot encode ${t} to JSON: ${(r=pe(t,e))===null||r===void 0?void 0:r.message}`);return e;case u.BOOL:if(typeof e!="boolean")throw new Error(`cannot encode ${t} to JSON: ${(i=pe(t,e))===null||i===void 0?void 0:i.message}`);return e;case u.UINT64:case u.FIXED64:case u.INT64:case u.SFIXED64:case u.SINT64:if(typeof e!="bigint"&&typeof e!="string")throw new Error(`cannot encode ${t} to JSON: ${(a=pe(t,e))===null||a===void 0?void 0:a.message}`);return e.toString();case u.BYTES:if(e instanceof Uint8Array)return Ee(e);throw new Error(`cannot encode ${t} to JSON: ${(s=pe(t,e))===null||s===void 0?void 0:s.message}`)}}function vl(t,e){return e.useProtoFieldName?t.name:t.jsonName}function xl(t,e){if(t.desc.typeName.startsWith("google.protobuf."))switch(t.desc.typeName){case"google.protobuf.Any":return Zl(t.message,e);case"google.protobuf.Timestamp":return Vl(t.message);case"google.protobuf.Duration":return Cl(t.message);case"google.protobuf.FieldMask":return Sl(t.message);case"google.protobuf.Struct":return ia(t.message);case"google.protobuf.Value":return To(t.message);case"google.protobuf.ListValue":return aa(t.message);default:if(re(t.desc)){let n=t.desc.fields[0];return pn(n,t.get(n))}return}}function Zl(t,e){if(t.typeUrl==="")return{};let{registry:n}=e,o,r;if(n&&(o=Mo(t,n),o&&(r=n.getMessage(o.$typeName))),!r||!o)throw new Error(`cannot encode message ${t.$typeName} to JSON: "${t.typeUrl}" is not in the type registry`);let i=St(L(r,o),e);return(r.typeName.startsWith("google.protobuf.")||i===null||Array.isArray(i)||typeof i!="object")&&(i={value:i}),i["@type"]=t.typeUrl,i}function Cl(t){let e=Number(t.seconds),n=t.nanos;if(e>315576e6||e<-315576e6)throw new Error(`cannot encode message ${t.$typeName} to JSON: value out of range`);if(e>0&&n<0||e<0&&n>0)throw new Error(`cannot encode message ${t.$typeName} to JSON: nanos sign must match seconds sign`);let o=t.seconds.toString();if(n!==0){let r=Math.abs(n).toString();r="0".repeat(9-r.length)+r,r.substring(3)==="000000"?r=r.substring(0,3):r.substring(6)==="000"&&(r=r.substring(0,6)),o+="."+r,n<0&&e==0&&(o="-"+o)}return o+"s"}function Sl(t){return t.paths.map(e=>{if(nn(ie(e))!==e)throw new Error(`cannot encode message ${t.$typeName} to JSON: lowerCamelCase of path name "${e}" is irreversible`);return ie(e)}).join(",")}function ia(t){let e={};for(let[n,o]of Object.entries(t.fields))e[n]=To(o);return e}function To(t){switch(t.kind.case){case"nullValue":return null;case"numberValue":if(!Number.isFinite(t.kind.value))throw new Error(`${t.$typeName} cannot be NaN or Infinity`);return t.kind.value;case"boolValue":return t.kind.value;case"stringValue":return t.kind.value;case"structValue":return ia(t.kind.value);case"listValue":return aa(t.kind.value);default:throw new Error(`${t.$typeName} must have a value`)}}function aa(t){return t.values.map(To)}function Vl(t){let e=Number(t.seconds)*1e3;if(e<Date.parse("0001-01-01T00:00:00Z")||e>Date.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot encode message ${t.$typeName} to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);if(t.nanos<0)throw new Error(`cannot encode message ${t.$typeName} to JSON: nanos must not be negative`);if(t.nanos>999999999)throw new Error(`cannot encode message ${t.$typeName} to JSON: nanos must not be greater than 99999999`);let n="Z";if(t.nanos>0){let o=(t.nanos+1e9).toString().substring(1);o.substring(3)==="000000"?n="."+o.substring(0,3)+"Z":o.substring(6)==="000"?n="."+o.substring(0,6)+"Z":n="."+o+"Z"}return new Date(e).toISOString().replace(".000Z",n)}var sa={ignoreUnknownFields:!1};function Bl(t){return t?Object.assign(Object.assign({},sa),t):sa}function ca(t,e,n){return hn(t,Ml(e,t.typeName),n)}function hn(t,e,n){let o=L(t);try{Vt(o,e,Bl(n))}catch(r){throw Tr(r)?new Error(`cannot decode ${r.field()} from JSON: ${r.message}`,{cause:r}):r}return o.message}var Uo=new WeakMap;function El(t,e){var n;if(!Uo.has(t)){let o=new Map;for(let r of t.fields)o.set(r.name,r).set(r.jsonName,r);Uo.set(t,o)}return(n=Uo.get(t))===null||n===void 0?void 0:n.get(e)}function Vt(t,e,n){var o;if(Fl(t,e,n))return;if(e==null||Array.isArray(e)||typeof e!="object")throw new Error(`cannot decode ${t.desc} from JSON: ${z(e)}`);let r=new Map;for(let[i,a]of Object.entries(e)){let s=El(t.desc,i);if(s){if(s.oneof){if(a===null&&s.fieldKind=="scalar")continue;let l=r.get(s.oneof);if(l!==void 0)throw new T(s.oneof,`oneof set multiple times by ${l.name} and ${s.name}`);r.set(s.oneof,s)}la(t,s,a,n)}else{let l;if(i.startsWith("[")&&i.endsWith("]")&&(l=(o=n.registry)===null||o===void 0?void 0:o.getExtension(i.substring(1,i.length-1)))&&l.extendee.typeName===t.desc.typeName){let[c,m,g]=Xe(l);la(c,m,a,n),Lo(t.message,l,g())}if(!l&&!n.ignoreUnknownFields)throw new Error(`cannot decode ${t.desc} from JSON: key "${i}" is unknown`)}}}function la(t,e,n,o){switch(e.fieldKind){case"scalar":Jl(t,e,n);break;case"enum":Rl(t,e,n,o);break;case"message":wl(t,e,n,o);break;case"list":Wl(t.get(e),n,o);break;case"map":Xl(t.get(e),n,o);break}}function da(t,e,n){if(t.scalar&&e!==null)return Do(t,e);if(t.message&&!gn(t,e)){let o=L(t.message);return Vt(o,e,n),o}if(t.enum&&!gn(t,e))return ua(t.enum,e,n.ignoreUnknownFields);throw new T(t,`${t.fieldKind==="list"?"list item":"map value"} must not be null`)}function Xl(t,e,n){if(e===null)return;let o=t.field();if(typeof e!="object"||Array.isArray(e))throw new T(o,"expected object, got "+z(e));for(let[r,i]of Object.entries(e)){let a=kl(o.mapKey,r),s=da(o,i,n);s!==fn&&t.set(a,s)}}function Wl(t,e,n){if(e===null)return;let o=t.field();if(!Array.isArray(e))throw new T(o,"expected Array, got "+z(e));for(let r of e){let i=da(o,r,n);i!==fn&&t.add(i)}}function wl(t,e,n,o){if(gn(e,n)){t.clear(e);return}let r=t.isSet(e)?t.get(e):L(e.message);Vt(r,n,o),t.set(e,r)}function Rl(t,e,n,o){if(gn(e,n)){t.clear(e);return}let r=ua(e.enum,n,o.ignoreUnknownFields);r!==fn&&t.set(e,r)}function Jl(t,e,n){n===null?t.clear(e):t.set(e,Do(e,n))}function gn(t,e){var n,o;return e===null&&((n=t.message)===null||n===void 0?void 0:n.typeName)!="google.protobuf.Value"&&((o=t.enum)===null||o===void 0?void 0:o.typeName)!="google.protobuf.NullValue"}var fn=Symbol();function ua(t,e,n){if(e===null)return t.values[0].number;switch(typeof e){case"number":if(Number.isInteger(e))return e;break;case"string":let o=t.values.find(r=>r.name===e);if(o!==void 0)return o.number;if(n)return fn;break}throw new Error(`cannot decode ${t} from JSON: ${z(e)}`)}function Do(t,e){switch(t.scalar){case u.DOUBLE:case u.FLOAT:if(e==="NaN")return NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(typeof e=="number"){if(Number.isNaN(e))throw new T(t,"unexpected NaN number");if(!Number.isFinite(e))throw new T(t,"unexpected infinite number");break}if(typeof e=="string"){if(e===""||e.trim().length!==e.length)break;let n=Number(e);if(!Number.isFinite(n))break;return n}break;case u.INT32:case u.FIXED32:case u.SFIXED32:case u.SINT32:case u.UINT32:return ma(e);case u.BYTES:if(typeof e=="string"){if(e==="")return new Uint8Array(0);try{return Ae(e)}catch(n){let o=n instanceof Error?n.message:String(n);throw new T(t,o)}}break}return e}function kl(t,e){switch(t){case u.BOOL:switch(e){case"true":return!0;case"false":return!1}return e;case u.INT32:case u.FIXED32:case u.UINT32:case u.SFIXED32:case u.SINT32:return ma(e);default:return e}}function ma(t){if(typeof t=="string"){if(t===""||t.trim().length!==t.length)return t;let e=Number(t);return Number.isNaN(e)?t:e}return t}function Ml(t,e){try{return JSON.parse(t)}catch(n){let o=n instanceof Error?n.message:String(n);throw new Error(`cannot decode message ${e} from JSON: ${o}`,{cause:n})}}function Fl(t,e,n){if(!t.desc.typeName.startsWith("google.protobuf."))return!1;switch(t.desc.typeName){case"google.protobuf.Any":return Yl(t.message,e,n),!0;case"google.protobuf.Timestamp":return zl(t.message,e),!0;case"google.protobuf.Duration":return Nl(t.message,e),!0;case"google.protobuf.FieldMask":return Ll(t.message,e),!0;case"google.protobuf.Struct":return pa(t.message,e),!0;case"google.protobuf.Value":return Ko(t.message,e),!0;case"google.protobuf.ListValue":return ga(t.message,e),!0;default:if(re(t.desc)){let o=t.desc.fields[0];return e===null?t.clear(o):t.set(o,Do(o,e)),!0}return!1}}function Yl(t,e,n){var o;if(e===null||Array.isArray(e)||typeof e!="object")throw new Error(`cannot decode message ${t.$typeName} from JSON: expected object but got ${z(e)}`);if(Object.keys(e).length==0)return;let r=e["@type"];if(typeof r!="string"||r=="")throw new Error(`cannot decode message ${t.$typeName} from JSON: "@type" is empty`);let i=r.includes("/")?r.substring(r.lastIndexOf("/")+1):r;if(!i.length)throw new Error(`cannot decode message ${t.$typeName} from JSON: "@type" is invalid`);let a=(o=n.registry)===null||o===void 0?void 0:o.getMessage(i);if(!a)throw new Error(`cannot decode message ${t.$typeName} from JSON: ${r} is not in the type registry`);let s=L(a);if(i.startsWith("google.protobuf.")&&Object.prototype.hasOwnProperty.call(e,"value")){let l=e.value;Vt(s,l,n)}else{let l=Object.assign({},e);delete l["@type"],Vt(s,l,n)}ko(s.desc,s.message,t)}function zl(t,e){if(typeof e!="string")throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);let n=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:\.([0-9]{1,9}))?(?:Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error(`cannot decode message ${t.$typeName} from JSON: invalid RFC 3339 string`);let o=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(o))throw new Error(`cannot decode message ${t.$typeName} from JSON: invalid RFC 3339 string`);if(o<Date.parse("0001-01-01T00:00:00Z")||o>Date.parse("9999-12-31T23:59:59Z"))throw new Error(`cannot decode message ${t.$typeName} from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive`);t.seconds=w.parse(o/1e3),t.nanos=0,n[7]&&(t.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9)}function Nl(t,e){if(typeof e!="string")throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);let n=e.match(/^(-?[0-9]+)(?:\.([0-9]+))?s/);if(n===null)throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);let o=Number(n[1]);if(o>315576e6||o<-315576e6)throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);if(t.seconds=w.parse(o),typeof n[2]!="string")return;let r=n[2]+"0".repeat(9-n[2].length);t.nanos=parseInt(r),(o<0||Object.is(o,-0))&&(t.nanos=-t.nanos)}function Ll(t,e){if(typeof e!="string")throw new Error(`cannot decode message ${t.$typeName} from JSON: ${z(e)}`);e!==""&&(t.paths=e.split(",").map(n=>{if(n.includes("_"))throw new Error(`cannot decode message ${t.$typeName} from JSON: path names must be lowerCamelCase`);return nn(n)}))}function pa(t,e){if(typeof e!="object"||e==null||Array.isArray(e))throw new Error(`cannot decode message ${t.$typeName} from JSON ${z(e)}`);for(let[n,o]of Object.entries(e)){let r=R(No);Ko(r,o),t.fields[n]=r}}function Ko(t,e){switch(typeof e){case"number":t.kind={case:"numberValue",value:e};break;case"string":t.kind={case:"stringValue",value:e};break;case"boolean":t.kind={case:"boolValue",value:e};break;case"object":if(e===null)t.kind={case:"nullValue",value:dn.NULL_VALUE};else if(Array.isArray(e)){let n=R($i);ga(n,e),t.kind={case:"listValue",value:n}}else{let n=R(ji);pa(n,e),t.kind={case:"structValue",value:n}}break;default:throw new Error(`cannot decode message ${t.$typeName} from JSON ${z(e)}`)}return t}function ga(t,e){if(!Array.isArray(e))throw new Error(`cannot decode message ${t.$typeName} from JSON ${z(e)}`);for(let n of e){let o=R(No);Ko(o,n),t.values.push(o)}}var h;(function(t){t[t.Canceled=1]="Canceled",t[t.Unknown=2]="Unknown",t[t.InvalidArgument=3]="InvalidArgument",t[t.DeadlineExceeded=4]="DeadlineExceeded",t[t.NotFound=5]="NotFound",t[t.AlreadyExists=6]="AlreadyExists",t[t.PermissionDenied=7]="PermissionDenied",t[t.ResourceExhausted=8]="ResourceExhausted",t[t.FailedPrecondition=9]="FailedPrecondition",t[t.Aborted=10]="Aborted",t[t.OutOfRange=11]="OutOfRange",t[t.Unimplemented=12]="Unimplemented",t[t.Internal=13]="Internal",t[t.Unavailable=14]="Unavailable",t[t.DataLoss=15]="DataLoss",t[t.Unauthenticated=16]="Unauthenticated"})(h||(h={}));function _e(t){let e=h[t];return typeof e!="string"?t.toString():e[0].toLowerCase()+e.substring(1).replace(/[A-Z]/g,n=>"_"+n.toLowerCase())}var bn;function _o(t){if(!bn){bn={};for(let e of Object.values(h))typeof e!="string"&&(bn[_e(e)]=e)}return bn[t]}var A=class t extends Error{constructor(e,n=h.Unknown,o,r,i){super(Hl(e,n)),this.name="ConnectError",Object.setPrototypeOf(this,new.target.prototype),this.rawMessage=e,this.code=n,this.metadata=new Headers(o??{}),this.details=r??[],this.cause=i}static from(e,n=h.Unknown){return e instanceof t?e:e instanceof Error?e.name=="AbortError"||e.name=="TimeoutError"?new t(e.message,h.Canceled):new t(e.message,n,void 0,void 0,e):new t(String(e),n,void 0,void 0,e)}static[Symbol.hasInstance](e){return e instanceof Error?Object.getPrototypeOf(e)===t.prototype?!0:e.name==="ConnectError"&&"code"in e&&typeof e.code=="number"&&"metadata"in e&&"details"in e&&Array.isArray(e.details)&&"rawMessage"in e&&typeof e.rawMessage=="string"&&"cause"in e:!1}findDetails(e){let n=e.kind==="message"?{getMessage:r=>r===e.typeName?e:void 0}:e,o=[];for(let r of this.details){if("desc"in r){n.getMessage(r.desc.typeName)&&o.push(R(r.desc,r.value));continue}let i=n.getMessage(r.type);if(i)try{o.push(ee(i,r.value))}catch{}}return o}};function Hl(t,e){return t.length?`[${_e(e)}] ${t}`:`[${_e(e)}]`}function Bt(...t){let e=new Headers;for(let n of t)n.forEach((o,r)=>{e.append(r,o)});return e}function yn(t,e){let n={};for(let o of t.methods){let r=e(o);r!=null&&(n[o.localName]=r)}return n}var Qe=1;function In(t,e,n=!1){if(e>t){let o=`message size is larger than configured readMaxBytes ${t}`;throw n&&(o=`message size ${e} is larger than configured readMaxBytes ${t}`),new A(o,h.ResourceExhausted)}}function ha(t){return new Qo(t)}var Qo=class{constructor(e){this.readMaxBytes=e,this.header=new Uint8Array(5),this.headerView=new DataView(this.header.buffer),this.buf=[]}get byteLength(){return this.buf.reduce((e,n)=>e+n.byteLength,0)}decode(e){this.buf.push(e);let n=[];for(;;){let o=this.pop();if(!o)break;n.push(o)}return n}pop(){if(!(!this.env&&(this.env=this.head(),!this.env))&&this.cons(this.env.data)){let e=this.env;return this.env=void 0,e}}head(){if(!this.cons(this.header))return;let e=this.headerView.getUint8(0),n=this.headerView.getUint32(1);return In(this.readMaxBytes,n,!0),{flags:e,data:new Uint8Array(n)}}cons(e){let n=e.byteLength;if(this.byteLength<n)return!1;let o=0;for(;o<n;){let r=this.buf.shift();r.byteLength>n-o?(e.set(r.subarray(0,n-o),o),this.buf.unshift(r.subarray(n-o)),o+=n-o):(e.set(r,o),o+=r.byteLength)}return!0}};function Gn(t){let e,n=ha(4294967295);return new ReadableStream({start(){e=t.getReader()},async pull(o){let r=!1;for(;!r;){let i=await e.read();if(i.done)n.byteLength>0&&o.error(new A("protocol error: incomplete envelope",h.InvalidArgument)),o.close();else for(let a of n.decode(i.value))o.enqueue(a),r=!0}}})}function Et(t,e){let n=new Uint8Array(e.length+5);n.set(e,5);let o=new DataView(n.buffer,n.byteOffset,n.byteLength);return o.setUint8(0,t),o.setUint32(1,e.length),n}var Dl=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(i){n[i]=t[i]&&function(a){return new Promise(function(s,l){a=t[i](a),r(s,l,a.done,a.value)})}}function r(i,a,s,l){Promise.resolve(l).then(function(c){i({value:c,done:s})},a)}},Xt=function(t){return this instanceof Xt?(this.v=t,this):new Xt(t)},Kl=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(t,e||[]),r,i=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(p){return function(I){return Promise.resolve(I).then(p,g)}}function s(p,I){o[p]&&(r[p]=function(Z){return new Promise(function(v,J){i.push([p,Z,v,J])>1||l(p,Z)})},I&&(r[p]=I(r[p])))}function l(p,I){try{c(o[p](I))}catch(Z){f(i[0][3],Z)}}function c(p){p.value instanceof Xt?Promise.resolve(p.value.v).then(m,g):f(i[0][2],p)}function m(p){l("next",p)}function g(p){l("throw",p)}function f(p,I){p(I),i.shift(),i.length&&l(i[0][0],i[0][1])}},_l=function(t){var e,n;return e={},o("next"),o("throw",function(r){throw r}),o("return"),e[Symbol.iterator]=function(){return this},e;function o(r,i){e[r]=t[r]?function(a){return(n=!n)?{value:Xt(t[r](a)),done:!1}:i?i(a):a}:i}};function le(t){return Kl(this,arguments,function*(){yield Xt(yield*_l(Dl(t)))})}var fa=function(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof __values=="function"?__values(t):t[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(i){n[i]=t[i]&&function(a){return new Promise(function(s,l){a=t[i](a),r(s,l,a.done,a.value)})}}function r(i,a,s,l){Promise.resolve(l).then(function(c){i({value:c,done:s})},a)}},Pe=function(t){return this instanceof Pe?(this.v=t,this):new Pe(t)},Ql=function(t){var e,n;return e={},o("next"),o("throw",function(r){throw r}),o("return"),e[Symbol.iterator]=function(){return this},e;function o(r,i){e[r]=t[r]?function(a){return(n=!n)?{value:Pe(t[r](a)),done:!1}:i?i(a):a}:i}},Pl=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(t,e||[]),r,i=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(p){return function(I){return Promise.resolve(I).then(p,g)}}function s(p,I){o[p]&&(r[p]=function(Z){return new Promise(function(v,J){i.push([p,Z,v,J])>1||l(p,Z)})},I&&(r[p]=I(r[p])))}function l(p,I){try{c(o[p](I))}catch(Z){f(i[0][3],Z)}}function c(p){p.value instanceof Pe?Promise.resolve(p.value.v).then(m,g):f(i[0][2],p)}function m(p){l("next",p)}function g(p){l("throw",p)}function f(p,I){p(I),i.shift(),i.length&&l(i[0][0],i[0][1])}};function Po(t,e){return yn(t,n=>{switch(n.methodKind){case"unary":return Ol(e,n);case"server_streaming":return jl(e,n);case"client_streaming":return $l(e,n);case"bidi_streaming":return ql(e,n);default:return null}})}function Ol(t,e){return async(n,o)=>{var r,i;let a=await t.unary(e,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);return(r=o?.onHeader)===null||r===void 0||r.call(o,a.header),(i=o?.onTrailer)===null||i===void 0||i.call(o,a.trailer),a.message}}function jl(t,e){return(n,o)=>ba(t.stream(e,o?.signal,o?.timeoutMs,o?.headers,le([n]),o?.contextValues),o)}function $l(t,e){return async(n,o)=>{var r,i,a,s,l,c;let m=await t.stream(e,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues);(l=o?.onHeader)===null||l===void 0||l.call(o,m.header);let g,f=0;try{for(var p=!0,I=fa(m.message),Z;Z=await I.next(),r=Z.done,!r;p=!0)s=Z.value,p=!1,g=s,f++}catch(v){i={error:v}}finally{try{!p&&!r&&(a=I.return)&&await a.call(I)}finally{if(i)throw i.error}}if(!g)throw new A("protocol error: missing response message",h.Unimplemented);if(f>1)throw new A("protocol error: received extra messages for client streaming method",h.Unimplemented);return(c=o?.onTrailer)===null||c===void 0||c.call(o,m.trailer),g}}function ql(t,e){return(n,o)=>ba(t.stream(e,o?.signal,o?.timeoutMs,o?.headers,n,o?.contextValues),o)}function ba(t,e){let n=(function(){return Pl(this,arguments,function*(){var o,r;let i=yield Pe(t);(o=e?.onHeader)===null||o===void 0||o.call(e,i.header),yield Pe(yield*Ql(fa(i.message))),(r=e?.onTrailer)===null||r===void 0||r.call(e,i.trailer)})})()[Symbol.asyncIterator]();return{[Symbol.asyncIterator]:()=>({next:()=>n.next()})}}function An(...t){let e=new AbortController,n=t.filter(r=>r!==void 0).concat(e.signal);for(let r of n){if(r.aborted){o.apply(r);break}r.addEventListener("abort",o)}function o(){e.signal.aborted||e.abort(Wt(this));for(let r of n)r.removeEventListener("abort",o)}return e}function vn(t){let e=new AbortController,n=()=>{e.abort(new A("the operation timed out",h.DeadlineExceeded))},o;return t!==void 0&&(t<=0?n():o=setTimeout(n,t)),{signal:e.signal,cleanup:()=>clearTimeout(o)}}function Wt(t){if(!t.aborted)return;if(t.reason!==void 0)return t.reason;let e=new Error("This operation was aborted");return e.name="AbortError",e}function be(){return{get(t){return t.id in this?this[t.id]:t.defaultValue},set(t,e){return this[t.id]=e,this},delete(t){return delete this[t.id],this}}}function Ga(t,e,...n){if(n.length>0)throw new Error;return t.services[e]}var X="@bufbuild/protobuf",Bb={"google/protobuf/compiler/plugin.proto":X+"/wkt","google/protobuf/any.proto":X+"/wkt","google/protobuf/api.proto":X+"/wkt","google/protobuf/cpp_features.proto":X+"/wkt","google/protobuf/descriptor.proto":X+"/wkt","google/protobuf/duration.proto":X+"/wkt","google/protobuf/empty.proto":X+"/wkt","google/protobuf/field_mask.proto":X+"/wkt","google/protobuf/go_features.proto":X+"/wkt","google/protobuf/java_features.proto":X+"/wkt","google/protobuf/source_context.proto":X+"/wkt","google/protobuf/struct.proto":X+"/wkt","google/protobuf/timestamp.proto":X+"/wkt","google/protobuf/type.proto":X+"/wkt","google/protobuf/wrappers.proto":X+"/wkt"},Eb={isMessage:{typeOnly:!1,bootstrapWktFrom:"../../is-message.js",from:X},Message:{typeOnly:!0,bootstrapWktFrom:"../../types.js",from:X},create:{typeOnly:!1,bootstrapWktFrom:"../../create.js",from:X},fromJson:{typeOnly:!1,bootstrapWktFrom:"../../from-json.js",from:X},fromJsonString:{typeOnly:!1,bootstrapWktFrom:"../../from-json.js",from:X},fromBinary:{typeOnly:!1,bootstrapWktFrom:"../../from-binary.js",from:X},toBinary:{typeOnly:!1,bootstrapWktFrom:"../../to-binary.js",from:X},toJson:{typeOnly:!1,bootstrapWktFrom:"../../to-json.js",from:X},toJsonString:{typeOnly:!1,bootstrapWktFrom:"../../to-json.js",from:X},protoInt64:{typeOnly:!1,bootstrapWktFrom:"../../proto-int64.js",from:X},JsonValue:{typeOnly:!0,bootstrapWktFrom:"../../json-value.js",from:X},JsonObject:{typeOnly:!0,bootstrapWktFrom:"../../json-value.js",from:X},codegen:{boot:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/boot.js",from:X+"/codegenv2"},fileDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/file.js",from:X+"/codegenv2"},enumDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/enum.js",from:X+"/codegenv2"},extDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/extension.js",from:X+"/codegenv2"},messageDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/message.js",from:X+"/codegenv2"},serviceDesc:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/service.js",from:X+"/codegenv2"},tsEnum:{typeOnly:!1,bootstrapWktFrom:"../../codegenv2/enum.js",from:X+"/codegenv2"},GenFile:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenEnum:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenExtension:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenMessage:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"},GenService:{typeOnly:!0,bootstrapWktFrom:"../../codegenv2/types.js",from:X+"/codegenv2"}}};var nc=S("CgxzdGF0dXMucHJvdG8SCmdvb2dsZS5ycGMiTgoGU3RhdHVzEgwKBGNvZGUYASABKAUSDwoHbWVzc2FnZRgCIAEoCRIlCgdkZXRhaWxzGAMgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUJeCg5jb20uZ29vZ2xlLnJwY0ILU3RhdHVzUHJvdG9QAVo3Z29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9ycGMvc3RhdHVzO3N0YXR1c6ICA1JQQ2IGcHJvdG8z",[vt]),oc=d(nc,0);function te(t,e){return t.toString().replace(/\/?$/,`/${e.parent.typeName}/${e.name}`)}function Zn(t,e){return R(t,e)}function jo(t,e){function n(o){return o.done===!0?o:{done:o.done,value:Zn(t,o.value)}}return{[Symbol.asyncIterator](){let o=e[Symbol.asyncIterator](),r={next:()=>o.next().then(n)};return o.throw!==void 0&&(r.throw=i=>o.throw(i).then(n)),o.return!==void 0&&(r.return=i=>o.return(i).then(n)),r}}}function Cn(t,e){if(!e)return t;for(let n of e.concat().reverse())t=n(t);return t}function Sn(t){var e;let n=Object.assign({},t);return(e=n.ignoreUnknownFields)!==null&&e!==void 0||(n.ignoreUnknownFields=!0),n}function Jt(t,e,n,o){let r=e?Aa(t.input,o):va(t.input,n);return{parse:(e?Aa(t.output,o):va(t.output,n)).parse,serialize:r.serialize}}function Aa(t,e){return{parse(n){try{return ee(t,n,e)}catch(o){let r=o instanceof Error?o.message:String(o);throw new A(`parse binary: ${r}`,h.Internal)}},serialize(n){try{return he(t,n,e)}catch(o){let r=o instanceof Error?o.message:String(o);throw new A(`serialize binary: ${r}`,h.Internal)}}}}function va(t,e){var n,o;let r=(n=e?.textEncoder)!==null&&n!==void 0?n:new TextEncoder,i=(o=e?.textDecoder)!==null&&o!==void 0?o:new TextDecoder,a=Sn(e);return{parse(s){try{let l=i.decode(s);return ca(t,l,a)}catch(l){throw A.from(l,h.InvalidArgument)}},serialize(s){try{let l=ra(t,s,a);return r.encode(l)}catch(l){throw A.from(l,h.Internal)}}}}var Ea=/^application\/(connect\+)?(?:(json)(?:; ?charset=utf-?8)?|(proto))$/i;var Wn="application/proto",wn="application/json",Rn="application/connect+proto",Jn="application/connect+json";function kn(t){let e=t?.match(Ea);if(!e)return;let n=!!e[1],o=!!e[3];return{stream:n,binary:o}}function kt(t,e,n){var o;if(e&&new Headers(e).forEach((s,l)=>n.metadata.append(l,s)),typeof t!="object"||t==null||Array.isArray(t))throw n;let r=n.code;"code"in t&&typeof t.code=="string"&&(r=(o=_o(t.code))!==null&&o!==void 0?o:r);let i=t.message;if(i!=null&&typeof i!="string")throw n;let a=new A(i??"",r,e);if("details"in t&&Array.isArray(t.details))for(let s of t.details){if(s===null||typeof s!="object"||Array.isArray(s)||typeof s.type!="string"||typeof s.value!="string")throw n;try{a.details.push({type:s.type,value:Ae(s.value),debug:s.debug})}catch{throw n}}return a}var rt=2;function dr(t){let e=new A("invalid end stream",h.Unknown),n;try{n=JSON.parse(typeof t=="string"?t:new TextDecoder().decode(t))}catch{throw e}if(typeof n!="object"||n==null||Array.isArray(n))throw e;let o=new Headers;if("metadata"in n){if(typeof n.metadata!="object"||n.metadata==null||Array.isArray(n.metadata))throw e;for(let[i,a]of Object.entries(n.metadata)){if(!Array.isArray(a)||a.some(s=>typeof s!="string"))throw e;for(let s of a)o.append(i,s)}}let r="error"in n&&n.error!=null?kt(n.error,o,e):void 0;return{metadata:o,error:r}}var ye="Content-Type",Mn="Content-Length",ve="Content-Encoding";var Mt="Accept-Encoding";var Fn="Connect-Timeout-Ms",it="Connect-Protocol-Version",ur="User-Agent";function mr(t){switch(t){case 400:return h.Internal;case 401:return h.Unauthenticated;case 403:return h.PermissionDenied;case 404:return h.Unimplemented;case 429:return h.Unavailable;case 502:return h.Unavailable;case 503:return h.Unavailable;case 504:return h.Unavailable;default:return h.Unknown}}function Ft(t){let e=new Headers,n=new Headers;return t.forEach((o,r)=>{r.toLowerCase().startsWith("trailer-")?n.append(r.substring(8),o):e.append(r,o)}),[e,n]}var Yt="1";function Yn(t,e,n,o,r){let i=new Headers(o??{});return n!==void 0&&i.set(Fn,`${n}`),i.set(ye,t=="unary"?e?Wn:wn:e?Rn:Jn),i.set(it,Yt),!i.has(ur)&&r&&i.set(ur,"connect-es/2.1.1"),i}function zn(t,e,n,o){let r=o.get(ye),i=kn(r);if(n!==200){let s=new A(`HTTP ${n}`,mr(n),o);if(t=="unary"&&i&&!i.binary)return{isUnaryError:!0,unaryError:s};throw s}let a={binary:e,stream:t!=="unary"};if(i?.binary!==a.binary||i.stream!==a.stream)throw new A(`unsupported content type ${r}`,i===void 0?h.Unknown:h.Internal,o);return{isUnaryError:!1}}var wa="application/";function Xc(t,e){return e?Ee(t,"url"):encodeURIComponent(new TextDecoder().decode(t))}function Nn(t,e,n){let o=`?connect=v${Yt}`,r=t.header.get(ye);r?.indexOf(wa)===0&&(o+="&encoding="+encodeURIComponent(r.slice(wa.length)));let i=t.header.get(ve);i!==null&&i!=="identity"&&(o+="&compression="+encodeURIComponent(i),n=!0),n&&(o+="&base64=1"),o+="&message="+Xc(e,n);let a=t.url+o,s=new Headers(t.header);for(let l of[it,ye,Mn,ve,Mt])s.delete(l);return Object.assign(Object.assign({},t),{requestMethod:"GET",url:a,header:s})}function we(t){let e=Cn(t.next,t.interceptors),[n,o,r]=Ra(t),i=Object.assign(Object.assign({},t.req),{message:Zn(t.req.method.input,t.req.message),signal:n});return e(i).then(a=>(r(),a),o)}function Re(t){let e=Cn(t.next,t.interceptors),[n,o,r]=Ra(t),i=Object.assign(Object.assign({},t.req),{message:jo(t.req.method.input,t.req.message),signal:n}),a=!1;return n.addEventListener("abort",function(){var s,l;let c=t.req.message[Symbol.asyncIterator]();a||(s=c.throw)===null||s===void 0||s.call(c,this.reason).catch(()=>{}),(l=c.return)===null||l===void 0||l.call(c).catch(()=>{})}),e(i).then(s=>Object.assign(Object.assign({},s),{message:{[Symbol.asyncIterator](){let l=s.message[Symbol.asyncIterator]();return{next(){return l.next().then(c=>(c.done==!0&&(a=!0,r()),c),o)}}}}}),o)}function Ra(t){let{signal:e,cleanup:n}=vn(t.timeoutMs),o=An(t.signal,e);return[o.signal,function(i){let a=A.from(e.aborted?Wt(e):i);return o.abort(a),n(),Promise.reject(a)},function(){n(),o.abort()}]}var B=S("ChtidWYvdmFsaWRhdGUvdmFsaWRhdGUucHJvdG8SDGJ1Zi52YWxpZGF0ZSI3CgRSdWxlEgoKAmlkGAEgASgJEg8KB21lc3NhZ2UYAiABKAkSEgoKZXhwcmVzc2lvbhgDIAEoCSKGAQoMTWVzc2FnZVJ1bGVzEhYKDmNlbF9leHByZXNzaW9uGAUgAygJEh8KA2NlbBgDIAMoCzISLmJ1Zi52YWxpZGF0ZS5SdWxlEi0KBW9uZW9mGAQgAygLMh4uYnVmLnZhbGlkYXRlLk1lc3NhZ2VPbmVvZlJ1bGVKBAgBEAJSCGRpc2FibGVkIjQKEE1lc3NhZ2VPbmVvZlJ1bGUSDgoGZmllbGRzGAEgAygJEhAKCHJlcXVpcmVkGAIgASgIIh4KCk9uZW9mUnVsZXMSEAoIcmVxdWlyZWQYASABKAgiiwkKCkZpZWxkUnVsZXMSFgoOY2VsX2V4cHJlc3Npb24YHSADKAkSHwoDY2VsGBcgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGUSEAoIcmVxdWlyZWQYGSABKAgSJAoGaWdub3JlGBsgASgOMhQuYnVmLnZhbGlkYXRlLklnbm9yZRIpCgVmbG9hdBgBIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GbG9hdFJ1bGVzSAASKwoGZG91YmxlGAIgASgLMhkuYnVmLnZhbGlkYXRlLkRvdWJsZVJ1bGVzSAASKQoFaW50MzIYAyABKAsyGC5idWYudmFsaWRhdGUuSW50MzJSdWxlc0gAEikKBWludDY0GAQgASgLMhguYnVmLnZhbGlkYXRlLkludDY0UnVsZXNIABIrCgZ1aW50MzIYBSABKAsyGS5idWYudmFsaWRhdGUuVUludDMyUnVsZXNIABIrCgZ1aW50NjQYBiABKAsyGS5idWYudmFsaWRhdGUuVUludDY0UnVsZXNIABIrCgZzaW50MzIYByABKAsyGS5idWYudmFsaWRhdGUuU0ludDMyUnVsZXNIABIrCgZzaW50NjQYCCABKAsyGS5idWYudmFsaWRhdGUuU0ludDY0UnVsZXNIABItCgdmaXhlZDMyGAkgASgLMhouYnVmLnZhbGlkYXRlLkZpeGVkMzJSdWxlc0gAEi0KB2ZpeGVkNjQYCiABKAsyGi5idWYudmFsaWRhdGUuRml4ZWQ2NFJ1bGVzSAASLwoIc2ZpeGVkMzIYCyABKAsyGy5idWYudmFsaWRhdGUuU0ZpeGVkMzJSdWxlc0gAEi8KCHNmaXhlZDY0GAwgASgLMhsuYnVmLnZhbGlkYXRlLlNGaXhlZDY0UnVsZXNIABInCgRib29sGA0gASgLMhcuYnVmLnZhbGlkYXRlLkJvb2xSdWxlc0gAEisKBnN0cmluZxgOIAEoCzIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlc0gAEikKBWJ5dGVzGA8gASgLMhguYnVmLnZhbGlkYXRlLkJ5dGVzUnVsZXNIABInCgRlbnVtGBAgASgLMhcuYnVmLnZhbGlkYXRlLkVudW1SdWxlc0gAEi8KCHJlcGVhdGVkGBIgASgLMhsuYnVmLnZhbGlkYXRlLlJlcGVhdGVkUnVsZXNIABIlCgNtYXAYEyABKAsyFi5idWYudmFsaWRhdGUuTWFwUnVsZXNIABIlCgNhbnkYFCABKAsyFi5idWYudmFsaWRhdGUuQW55UnVsZXNIABIvCghkdXJhdGlvbhgVIAEoCzIbLmJ1Zi52YWxpZGF0ZS5EdXJhdGlvblJ1bGVzSAASMgoKZmllbGRfbWFzaxgcIAEoCzIcLmJ1Zi52YWxpZGF0ZS5GaWVsZE1hc2tSdWxlc0gAEjEKCXRpbWVzdGFtcBgWIAEoCzIcLmJ1Zi52YWxpZGF0ZS5UaW1lc3RhbXBSdWxlc0gAQgYKBHR5cGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSJVCg9QcmVkZWZpbmVkUnVsZXMSHwoDY2VsGAEgAygLMhIuYnVmLnZhbGlkYXRlLlJ1bGVKBAgYEBlKBAgaEBtSB3NraXBwZWRSDGlnbm9yZV9lbXB0eSLaFwoKRmxvYXRSdWxlcxKDAQoFY29uc3QYASABKAJCdMJIcQpvCgtmbG9hdC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEp8BCgJsdBgCIAEoAkKQAcJIjAEKiQEKCGZsb2F0Lmx0Gn0haGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0KT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEq8BCgNsdGUYAyABKAJCnwHCSJsBCpgBCglmbG9hdC5sdGUaigEhaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID4gcnVsZXMubHRlKT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABLvBwoCZ3QYBCABKAJC4AfCSNwHCo0BCghmbG9hdC5ndBqAASFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCsMBCgtmbG9hdC5ndF9sdBqzAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCs0BChVmbG9hdC5ndF9sdF9leGNsdXNpdmUaswFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrTAQoMZmxvYXQuZ3RfbHRlGsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycK3QEKFmZsb2F0Lmd0X2x0ZV9leGNsdXNpdmUawgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEroICgNndGUYBSABKAJCqgjCSKYICpsBCglmbG9hdC5ndGUajQEhaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgKHRoaXMuaXNOYW4oKSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycK0gEKDGZsb2F0Lmd0ZV9sdBrBAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK3AEKFmZsb2F0Lmd0ZV9sdF9leGNsdXNpdmUawQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSkpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCuIBCg1mbG9hdC5ndGVfbHRlGtABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrsAQoXZmxvYXQuZ3RlX2x0ZV9leGNsdXNpdmUa0AFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESfwoCaW4YBiADKAJCc8JIcApuCghmbG9hdC5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSdgoGbm90X2luGAcgAygCQmbCSGMKYQoMZmxvYXQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSdQoGZmluaXRlGAggASgIQmXCSGIKYAoMZmxvYXQuZmluaXRlGlBydWxlcy5maW5pdGUgPyAodGhpcy5pc05hbigpIHx8IHRoaXMuaXNJbmYoKSA/ICd2YWx1ZSBtdXN0IGJlIGZpbml0ZScgOiAnJykgOiAnJxIrCgdleGFtcGxlGAkgAygCQhrCSBcKFQoNZmxvYXQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i7RcKC0RvdWJsZVJ1bGVzEoQBCgVjb25zdBgBIAEoAUJ1wkhyCnAKDGRvdWJsZS5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEqABCgJsdBgCIAEoAUKRAcJIjQEKigEKCWRvdWJsZS5sdBp9IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCk/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKwAQoDbHRlGAMgASgBQqABwkicAQqZAQoKZG91YmxlLmx0ZRqKASFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPiBydWxlcy5sdGUpPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEvQHCgJndBgEIAEoAULlB8JI4QcKjgEKCWRvdWJsZS5ndBqAASFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCsQBCgxkb3VibGUuZ3RfbHQaswFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrOAQoWZG91YmxlLmd0X2x0X2V4Y2x1c2l2ZRqzAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCtQBCg1kb3VibGUuZ3RfbHRlGsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycK3gEKF2RvdWJsZS5ndF9sdGVfZXhjbHVzaXZlGsIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARK/CAoDZ3RlGAUgASgBQq8IwkirCAqcAQoKZG91YmxlLmd0ZRqNASFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiAodGhpcy5pc05hbigpIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrTAQoNZG91YmxlLmd0ZV9sdBrBAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK3QEKF2RvdWJsZS5ndGVfbHRfZXhjbHVzaXZlGsEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAodGhpcy5pc05hbigpIHx8IChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrjAQoOZG91YmxlLmd0ZV9sdGUa0AFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzLmlzTmFuKCkgfHwgdGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCu0BChhkb3VibGUuZ3RlX2x0ZV9leGNsdXNpdmUa0AFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHRoaXMuaXNOYW4oKSB8fCAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygBQnTCSHEKbwoJZG91YmxlLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKAFCZ8JIZApiCg1kb3VibGUubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSdgoGZmluaXRlGAggASgIQmbCSGMKYQoNZG91YmxlLmZpbml0ZRpQcnVsZXMuZmluaXRlID8gKHRoaXMuaXNOYW4oKSB8fCB0aGlzLmlzSW5mKCkgPyAndmFsdWUgbXVzdCBiZSBmaW5pdGUnIDogJycpIDogJycSLAoHZXhhbXBsZRgJIAMoAUIbwkgYChYKDmRvdWJsZS5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKMFQoKSW50MzJSdWxlcxKDAQoFY29uc3QYASABKAVCdMJIcQpvCgtpbnQzMi5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEooBCgJsdBgCIAEoBUJ8wkh5CncKCGludDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpwBCgNsdGUYAyABKAVCjAHCSIgBCoUBCglpbnQzMi5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEpcHCgJndBgEIAEoBUKIB8JIhAcKegoIaW50MzIuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrMBCgtpbnQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKuwEKFWludDMyLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsMBCgxpbnQzMi5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCssBChZpbnQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLjBwoDZ3RlGAUgASgFQtMHwkjPBwqIAQoJaW50MzIuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwgEKDGludDMyLmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrKAQoWaW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0gEKDWludDMyLmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2gEKF2ludDMyLmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEn8KAmluGAYgAygFQnPCSHAKbgoIaW50MzIuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnYKBm5vdF9pbhgHIAMoBUJmwkhjCmEKDGludDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCCADKAVCGsJIFwoVCg1pbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKMFQoKSW50NjRSdWxlcxKDAQoFY29uc3QYASABKANCdMJIcQpvCgtpbnQ2NC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEooBCgJsdBgCIAEoA0J8wkh5CncKCGludDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEpwBCgNsdGUYAyABKANCjAHCSIgBCoUBCglpbnQ2NC5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEpcHCgJndBgEIAEoA0KIB8JIhAcKegoIaW50NjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrMBCgtpbnQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKuwEKFWludDY0Lmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCsMBCgxpbnQ2NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCssBChZpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLjBwoDZ3RlGAUgASgDQtMHwkjPBwqIAQoJaW50NjQuZ3RlGnshaGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8IHJ1bGVzLmd0ZT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZV0pIDogJycKwgEKDGludDY0Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrKAQoWaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0gEKDWludDY0Lmd0ZV9sdGUawAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3RlICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJycK2gEKF2ludDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEn8KAmluGAYgAygDQnPCSHAKbgoIaW50NjQuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnYKBm5vdF9pbhgHIAMoA0JmwkhjCmEKDGludDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEisKB2V4YW1wbGUYCSADKANCGsJIFwoVCg1pbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLVUludDMyUnVsZXMShAEKBWNvbnN0GAEgASgNQnXCSHIKcAoMdWludDMyLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgNQn3CSHoKeAoJdWludDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKA1CjQHCSIkBCoYBCgp1aW50MzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKA1CjQfCSIkHCnsKCXVpbnQzMi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHVpbnQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnVpbnQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNdWludDMyLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3VpbnQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgNQtgHwkjUBwqJAQoKdWludDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg11aW50MzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChd1aW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnVpbnQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChh1aW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygNQnTCSHEKbwoJdWludDMyLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKA1CZ8JIZApiCg11aW50MzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoDUIbwkgYChYKDnVpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLVUludDY0UnVsZXMShAEKBWNvbnN0GAEgASgEQnXCSHIKcAoMdWludDY0LmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgEQn3CSHoKeAoJdWludDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKARCjQHCSIkBCoYBCgp1aW50NjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKARCjQfCSIkHCnsKCXVpbnQ2NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHVpbnQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnVpbnQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNdWludDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3VpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgEQtgHwkjUBwqJAQoKdWludDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg11aW50NjQuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChd1aW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnVpbnQ2NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChh1aW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygEQnTCSHEKbwoJdWludDY0LmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKARCZ8JIZApiCg11aW50NjQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoBEIbwkgYChYKDnVpbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLU0ludDMyUnVsZXMShAEKBWNvbnN0GAEgASgRQnXCSHIKcAoMc2ludDMyLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgRQn3CSHoKeAoJc2ludDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKBFCjQHCSIkBCoYBCgpzaW50MzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKBFCjQfCSIkHCnsKCXNpbnQzMi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHNpbnQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnNpbnQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNc2ludDMyLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3NpbnQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgRQtgHwkjUBwqJAQoKc2ludDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg1zaW50MzIuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChdzaW50MzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnNpbnQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChhzaW50MzIuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygRQnTCSHEKbwoJc2ludDMyLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKBFCZ8JIZApiCg1zaW50MzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEUIbwkgYChYKDnNpbnQzMi5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKeFQoLU0ludDY0UnVsZXMShAEKBWNvbnN0GAEgASgSQnXCSHIKcAoMc2ludDY0LmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSiwEKAmx0GAIgASgSQn3CSHoKeAoJc2ludDY0Lmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp0BCgNsdGUYAyABKBJCjQHCSIkBCoYBCgpzaW50NjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKcBwoCZ3QYBCABKBJCjQfCSIkHCnsKCXNpbnQ2NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtAEKDHNpbnQ2NC5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvAEKFnNpbnQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrEAQoNc2ludDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzAEKF3NpbnQ2NC5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLoBwoDZ3RlGAUgASgSQtgHwkjUBwqJAQoKc2ludDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsMBCg1zaW50NjQuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCssBChdzaW50NjQuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK0wEKDnNpbnQ2NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtsBChhzaW50NjQuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESgAEKAmluGAYgAygSQnTCSHEKbwoJc2ludDY0LmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YByADKBJCZ8JIZApiCg1zaW50NjQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLAoHZXhhbXBsZRgIIAMoEkIbwkgYChYKDnNpbnQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiKvFQoMRml4ZWQzMlJ1bGVzEoUBCgVjb25zdBgBIAEoB0J2wkhzCnEKDWZpeGVkMzIuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKMAQoCbHQYAiABKAdCfsJIewp5CgpmaXhlZDMyLmx0GmshaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+PSBydWxlcy5sdD8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmx0XSkgOiAnJ0gAEp4BCgNsdGUYAyABKAdCjgHCSIoBCocBCgtmaXhlZDMyLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASoQcKAmd0GAQgASgHQpIHwkiOBwp8CgpmaXhlZDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq1AQoNZml4ZWQzMi5ndF9sdBqjAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKvQEKF2ZpeGVkMzIuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxQEKDmZpeGVkMzIuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrNAQoYZml4ZWQzMi5ndF9sdGVfZXhjbHVzaXZlGrABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJydIARLtBwoDZ3RlGAUgASgHQt0HwkjZBwqKAQoLZml4ZWQzMi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrEAQoOZml4ZWQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzAEKGGZpeGVkMzIuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1AEKD2ZpeGVkMzIuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrcAQoZZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARKBAQoCaW4YBiADKAdCdcJIcgpwCgpmaXhlZDMyLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ4CgZub3RfaW4YByADKAdCaMJIZQpjCg5maXhlZDMyLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEi0KB2V4YW1wbGUYCCADKAdCHMJIGQoXCg9maXhlZDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIq8VCgxGaXhlZDY0UnVsZXMShQEKBWNvbnN0GAEgASgGQnbCSHMKcQoNZml4ZWQ2NC5jb25zdBpgdGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEowBCgJsdBgCIAEoBkJ+wkh7CnkKCmZpeGVkNjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASngEKA2x0ZRgDIAEoBkKOAcJIigEKhwEKC2ZpeGVkNjQubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKhBwoCZ3QYBCABKAZCkgfCSI4HCnwKCmZpeGVkNjQuZ3QabiFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDw9IHJ1bGVzLmd0PyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RdKSA6ICcnCrUBCg1maXhlZDY0Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq9AQoXZml4ZWQ2NC5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrFAQoOZml4ZWQ2NC5ndF9sdGUasgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPj0gcnVsZXMuZ3QgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnCs0BChhmaXhlZDY0Lmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEu0HCgNndGUYBSABKAZC3QfCSNkHCooBCgtmaXhlZDY0Lmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsQBCg5maXhlZDY0Lmd0ZV9sdBqxAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPj0gcnVsZXMuZ3RlICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrMAQoYZml4ZWQ2NC5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrUAQoPZml4ZWQ2NC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCtwBChlmaXhlZDY0Lmd0ZV9sdGVfZXhjbHVzaXZlGr4BaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlIDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJ0gBEoEBCgJpbhgGIAMoBkJ1wkhyCnAKCmZpeGVkNjQuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEngKBm5vdF9pbhgHIAMoBkJowkhlCmMKDmZpeGVkNjQubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLQoHZXhhbXBsZRgIIAMoBkIcwkgZChcKD2ZpeGVkNjQuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iwBUKDVNGaXhlZDMyUnVsZXMShgEKBWNvbnN0GAEgASgPQnfCSHQKcgoOc2ZpeGVkMzIuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKNAQoCbHQYAiABKA9Cf8JIfAp6CgtzZml4ZWQzMi5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABKfAQoDbHRlGAMgASgPQo8BwkiLAQqIAQoMc2ZpeGVkMzIubHRlGnghaGFzKHJ1bGVzLmd0ZSkgJiYgIWhhcyhydWxlcy5ndCkgJiYgdGhpcyA+IHJ1bGVzLmx0ZT8gJ3ZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmx0ZV0pIDogJydIABKmBwoCZ3QYBCABKA9ClwfCSJMHCn0KC3NmaXhlZDMyLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq2AQoOc2ZpeGVkMzIuZ3RfbHQaowFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ICYmICh0aGlzID49IHJ1bGVzLmx0IHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCr4BChhzZml4ZWQzMi5ndF9sdF9leGNsdXNpdmUaoQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3QgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8PSBydWxlcy5ndCk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwrGAQoPc2ZpeGVkMzIuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrOAQoZc2ZpeGVkMzIuZ3RfbHRlX2V4Y2x1c2l2ZRqwAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdGUgPCB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdGVdKSA6ICcnSAES8gcKA2d0ZRgFIAEoD0LiB8JI3gcKiwEKDHNmaXhlZDMyLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsUBCg9zZml4ZWQzMi5ndGVfbHQasQFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0ID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycKzQEKGXNmaXhlZDMyLmd0ZV9sdF9leGNsdXNpdmUarwFoYXMocnVsZXMubHQpICYmIHJ1bGVzLmx0IDwgcnVsZXMuZ3RlICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPCBydWxlcy5ndGUpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCtUBChBzZml4ZWQzMi5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCt0BChpzZml4ZWQzMi5ndGVfbHRlX2V4Y2x1c2l2ZRq+AWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0ZV0pIDogJydIARKCAQoCaW4YBiADKA9CdsJIcwpxCgtzZml4ZWQzMi5pbhpiISh0aGlzIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSkgPyAndmFsdWUgbXVzdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnaW4nKV0pIDogJycSeQoGbm90X2luGAcgAygPQmnCSGYKZAoPc2ZpeGVkMzIubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycSLgoHZXhhbXBsZRgIIAMoD0IdwkgaChgKEHNmaXhlZDMyLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAkILCglsZXNzX3RoYW5CDgoMZ3JlYXRlcl90aGFuIsAVCg1TRml4ZWQ2NFJ1bGVzEoYBCgVjb25zdBgBIAEoEEJ3wkh0CnIKDnNmaXhlZDY0LmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSjQEKAmx0GAIgASgQQn/CSHwKegoLc2ZpeGVkNjQubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASnwEKA2x0ZRgDIAEoEEKPAcJIiwEKiAEKDHNmaXhlZDY0Lmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASpgcKAmd0GAQgASgQQpcHwkiTBwp9CgtzZml4ZWQ2NC5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtgEKDnNmaXhlZDY0Lmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoYc2ZpeGVkNjQuZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxgEKD3NmaXhlZDY0Lmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzgEKGXNmaXhlZDY0Lmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEvIHCgNndGUYBSABKBBC4gfCSN4HCosBCgxzZml4ZWQ2NC5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrFAQoPc2ZpeGVkNjQuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BChlzZml4ZWQ2NC5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrVAQoQc2ZpeGVkNjQuZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrdAQoac2ZpeGVkNjQuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESggEKAmluGAYgAygQQnbCSHMKcQoLc2ZpeGVkNjQuaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEnkKBm5vdF9pbhgHIAMoEEJpwkhmCmQKD3NmaXhlZDY0Lm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEi4KB2V4YW1wbGUYCCADKBBCHcJIGgoYChBzZml4ZWQ2NC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCCwoJbGVzc190aGFuQg4KDGdyZWF0ZXJfdGhhbiLHAQoJQm9vbFJ1bGVzEoIBCgVjb25zdBgBIAEoCEJzwkhwCm4KCmJvb2wuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIqCgdleGFtcGxlGAIgAygIQhnCSBYKFAoMYm9vbC5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIiiDkKC1N0cmluZ1J1bGVzEoYBCgVjb25zdBgBIAEoCUJ3wkh0CnIKDHN0cmluZy5jb25zdBpidGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBlcXVhbCBgJXNgJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSfgoDbGVuGBMgASgEQnHCSG4KbAoKc3RyaW5nLmxlbhpedWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubGVuXSkgOiAnJxKZAQoHbWluX2xlbhgCIAEoBEKHAcJIgwEKgAEKDnN0cmluZy5taW5fbGVuGm51aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgYXQgbGVhc3QgJXMgY2hhcmFjdGVycycuZm9ybWF0KFtydWxlcy5taW5fbGVuXSkgOiAnJxKXAQoHbWF4X2xlbhgDIAEoBEKFAcJIgQEKfwoOc3RyaW5nLm1heF9sZW4abXVpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2xlbiA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSBhdCBtb3N0ICVzIGNoYXJhY3RlcnMnLmZvcm1hdChbcnVsZXMubWF4X2xlbl0pIDogJycSmwEKCWxlbl9ieXRlcxgUIAEoBEKHAcJIgwEKgAEKEHN0cmluZy5sZW5fYnl0ZXMabHVpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSAhPSBydWxlcy5sZW5fYnl0ZXMgPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubGVuX2J5dGVzXSkgOiAnJxKjAQoJbWluX2J5dGVzGAQgASgEQo8BwkiLAQqIAQoQc3RyaW5nLm1pbl9ieXRlcxp0dWludChieXRlcyh0aGlzKS5zaXplKCkpIDwgcnVsZXMubWluX2J5dGVzID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlIGF0IGxlYXN0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1pbl9ieXRlc10pIDogJycSogEKCW1heF9ieXRlcxgFIAEoBEKOAcJIigEKhwEKEHN0cmluZy5tYXhfYnl0ZXMac3VpbnQoYnl0ZXModGhpcykuc2l6ZSgpKSA+IHJ1bGVzLm1heF9ieXRlcyA/ICd2YWx1ZSBsZW5ndGggbXVzdCBiZSBhdCBtb3N0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1heF9ieXRlc10pIDogJycSjQEKB3BhdHRlcm4YBiABKAlCfMJIeQp3Cg5zdHJpbmcucGF0dGVybhplIXRoaXMubWF0Y2hlcyhydWxlcy5wYXR0ZXJuKSA/ICd2YWx1ZSBkb2VzIG5vdCBtYXRjaCByZWdleCBwYXR0ZXJuIGAlc2AnLmZvcm1hdChbcnVsZXMucGF0dGVybl0pIDogJycShAEKBnByZWZpeBgHIAEoCUJ0wkhxCm8KDXN0cmluZy5wcmVmaXgaXiF0aGlzLnN0YXJ0c1dpdGgocnVsZXMucHJlZml4KSA/ICd2YWx1ZSBkb2VzIG5vdCBoYXZlIHByZWZpeCBgJXNgJy5mb3JtYXQoW3J1bGVzLnByZWZpeF0pIDogJycSggEKBnN1ZmZpeBgIIAEoCUJywkhvCm0KDXN0cmluZy5zdWZmaXgaXCF0aGlzLmVuZHNXaXRoKHJ1bGVzLnN1ZmZpeCkgPyAndmFsdWUgZG9lcyBub3QgaGF2ZSBzdWZmaXggYCVzYCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEpABCghjb250YWlucxgJIAEoCUJ+wkh7CnkKD3N0cmluZy5jb250YWlucxpmIXRoaXMuY29udGFpbnMocnVsZXMuY29udGFpbnMpID8gJ3ZhbHVlIGRvZXMgbm90IGNvbnRhaW4gc3Vic3RyaW5nIGAlc2AnLmZvcm1hdChbcnVsZXMuY29udGFpbnNdKSA6ICcnEpgBCgxub3RfY29udGFpbnMYFyABKAlCgQHCSH4KfAoTc3RyaW5nLm5vdF9jb250YWlucxpldGhpcy5jb250YWlucyhydWxlcy5ub3RfY29udGFpbnMpID8gJ3ZhbHVlIGNvbnRhaW5zIHN1YnN0cmluZyBgJXNgJy5mb3JtYXQoW3J1bGVzLm5vdF9jb250YWluc10pIDogJycSgAEKAmluGAogAygJQnTCSHEKbwoJc3RyaW5nLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ3CgZub3RfaW4YCyADKAlCZ8JIZApiCg1zdHJpbmcubm90X2luGlF0aGlzIGluIHJ1bGVzLm5vdF9pbiA/ICd2YWx1ZSBtdXN0IG5vdCBiZSBpbiBsaXN0ICVzJy5mb3JtYXQoW3J1bGVzLm5vdF9pbl0pIDogJycS3wEKBWVtYWlsGAwgASgIQs0BwkjJAQphCgxzdHJpbmcuZW1haWwSI3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzGiwhcnVsZXMuZW1haWwgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzRW1haWwoKQpkChJzdHJpbmcuZW1haWxfZW1wdHkSMnZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBlbWFpbCBhZGRyZXNzGhohcnVsZXMuZW1haWwgfHwgdGhpcyAhPSAnJ0gAEucBCghob3N0bmFtZRgNIAEoCELSAcJIzgEKZQoPc3RyaW5nLmhvc3RuYW1lEh52YWx1ZSBtdXN0IGJlIGEgdmFsaWQgaG9zdG5hbWUaMiFydWxlcy5ob3N0bmFtZSB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpCmUKFXN0cmluZy5ob3N0bmFtZV9lbXB0eRItdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3RuYW1lGh0hcnVsZXMuaG9zdG5hbWUgfHwgdGhpcyAhPSAnJ0gAEscBCgJpcBgOIAEoCEK4AcJItAEKVQoJc3RyaW5nLmlwEiB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxomIXJ1bGVzLmlwIHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwKCkKWwoPc3RyaW5nLmlwX2VtcHR5Ei92YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgYWRkcmVzcxoXIXJ1bGVzLmlwIHx8IHRoaXMgIT0gJydIABLWAQoEaXB2NBgPIAEoCELFAcJIwQEKXAoLc3RyaW5nLmlwdjQSInZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaKSFydWxlcy5pcHY0IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwKDQpCmEKEXN0cmluZy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGhkhcnVsZXMuaXB2NCB8fCB0aGlzICE9ICcnSAAS1gEKBGlwdjYYECABKAhCxQHCSMEBClwKC3N0cmluZy5pcHY2EiJ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NiBhZGRyZXNzGikhcnVsZXMuaXB2NiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcCg2KQphChFzdHJpbmcuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxoZIXJ1bGVzLmlwdjYgfHwgdGhpcyAhPSAnJ0gAEr8BCgN1cmkYESABKAhCrwHCSKsBClEKCnN0cmluZy51cmkSGXZhbHVlIG11c3QgYmUgYSB2YWxpZCBVUkkaKCFydWxlcy51cmkgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzVXJpKCkKVgoQc3RyaW5nLnVyaV9lbXB0eRIodmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIFVSSRoYIXJ1bGVzLnVyaSB8fCB0aGlzICE9ICcnSAAScAoHdXJpX3JlZhgSIAEoCEJdwkhaClgKDnN0cmluZy51cmlfcmVmEiN2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVJJIFJlZmVyZW5jZRohIXJ1bGVzLnVyaV9yZWYgfHwgdGhpcy5pc1VyaVJlZigpSAASkAIKB2FkZHJlc3MYFSABKAhC/AHCSPgBCoEBCg5zdHJpbmcuYWRkcmVzcxItdmFsdWUgbXVzdCBiZSBhIHZhbGlkIGhvc3RuYW1lLCBvciBpcCBhZGRyZXNzGkAhcnVsZXMuYWRkcmVzcyB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0bmFtZSgpIHx8IHRoaXMuaXNJcCgpCnIKFHN0cmluZy5hZGRyZXNzX2VtcHR5Ejx2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgaG9zdG5hbWUsIG9yIGlwIGFkZHJlc3MaHCFydWxlcy5hZGRyZXNzIHx8IHRoaXMgIT0gJydIABKYAgoEdXVpZBgWIAEoCEKHAsJIgwIKpQEKC3N0cmluZy51dWlkEhp2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVVJRBp6IXJ1bGVzLnV1aWQgfHwgdGhpcyA9PSAnJyB8fCB0aGlzLm1hdGNoZXMoJ15bMC05YS1mQS1GXXs4fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXs0fS1bMC05YS1mQS1GXXsxMn0kJykKWQoRc3RyaW5nLnV1aWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVVUlEGhkhcnVsZXMudXVpZCB8fCB0aGlzICE9ICcnSAAS8AEKBXR1dWlkGCEgASgIQt4BwkjaAQpzCgxzdHJpbmcudHV1aWQSInZhbHVlIG11c3QgYmUgYSB2YWxpZCB0cmltbWVkIFVVSUQaPyFydWxlcy50dXVpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTlhLWZBLUZdezMyfSQnKQpjChJzdHJpbmcudHV1aWRfZW1wdHkSMXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCB0cmltbWVkIFVVSUQaGiFydWxlcy50dXVpZCB8fCB0aGlzICE9ICcnSAASlgIKEWlwX3dpdGhfcHJlZml4bGVuGBogASgIQvgBwkj0AQp4ChhzdHJpbmcuaXBfd2l0aF9wcmVmaXhsZW4SH3ZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUCBwcmVmaXgaOyFydWxlcy5pcF93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCgpCngKHnN0cmluZy5pcF93aXRoX3ByZWZpeGxlbl9lbXB0eRIudmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIHByZWZpeBomIXJ1bGVzLmlwX3dpdGhfcHJlZml4bGVuIHx8IHRoaXMgIT0gJydIABLPAgoTaXB2NF93aXRoX3ByZWZpeGxlbhgbIAEoCEKvAsJIqwIKkwEKGnN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuEjV2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBo+IXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCkKkgEKIHN0cmluZy5pcHY0X3dpdGhfcHJlZml4bGVuX2VtcHR5EkR2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzIHdpdGggcHJlZml4IGxlbmd0aBooIXJ1bGVzLmlwdjRfd2l0aF9wcmVmaXhsZW4gfHwgdGhpcyAhPSAnJ0gAEs8CChNpcHY2X3dpdGhfcHJlZml4bGVuGBwgASgIQq8CwkirAgqTAQoac3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW4SNXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGj4hcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCg2KQqSAQogc3RyaW5nLmlwdjZfd2l0aF9wcmVmaXhsZW5fZW1wdHkSRHZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBJUHY2IGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoGighcnVsZXMuaXB2Nl93aXRoX3ByZWZpeGxlbiB8fCB0aGlzICE9ICcnSAAS8gEKCWlwX3ByZWZpeBgdIAEoCELcAcJI2AEKbAoQc3RyaW5nLmlwX3ByZWZpeBIfdmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQIHByZWZpeBo3IXJ1bGVzLmlwX3ByZWZpeCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNJcFByZWZpeCh0cnVlKQpoChZzdHJpbmcuaXBfcHJlZml4X2VtcHR5Ei52YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVAgcHJlZml4Gh4hcnVsZXMuaXBfcHJlZml4IHx8IHRoaXMgIT0gJydIABKDAgoLaXB2NF9wcmVmaXgYHiABKAhC6wHCSOcBCnUKEnN0cmluZy5pcHY0X3ByZWZpeBIhdmFsdWUgbXVzdCBiZSBhIHZhbGlkIElQdjQgcHJlZml4GjwhcnVsZXMuaXB2NF9wcmVmaXggfHwgdGhpcyA9PSAnJyB8fCB0aGlzLmlzSXBQcmVmaXgoNCwgdHJ1ZSkKbgoYc3RyaW5nLmlwdjRfcHJlZml4X2VtcHR5EjB2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBwcmVmaXgaICFydWxlcy5pcHY0X3ByZWZpeCB8fCB0aGlzICE9ICcnSAASgwIKC2lwdjZfcHJlZml4GB8gASgIQusBwkjnAQp1ChJzdHJpbmcuaXB2Nl9wcmVmaXgSIXZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IHByZWZpeBo8IXJ1bGVzLmlwdjZfcHJlZml4IHx8IHRoaXMgPT0gJycgfHwgdGhpcy5pc0lwUHJlZml4KDYsIHRydWUpCm4KGHN0cmluZy5pcHY2X3ByZWZpeF9lbXB0eRIwdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgcHJlZml4GiAhcnVsZXMuaXB2Nl9wcmVmaXggfHwgdGhpcyAhPSAnJ0gAErUCCg1ob3N0X2FuZF9wb3J0GCAgASgIQpsCwkiXAgqZAQoUc3RyaW5nLmhvc3RfYW5kX3BvcnQSQXZhbHVlIG11c3QgYmUgYSB2YWxpZCBob3N0IChob3N0bmFtZSBvciBJUCBhZGRyZXNzKSBhbmQgcG9ydCBwYWlyGj4hcnVsZXMuaG9zdF9hbmRfcG9ydCB8fCB0aGlzID09ICcnIHx8IHRoaXMuaXNIb3N0QW5kUG9ydCh0cnVlKQp5ChpzdHJpbmcuaG9zdF9hbmRfcG9ydF9lbXB0eRI3dmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIGhvc3QgYW5kIHBvcnQgcGFpchoiIXJ1bGVzLmhvc3RfYW5kX3BvcnQgfHwgdGhpcyAhPSAnJ0gAEvUBCgR1bGlkGCMgASgIQuQBwkjgAQqCAQoLc3RyaW5nLnVsaWQSGnZhbHVlIG11c3QgYmUgYSB2YWxpZCBVTElEGlchcnVsZXMudWxpZCB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcygnXlswLTddWzAtOUEtSEpLTU5QLVRWLVphLWhqa21ucC10di16XXsyNX0kJykKWQoRc3RyaW5nLnVsaWRfZW1wdHkSKXZhbHVlIGlzIGVtcHR5LCB3aGljaCBpcyBub3QgYSB2YWxpZCBVTElEGhkhcnVsZXMudWxpZCB8fCB0aGlzICE9ICcnSAASqAUKEHdlbGxfa25vd25fcmVnZXgYGCABKA4yGC5idWYudmFsaWRhdGUuS25vd25SZWdleELxBMJI7QQK8AEKI3N0cmluZy53ZWxsX2tub3duX3JlZ2V4LmhlYWRlcl9uYW1lEiZ2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSFRUUCBoZWFkZXIgbmFtZRqgAXJ1bGVzLndlbGxfa25vd25fcmVnZXggIT0gMSB8fCB0aGlzID09ICcnIHx8IHRoaXMubWF0Y2hlcyghaGFzKHJ1bGVzLnN0cmljdCkgfHwgcnVsZXMuc3RyaWN0ID8nXjo/WzAtOWEtekEtWiEjJCUmXCcqKy0uXl98flx4NjBdKyQnIDonXlteXHUwMDAwXHUwMDBBXHUwMDBEXSskJykKjQEKKXN0cmluZy53ZWxsX2tub3duX3JlZ2V4LmhlYWRlcl9uYW1lX2VtcHR5EjV2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSFRUUCBoZWFkZXIgbmFtZRopcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAxIHx8IHRoaXMgIT0gJycK5wEKJHN0cmluZy53ZWxsX2tub3duX3JlZ2V4LmhlYWRlcl92YWx1ZRIndmFsdWUgbXVzdCBiZSBhIHZhbGlkIEhUVFAgaGVhZGVyIHZhbHVlGpUBcnVsZXMud2VsbF9rbm93bl9yZWdleCAhPSAyIHx8IHRoaXMubWF0Y2hlcyghaGFzKHJ1bGVzLnN0cmljdCkgfHwgcnVsZXMuc3RyaWN0ID8nXlteXHUwMDAwLVx1MDAwOFx1MDAwQS1cdTAwMUZcdTAwN0ZdKiQnIDonXlteXHUwMDAwXHUwMDBBXHUwMDBEXSokJylIABIOCgZzdHJpY3QYGSABKAgSLAoHZXhhbXBsZRgiIAMoCUIbwkgYChYKDnN0cmluZy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLCEgoKQnl0ZXNSdWxlcxKAAQoFY29uc3QYASABKAxCccJIbgpsCgtieXRlcy5jb25zdBpddGhpcyAhPSBnZXRGaWVsZChydWxlcywgJ2NvbnN0JykgPyAndmFsdWUgbXVzdCBiZSAleCcuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2NvbnN0JyldKSA6ICcnEngKA2xlbhgNIAEoBEJrwkhoCmYKCWJ5dGVzLmxlbhpZdWludCh0aGlzLnNpemUoKSkgIT0gcnVsZXMubGVuID8gJ3ZhbHVlIGxlbmd0aCBtdXN0IGJlICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLmxlbl0pIDogJycSkAEKB21pbl9sZW4YAiABKARCf8JIfAp6Cg1ieXRlcy5taW5fbGVuGml1aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9sZW4gPyAndmFsdWUgbGVuZ3RoIG11c3QgYmUgYXQgbGVhc3QgJXMgYnl0ZXMnLmZvcm1hdChbcnVsZXMubWluX2xlbl0pIDogJycSiAEKB21heF9sZW4YAyABKARCd8JIdApyCg1ieXRlcy5tYXhfbGVuGmF1aW50KHRoaXMuc2l6ZSgpKSA+IHJ1bGVzLm1heF9sZW4gPyAndmFsdWUgbXVzdCBiZSBhdCBtb3N0ICVzIGJ5dGVzJy5mb3JtYXQoW3J1bGVzLm1heF9sZW5dKSA6ICcnEpABCgdwYXR0ZXJuGAQgASgJQn/CSHwKegoNYnl0ZXMucGF0dGVybhppIXN0cmluZyh0aGlzKS5tYXRjaGVzKHJ1bGVzLnBhdHRlcm4pID8gJ3ZhbHVlIG11c3QgbWF0Y2ggcmVnZXggcGF0dGVybiBgJXNgJy5mb3JtYXQoW3J1bGVzLnBhdHRlcm5dKSA6ICcnEoEBCgZwcmVmaXgYBSABKAxCccJIbgpsCgxieXRlcy5wcmVmaXgaXCF0aGlzLnN0YXJ0c1dpdGgocnVsZXMucHJlZml4KSA/ICd2YWx1ZSBkb2VzIG5vdCBoYXZlIHByZWZpeCAleCcuZm9ybWF0KFtydWxlcy5wcmVmaXhdKSA6ICcnEn8KBnN1ZmZpeBgGIAEoDEJvwkhsCmoKDGJ5dGVzLnN1ZmZpeBpaIXRoaXMuZW5kc1dpdGgocnVsZXMuc3VmZml4KSA/ICd2YWx1ZSBkb2VzIG5vdCBoYXZlIHN1ZmZpeCAleCcuZm9ybWF0KFtydWxlcy5zdWZmaXhdKSA6ICcnEoMBCghjb250YWlucxgHIAEoDEJxwkhuCmwKDmJ5dGVzLmNvbnRhaW5zGlohdGhpcy5jb250YWlucyhydWxlcy5jb250YWlucykgPyAndmFsdWUgZG9lcyBub3QgY29udGFpbiAleCcuZm9ybWF0KFtydWxlcy5jb250YWluc10pIDogJycSpwEKAmluGAggAygMQpoBwkiWAQqTAQoIYnl0ZXMuaW4ahgFnZXRGaWVsZChydWxlcywgJ2luJykuc2l6ZSgpID4gMCAmJiAhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ2CgZub3RfaW4YCSADKAxCZsJIYwphCgxieXRlcy5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxLrAQoCaXAYCiABKAhC3AHCSNgBCnQKCGJ5dGVzLmlwEiB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgSVAgYWRkcmVzcxpGIXJ1bGVzLmlwIHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNCB8fCB0aGlzLnNpemUoKSA9PSAxNgpgCg5ieXRlcy5pcF9lbXB0eRIvdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQIGFkZHJlc3MaHSFydWxlcy5pcCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS5AEKBGlwdjQYCyABKAhC0wHCSM8BCmUKCmJ5dGVzLmlwdjQSInZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY0IGFkZHJlc3MaMyFydWxlcy5pcHY0IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gNApmChBieXRlcy5pcHY0X2VtcHR5EjF2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgSVB2NCBhZGRyZXNzGh8hcnVsZXMuaXB2NCB8fCB0aGlzLnNpemUoKSAhPSAwSAAS5QEKBGlwdjYYDCABKAhC1AHCSNABCmYKCmJ5dGVzLmlwdjYSInZhbHVlIG11c3QgYmUgYSB2YWxpZCBJUHY2IGFkZHJlc3MaNCFydWxlcy5pcHY2IHx8IHRoaXMuc2l6ZSgpID09IDAgfHwgdGhpcy5zaXplKCkgPT0gMTYKZgoQYnl0ZXMuaXB2Nl9lbXB0eRIxdmFsdWUgaXMgZW1wdHksIHdoaWNoIGlzIG5vdCBhIHZhbGlkIElQdjYgYWRkcmVzcxofIXJ1bGVzLmlwdjYgfHwgdGhpcy5zaXplKCkgIT0gMEgAEtUBCgR1dWlkGA8gASgIQsQBwkjAAQpeCgpieXRlcy51dWlkEhp2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgVVVJRBo0IXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgPT0gMCB8fCB0aGlzLnNpemUoKSA9PSAxNgpeChBieXRlcy51dWlkX2VtcHR5Eil2YWx1ZSBpcyBlbXB0eSwgd2hpY2ggaXMgbm90IGEgdmFsaWQgVVVJRBofIXJ1bGVzLnV1aWQgfHwgdGhpcy5zaXplKCkgIT0gMEgAEisKB2V4YW1wbGUYDiADKAxCGsJIFwoVCg1ieXRlcy5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAJCDAoKd2VsbF9rbm93biLUAwoJRW51bVJ1bGVzEoIBCgVjb25zdBgBIAEoBUJzwkhwCm4KCmVudW0uY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxIUCgxkZWZpbmVkX29ubHkYAiABKAgSfgoCaW4YAyADKAVCcsJIbwptCgdlbnVtLmluGmIhKHRoaXMgaW4gZ2V0RmllbGQocnVsZXMsICdpbicpKSA/ICd2YWx1ZSBtdXN0IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdpbicpXSkgOiAnJxJ1CgZub3RfaW4YBCADKAVCZcJIYgpgCgtlbnVtLm5vdF9pbhpRdGhpcyBpbiBydWxlcy5ub3RfaW4gPyAndmFsdWUgbXVzdCBub3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtydWxlcy5ub3RfaW5dKSA6ICcnEioKB2V4YW1wbGUYBSADKAVCGcJIFgoUCgxlbnVtLmV4YW1wbGUaBHRydWUqCQjoBxCAgICAAiL7AwoNUmVwZWF0ZWRSdWxlcxKeAQoJbWluX2l0ZW1zGAEgASgEQooBwkiGAQqDAQoScmVwZWF0ZWQubWluX2l0ZW1zGm11aW50KHRoaXMuc2l6ZSgpKSA8IHJ1bGVzLm1pbl9pdGVtcyA/ICd2YWx1ZSBtdXN0IGNvbnRhaW4gYXQgbGVhc3QgJWQgaXRlbShzKScuZm9ybWF0KFtydWxlcy5taW5faXRlbXNdKSA6ICcnEqIBCgltYXhfaXRlbXMYAiABKARCjgHCSIoBCocBChJyZXBlYXRlZC5tYXhfaXRlbXMacXVpbnQodGhpcy5zaXplKCkpID4gcnVsZXMubWF4X2l0ZW1zID8gJ3ZhbHVlIG11c3QgY29udGFpbiBubyBtb3JlIHRoYW4gJXMgaXRlbShzKScuZm9ybWF0KFtydWxlcy5tYXhfaXRlbXNdKSA6ICcnEnAKBnVuaXF1ZRgDIAEoCEJgwkhdClsKD3JlcGVhdGVkLnVuaXF1ZRIocmVwZWF0ZWQgdmFsdWUgbXVzdCBjb250YWluIHVuaXF1ZSBpdGVtcxoeIXJ1bGVzLnVuaXF1ZSB8fCB0aGlzLnVuaXF1ZSgpEicKBWl0ZW1zGAQgASgLMhguYnVmLnZhbGlkYXRlLkZpZWxkUnVsZXMqCQjoBxCAgICAAiKKAwoITWFwUnVsZXMSjwEKCW1pbl9wYWlycxgBIAEoBEJ8wkh5CncKDW1hcC5taW5fcGFpcnMaZnVpbnQodGhpcy5zaXplKCkpIDwgcnVsZXMubWluX3BhaXJzID8gJ21hcCBtdXN0IGJlIGF0IGxlYXN0ICVkIGVudHJpZXMnLmZvcm1hdChbcnVsZXMubWluX3BhaXJzXSkgOiAnJxKOAQoJbWF4X3BhaXJzGAIgASgEQnvCSHgKdgoNbWFwLm1heF9wYWlycxpldWludCh0aGlzLnNpemUoKSkgPiBydWxlcy5tYXhfcGFpcnMgPyAnbWFwIG11c3QgYmUgYXQgbW9zdCAlZCBlbnRyaWVzJy5mb3JtYXQoW3J1bGVzLm1heF9wYWlyc10pIDogJycSJgoEa2V5cxgEIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzEigKBnZhbHVlcxgFIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzKgkI6AcQgICAgAIiJgoIQW55UnVsZXMSCgoCaW4YAiADKAkSDgoGbm90X2luGAMgAygJIpkXCg1EdXJhdGlvblJ1bGVzEqEBCgVjb25zdBgCIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkJ3wkh0CnIKDmR1cmF0aW9uLmNvbnN0GmB0aGlzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKSA/ICd2YWx1ZSBtdXN0IGVxdWFsICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKV0pIDogJycSqAEKAmx0GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQn/CSHwKegoLZHVyYXRpb24ubHQaayFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID49IHJ1bGVzLmx0PyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMubHRdKSA6ICcnSAASugEKA2x0ZRgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbkKPAcJIiwEKiAEKDGR1cmF0aW9uLmx0ZRp4IWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPiBydWxlcy5sdGU/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5sdGVdKSA6ICcnSAASwQcKAmd0GAUgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQpcHwkiTBwp9CgtkdXJhdGlvbi5ndBpuIWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPD0gcnVsZXMuZ3Q/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndF0pIDogJycKtgEKDmR1cmF0aW9uLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq+AQoYZHVyYXRpb24uZ3RfbHRfZXhjbHVzaXZlGqEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ICYmIChydWxlcy5sdCA8PSB0aGlzICYmIHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgb3IgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0LCBydWxlcy5sdF0pIDogJycKxgEKD2R1cmF0aW9uLmd0X2x0ZRqyAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndCAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0ZV0pIDogJycKzgEKGWR1cmF0aW9uLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEo0ICgNndGUYBiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25C4gfCSN4HCosBCgxkdXJhdGlvbi5ndGUaeyFoYXMocnVsZXMubHQpICYmICFoYXMocnVsZXMubHRlKSAmJiB0aGlzIDwgcnVsZXMuZ3RlPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlXSkgOiAnJwrFAQoPZHVyYXRpb24uZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs0BChlkdXJhdGlvbi5ndGVfbHRfZXhjbHVzaXZlGq8BaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA8IHJ1bGVzLmd0ZSAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndGUsIHJ1bGVzLmx0XSkgOiAnJwrVAQoQZHVyYXRpb24uZ3RlX2x0ZRrAAWhhcyhydWxlcy5sdGUpICYmIHJ1bGVzLmx0ZSA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPiBydWxlcy5sdGUgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRlXSkgOiAnJwrdAQoaZHVyYXRpb24uZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESnQEKAmluGAcgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQnbCSHMKcQoLZHVyYXRpb24uaW4aYiEodGhpcyBpbiBnZXRGaWVsZChydWxlcywgJ2luJykpID8gJ3ZhbHVlIG11c3QgYmUgaW4gbGlzdCAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEpQBCgZub3RfaW4YCCADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25CacJIZgpkCg9kdXJhdGlvbi5ub3RfaW4aUXRoaXMgaW4gcnVsZXMubm90X2luID8gJ3ZhbHVlIG11c3Qgbm90IGJlIGluIGxpc3QgJXMnLmZvcm1hdChbcnVsZXMubm90X2luXSkgOiAnJxJJCgdleGFtcGxlGAkgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQh3CSBoKGAoQZHVyYXRpb24uZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4i/QUKDkZpZWxkTWFza1J1bGVzEr8BCgVjb25zdBgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tCkwHCSI8BCowBChBmaWVsZF9tYXNrLmNvbnN0Gnh0aGlzLnBhdGhzICE9IGdldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRocyA/ICd2YWx1ZSBtdXN0IGVxdWFsIHBhdGhzICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnY29uc3QnKS5wYXRoc10pIDogJycS2QEKAmluGAIgAygJQswBwkjIAQrFAQoNZmllbGRfbWFzay5pbhqzASF0aGlzLnBhdGhzLmFsbChwLCBwIGluIGdldEZpZWxkKHJ1bGVzLCAnaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ2luJykuZXhpc3RzKGYsIHAuc3RhcnRzV2l0aChmKycuJykpKSA/ICd2YWx1ZSBtdXN0IG9ubHkgY29udGFpbiBwYXRocyBpbiAlcycuZm9ybWF0KFtnZXRGaWVsZChydWxlcywgJ2luJyldKSA6ICcnEvMBCgZub3RfaW4YAyADKAlC4gHCSN4BCtsBChFmaWVsZF9tYXNrLm5vdF9pbhrFASF0aGlzLnBhdGhzLmFsbChwLCAhKHAgaW4gZ2V0RmllbGQocnVsZXMsICdub3RfaW4nKSB8fCBnZXRGaWVsZChydWxlcywgJ25vdF9pbicpLmV4aXN0cyhmLCBwLnN0YXJ0c1dpdGgoZisnLicpKSkpID8gJ3ZhbHVlIG11c3Qgbm90IGNvbnRhaW4gYW55IHBhdGhzIGluICVzJy5mb3JtYXQoW2dldEZpZWxkKHJ1bGVzLCAnbm90X2luJyldKSA6ICcnEkwKB2V4YW1wbGUYBCADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrQh/CSBwKGgoSZmllbGRfbWFzay5leGFtcGxlGgR0cnVlKgkI6AcQgICAgAIikhgKDlRpbWVzdGFtcFJ1bGVzEqMBCgVjb25zdBgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCeMJIdQpzCg90aW1lc3RhbXAuY29uc3QaYHRoaXMgIT0gZ2V0RmllbGQocnVsZXMsICdjb25zdCcpID8gJ3ZhbHVlIG11c3QgZXF1YWwgJXMnLmZvcm1hdChbZ2V0RmllbGQocnVsZXMsICdjb25zdCcpXSkgOiAnJxKrAQoCbHQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQoABwkh9CnsKDHRpbWVzdGFtcC5sdBprIWhhcyhydWxlcy5ndGUpICYmICFoYXMocnVsZXMuZ3QpICYmIHRoaXMgPj0gcnVsZXMubHQ/ICd2YWx1ZSBtdXN0IGJlIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5sdF0pIDogJydIABK8AQoDbHRlGAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEKQAcJIjAEKiQEKDXRpbWVzdGFtcC5sdGUaeCFoYXMocnVsZXMuZ3RlKSAmJiAhaGFzKHJ1bGVzLmd0KSAmJiB0aGlzID4gcnVsZXMubHRlPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMubHRlXSkgOiAnJ0gAEmwKBmx0X25vdxgHIAEoCEJawkhXClUKEHRpbWVzdGFtcC5sdF9ub3caQShydWxlcy5sdF9ub3cgJiYgdGhpcyA+IG5vdykgPyAndmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gbm93JyA6ICcnSAASxwcKAmd0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEKcB8JImAcKfgoMdGltZXN0YW1wLmd0Gm4haGFzKHJ1bGVzLmx0KSAmJiAhaGFzKHJ1bGVzLmx0ZSkgJiYgdGhpcyA8PSBydWxlcy5ndD8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0XSkgOiAnJwq3AQoPdGltZXN0YW1wLmd0X2x0GqMBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndCAmJiAodGhpcyA+PSBydWxlcy5sdCB8fCB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIGFuZCBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3QsIHJ1bGVzLmx0XSkgOiAnJwq/AQoZdGltZXN0YW1wLmd0X2x0X2V4Y2x1c2l2ZRqhAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndCAmJiAocnVsZXMubHQgPD0gdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRdKSA6ICcnCscBChB0aW1lc3RhbXAuZ3RfbHRlGrIBaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ICYmICh0aGlzID4gcnVsZXMubHRlIHx8IHRoaXMgPD0gcnVsZXMuZ3QpPyAndmFsdWUgbXVzdCBiZSBncmVhdGVyIHRoYW4gJXMgYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJwrPAQoadGltZXN0YW1wLmd0X2x0ZV9leGNsdXNpdmUasAFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndCAmJiAocnVsZXMubHRlIDwgdGhpcyAmJiB0aGlzIDw9IHJ1bGVzLmd0KT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuICVzIG9yIGxlc3MgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndCwgcnVsZXMubHRlXSkgOiAnJ0gBEpMICgNndGUYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQucHwkjjBwqMAQoNdGltZXN0YW1wLmd0ZRp7IWhhcyhydWxlcy5sdCkgJiYgIWhhcyhydWxlcy5sdGUpICYmIHRoaXMgPCBydWxlcy5ndGU/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcycuZm9ybWF0KFtydWxlcy5ndGVdKSA6ICcnCsYBChB0aW1lc3RhbXAuZ3RlX2x0GrEBaGFzKHJ1bGVzLmx0KSAmJiBydWxlcy5sdCA+PSBydWxlcy5ndGUgJiYgKHRoaXMgPj0gcnVsZXMubHQgfHwgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBhbmQgbGVzcyB0aGFuICVzJy5mb3JtYXQoW3J1bGVzLmd0ZSwgcnVsZXMubHRdKSA6ICcnCs4BChp0aW1lc3RhbXAuZ3RlX2x0X2V4Y2x1c2l2ZRqvAWhhcyhydWxlcy5sdCkgJiYgcnVsZXMubHQgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0IDw9IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdF0pIDogJycK1gEKEXRpbWVzdGFtcC5ndGVfbHRlGsABaGFzKHJ1bGVzLmx0ZSkgJiYgcnVsZXMubHRlID49IHJ1bGVzLmd0ZSAmJiAodGhpcyA+IHJ1bGVzLmx0ZSB8fCB0aGlzIDwgcnVsZXMuZ3RlKT8gJ3ZhbHVlIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICVzIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnCt4BCht0aW1lc3RhbXAuZ3RlX2x0ZV9leGNsdXNpdmUavgFoYXMocnVsZXMubHRlKSAmJiBydWxlcy5sdGUgPCBydWxlcy5ndGUgJiYgKHJ1bGVzLmx0ZSA8IHRoaXMgJiYgdGhpcyA8IHJ1bGVzLmd0ZSk/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAlcyBvciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gJXMnLmZvcm1hdChbcnVsZXMuZ3RlLCBydWxlcy5sdGVdKSA6ICcnSAESbwoGZ3Rfbm93GAggASgIQl3CSFoKWAoQdGltZXN0YW1wLmd0X25vdxpEKHJ1bGVzLmd0X25vdyAmJiB0aGlzIDwgbm93KSA/ICd2YWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBub3cnIDogJydIARK4AQoGd2l0aGluGAkgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uQowBwkiIAQqFAQoQdGltZXN0YW1wLndpdGhpbhpxdGhpcyA8IG5vdy1ydWxlcy53aXRoaW4gfHwgdGhpcyA+IG5vdytydWxlcy53aXRoaW4gPyAndmFsdWUgbXVzdCBiZSB3aXRoaW4gJXMgb2Ygbm93Jy5mb3JtYXQoW3J1bGVzLndpdGhpbl0pIDogJycSSwoHZXhhbXBsZRgKIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCHsJIGwoZChF0aW1lc3RhbXAuZXhhbXBsZRoEdHJ1ZSoJCOgHEICAgIACQgsKCWxlc3NfdGhhbkIOCgxncmVhdGVyX3RoYW4iOQoKVmlvbGF0aW9ucxIrCgp2aW9sYXRpb25zGAEgAygLMhcuYnVmLnZhbGlkYXRlLlZpb2xhdGlvbiKfAQoJVmlvbGF0aW9uEiYKBWZpZWxkGAUgASgLMhcuYnVmLnZhbGlkYXRlLkZpZWxkUGF0aBIlCgRydWxlGAYgASgLMhcuYnVmLnZhbGlkYXRlLkZpZWxkUGF0aBIPCgdydWxlX2lkGAIgASgJEg8KB21lc3NhZ2UYAyABKAkSDwoHZm9yX2tleRgEIAEoCEoECAEQAlIKZmllbGRfcGF0aCI9CglGaWVsZFBhdGgSMAoIZWxlbWVudHMYASADKAsyHi5idWYudmFsaWRhdGUuRmllbGRQYXRoRWxlbWVudCLpAgoQRmllbGRQYXRoRWxlbWVudBIUCgxmaWVsZF9udW1iZXIYASABKAUSEgoKZmllbGRfbmFtZRgCIAEoCRI+CgpmaWVsZF90eXBlGAMgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSPAoIa2V5X3R5cGUYBCABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZRI+Cgp2YWx1ZV90eXBlGAUgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGUSDwoFaW5kZXgYBiABKARIABISCghib29sX2tleRgHIAEoCEgAEhEKB2ludF9rZXkYCCABKANIABISCgh1aW50X2tleRgJIAEoBEgAEhQKCnN0cmluZ19rZXkYCiABKAlIAEILCglzdWJzY3JpcHQqoQEKBklnbm9yZRIWChJJR05PUkVfVU5TUEVDSUZJRUQQABIYChRJR05PUkVfSUZfWkVST19WQUxVRRABEhEKDUlHTk9SRV9BTFdBWVMQAyIECAIQAioMSUdOT1JFX0VNUFRZKg5JR05PUkVfREVGQVVMVCoXSUdOT1JFX0lGX0RFRkFVTFRfVkFMVUUqFUlHTk9SRV9JRl9VTlBPUFVMQVRFRCpuCgpLbm93blJlZ2V4EhsKF0tOT1dOX1JFR0VYX1VOU1BFQ0lGSUVEEAASIAocS05PV05fUkVHRVhfSFRUUF9IRUFERVJfTkFNRRABEiEKHUtOT1dOX1JFR0VYX0hUVFBfSEVBREVSX1ZBTFVFEAI6VgoHbWVzc2FnZRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiHCSABKAsyGi5idWYudmFsaWRhdGUuTWVzc2FnZVJ1bGVzUgdtZXNzYWdlOk4KBW9uZW9mEh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9ucxiHCSABKAsyGC5idWYudmFsaWRhdGUuT25lb2ZSdWxlc1IFb25lb2Y6TgoFZmllbGQSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGIcJIAEoCzIYLmJ1Zi52YWxpZGF0ZS5GaWVsZFJ1bGVzUgVmaWVsZDpdCgpwcmVkZWZpbmVkEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiICSABKAsyHS5idWYudmFsaWRhdGUuUHJlZGVmaW5lZFJ1bGVzUgpwcmVkZWZpbmVkQm4KEmJ1aWxkLmJ1Zi52YWxpZGF0ZUINVmFsaWRhdGVQcm90b1ABWkdidWYuYnVpbGQvZ2VuL2dvL2J1ZmJ1aWxkL3Byb3RvdmFsaWRhdGUvcHJvdG9jb2xidWZmZXJzL2dvL2J1Zi92YWxpZGF0ZQ",[y,At,zo,Gt]),V0=d(B,0),B0=d(B,1),E0=d(B,2),X0=d(B,3),W0=d(B,4),w0=d(B,5),R0=d(B,6),J0=d(B,7),k0=d(B,8),M0=d(B,9),F0=d(B,10),Y0=d(B,11),z0=d(B,12),N0=d(B,13),L0=d(B,14),H0=d(B,15),T0=d(B,16),U0=d(B,17),D0=d(B,18),K0=d(B,19),_0=d(B,20),Q0=d(B,21),P0=d(B,22),O0=d(B,23),j0=d(B,24),$0=d(B,25),q0=d(B,26),eA=d(B,27),tA=d(B,28),nA=d(B,29),oA=d(B,30),rA=d(B,31),Ja;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.IF_ZERO_VALUE=1]="IF_ZERO_VALUE",t[t.ALWAYS=3]="ALWAYS"})(Ja||(Ja={}));var iA=C(B,0),ka;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.HTTP_HEADER_NAME=1]="HTTP_HEADER_NAME",t[t.HTTP_HEADER_VALUE=2]="HTTP_HEADER_VALUE"})(ka||(ka={}));var aA=C(B,1),sA=U(B,0),lA=U(B,1),cA=U(B,2),dA=U(B,3);var zt=S("ChVnb29nbGUvYXBpL2h0dHAucHJvdG8SCmdvb2dsZS5hcGkiVAoESHR0cBIjCgVydWxlcxgBIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGUSJwofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCCKBAgoISHR0cFJ1bGUSEAoIc2VsZWN0b3IYASABKAkSDQoDZ2V0GAIgASgJSAASDQoDcHV0GAMgASgJSAASDgoEcG9zdBgEIAEoCUgAEhAKBmRlbGV0ZRgFIAEoCUgAEg8KBXBhdGNoGAYgASgJSAASLwoGY3VzdG9tGAggASgLMh0uZ29vZ2xlLmFwaS5DdXN0b21IdHRwUGF0dGVybkgAEgwKBGJvZHkYByABKAkSFQoNcmVzcG9uc2VfYm9keRgMIAEoCRIxChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZUIJCgdwYXR0ZXJuIi8KEUN1c3RvbUh0dHBQYXR0ZXJuEgwKBGtpbmQYASABKAkSDAoEcGF0aBgCIAEoCUJnCg5jb20uZ29vZ2xlLmFwaUIJSHR0cFByb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSWIGcHJvdG8z"),pA=d(zt,0),gA=d(zt,1),hA=d(zt,2);var hr=S("Chxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvEgpnb29nbGUuYXBpOksKBGh0dHASHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxiwyrwiIAEoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBGh0dHBCbgoOY29tLmdvb2dsZS5hcGlCEEFubm90YXRpb25zUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnOiAgRHQVBJYgZwcm90bzM",[zt,y]),GA=U(hr,0);var fr=S("Ch1nb29nbGUvYXBpL2xhdW5jaF9zdGFnZS5wcm90bxIKZ29vZ2xlLmFwaSqMAQoLTGF1bmNoU3RhZ2USHAoYTEFVTkNIX1NUQUdFX1VOU1BFQ0lGSUVEEAASEQoNVU5JTVBMRU1FTlRFRBAGEg0KCVBSRUxBVU5DSBAHEhAKDEVBUkxZX0FDQ0VTUxABEgkKBUFMUEhBEAISCAoEQkVUQRADEgYKAkdBEAQSDgoKREVQUkVDQVRFRBAFQloKDmNvbS5nb29nbGUuYXBpQhBMYXVuY2hTdGFnZVByb3RvUAFaLWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpO2FwaaICBEdBUEliBnByb3RvMw"),Ma;(function(t){t[t.LAUNCH_STAGE_UNSPECIFIED=0]="LAUNCH_STAGE_UNSPECIFIED",t[t.UNIMPLEMENTED=6]="UNIMPLEMENTED",t[t.PRELAUNCH=7]="PRELAUNCH",t[t.EARLY_ACCESS=1]="EARLY_ACCESS",t[t.ALPHA=2]="ALPHA",t[t.BETA=3]="BETA",t[t.GA=4]="GA",t[t.DEPRECATED=5]="DEPRECATED"})(Ma||(Ma={}));var xA=C(fr,0);var M=S("Chdnb29nbGUvYXBpL2NsaWVudC5wcm90bxIKZ29vZ2xlLmFwaSK+AQoWQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxIeChJyZWZlcmVuY2VfZG9jc191cmkYASABKAlCAhgBEjoKDGRlc3RpbmF0aW9ucxgCIAMoDjIkLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeURlc3RpbmF0aW9uEkgKGnNlbGVjdGl2ZV9nYXBpY19nZW5lcmF0aW9uGAMgASgLMiQuZ29vZ2xlLmFwaS5TZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24i+wMKFUNsaWVudExpYnJhcnlTZXR0aW5ncxIPCgd2ZXJzaW9uGAEgASgJEi0KDGxhdW5jaF9zdGFnZRgCIAEoDjIXLmdvb2dsZS5hcGkuTGF1bmNoU3RhZ2USGgoScmVzdF9udW1lcmljX2VudW1zGAMgASgIEi8KDWphdmFfc2V0dGluZ3MYFSABKAsyGC5nb29nbGUuYXBpLkphdmFTZXR0aW5ncxItCgxjcHBfc2V0dGluZ3MYFiABKAsyFy5nb29nbGUuYXBpLkNwcFNldHRpbmdzEi0KDHBocF9zZXR0aW5ncxgXIAEoCzIXLmdvb2dsZS5hcGkuUGhwU2V0dGluZ3MSMwoPcHl0aG9uX3NldHRpbmdzGBggASgLMhouZ29vZ2xlLmFwaS5QeXRob25TZXR0aW5ncxIvCg1ub2RlX3NldHRpbmdzGBkgASgLMhguZ29vZ2xlLmFwaS5Ob2RlU2V0dGluZ3MSMwoPZG90bmV0X3NldHRpbmdzGBogASgLMhouZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncxIvCg1ydWJ5X3NldHRpbmdzGBsgASgLMhguZ29vZ2xlLmFwaS5SdWJ5U2V0dGluZ3MSKwoLZ29fc2V0dGluZ3MYHCABKAsyFi5nb29nbGUuYXBpLkdvU2V0dGluZ3MiqAMKClB1Ymxpc2hpbmcSMwoPbWV0aG9kX3NldHRpbmdzGAIgAygLMhouZ29vZ2xlLmFwaS5NZXRob2RTZXR0aW5ncxIVCg1uZXdfaXNzdWVfdXJpGGUgASgJEhkKEWRvY3VtZW50YXRpb25fdXJpGGYgASgJEhYKDmFwaV9zaG9ydF9uYW1lGGcgASgJEhQKDGdpdGh1Yl9sYWJlbBhoIAEoCRIeChZjb2Rlb3duZXJfZ2l0aHViX3RlYW1zGGkgAygJEhYKDmRvY190YWdfcHJlZml4GGogASgJEjsKDG9yZ2FuaXphdGlvbhhrIAEoDjIlLmdvb2dsZS5hcGkuQ2xpZW50TGlicmFyeU9yZ2FuaXphdGlvbhI7ChBsaWJyYXJ5X3NldHRpbmdzGG0gAygLMiEuZ29vZ2xlLmFwaS5DbGllbnRMaWJyYXJ5U2V0dGluZ3MSKQohcHJvdG9fcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG4gASgJEigKIHJlc3RfcmVmZXJlbmNlX2RvY3VtZW50YXRpb25fdXJpGG8gASgJIuMBCgxKYXZhU2V0dGluZ3MSFwoPbGlicmFyeV9wYWNrYWdlGAEgASgJEkwKE3NlcnZpY2VfY2xhc3NfbmFtZXMYAiADKAsyLy5nb29nbGUuYXBpLkphdmFTZXR0aW5ncy5TZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EjIKBmNvbW1vbhgDIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxo4ChZTZXJ2aWNlQ2xhc3NOYW1lc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiQQoLQ3BwU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIkEKC1BocFNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKbAgoOUHl0aG9uU2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEk4KFWV4cGVyaW1lbnRhbF9mZWF0dXJlcxgCIAEoCzIvLmdvb2dsZS5hcGkuUHl0aG9uU2V0dGluZ3MuRXhwZXJpbWVudGFsRmVhdHVyZXMahAEKFEV4cGVyaW1lbnRhbEZlYXR1cmVzEh0KFXJlc3RfYXN5bmNfaW9fZW5hYmxlZBgBIAEoCBInCh9wcm90b2J1Zl9weXRob25pY190eXBlc19lbmFibGVkGAIgASgIEiQKHHVudmVyc2lvbmVkX3BhY2thZ2VfZGlzYWJsZWQYAyABKAgiQgoMTm9kZVNldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncyKqAwoORG90bmV0U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzEkkKEHJlbmFtZWRfc2VydmljZXMYAiADKAsyLy5nb29nbGUuYXBpLkRvdG5ldFNldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5EksKEXJlbmFtZWRfcmVzb3VyY2VzGAMgAygLMjAuZ29vZ2xlLmFwaS5Eb3RuZXRTZXR0aW5ncy5SZW5hbWVkUmVzb3VyY2VzRW50cnkSGQoRaWdub3JlZF9yZXNvdXJjZXMYBCADKAkSIAoYZm9yY2VkX25hbWVzcGFjZV9hbGlhc2VzGAUgAygJEh4KFmhhbmR3cml0dGVuX3NpZ25hdHVyZXMYBiADKAkaNgoUUmVuYW1lZFNlcnZpY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ARo3ChVSZW5hbWVkUmVzb3VyY2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJCCgxSdWJ5U2V0dGluZ3MSMgoGY29tbW9uGAEgASgLMiIuZ29vZ2xlLmFwaS5Db21tb25MYW5ndWFnZVNldHRpbmdzIr8BCgpHb1NldHRpbmdzEjIKBmNvbW1vbhgBIAEoCzIiLmdvb2dsZS5hcGkuQ29tbW9uTGFuZ3VhZ2VTZXR0aW5ncxJFChByZW5hbWVkX3NlcnZpY2VzGAIgAygLMisuZ29vZ2xlLmFwaS5Hb1NldHRpbmdzLlJlbmFtZWRTZXJ2aWNlc0VudHJ5GjYKFFJlbmFtZWRTZXJ2aWNlc0VudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEizwIKDk1ldGhvZFNldHRpbmdzEhAKCHNlbGVjdG9yGAEgASgJEjwKDGxvbmdfcnVubmluZxgCIAEoCzImLmdvb2dsZS5hcGkuTWV0aG9kU2V0dGluZ3MuTG9uZ1J1bm5pbmcSHQoVYXV0b19wb3B1bGF0ZWRfZmllbGRzGAMgAygJGs0BCgtMb25nUnVubmluZxI1ChJpbml0aWFsX3BvbGxfZGVsYXkYASABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb24SHQoVcG9sbF9kZWxheV9tdWx0aXBsaWVyGAIgASgCEjEKDm1heF9wb2xsX2RlbGF5GAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uEjUKEnRvdGFsX3BvbGxfdGltZW91dBgEIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvbiJRChhTZWxlY3RpdmVHYXBpY0dlbmVyYXRpb24SDwoHbWV0aG9kcxgBIAMoCRIkChxnZW5lcmF0ZV9vbWl0dGVkX2FzX2ludGVybmFsGAIgASgIKqMBChlDbGllbnRMaWJyYXJ5T3JnYW5pemF0aW9uEisKJ0NMSUVOVF9MSUJSQVJZX09SR0FOSVpBVElPTl9VTlNQRUNJRklFRBAAEgkKBUNMT1VEEAESBwoDQURTEAISCgoGUEhPVE9TEAMSDwoLU1RSRUVUX1ZJRVcQBBIMCghTSE9QUElORxAFEgcKA0dFTxAGEhEKDUdFTkVSQVRJVkVfQUkQBypnChhDbGllbnRMaWJyYXJ5RGVzdGluYXRpb24SKgomQ0xJRU5UX0xJQlJBUllfREVTVElOQVRJT05fVU5TUEVDSUZJRUQQABIKCgZHSVRIVUIQChITCg9QQUNLQUdFX01BTkFHRVIQFDpKChBtZXRob2Rfc2lnbmF0dXJlEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYmwggAygJUg9tZXRob2RTaWduYXR1cmU6QwoMZGVmYXVsdF9ob3N0Eh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJkIIAEoCVILZGVmYXVsdEhvc3Q6QwoMb2F1dGhfc2NvcGVzEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGJoIIAEoCVILb2F1dGhTY29wZXM6RAoLYXBpX3ZlcnNpb24SHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYwbqr+gEgASgJUgphcGlWZXJzaW9uQmkKDmNvbS5nb29nbGUuYXBpQgtDbGllbnRQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICBEdBUEliBnByb3RvMw",[fr,y,At]),BA=d(M,0),EA=d(M,1),XA=d(M,2),WA=d(M,3),wA=d(M,4),RA=d(M,5),JA=d(M,6),kA=d(M,6,0),MA=d(M,7),FA=d(M,8),YA=d(M,9),zA=d(M,10),NA=d(M,11),LA=d(M,11,0),HA=d(M,12),Fa;(function(t){t[t.CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED=0]="CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED",t[t.CLOUD=1]="CLOUD",t[t.ADS=2]="ADS",t[t.PHOTOS=3]="PHOTOS",t[t.STREET_VIEW=4]="STREET_VIEW",t[t.SHOPPING=5]="SHOPPING",t[t.GEO=6]="GEO",t[t.GENERATIVE_AI=7]="GENERATIVE_AI"})(Fa||(Fa={}));var TA=C(M,0),Ya;(function(t){t[t.CLIENT_LIBRARY_DESTINATION_UNSPECIFIED=0]="CLIENT_LIBRARY_DESTINATION_UNSPECIFIED",t[t.GITHUB=10]="GITHUB",t[t.PACKAGE_MANAGER=20]="PACKAGE_MANAGER"})(Ya||(Ya={}));var UA=C(M,1),DA=U(M,0),KA=U(M,1),_A=U(M,2),QA=U(M,3);var br=S("Ciptb2NoYWJ1Z2FwaXMvYWRhcHQvZ3JhcGgvc2lnbmFsX2RhdGEucHJvdG8SGG1vY2hhYnVnYXBpcy5hZGFwdC5ncmFwaCKmCgoKU2lnbmFsRGF0YRL3BQoIZmlsZW5hbWUYASABKAlC3wW6SNsFugGvAQobZmlsZW5hbWUubm9fcGF0aF9zZXBhcmF0b3JzEmNGaWxlbmFtZSBjYW5ub3QgY29udGFpbiBwYXRoIHNlcGFyYXRvcnMgKCcvJyBvciAnXCcpLiBVc2Ugb25seSB0aGUgZmlsZW5hbWUgd2l0aG91dCBkaXJlY3RvcnkgcGF0aC4aKyF0aGlzLmNvbnRhaW5zKCcvJykgJiYgIXRoaXMuY29udGFpbnMoJ1xcJym6AbsBCh5maWxlbmFtZS5ub19jb250cm9sX2NoYXJhY3RlcnMSOUZpbGVuYW1lIGNhbm5vdCBjb250YWluIGNvbnRyb2wgY2hhcmFjdGVycyBvciBudWxsIGJ5dGVzLhpeIXRoaXMuY29udGFpbnMoJ1x4MDAnKSAmJiAhdGhpcy5jb250YWlucygnXG4nKSAmJiAhdGhpcy5jb250YWlucygnXHInKSAmJiAhdGhpcy5jb250YWlucygnXHQnKboBbQonZmlsZW5hbWUubm9fbGVhZGluZ190cmFpbGluZ193aGl0ZXNwYWNlEi1GaWxlbmFtZSBjYW5ub3Qgc3RhcnQgb3IgZW5kIHdpdGggd2hpdGVzcGFjZS4aE3RoaXMgPT0gdGhpcy50cmltKCm6AdMBChxmaWxlbmFtZS5ub193aW5kb3dzX3Jlc2VydmVkEmpGaWxlbmFtZSBjYW5ub3QgYmUgYSBXaW5kb3dzIHJlc2VydmVkIG5hbWUgKENPTiwgUFJOLCBBVVgsIE5VTCwgQ09NMS05LCBMUFQxLTkpIHdpdGggb3Igd2l0aG91dCBleHRlbnNpb24uGkchdGhpcy5tYXRjaGVzKCdeKD9pKShDT058UFJOfEFVWHxOVUx8Q09NWzEtOV18TFBUWzEtOV0pKD86XFwuW14uXSopPyQnKXIgEAEY/wEyGV5bXi88PjoifD8qXHgwMC1ceDFGXFxdKyRIAIgBARKCBAoJbWltZV90eXBlGAIgASgJQu4DukjqA7oByQEKFm1pbWVfdHlwZS5ub193aWxkY2FyZHMSmQFNSU1FIHR5cGUgd2lsZGNhcmRzIGFyZSBub3QgYWxsb3dlZCBpbiBTaWduYWxEYXRhLiBVc2UgYSBjb25jcmV0ZSBNSU1FIHR5cGUgbGlrZSAnaW1hZ2UvcG5nJyBvciAnYXBwbGljYXRpb24vcGRmJywgbm90IHdpbGRjYXJkcyBsaWtlICdpbWFnZS8qJyBvciAnKi8qJy4aEyF0aGlzLmNvbnRhaW5zKCcqJym6Ab8BChdtaW1lX3R5cGUubm9fcGFyYW1ldGVycxKOAU1JTUUgdHlwZSBwYXJhbWV0ZXJzIGFyZSBub3QgYWxsb3dlZC4gVXNlICd0ZXh0L3BsYWluJyBpbnN0ZWFkIG9mICd0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04Jy4gVVRGLTggZW5jb2RpbmcgaXMgYXNzdW1lZCBmb3IgYWxsIHRleHQgZm9ybWF0cy4aEyF0aGlzLmNvbnRhaW5zKCc7JylyWBADGP8BMlFeW2EtekEtWjAtOV1bYS16QS1aMC05ISMkJlwtXl8uK117MCwxMjZ9L1thLXpBLVowLTldW2EtekEtWjAtOSEjJCZcLV5fLitdezAsMTI2fSQSDAoEZGF0YRgDIAEoDEILCglfZmlsZW5hbWViBnByb3RvMw",[B]),yr=d(br,0);var V=S("CjNtb2NoYWJ1Z2FwaXMvYWRhcHQvYXV0b21hdGlvbnMvdjEvYXV0b21hdGlvbnMucHJvdG8SIW1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MSIwChZDcmVhdGVDaGFsbGVuZ2VSZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDIqIBChdDcmVhdGVDaGFsbGVuZ2VSZXNwb25zZRINCgVjb3VudBgBIAEoDRIMCgRzaXplGAIgASgNEhIKCmRpZmZpY3VsdHkYAyABKA0SKwoHZXhwaXJlcxgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFdG9rZW4YBSABKAkSGgoSdmVyaWZpY2F0aW9uX3Rva2VuGAYgASgJIngKFlJlZGVlbUNoYWxsZW5nZVJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSJgoSdmVyaWZpY2F0aW9uX3Rva2VuGAIgASgJQgq6SAdyBRABGNAPEh4KCXNvbHV0aW9ucxgDIAMoA0ILukgIkgEFCAEQ6AciVQoXUmVkZWVtQ2hhbGxlbmdlUmVzcG9uc2USDQoFdG9rZW4YASABKAkSKwoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiLwoVSW5oZXJpdFNlc3Npb25SZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDImUKFkluaGVyaXRTZXNzaW9uUmVzcG9uc2USDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyKvAQoRUmVhZE91dHB1dFJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSGgoJcGFnZV9zaXplGAIgASgNQge6SAQqAhhkEikKBnZlcnRleBgDIAEoCUIUukgRcg8yDV5bMC05YS16XXs0fSRIAIgBARIhCgpuZXdlcl90aGFuGAQgASgJQgi6SAVyA7ABAUgBiAEBQgkKB192ZXJ0ZXhCDQoLX25ld2VyX3RoYW4iywEKElJlYWRPdXRwdXRSZXNwb25zZRI7CgdzZXNzaW9uGAEgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb24SOgoHb3V0cHV0cxgCIAMoCzIpLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5PdXRwdXQSJwoQbmV4dF9wYWdlX2N1cnNvchgDIAEoCUIIukgFcgOwAQFIAIgBAUITChFfbmV4dF9wYWdlX2N1cnNvciJ3Cg9SZWFkVXJsc1JlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSGgoJcGFnZV9zaXplGAIgASgNQge6SAQqAhhkEiEKCm5ld2VyX3RoYW4YAyABKAlCCLpIBXIDsAEBSACIAQFCDQoLX25ld2VyX3RoYW4iwwEKEFJlYWRVcmxzUmVzcG9uc2USOwoHc2Vzc2lvbhgBIAEoCzIqLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TZXNzaW9uEjQKBHVybHMYAiADKAsyJi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuVXJsEicKEG5leHRfcGFnZV9jdXJzb3IYAyABKAlCCLpIBXIDsAEBSACIAQFCEwoRX25leHRfcGFnZV9jdXJzb3IikQMKE1N0YXJ0U2Vzc2lvblJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSOwoLdHJhbnNtaXR0ZXIYAiABKAlCIbpIHnIcEAEYZDIWXlthLXpBLVowLTlfLV17MSwxMDB9JEgAiAEBEoABCgdzaWduYWxzGAMgAygLMkMubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0YXJ0U2Vzc2lvblJlcXVlc3QuU2lnbmFsc0VudHJ5Qiq6SCeaASQiInIgEAEYZDIaXltfJGEtekEtWl1bXyRhLXpBLVowLTldKiQSKAoPY2hhbGxlbmdlX3Rva2VuGAQgASgJQgq6SAdyBRABGPQDSAGIAQEaVAoMU2lnbmFsc0VudHJ5EgsKA2tleRgBIAEoCRIzCgV2YWx1ZRgCIAEoCzIkLm1vY2hhYnVnYXBpcy5hZGFwdC5ncmFwaC5TaWduYWxEYXRhOgI4AUIOCgxfdHJhbnNtaXR0ZXJCEgoQX2NoYWxsZW5nZV90b2tlbiJjChRTdGFydFNlc3Npb25SZXNwb25zZRINCgV0b2tlbhgBIAEoCRIwCgdleHBpcmVzGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAiAEBQgoKCF9leHBpcmVzIlIKElN0b3BTZXNzaW9uUmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AxIbCgRmb3JrGAIgASgJQgi6SAVyAxjoB0gAiAEBQgcKBV9mb3JrIhUKE1N0b3BTZXNzaW9uUmVzcG9uc2UiKwoRR2V0U2Vzc2lvblJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMiWQoSR2V0U2Vzc2lvblJlc3BvbnNlEkMKB3Nlc3Npb24YASABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkIGukgDyAEBIukBCgZPdXRwdXQSDgoGdmVydGV4GAEgASgJEgwKBGZvcmsYAiABKAkSQQoEZGF0YRgDIAMoCzIzLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5PdXRwdXQuRGF0YUVudHJ5EisKB2NyZWF0ZWQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wGlEKCURhdGFFbnRyeRILCgNrZXkYASABKAkSMwoFdmFsdWUYAiABKAsyJC5tb2NoYWJ1Z2FwaXMuYWRhcHQuZ3JhcGguU2lnbmFsRGF0YToCOAEiCwoJVXJsUmV0YWluIjwKCFVybENsb3NlEhwKD3RpbWVvdXRfc2Vjb25kcxgBIAEoBUgAiAEBQhIKEF90aW1lb3V0X3NlY29uZHMiDAoKVXJsUmVjeWNsZSLvAgoDVXJsEgsKA3VybBgBIAEoCRIMCgRmb3JrGAIgASgJEg4KBnZlcnRleBgDIAEoCRIMCgRkb25lGAQgASgIEisKB2NyZWF0ZWQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEg0KBXRva2VuGAYgASgJEg8KB3N0b3BwZWQYByABKAgSDgoGc291cmNlGAggASgJEj4KBnJldGFpbhgJIAEoCzIsLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxSZXRhaW5IABI8CgVjbG9zZRgKIAEoCzIrLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxDbG9zZUgAEkAKB3JlY3ljbGUYCyABKAsyLS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuVXJsUmVjeWNsZUgAQhIKEHJldGVudGlvbl9wb2xpY3kiUgoHU2Vzc2lvbhIMCgRmb3JrGAEgASgJEjkKBnN0YXR1cxgCIAEoDjIpLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5TdGF0dXMiLgoUU3RyZWFtU2Vzc2lvblJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMiSQoRQWNrTWVzc2FnZVJlcXVlc3QSFgoCaWQYASABKAlCCrpIB3IFEAEY9AMSHAoKbWVzc2FnZV9pZBgCIAEoCUIIukgFcgOwAQEiFAoSQWNrTWVzc2FnZVJlc3BvbnNlIhIKEFJlY29ubmVjdE1lc3NhZ2Ui6wEKFVN0cmVhbVNlc3Npb25SZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESOwoGb3V0cHV0GAIgASgLMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dEgAEjUKA3VybBgDIAEoCzImLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxIABI9CgdzZXNzaW9uGAQgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb25IAEIJCgdtZXNzYWdlIowDChFSdW5TZXNzaW9uUmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AxI7Cgt0cmFuc21pdHRlchgCIAEoCUIhukgechwQARhkMhZeW2EtekEtWjAtOV8tXXsxLDEwMH0kSACIAQESfgoHc2lnbmFscxgDIAMoCzJBLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5TZXNzaW9uUmVxdWVzdC5TaWduYWxzRW50cnlCKrpIJ5oBJCIiciAQARhkMhpeW18kYS16QS1aXVtfJGEtekEtWjAtOV0qJBIoCg9jaGFsbGVuZ2VfdG9rZW4YBCABKAlCCrpIB3IFEAEY9ANIAYgBARpUCgxTaWduYWxzRW50cnkSCwoDa2V5GAEgASgJEjMKBXZhbHVlGAIgASgLMiQubW9jaGFidWdhcGlzLmFkYXB0LmdyYXBoLlNpZ25hbERhdGE6AjgBQg4KDF90cmFuc21pdHRlckISChBfY2hhbGxlbmdlX3Rva2VuIrECChJSdW5TZXNzaW9uUmVzcG9uc2USFAoCaWQYASABKAlCCLpIBXIDsAEBEkcKB3N0YXJ0ZWQYAiABKAsyNC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUnVuU2Vzc2lvblN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAQgkKB21lc3NhZ2UiYAoRUnVuU2Vzc2lvblN0YXJ0ZWQSDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyIrChFSdW5Jbmhlcml0UmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AyKzAgoSUnVuSW5oZXJpdFJlc3BvbnNlEhQKAmlkGAEgASgJQgi6SAVyA7ABARJJCglpbmhlcml0ZWQYAiABKAsyNC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUnVuSW5oZXJpdFN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAQgkKB21lc3NhZ2UiYAoRUnVuSW5oZXJpdFN0YXJ0ZWQSDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyItChNXYXRjaFNlc3Npb25SZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDIrQCChRXYXRjaFNlc3Npb25SZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESOwoGb3V0cHV0GAIgASgLMikubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLk91dHB1dEgAEjUKA3VybBgDIAEoCzImLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5VcmxIABI9CgdzZXNzaW9uGAQgASgLMioubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlNlc3Npb25IABJICglyZWNvbm5lY3QYBSABKAsyMy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVjb25uZWN0TWVzc2FnZUgAQgkKB21lc3NhZ2UiiAMKD1dhdGNoUnVuUmVxdWVzdBIWCgJpZBgBIAEoCUIKukgHcgUQARj0AxI7Cgt0cmFuc21pdHRlchgCIAEoCUIhukgechwQARhkMhZeW2EtekEtWjAtOV8tXXsxLDEwMH0kSACIAQESfAoHc2lnbmFscxgDIAMoCzI/Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFJ1blJlcXVlc3QuU2lnbmFsc0VudHJ5Qiq6SCeaASQiInIgEAEYZDIaXltfJGEtekEtWl1bXyRhLXpBLVowLTldKiQSKAoPY2hhbGxlbmdlX3Rva2VuGAQgASgJQgq6SAdyBRABGPQDSAGIAQEaVAoMU2lnbmFsc0VudHJ5EgsKA2tleRgBIAEoCRIzCgV2YWx1ZRgCIAEoCzIkLm1vY2hhYnVnYXBpcy5hZGFwdC5ncmFwaC5TaWduYWxEYXRhOgI4AUIOCgxfdHJhbnNtaXR0ZXJCEgoQX2NoYWxsZW5nZV90b2tlbiL3AgoQV2F0Y2hSdW5SZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESRQoHc3RhcnRlZBgCIAEoCzIyLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFJ1blN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAEkgKCXJlY29ubmVjdBgGIAEoCzIzLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SZWNvbm5lY3RNZXNzYWdlSABCCQoHbWVzc2FnZSJeCg9XYXRjaFJ1blN0YXJ0ZWQSDQoFdG9rZW4YASABKAkSMAoHZXhwaXJlcxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAIgBAUIKCghfZXhwaXJlcyItChNXYXRjaEluaGVyaXRSZXF1ZXN0EhYKAmlkGAEgASgJQgq6SAdyBRABGPQDIoEDChRXYXRjaEluaGVyaXRSZXNwb25zZRIUCgJpZBgBIAEoCUIIukgFcgOwAQESSwoJaW5oZXJpdGVkGAIgASgLMjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLldhdGNoSW5oZXJpdFN0YXJ0ZWRIABI7CgZvdXRwdXQYAyABKAsyKS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuT3V0cHV0SAASNQoDdXJsGAQgASgLMiYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlVybEgAEj0KB3Nlc3Npb24YBSABKAsyKi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU2Vzc2lvbkgAEkgKCXJlY29ubmVjdBgGIAEoCzIzLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SZWNvbm5lY3RNZXNzYWdlSABCCQoHbWVzc2FnZSJiChNXYXRjaEluaGVyaXRTdGFydGVkEg0KBXRva2VuGAEgASgJEjAKB2V4cGlyZXMYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wSACIAQFCCgoIX2V4cGlyZXMqyAEKBlN0YXR1cxIWChJTVEFUVVNfVU5TUEVDSUZJRUQQABISCg5TVEFUVVNfUlVOTklORxABEhIKDlNUQVRVU19TVE9QUEVEEAISEwoPU1RBVFVTX1NUT1BQSU5HEAMSFAoQU1RBVFVTX0NPTVBMRVRFRBAEEhIKDlNUQVRVU19FWFBJUkVEEAUSEgoOU1RBVFVTX0VSUk9SRUQQBhIVChFTVEFUVVNfREVMRUdBVElORxAHEhQKEFNUQVRVU19ERUxFR0FURUQQCDLJFQoRQXV0b21hdGlvblNlcnZpY2USswEKD0NyZWF0ZUNoYWxsZW5nZRI5Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5DcmVhdGVDaGFsbGVuZ2VSZXF1ZXN0GjoubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkNyZWF0ZUNoYWxsZW5nZVJlc3BvbnNlIimC0+STAiM6ASoiHi92MS9hdXRvbWF0aW9ucy97aWR9L2NoYWxsZW5nZRK6AQoPUmVkZWVtQ2hhbGxlbmdlEjkubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlZGVlbUNoYWxsZW5nZVJlcXVlc3QaOi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVkZWVtQ2hhbGxlbmdlUmVzcG9uc2UiMILT5JMCKjoBKiIlL3YxL2F1dG9tYXRpb25zL3tpZH0vY2hhbGxlbmdlL3JlZGVlbRKuAQoMU3RhcnRTZXNzaW9uEjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0YXJ0U2Vzc2lvblJlcXVlc3QaNy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU3RhcnRTZXNzaW9uUmVzcG9uc2UiLYLT5JMCJzoBKiIiL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9zdGFydBKiAQoLU3RvcFNlc3Npb24SNS5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuU3RvcFNlc3Npb25SZXF1ZXN0GjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0b3BTZXNzaW9uUmVzcG9uc2UiJILT5JMCHiocL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbhK2AQoOSW5oZXJpdFNlc3Npb24SOC5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuSW5oZXJpdFNlc3Npb25SZXF1ZXN0GjkubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkluaGVyaXRTZXNzaW9uUmVzcG9uc2UiL4LT5JMCKToBKiIkL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9pbmhlcml0Ep8BCgpHZXRTZXNzaW9uEjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkdldFNlc3Npb25SZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkdldFNlc3Npb25SZXNwb25zZSIkgtPkkwIeEhwvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uEqYBCgpSZWFkT3V0cHV0EjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRPdXRwdXRSZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRPdXRwdXRSZXNwb25zZSIrgtPkkwIlEiMvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uL291dHB1dBKeAQoIUmVhZFVybHMSMi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuUmVhZFVybHNSZXF1ZXN0GjMubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlJlYWRVcmxzUmVzcG9uc2UiKYLT5JMCIxIhL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi91cmxzErEBCg1TdHJlYW1TZXNzaW9uEjcubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0cmVhbVNlc3Npb25SZXF1ZXN0GjgubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLlN0cmVhbVNlc3Npb25SZXNwb25zZSIrgtPkkwIlEiMvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uL3N0cmVhbTABEqYBCgpBY2tNZXNzYWdlEjQubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkFja01lc3NhZ2VSZXF1ZXN0GjUubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLkFja01lc3NhZ2VSZXNwb25zZSIrgtPkkwIlOgEqIiAvdjEvYXV0b21hdGlvbnMve2lkfS9zZXNzaW9uL2FjaxKoAQoKUnVuU2Vzc2lvbhI0Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5TZXNzaW9uUmVxdWVzdBo1Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5TZXNzaW9uUmVzcG9uc2UiK4LT5JMCJToBKiIgL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9ydW4wARKwAQoKUnVuSW5oZXJpdBI0Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5Jbmhlcml0UmVxdWVzdBo1Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5SdW5Jbmhlcml0UmVzcG9uc2UiM4LT5JMCLToBKiIoL3YxL2F1dG9tYXRpb25zL3tpZH0vc2Vzc2lvbi9ydW4taW5oZXJpdDABEqgBCgxXYXRjaFNlc3Npb24SNi5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuV2F0Y2hTZXNzaW9uUmVxdWVzdBo3Lm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFNlc3Npb25SZXNwb25zZSIlgtPkkwIfOgEqIhovdjEvYXV0b21hdGlvbnMve2lkfS93YXRjaDABEqABCghXYXRjaFJ1bhIyLm1vY2hhYnVnYXBpcy5hZGFwdC5hdXRvbWF0aW9ucy52MS5XYXRjaFJ1blJlcXVlc3QaMy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuV2F0Y2hSdW5SZXNwb25zZSIpgtPkkwIjOgEqIh4vdjEvYXV0b21hdGlvbnMve2lkfS93YXRjaC1ydW4wARKwAQoMV2F0Y2hJbmhlcml0EjYubW9jaGFidWdhcGlzLmFkYXB0LmF1dG9tYXRpb25zLnYxLldhdGNoSW5oZXJpdFJlcXVlc3QaNy5tb2NoYWJ1Z2FwaXMuYWRhcHQuYXV0b21hdGlvbnMudjEuV2F0Y2hJbmhlcml0UmVzcG9uc2UiLYLT5JMCJzoBKiIiL3YxL2F1dG9tYXRpb25zL3tpZH0vd2F0Y2gtaW5oZXJpdDABGokBykEWYWRhcHQubW9jaGFidWdhcGlzLmNvbdJBbWh0dHBzOi8vd3d3Lm1vY2hhYnVnYXBpcy5jb20vYXV0aC9hZGFwdC5hdXRvbWF0aW9ucyxodHRwczovL3d3dy5tb2NoYWJ1Z2FwaXMuY29tL2F1dGgvYWRhcHQuYXV0b21hdGlvbnMuc3RhcnRiBnByb3RvMw",[B,hr,M,Gt,br]),iv=d(V,0),av=d(V,1),sv=d(V,2),lv=d(V,3),cv=d(V,4),dv=d(V,5),uv=d(V,6),mv=d(V,7),pv=d(V,8),gv=d(V,9),za=d(V,10),hv=d(V,11),fv=d(V,12),bv=d(V,13),yv=d(V,14),Iv=d(V,15),Gv=d(V,16),Av=d(V,17),vv=d(V,18),xv=d(V,19),Zv=d(V,20),Cv=d(V,21),Sv=d(V,22),Vv=d(V,23),Bv=d(V,24),Ev=d(V,25),Xv=d(V,26),Wv=d(V,27),wv=d(V,28),Rv=d(V,29),Jv=d(V,30),kv=d(V,31),Mv=d(V,32),Fv=d(V,33),Yv=d(V,34),Na=d(V,35),zv=d(V,36),Nv=d(V,37),La=d(V,38),Lv=d(V,39),Hv=d(V,40),xe;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.RUNNING=1]="RUNNING",t[t.STOPPED=2]="STOPPED",t[t.STOPPING=3]="STOPPING",t[t.COMPLETED=4]="COMPLETED",t[t.EXPIRED=5]="EXPIRED",t[t.ERRORED=6]="ERRORED",t[t.DELEGATING=7]="DELEGATING",t[t.DELEGATED=8]="DELEGATED"})(xe||(xe={}));var at=C(V,0),Ir=Ga(V,0);var Ha={webUrl:"https://adapt.mochabugapis.com/v1/automations",grpcUrl:"https://adapt-grpc.mochabugapis.com"},Ln={...Ha};function Hn(t){Ln={...Ln,...t}}function Gr(){return{...Ln}}function Tn(){Ln={...Ha}}function Ta(t){switch(t.case){case"retain":return{case:"retain"};case"close":return{case:"close",timeoutSeconds:t.value?.timeoutSeconds};case"recycle":return{case:"recycle"};default:return}}var Yc=[xe.STOPPED,xe.COMPLETED,xe.ERRORED,xe.EXPIRED,xe.DELEGATED];function Ua(t,e,n){let o=n?.debug??!1,r=b=>({Authorization:`Bearer ${b}`}),i=(b,x,G)=>{if(!o&&b==="info")return;(b==="error"?console.error:b==="warn"?console.warn:console.log)(`[Adapt] ${x}`,G??"")},a=null,s=null,l=null,c=0,m=null,g=new Set,f=[],p=1e3,I=()=>{m&&(clearTimeout(m),m=null)},Z=[h.NotFound,h.PermissionDenied,h.Unauthenticated,h.InvalidArgument,h.FailedPrecondition,h.ResourceExhausted],v=b=>b instanceof A?!Z.includes(b.code):!0,J=async(b,x=3)=>{for(let G=0;G<=x;G++)try{return await b()}catch(E){if(G===x||!v(E))throw E;let W=Math.min(500*(1<<G),5e3);await new Promise(N=>setTimeout(N,Math.random()*W))}throw new Error("unreachable")},de=()=>{g.clear(),f.length=0},H=b=>{if(!g.has(b)){if(g.size>=p){let x=f.shift();g.delete(x)}g.add(b),f.push(b)}},ue=b=>g.has(b),Dt=b=>{let{case:x,value:G}=b.message;switch(x){case"output":return s?.onOutput?.({vertex:G.vertex,fork:G.fork,data:G.data,created:ae(G.created)}),!1;case"url":return s?.onUrl?.({url:G.url,vertex:G.vertex,done:G.done,stopped:G.stopped,created:ae(G.created),token:G.token,fork:G.fork,source:G.source||void 0,retentionPolicy:Ta(G.retentionPolicy)}),!1;case"session":{let E=Yc.includes(G.status)&&!G.fork,W=Ke(at,G.status);return s?.onSession?.({status:W,fork:G.fork}),E&&i("info",`Session ended: ${W}`),E}case"reconnect":return i("info","Reconnect message received"),!1;case"started":case"inherited":throw new Error(`Unexpected '${x}' message in stream - should only be first message`);default:return i("warn",`Unknown message type: ${x}`),!1}},Ye=(b,x)=>{let G=ue(b.id);G||H(b.id);let E=G?!1:Dt(b);return!E&&s&&b.message.case!=="reconnect"&&t.ackMessage({id:e,messageId:b.id},{headers:x}).catch(W=>i("error",`ACK failed: ${b.id}`,W)),E},ne=()=>{if(!s||!l)return;c++;let b=c===1?0:Math.min(50*Math.pow(2,c-2),3e4);i("info",`Reconnecting in ${b}ms (attempt ${c})`),m=setTimeout(()=>{m=null,Ce()},b)},Ce=async()=>{if(!s||!l)return;let b=new AbortController;a=b;let x=r(l);i("info",`Connecting to stream: ${e}`);let G=null,E=!1,W=()=>{E||(E=!0,c=0,G&&(clearTimeout(G),G=null))};try{let N=t.watchSession({id:e},{signal:b.signal,headers:x});G=setTimeout(W,1e3);let P=!1;for await(let me of N)if(W(),Ye(me,x)){P=!0;break}i("info","Stream ended normally"),!P&&s&&l&&(c=0,ne())}catch(N){if(G&&(clearTimeout(G),G=null),b.signal.aborted)return;i("error","Stream error",N),v(N)?ne():s?.onError?.(N)}},ze=b=>{if(!b)return;let x={};for(let[G,E]of Object.entries(b))E?.data instanceof Uint8Array&&typeof E?.mimeType=="string"&&E.mimeType?x[G]=R(yr,{data:E.data,mimeType:E.mimeType,filename:E.filename}):x[G]=R(yr,{data:new TextEncoder().encode(JSON.stringify(E)),mimeType:"application/json"});return Object.keys(x).length>0?x:void 0};return{raw:t,async run(b){i("info","run",{transmitter:b?.transmitter}),a&&await this.unsubscribe();let x=R(Na,{id:e,transmitter:b?.transmitter,signals:ze(b?.signals),challengeToken:b?.challengeToken}),G=new AbortController;a=G,s=b??{},c=0;let E={...b?.authToken?r(b.authToken):{},"x-idempotency-key":crypto.randomUUID()},W,N,P=new Promise((O,Y)=>{W=O,N=Y}),me=async()=>{let O=t.watchRun(x,{signal:G.signal,headers:E}),Y,K=null,ct=!1,dt=()=>{ct||(ct=!0,c=0,K&&(clearTimeout(K),K=null))};try{K=setTimeout(dt,1e3);let D=!1;for await(let _ of O){if(dt(),!Y){if(_.message.case!=="started"){N(new Error("Expected started message as first response"));return}let Se=_.message.value;Y=Se.token,l=Y,i("info","run success",{token:Y}),W({sessionToken:Y,expiresAt:Se.expires?ae(Se.expires):void 0});continue}if(Ye(_,r(Y))){D=!0;break}}i("info","Stream ended normally"),Y&&!D&&s&&l&&(c=0,ne())}catch(D){if(K&&(clearTimeout(K),K=null),G.signal.aborted)return;if(i("error","Stream error",D),Y)v(D)?ne():s?.onError?.(D);else if(v(D)){c++;let _=c===1?0:Math.min(50*Math.pow(2,c-2),3e4);i("info",`Retrying watchRun in ${_}ms (attempt ${c})`),_===0?me():m=setTimeout(()=>{m=null,me()},_)}else N(D)}};me();try{return await P}catch(O){throw a=null,s=null,l=null,O}},async runInherit(b,x){i("info","runInherit"),a&&await this.unsubscribe();let G=new AbortController;a=G,s=x??{},c=0;let E=R(La,{id:e}),W,N,P=new Promise((O,Y)=>{W=O,N=Y}),me=async()=>{let O=t.watchInherit(E,{signal:G.signal,headers:r(b)}),Y,K=null,ct=!1,dt=()=>{ct||(ct=!0,c=0,K&&(clearTimeout(K),K=null))};try{K=setTimeout(dt,1e3);let D=!1;for await(let _ of O){if(dt(),!Y){if(_.message.case!=="inherited"){N(new Error("Expected inherited message as first response"));return}let Se=_.message.value;Y=Se.token,l=Y,i("info","runInherit success",{token:Y}),W({sessionToken:Y,expiresAt:Se.expires?ae(Se.expires):void 0});continue}if(Ye(_,r(Y))){D=!0;break}}i("info","Stream ended normally"),Y&&!D&&s&&l&&(c=0,ne())}catch(D){if(K&&(clearTimeout(K),K=null),G.signal.aborted)return;if(i("error","Stream error",D),Y)v(D)?ne():s?.onError?.(D);else if(v(D)){c++;let _=c===1?0:Math.min(50*Math.pow(2,c-2),3e4);i("info",`Retrying watchInherit in ${_}ms (attempt ${c})`),_===0?me():m=setTimeout(()=>{m=null,me()},_)}else N(D)}};me();try{return await P}catch(O){throw a=null,s=null,l=null,O}},async start(b){i("info","start",{transmitter:b?.transmitter});let x=R(za,{id:e,transmitter:b?.transmitter,signals:ze(b?.signals),challengeToken:b?.challengeToken}),G={...b?.authToken?r(b.authToken):{},"x-idempotency-key":crypto.randomUUID()},E=await J(()=>t.startSession(x,{headers:G}));return i("info","start success",{token:E.token}),{sessionToken:E.token,expiresAt:E.expires?ae(E.expires):void 0}},async inherit(b){i("info","inherit");let x=await J(()=>t.inheritSession({id:e},{headers:r(b)}));return i("info","inherit success",{token:x.token}),{sessionToken:x.token,expiresAt:x.expires?ae(x.expires):void 0}},async subscribe(b,x){i("info","subscribe"),a&&await this.unsubscribe(),l=b,s=x,c=0,await Ce()},async stop(b,x){i("info","stop",x?{fork:x}:void 0),await J(()=>t.stopSession({id:e,fork:x},{headers:r(b)})),i("info","stop success")},async unsubscribe(){i("info","unsubscribe"),I(),de(),a?.abort(),a=null,s=null,l=null},async getSession(b){i("info","getSession");let x=await J(()=>t.getSession({id:e},{headers:r(b)})),G={status:Ke(at,x.session.status),fork:x.session.fork};return i("info","getSession success",G),G},async readOutput(b,x){i("info","readOutput",x);let G=await J(()=>t.readOutput({id:e,pageSize:x?.pageSize,vertex:x?.vertex,newerThan:x?.newerThan?.toISOString()},{headers:r(b)})),E={session:{status:Ke(at,G.session.status),fork:G.session.fork},nextPageCursor:G.nextPageCursor,outputs:G.outputs.map(W=>({vertex:W.vertex,fork:W.fork,created:ae(W.created),data:Object.fromEntries(Object.entries(W.data).map(([N,P])=>{if(P.mimeType==="application/json")try{return[N,JSON.parse(new TextDecoder().decode(P.data))]}catch{return[N,P]}return[N,P]}))}))};return i("info","readOutput success",{outputCount:E.outputs.length}),E},async readOutputBinary(b,x){i("info","readOutputBinary",x);let G=await J(()=>t.readOutput({id:e,pageSize:x?.pageSize,vertex:x?.vertex,newerThan:x?.newerThan?.toISOString()},{headers:r(b)})),E={session:{status:Ke(at,G.session.status),fork:G.session.fork},nextPageCursor:G.nextPageCursor,outputs:G.outputs.map(W=>({vertex:W.vertex,fork:W.fork,created:ae(W.created),data:W.data}))};return i("info","readOutputBinary success",{outputCount:E.outputs.length}),E},async readUrls(b,x){i("info","readUrls",x);let G=await J(()=>t.readUrls({id:e,pageSize:x?.pageSize,newerThan:x?.newerThan},{headers:r(b)})),E={session:{status:Ke(at,G.session.status),fork:G.session.fork},nextPageCursor:G.nextPageCursor,urls:G.urls.map(W=>({url:W.url,vertex:W.vertex,done:W.done,stopped:W.stopped,created:ae(W.created),token:W.token,fork:W.fork,source:W.source||void 0,retentionPolicy:Ta(W.retentionPolicy)}))};return i("info","readUrls success",{urlCount:E.urls.length}),E}}}function Ar(){try{new Headers}catch{throw new Error("connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.")}}var Nt=function(t){return this instanceof Nt?(this.v=t,this):new Nt(t)},zc=function(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(t,e||[]),r,i=[];return r=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),s("next"),s("throw"),s("return",a),r[Symbol.asyncIterator]=function(){return this},r;function a(p){return function(I){return Promise.resolve(I).then(p,g)}}function s(p,I){o[p]&&(r[p]=function(Z){return new Promise(function(v,J){i.push([p,Z,v,J])>1||l(p,Z)})},I&&(r[p]=I(r[p])))}function l(p,I){try{c(o[p](I))}catch(Z){f(i[0][3],Z)}}function c(p){p.value instanceof Nt?Promise.resolve(p.value.v).then(m,g):f(i[0][2],p)}function m(p){l("next",p)}function g(p){l("throw",p)}function f(p,I){p(I),i.shift(),i.length&&l(i[0][0],i[0][1])}},Da={redirect:"error"};function vr(t){var e;Ar();let n=(e=t.useBinaryFormat)!==null&&e!==void 0?e:!1;return{async unary(o,r,i,a,s,l){let{serialize:c,parse:m}=Jt(o,n,t.jsonOptions,t.binaryOptions);return i=i===void 0?t.defaultTimeoutMs:i<=0?void 0:i,await we({interceptors:t.interceptors,signal:r,timeoutMs:i,req:{stream:!1,service:o.parent,method:o,requestMethod:"POST",url:te(t.baseUrl,o),header:Yn(o.methodKind,n,i,a,!1),contextValues:l??be(),message:s},next:async g=>{var f;let p=t.useHttpGet===!0&&o.idempotency===Ue.NO_SIDE_EFFECTS,I=null;p?g=Nn(g,c(g.message),n):I=c(g.message);let v=await((f=t.fetch)!==null&&f!==void 0?f:globalThis.fetch)(g.url,Object.assign(Object.assign({},Da),{method:g.requestMethod,headers:g.header,signal:g.signal,body:I})),{isUnaryError:J,unaryError:de}=zn(o.methodKind,n,v.status,v.headers);if(J)throw kt(await v.json(),Bt(...Ft(v.headers)),de);let[H,ue]=Ft(v.headers);return{stream:!1,service:o.parent,method:o,header:H,message:n?m(new Uint8Array(await v.arrayBuffer())):hn(o.output,await v.json(),Sn(t.jsonOptions)),trailer:ue}}})},async stream(o,r,i,a,s,l){let{serialize:c,parse:m}=Jt(o,n,t.jsonOptions,t.binaryOptions);function g(p,I,Z,v){return zc(this,arguments,function*(){let de=Gn(p).getReader(),H=!1;for(;;){let ue=yield Nt(de.read());if(ue.done)break;let{flags:Dt,data:Ye}=ue.value;if((Dt&Qe)===Qe)throw new A("protocol error: received unsupported compressed output",h.Internal);if((Dt&rt)===rt){H=!0;let ne=dr(Ye);if(ne.error){let Ce=ne.error;throw Z.forEach((ze,b)=>{Ce.metadata.append(b,ze)}),Ce}ne.metadata.forEach((Ce,ze)=>I.set(ze,Ce));continue}yield yield Nt(m(Ye))}if("throwIfAborted"in v&&v.throwIfAborted(),!H)throw"missing EndStreamResponse"})}async function f(p){if(o.methodKind!="server_streaming")throw"The fetch API does not support streaming request bodies";let I=await p[Symbol.asyncIterator]().next();if(I.done==!0)throw"missing request message";return Et(0,c(I.value))}return i=i===void 0?t.defaultTimeoutMs:i<=0?void 0:i,await Re({interceptors:t.interceptors,timeoutMs:i,signal:r,req:{stream:!0,service:o.parent,method:o,requestMethod:"POST",url:te(t.baseUrl,o),header:Yn(o.methodKind,n,i,a,!1),contextValues:l??be(),message:s},next:async p=>{var I;let v=await((I=t.fetch)!==null&&I!==void 0?I:globalThis.fetch)(p.url,Object.assign(Object.assign({},Da),{method:p.requestMethod,headers:p.header,signal:p.signal,body:await f(p.message)}));if(zn(o.methodKind,n,v.status,v.headers),v.body===null)throw"missing response body";let J=new Headers;return Object.assign(Object.assign({},p),{header:v.headers,trailer:J,message:g(v.body,J,v.headers,p.signal)})}})}}}function Dn(t){if(!t.id)throw new Error('[adapt] createConnectClient requires "id" (the automation ID). Usage: createConnectClient({ id: "your-automation-id" })');let e=Gr(),n=vr({baseUrl:`${e.webUrl}/${t.id}`,useBinaryFormat:!0});return Po(Ir,n)}function _a(t,e){return`${t}${e?`#mb_token=${encodeURIComponent(e)}`:""}`}var Qa=`/* ==========================================================================
4
4
  Mochabug Adapt Web \u2014 Combined Styles
5
5
  Panel Manager CSS + Cap Widget CSS
6
6
  ========================================================================== */
@@ -888,5 +888,5 @@ html.mb-dragging webview {
888
888
  width: 28px;
889
889
  height: 28px;
890
890
  }
891
- }`;var fe=class{constructor(e){this.panelId="";this.resizeCapable=!1;this.host=e,this.element=document.createElement("div"),this.element.style.width="100%",this.element.style.height="100%",this.element.style.position="relative",this.iframe=this.createIframe(),this.element.appendChild(this.iframe)}get contentWindow(){return this.iframe.contentWindow}init(e,n){this.panelId=e,n.url&&(this.currentUrl=n.url,this.currentToken=n.token,this.setIframeSrc(n.url,n.token)),this.host.onComponentCreated(this.panelId,this)}update(e){if(e.url!==void 0){let n=e.url!==this.currentUrl,o=e.token!==this.currentToken;this.currentUrl=e.url,e.token!==void 0&&(this.currentToken=e.token),(n||o)&&(this.replaceIframe(),this.setIframeSrc(this.currentUrl,this.currentToken))}}dispose(){this.iframe.src="about:blank",this.host.onComponentDisposed(this.panelId)}postMessage(e,n){try{this.iframe.contentWindow?.postMessage(e,n)}catch{}}getOrigin(){if(!this.currentUrl)return null;try{return new URL(this.currentUrl).origin}catch{return null}}show(){this.iframe.classList.remove("mb-adapt__iframe--hidden"),this.iframe.offsetHeight,this.iframe.classList.add("mb-adapt__iframe--visible")}hide(){this.iframe.classList.remove("mb-adapt__iframe--visible"),this.iframe.classList.add("mb-adapt__iframe--hidden")}createIframe(){let e=document.createElement("iframe");return e.className=this.host.getClassNames()?.iframe||"mb-adapt__iframe",e.setAttribute("sandbox","allow-downloads allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-forms allow-modals"),e.setAttribute("allow","autoplay; geolocation; camera; microphone; fullscreen; display-capture; web-share"),e.src="about:blank",e.addEventListener("load",()=>{if(e.src&&e.src!=="about:blank"){let n=this.getOrigin();if(n)try{e.contentWindow?.postMessage({type:"adapt-darkMode",darkMode:this.host.getDarkMode()},n)}catch{}}}),e}setIframeSrc(e,n){let o=_a(e,n);this.iframe.src!==o&&(this.resizeCapable=!1,this.iframe.style.height="",this.iframe.src=o),this.show()}replaceIframe(){let e=this.createIframe();this.element.replaceChild(e,this.iframe),this.iframe=e,this.resizeCapable=!1}},Kn='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9.5 2h4.5v4.5"/><path d="M14 2L8.5 7.5"/><path d="M12 9v4.5a1.5 1.5 0 01-1.5 1.5h-8A1.5 1.5 0 011 13.5v-8A1.5 1.5 0 012.5 4H7"/></svg>',Qn='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1.5" y="2.5" width="13" height="11" rx="1.5"/><line x1="1.5" y1="6" x2="14.5" y2="6"/><circle cx="4" cy="4.25" r="0.75" fill="currentColor" stroke="none"/><circle cx="6.5" cy="4.25" r="0.75" fill="currentColor" stroke="none"/></svg>',Pa='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="4" y1="8" x2="12" y2="8"/></svg>',Ae='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2.5" y="2.5" width="11" height="11" rx="1.5"/></svg>',_n='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1.5" y="4.5" width="10" height="10" rx="1.5"/><path d="M4.5 4.5V3a1.5 1.5 0 011.5-1.5h7A1.5 1.5 0 0115 3v7a1.5 1.5 0 01-1.5 1.5H12"/></svg>',Zr='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',Oa='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6.5 14H2V9.5"/><path d="M2 14l5.5-5.5"/><path d="M4 7V2.5A1.5 1.5 0 015.5 1h8A1.5 1.5 0 0115 2.5v8a1.5 1.5 0 01-1.5 1.5H9"/></svg>',We=class{constructor(){this.tabsContainer=null;this.panelManager=null;this.entries=new Map;this._onBarVisibilityChanged=null;this._allowDocking=!0;this.dragState=null}setAllowDocking(e){this._allowDocking=e}onBarVisibilityChanged(e){this._onBarVisibilityChanged=e}init(e,n){this.tabsContainer=e,this.panelManager=n}minimize(e,n,o){if(!this.tabsContainer||this.entries.has(e))return;n.hide();let r=this.createTab(e,o.panels.length,"floating");this.entries.set(e,{tab:r,overlay:n,group:o,mode:"floating"}),this.tabsContainer.appendChild(r),this.showBar()}minimizeDocked(e,n,o){if(!this.tabsContainer||this.entries.has(e))return;let r=n.element.getBoundingClientRect();n.element.style.display="none",(this.tabsContainer.parentElement??document.body).appendChild(n.element);let a=o.minimizeDocked(n),s=a?.direction??"right",c=s==="top"||s==="bottom"?r.height>0?r.height:void 0:r.width>0?r.width:void 0,m=this.createTab(e,n.panels.length,"docked");this.entries.set(e,{tab:m,overlay:null,group:n,mode:"docked",savedPosition:{direction:s,...a?.siblingGroupId&&{siblingGroupId:a.siblingGroupId},initialSize:c}}),this.tabsContainer.appendChild(m),this.showBar()}restore(e){let n=this.entries.get(e);!n||!this.panelManager||(n.mode==="floating"&&n.overlay?n.overlay.show():n.mode==="docked"&&(n.group.element.style.display="",this.panelManager.restoreDocked(n.group,n.savedPosition?.direction??"right",n.savedPosition?.initialSize,n.savedPosition?.siblingGroupId),n.group.location="grid"),n.tab.remove(),this.entries.delete(e),this.hideBarIfEmpty())}closeGroup(e){let n=this.entries.get(e);if(!n||!this.panelManager)return;n.mode==="floating"&&n.overlay?n.overlay.show():n.mode==="docked"&&(n.group.element.style.display=""),n.tab.remove(),this.entries.delete(e);let o=n.group.panels.slice();for(let r of o)this.panelManager.removePanel(r.id);this.hideBarIfEmpty()}isMinimized(e){return this.entries.has(e)}getMinimizedGroupIds(){return Array.from(this.entries.keys())}getEntry(e){return this.entries.get(e)}removeGroup(e){let n=this.entries.get(e);n&&(n.tab.remove(),this.entries.delete(e),this.hideBarIfEmpty())}dispose(){for(let e of this.entries.values())e.overlay&&e.overlay.show(),e.mode==="docked"&&(e.group.element.style.display="");this.entries.clear(),this.tabsContainer&&(this.tabsContainer.innerHTML="",this.tabsContainer.style.display="none")}showBar(){if(this.tabsContainer){let e=this.tabsContainer.style.display==="none";this.tabsContainer.style.display="flex",e&&this._onBarVisibilityChanged?.()}}hideBarIfEmpty(){if(this.entries.size===0&&this.tabsContainer){let e=this.tabsContainer.style.display!=="none";this.tabsContainer.style.display="none",e&&this._onBarVisibilityChanged?.()}}mergeMinimized(e,n){let o=this.entries.get(e),r=this.entries.get(n);if(!o||!r||!this.panelManager)return;o.mode==="floating"&&o.overlay?o.overlay.show():o.mode==="docked"&&(o.group.element.style.display=""),r.mode==="floating"&&r.overlay?r.overlay.show():r.mode==="docked"&&(r.group.element.style.display="",this.panelManager.restoreDocked(r.group,r.savedPosition?.direction??"right",r.savedPosition?.initialSize),r.group.location="grid");let i=o.group.panels.map(a=>a.id);for(let a of i)this.panelManager.movePanel(a,r.group.id);if(o.tab.remove(),this.entries.delete(e),r.tab.remove(),this.entries.delete(n),r.mode==="floating"&&r.overlay){let a=this.createTab(n,r.group.panels.length);this.entries.set(n,{...r,tab:a}),this.tabsContainer.appendChild(a),r.overlay.hide()}this.hideBarIfEmpty()}dockMinimized(e){let n=this.entries.get(e);!n||!this.panelManager||(n.mode==="floating"&&n.overlay?(n.overlay.show(),this.panelManager.dockGroup(e,"right")):n.mode==="docked"&&(n.group.element.style.display="",this.panelManager.restoreDocked(n.group,n.savedPosition?.direction??"right",n.savedPosition?.initialSize,n.savedPosition?.siblingGroupId),n.group.location="grid"),n.tab.remove(),this.entries.delete(e),this.hideBarIfEmpty())}createTab(e,n,o="floating"){let r=document.createElement("div");r.className="mb-adapt-minimized-tab",r.dataset.groupId=e;let i=document.createElement("span");if(i.className="mb-adapt-minimized-tab-label",i.innerHTML=Array(n).fill(Qn).join(""),r.appendChild(i),o==="floating"&&this._allowDocking){let l=document.createElement("button");l.className="mb-adapt-minimized-tab-action",l.title="Dock to main",l.innerHTML=Oa,l.addEventListener("click",c=>{c.stopPropagation(),this.dockMinimized(e)}),r.appendChild(l)}let a=document.createElement("button");a.className="mb-adapt-minimized-tab-action",a.title="Restore",a.innerHTML=Ae,a.addEventListener("click",l=>{l.stopPropagation(),this.restore(e)}),r.appendChild(a);let s=document.createElement("button");return s.className="mb-adapt-minimized-tab-action",s.title="Close",s.innerHTML=Zr,s.addEventListener("click",l=>{l.stopPropagation(),this.closeGroup(e)}),r.appendChild(s),r.addEventListener("pointerdown",l=>{l.target.closest("button")||l.button===0&&(l.preventDefault(),this.onTabDragStart(e,r,l))}),r}onTabDragStart(e,n,o){if(this.dragState)return;this.dragState={groupId:e,tab:n,startX:o.clientX,startY:o.clientY,isDragging:!1,ghost:null,highlightedTab:null};let r=s=>{if(!this.dragState)return;if(!this.dragState.isDragging){let c=s.clientX-this.dragState.startX,m=s.clientY-this.dragState.startY;if(c*c+m*m<25)return;this.dragState.isDragging=!0,this.dragState.ghost=this.createDragGhost(e),document.body.appendChild(this.dragState.ghost),this.dragState.tab.style.opacity="0.4"}this.dragState.ghost.style.left=`${s.clientX+8}px`,this.dragState.ghost.style.top=`${s.clientY+8}px`;let l=this.findDropTarget(s.clientX,s.clientY,e);this.dragState.highlightedTab!==l&&(this.dragState.highlightedTab?.classList.remove("mb-adapt-minimized-tab--drop-target"),l?.classList.add("mb-adapt-minimized-tab--drop-target"),this.dragState.highlightedTab=l)},i=s=>{if(document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),!!this.dragState){if(this.dragState.ghost?.remove(),this.dragState.tab.style.opacity="",this.dragState.highlightedTab?.classList.remove("mb-adapt-minimized-tab--drop-target"),this.dragState.isDragging){let l=this.findDropTarget(s.clientX,s.clientY,e);if(l){let c=l.dataset.groupId;c&&c!==e&&this.mergeMinimized(e,c)}}this.dragState=null}},a=()=>{document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),this.dragState&&(this.dragState.ghost?.remove(),this.dragState.tab.style.opacity="",this.dragState.highlightedTab?.classList.remove("mb-adapt-minimized-tab--drop-target")),this.dragState=null};document.addEventListener("pointermove",r),document.addEventListener("pointerup",i),document.addEventListener("pointercancel",a)}createDragGhost(e){let n=this.entries.get(e),o=document.createElement("div");return o.className="mb-drag-ghost",o.textContent=n?.group.panels.map(r=>r.title||"Panel").join(" \xB7 ")??e,o}findDropTarget(e,n,o){if(!this.tabsContainer)return null;let r=this.tabsContainer.querySelectorAll(".mb-adapt-minimized-tab");for(let i of r){let a=i;if(a.dataset.groupId===o)continue;let s=a.getBoundingClientRect();if(e>=s.left&&e<=s.right&&n>=s.top&&n<=s.bottom)return a}return null}},we=class{constructor(e,n,o,r){this.isMaximized=!1;this._beforeClose=null;this.overlay=e,this.panelManager=n,this.minimizeManager=o,this.element=document.createElement("div"),this.element.className="mb-adapt-fork-actions",this.minimizeBtn=this.createButton("Minimize",Pa),this.maxRestoreBtn=this.createButton("Maximize",Ae),this.dockBtn=this.createButton("Dock to main",Oa);let i=this.createButton("Close all",Zr);r?.allowDocking===!1&&(this.dockBtn.style.display="none"),r?.allowMinimize===!1&&(this.minimizeBtn.style.display="none"),r?.allowMaximize===!1&&(this.maxRestoreBtn.style.display="none"),this.element.appendChild(this.minimizeBtn),this.element.appendChild(this.maxRestoreBtn),this.element.appendChild(this.dockBtn),this.element.appendChild(i),this.minimizeBtn.addEventListener("click",()=>this.onMinimize()),this.maxRestoreBtn.addEventListener("click",()=>this.onMaxRestore()),this.dockBtn.addEventListener("click",()=>this.onDock()),i.addEventListener("click",()=>this.onClose())}setAllowDocking(e){this.dockBtn.style.display=e?"":"none"}setAllowMinimize(e){this.minimizeBtn.style.display=e?"":"none"}setAllowMaximize(e){this.maxRestoreBtn.style.display=e?"":"none"}setBeforeClose(e){this._beforeClose=e}syncMaximizedState(){this.overlay.isMaximized&&!this.isMaximized?(this.isMaximized=!0,this.maxRestoreBtn.innerHTML=_n,this.maxRestoreBtn.title="Restore"):!this.overlay.isMaximized&&this.isMaximized&&(this.isMaximized=!1,this.maxRestoreBtn.innerHTML=Ae,this.maxRestoreBtn.title="Maximize")}createButton(e,n){let o=document.createElement("button");return o.title=e,o.innerHTML=n,o}clearMaximize(){this.isMaximized&&(this.overlay.restore(),this.isMaximized=!1,this.maxRestoreBtn.innerHTML=Ae,this.maxRestoreBtn.title="Maximize")}onMinimize(){this.clearMaximize();let e=this.overlay.group;this.minimizeManager.minimize(e.id,this.overlay,e)}onMaxRestore(){this.isMaximized?(this.overlay.restore(),this.isMaximized=!1,this.maxRestoreBtn.innerHTML=Ae,this.maxRestoreBtn.title="Maximize"):(this.overlay.maximize(),this.isMaximized=!0,this.maxRestoreBtn.innerHTML=_n,this.maxRestoreBtn.title="Restore")}onDock(){this.clearMaximize(),this.panelManager.dockOverlay(this.overlay.group.id)}onClose(){let e=()=>{this.clearMaximize();for(let n of this.overlay.getAllGroups())for(let o of n.panels.slice())this.panelManager.removePanel(o.id)};if(this._beforeClose){let n=this._beforeClose();n&&typeof n.then=="function"?n.then(o=>{o&&e()}):n!==!1&&e()}else e()}},Re=class{constructor(e,n,o,r,i){this._isMaximized=!1;this._autoMaximizedByResize=!1;this._beforeClose=null;this._onMaximizeChanged=null;this.group=e,this.minimizeManager=n,this.panelManager=o,this._allowFloating=i?.allowFloating??!0,this._allowMinimize=i?.allowMinimize??!0,this._allowMaximize=i?.allowMaximize??!0,this.element=document.createElement("div"),this.element.className="mb-adapt-fork-actions",this.floatDockBtn=this.createButton("Pop out",Kn),this.maximizeBtn=this.createButton("Maximize",Ae),this.minimizeBtn=this.createButton("Minimize",Pa),this.closeBtn=this.createButton("Close all",Zr),this._allowFloating||(this.floatDockBtn.style.display="none",e.element.setAttribute("data-allow-floating","false")),this.element.appendChild(this.floatDockBtn),this.element.appendChild(this.maximizeBtn),this.element.appendChild(this.minimizeBtn),this.element.appendChild(this.closeBtn),this.floatDockBtn.addEventListener("click",()=>this.onFloatDock()),this.maximizeBtn.addEventListener("click",()=>this.onMaximize()),this.minimizeBtn.addEventListener("click",()=>this.onMinimize()),this.closeBtn.addEventListener("click",()=>this.onCloseGroup()),this.updateVisibility(),e.onLocationChanged(()=>{this.updateVisibility(),r?.()}),e.onSplitStateChanged(()=>this.updateVisibility())}dispose(){this.restoreMaximized(),this.minimizeManager.removeGroup(this.group.id)}setAllowFloating(e){this._allowFloating=e,e?this.group.element.removeAttribute("data-allow-floating"):this.group.element.setAttribute("data-allow-floating","false"),this.updateVisibility()}setAllowMinimize(e){this._allowMinimize=e,this.updateVisibility()}setAllowMaximize(e){this._allowMaximize=e,this.updateVisibility()}setAutoMaximizedByResize(e){this._autoMaximizedByResize=e,this.updateVisibility()}setBeforeClose(e){this._beforeClose=e}onMaximizeChanged(e){this._onMaximizeChanged=e}updateVisibility(){this.group.location==="floating"||this.group.isInFloatingSplit?(this.floatDockBtn.style.display="none",this.maximizeBtn.style.display="none",this.minimizeBtn.style.display="none",this.closeBtn.style.display="none"):(this.floatDockBtn.style.display=this._allowFloating?"":"none",this.floatDockBtn.innerHTML=Kn,this.floatDockBtn.title="Pop out",this.maximizeBtn.style.display=this._allowMaximize&&!this._autoMaximizedByResize?"":"none",this.minimizeBtn.style.display=this._allowMinimize?"":"none",this.closeBtn.style.display="")}createButton(e,n){let o=document.createElement("button");return o.title=e,o.innerHTML=n,o}onFloatDock(){this.restoreMaximized();let e=window.innerWidth,n=window.innerHeight,o=Math.min(720,Math.max(200,e-20)),r=Math.min(600,Math.max(200,n-20));this.panelManager.addFloatingGroup(this.group,{width:o,height:r,x:Math.max(0,(e-o)/2),y:Math.max(0,(n-r)/2)})}get isMaximized(){return this._isMaximized}clearMaximized(){this._isMaximized&&(this.panelManager.restoreMaximizedDockedGroup(this.group),this._isMaximized=!1,this.maximizeBtn.innerHTML=Ae,this.maximizeBtn.title="Maximize",this._onMaximizeChanged?.(!1))}setMaximized(){this._isMaximized||(this.panelManager.maximizeDockedGroup(this.group),this._isMaximized=!0,this.maximizeBtn.innerHTML=_n,this.maximizeBtn.title="Restore",this._onMaximizeChanged?.(!0))}onMaximize(){this._isMaximized?this.restoreMaximized():(this.panelManager.maximizeDockedGroup(this.group),this._isMaximized=!0,this.maximizeBtn.innerHTML=_n,this.maximizeBtn.title="Restore",this._onMaximizeChanged?.(!0))}restoreMaximized(){this._isMaximized&&(this.panelManager.restoreMaximizedDockedGroup(this.group),this._isMaximized=!1,this.maximizeBtn.innerHTML=Ae,this.maximizeBtn.title="Maximize",this._onMaximizeChanged?.(!1))}onMinimize(){this.restoreMaximized(),this.minimizeManager.minimizeDocked(this.group.id,this.group,this.panelManager)}onCloseGroup(){let e=()=>{this.restoreMaximized();for(let n of this.group.panels.slice())this.panelManager.removePanel(n.id)};if(this._beforeClose){let n=this._beforeClose();n&&typeof n.then=="function"?n.then(o=>{o&&e()}):n!==!1&&e()}else e()}};function ja(){if(typeof document>"u"||getComputedStyle(document.documentElement).getPropertyValue("--mb-adapt-styles-loaded").trim()||document.getElementById("mb-adapt-panel-styles"))return;let t=document.createElement("style");t.id="mb-adapt-panel-styles",t.textContent=Qa;let e=document.querySelector("style, link[rel=stylesheet]");e?e.parentNode.insertBefore(t,e):document.head.appendChild(t)}var Cr=0;function Pn(){return Cr++,document.documentElement.classList.add("mb-dragging"),{release(){--Cr<=0&&(Cr=0,document.documentElement.classList.remove("mb-dragging"))}}}var Sr=class{constructor(e,n,o){this.group=null;this.id=e,this.element=n,this.title=o||e,this.wrapper=document.createElement("div"),this.wrapper.className="mb-panel",this.wrapper.dataset.panelId=e,this.wrapper.dataset.active="false",this.wrapper.appendChild(n)}},Vr=0;function $a(t){for(let e=0;e<t.length;e++){let n=t[e].match(/^group-(\d+)$/);if(n){let o=parseInt(n[1],10);o>Vr&&(Vr=o)}}}var On=class{constructor(e){this._panels=[];this._activePanel=null;this._headerHidden=!1;this._locked=!1;this._onTabClose=null;this._onTabPointerDown=null;this._onTabPopOut=null;this._location="grid";this._onLocationChangedCb=null;this._isInFloatingSplit=!1;this._onSplitStateChangedCb=null;this._dragConstraint="any";this._dockingBlocked=!1;this._dialogDockingBlocked=!1;this._onPanelCountChangedCb=null;this._onActivePanelChangedCb=null;this.id=e||`group-${++Vr}`,this.element=document.createElement("div"),this.element.className="mb-group",this.element.dataset.groupId=this.id,this.headerElement=document.createElement("div"),this.headerElement.className="mb-group-header",this.headerPrefix=document.createElement("div"),this.headerPrefix.className="mb-group-header-prefix",this.tabsElement=document.createElement("div"),this.tabsElement.className="mb-group-tabs",this.headerVoid=document.createElement("div"),this.headerVoid.className="mb-group-header-void",this.headerActions=document.createElement("div"),this.headerActions.className="mb-group-header-actions",this.headerElement.appendChild(this.headerPrefix),this.headerElement.appendChild(this.tabsElement),this.headerElement.appendChild(this.headerVoid),this.headerElement.appendChild(this.headerActions),this.contentElement=document.createElement("div"),this.contentElement.className="mb-group-content",this.element.appendChild(this.headerElement),this.element.appendChild(this.contentElement)}get panels(){return this._panels}get activePanel(){return this._activePanel}get size(){return this._panels.length}get locked(){return this._locked}set locked(e){this._locked=e}setHeaderHidden(e){this._headerHidden=e,this.headerElement.style.display=e?"none":""}get headerHidden(){return this._headerHidden}setHeaderActions(e){this.headerActions.innerHTML="",this.headerActions.appendChild(e)}setHeaderPrefix(e){this.headerPrefix.innerHTML="",this.headerPrefix.appendChild(e)}onTabClose(e){this._onTabClose=e}onTabPointerDown(e){this._onTabPointerDown=e}get location(){return this._location}set location(e){this._location!==e&&(this._location=e,this._onLocationChangedCb?.(e))}onLocationChanged(e){this._onLocationChangedCb=e}fireLocationChanged(){this._onLocationChangedCb?.(this._location)}get isInFloatingSplit(){return this._isInFloatingSplit}set isInFloatingSplit(e){this._isInFloatingSplit!==e&&(this._isInFloatingSplit=e,this._onSplitStateChangedCb?.(e))}onSplitStateChanged(e){this._onSplitStateChangedCb=e}onTabPopOut(e){this._onTabPopOut=e}get dragConstraint(){return this._dragConstraint}set dragConstraint(e){this._dragConstraint=e}get dockingBlocked(){return this._dockingBlocked}set dockingBlocked(e){this._dockingBlocked=e}get dialogDockingBlocked(){return this._dialogDockingBlocked}set dialogDockingBlocked(e){this._dialogDockingBlocked=e}onPanelCountChanged(e){this._onPanelCountChangedCb=e}onActivePanelChanged(e){this._onActivePanelChangedCb=e}addPanel(e){if(this._panels.some(o=>o.id===e.id))return;e.group=this,this._panels.push(e),this.contentElement.appendChild(e.wrapper);let n=this.createTab(e);this.tabsElement.appendChild(n),this.activatePanel(e.id),this.element.dataset.tabCount=String(this._panels.length),this._onPanelCountChangedCb?.(this._panels.length)}removePanel(e){let n=this._panels.findIndex(i=>i.id===e);if(n===-1)return null;let o=this._panels[n];if(this._panels.splice(n,1),o.wrapper.remove(),this.tabsElement.querySelector(`[data-tab-id="${e}"]`)?.remove(),o.group=null,this._activePanel===o&&(this._activePanel=null,this._panels.length>0)){let i=this._panels[Math.min(n,this._panels.length-1)];i&&this.activatePanel(i.id)}return this.element.dataset.tabCount=String(this._panels.length),this._onPanelCountChangedCb?.(this._panels.length),o}detachPanel(e){let n=this._panels.findIndex(i=>i.id===e);if(n===-1)return null;let o=this._panels[n];if(this._panels.splice(n,1),this.tabsElement.querySelector(`[data-tab-id="${e}"]`)?.remove(),o.group=null,this._activePanel===o&&(this._activePanel=null,this._panels.length>0)){let i=this._panels[Math.min(n,this._panels.length-1)];i&&this.activatePanel(i.id)}return this.element.dataset.tabCount=String(this._panels.length),this._onPanelCountChangedCb?.(this._panels.length),o}activatePanel(e){let n=this._panels.find(r=>r.id===e);if(!n)return;this._activePanel=n;for(let r of this._panels)r.wrapper.dataset.active=r===n?"true":"false";let o=this.tabsElement.querySelectorAll(".mb-tab");for(let r of o){let i=r.dataset.tabId===e;r.dataset.active=i?"true":"false"}this._onActivePanelChangedCb?.(e)}reorderPanel(e,n){let o=this._panels.findIndex(c=>c.id===e);if(o===-1)return;let r=this._panels[o],i=Array.from(this.tabsElement.querySelectorAll(".mb-tab")),a=this._panels.length;for(let c=0;c<i.length;c++){let m=i[c].getBoundingClientRect();if(n<m.left+m.width/2){a=c;break}}if(a===o||a===o+1)return;this._panels.splice(o,1);let s=o<a?a-1:a;this._panels.splice(s,0,r);let l=this.tabsElement.querySelector(`[data-tab-id="${e}"]`);if(l){let c=this.tabsElement.querySelectorAll(".mb-tab")[s];c&&c!==l?this.tabsElement.insertBefore(l,c):this.tabsElement.appendChild(l)}}createTab(e){let n=document.createElement("div");n.className="mb-tab",n.dataset.tabId=e.id,n.dataset.active="false";let o=document.createElement("span");o.className="mb-tab-label",o.innerHTML=Qn,o.title=e.title,n.appendChild(o);let r=document.createElement("div");r.className="mb-tab-actions";let i=document.createElement("button");i.className="mb-tab-popout",i.title="Pop out",i.innerHTML=Kn,i.addEventListener("click",s=>{s.stopPropagation(),this._onTabPopOut?.(e.id)}),r.appendChild(i);let a=document.createElement("button");return a.className="mb-tab-close",a.title="Close",a.innerHTML='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',a.addEventListener("click",s=>{s.stopPropagation(),this._onTabClose?.(e.id)}),r.appendChild(a),n.appendChild(r),n.addEventListener("pointerdown",s=>{s.target.closest(".mb-tab-close")||s.target.closest(".mb-tab-popout")||s.button===0&&(s.preventDefault(),this._onTabPointerDown?.(e.id,s))}),n}dispose(){for(let e of this._panels)e.group=null;this._panels=[],this._activePanel=null,this.element.remove()}},Br=1e5,jn=class t{constructor(e,n,o,r){this.internalLayout=null;this.toolbarElement=null;this.savedBounds=null;this._isMaximized=!1;this._onDragEnd=null;this._onDragMove=null;this._onBoundsChanged=null;this.group=e,this.bounds={...n},this.element=document.createElement("div"),this.element.className="mb-floating-overlay",this.element.dataset.groupId=e.id,this.applyBounds();let i=["n","s","e","w","ne","nw","se","sw"];for(let s of i){let l=document.createElement("div");l.className=`mb-resize-handle mb-resize-${s}`,l.addEventListener("pointerdown",c=>this.onResizeStart(c,s)),this.element.appendChild(l)}this.element.addEventListener("pointerdown",()=>this.bringToFront(),!0),e.headerVoid.addEventListener("pointerdown",s=>this.onDragStart(s)),e.headerVoid.style.cursor="grab",this.wireDragOnActions(e);let a=o??document.body;r?a.insertBefore(this.element,r):a.appendChild(this.element),this.element.appendChild(e.element),this.bringToFront()}get isMaximized(){return this._isMaximized}set onDragEnd(e){this._onDragEnd=e}set onDragMove(e){this._onDragMove=e}set onBoundsChanged(e){this._onBoundsChanged=e}bringToFront(){Br+=2,this.element.style.zIndex=String(Br)}maximize(){this._isMaximized||(this.savedBounds={...this.bounds},this._isMaximized=!0,this.element.style.inset="0",this.element.style.width="auto",this.element.style.height="auto",this.element.classList.add("mb-floating-maximized"))}restore(){!this._isMaximized||!this.savedBounds||(this._isMaximized=!1,this.bounds={...this.savedBounds},this.savedBounds=null,this.element.classList.remove("mb-floating-maximized"),this.element.style.inset="",this.applyBounds())}hide(){this.element.style.display="none"}show(){this.element.style.display=""}dispose(){this.internalLayout&&(this.internalLayout.dispose(),this.internalLayout=null),this.removeToolbar(),this.element.remove()}getBounds(){return{...this.bounds}}setBounds(e){if(this._isMaximized)return;let n=10;e.width!==void 0&&(this.bounds.width=Math.min(e.width,window.innerWidth-this.bounds.x-n)),e.height!==void 0&&(this.bounds.height=Math.min(e.height,window.innerHeight-this.bounds.y-n)),this.applyBounds()}setFullBounds(e){if(this._isMaximized)return;let n=window.innerWidth,o=window.innerHeight,r=10,i=100;this.bounds={width:Math.max(i,Math.min(e.width,n-r)),height:Math.max(i,Math.min(e.height,o-r)),x:Math.max(0,Math.min(e.x,n-i)),y:Math.max(0,Math.min(e.y,o-i))},this.applyBounds()}applyBounds(){this.element.style.position="fixed",this.element.style.left=`${this.bounds.x}px`,this.element.style.top=`${this.bounds.y}px`,this.element.style.width=`${this.bounds.width}px`,this.element.style.height=`${this.bounds.height}px`}setDragGroup(e){e.headerVoid.addEventListener("pointerdown",n=>this.onDragStart(n)),e.headerVoid.style.cursor="grab",this.wireDragOnActions(e)}wireDragOnActions(e){e.headerActions.addEventListener("pointerdown",n=>{n.target.closest("button")||this.onDragStart(n)}),e.headerActions.style.cursor="grab"}setToolbar(e){this.removeToolbar(),this.toolbarElement=e,this.getToolbarHost().headerActions.appendChild(e)}removeToolbar(){this.toolbarElement&&(this.toolbarElement.remove(),this.toolbarElement=null)}repositionToolbar(){this.toolbarElement&&this.getToolbarHost().headerActions.appendChild(this.toolbarElement)}getToolbarHost(){if(!this.internalLayout)return this.group;let e=this.internalLayout.getRoot();return e?t.topRightGroup(e):this.group}static topRightGroup(e){return e.kind==="leaf"?e.group:e.direction==="horizontal"?t.topRightGroup(e.second):t.topRightGroup(e.first)}get hasToolbar(){return this.toolbarElement!==null}getAllGroups(){return this.internalLayout?.allGroups()??[this.group]}updateTotalTabCount(){let e=this.getAllGroups(),n=0;for(let o of e)n+=o.size;this.element.dataset.totalTabCount=String(n)}onDragStart(e){if(this._isMaximized)return;e.preventDefault();let n=e.currentTarget,o=e.clientX,r=e.clientY,i=this.bounds.x,a=this.bounds.y,s=Pn();n.style.cursor="grabbing",n.setPointerCapture(e.pointerId);let l=m=>{let g=m.clientX-o,f=m.clientY-r;this.bounds.x=Math.max(0,Math.min(i+g,window.innerWidth-this.bounds.width)),this.bounds.y=Math.max(0,Math.min(a+f,window.innerHeight-this.bounds.height)),this.applyBounds(),this._onDragMove?.(this.bounds.x+this.bounds.width/2,this.bounds.y+this.bounds.height/2)},c=()=>{s.release(),n.style.cursor="grab",n.removeEventListener("pointermove",l),n.removeEventListener("pointerup",c),n.removeEventListener("pointercancel",c),this._onDragEnd?.(this.bounds.x+this.bounds.width/2,this.bounds.y+this.bounds.height/2),this._onBoundsChanged?.()};n.addEventListener("pointermove",l),n.addEventListener("pointerup",c),n.addEventListener("pointercancel",c)}onResizeStart(e,n){if(this._isMaximized)return;e.preventDefault(),e.stopPropagation();let o=e.clientX,r=e.clientY,i={...this.bounds},a=e.currentTarget,s=200,l=100,c=Pn();a.setPointerCapture(e.pointerId);let m=f=>{let p=f.clientX-o,G=f.clientY-r;if(n.includes("e")&&(this.bounds.width=Math.max(s,i.width+p)),n.includes("w")){let x=Math.max(s,i.width-p);this.bounds.x=i.x+(i.width-x),this.bounds.width=x}if(n.includes("s")&&(this.bounds.height=Math.max(l,i.height+G)),n.includes("n")){let x=Math.max(l,i.height-G);this.bounds.y=i.y+(i.height-x),this.bounds.height=x}let Z=10;this.bounds.x=Math.max(0,this.bounds.x),this.bounds.y=Math.max(0,this.bounds.y),this.bounds.x+this.bounds.width>window.innerWidth-Z&&(this.bounds.width=window.innerWidth-this.bounds.x-Z),this.bounds.y+this.bounds.height>window.innerHeight-Z&&(this.bounds.height=window.innerHeight-this.bounds.y-Z),this.applyBounds()},g=()=>{c.release(),a.removeEventListener("pointermove",m),a.removeEventListener("pointerup",g),a.removeEventListener("pointercancel",g),this._onBoundsChanged?.()};a.addEventListener("pointermove",m),a.addEventListener("pointerup",g),a.addEventListener("pointercancel",g)}},Lt=class{constructor(e){this.root=null;this.onSplitResized=null;this.element=document.createElement("div"),this.element.className="mb-layout",e.appendChild(this.element)}getRoot(){return this.root}setMainGroup(e){let n=this.createLeaf(e);n.element.style.flex="1",this.root=n,this.element.appendChild(n.element)}splitGroup(e,n,o,r){let i=this.dockToSplitDirection(o),a=this.findGroupNode(e);if(!a)return!1;let s=document.createElement("div");s.className="mb-split-leaf",s.style.flex="1";let l=document.createElement("div");l.className=`mb-split-container ${i==="horizontal"?"mb-split-horizontal":"mb-split-vertical"}`,l.style.flex=a.element.style.flex||"1",l.style.minWidth="0",l.style.minHeight="0";let c=document.createElement("div"),m=i==="vertical";c.className=`mb-layout-separator ${m?"mb-layout-separator-h":"mb-layout-separator-v"}`;let g=o==="right"||o==="bottom";a.element.parentElement.insertBefore(l,a.element),g?(l.appendChild(a.element),l.appendChild(c),l.appendChild(s)):(l.appendChild(s),l.appendChild(c),l.appendChild(a.element)),s.appendChild(n.element),r!==void 0&&r>0?g?(a.element.style.flex="1",s.style.flex=`0 0 ${r}px`):(s.style.flex=`0 0 ${r}px`,a.element.style.flex="1"):(a.element.style.flex="1",s.style.flex="1");let p={kind:"leaf",group:n,element:s},G={kind:"split",direction:i,first:g?a:p,second:g?p:a,element:l,separator:c};return c.addEventListener("pointerdown",Z=>this.onSeparatorDrag(Z,G)),this.replaceNodeInTree(a,G),a.element.style.display==="none"&&(c.style.display="none",s.dataset.savedFlex=s.style.flex,s.style.flex="1",a.element.dataset.savedFlex=a.element.style.flex),!0}removeGroup(e){let n=this.findGroupNode(e);if(!n)return;if(this.root===n){n.element.remove(),this.root=null;return}this.restoreMaximizedLeaf(e);let o=this.findParentSplit(n);if(!o)return;let r=o.first===n?o.second:o.first;this.restoreMaximizedSubtree(r),r.element.style.flex=o.element.style.flex||"1",o.element.parentElement.insertBefore(r.element,o.element),n.element.remove(),o.separator.remove(),o.element.remove(),this.replaceNodeInTree(o,r)}findGroupNode(e){return this.findGroupNodeIn(this.root,e)}getGroupPosition(e){let n=this.findGroupNode(e);if(!n)return null;let o=this.findParentSplit(n);if(!o)return null;let r=o.first===n,i=r?o.second:o.first,a=this.firstGroupIn(i);if(!a)return null;let s;return o.direction==="horizontal"?s=r?"left":"right":s=r?"top":"bottom",{siblingGroup:a,direction:s}}firstGroupIn(e){return e.kind==="leaf"?e.group:this.firstGroupIn(e.first)}collapseLeaf(e){let n=this.findGroupNode(e);if(!n)return;let o=this.findParentSplit(n);if(o){let r=o.first===n?o.second:o.first;r.element.dataset.savedFlex=r.element.style.flex,r.element.style.flex="1",o.separator.style.display="none"}n.element.dataset.savedFlex=n.element.style.flex,n.element.style.display="none"}expandLeaf(e){let n=this.findGroupNode(e);if(!n)return;n.element.style.display="",n.element.dataset.savedFlex!==void 0&&(n.element.style.flex=n.element.dataset.savedFlex,delete n.element.dataset.savedFlex);let o=this.findParentSplit(n);if(o){o.separator.style.display="";let r=o.first===n?o.second:o.first;r.element.dataset.savedFlex!==void 0&&(r.element.style.flex=r.element.dataset.savedFlex,delete r.element.dataset.savedFlex)}}maximizeLeaf(e){let n=this.findGroupNode(e);if(!n)return;let o=n,r=this.findParentSplit(o);for(;r;){let i=r.first===o?r.second:r.first;i.element.dataset.maxSavedDisplay===void 0&&(i.element.dataset.maxSavedDisplay=i.element.style.display),i.element.style.display="none",r.separator.dataset.maxSavedDisplay===void 0&&(r.separator.dataset.maxSavedDisplay=r.separator.style.display),r.separator.style.display="none",o.element.dataset.maxSavedFlex===void 0&&(o.element.dataset.maxSavedFlex=o.element.style.flex),o.element.style.flex="1",o=r,r=this.findParentSplit(o)}}restoreMaximizedLeaf(e){let n=this.findGroupNode(e);if(!n)return;let o=n,r=this.findParentSplit(o);for(;r;){let i=r.first===o?r.second:r.first;i.element.dataset.maxSavedDisplay!==void 0&&(i.element.style.display=i.element.dataset.maxSavedDisplay,delete i.element.dataset.maxSavedDisplay),r.separator.dataset.maxSavedDisplay!==void 0&&(r.separator.style.display=r.separator.dataset.maxSavedDisplay,delete r.separator.dataset.maxSavedDisplay),o.element.dataset.maxSavedFlex!==void 0&&(o.element.style.flex=o.element.dataset.maxSavedFlex,delete o.element.dataset.maxSavedFlex),o=r,r=this.findParentSplit(o)}}restoreMaximizedSubtree(e){e.element.dataset.maxSavedDisplay!==void 0&&(e.element.style.display=e.element.dataset.maxSavedDisplay,delete e.element.dataset.maxSavedDisplay),e.element.dataset.maxSavedFlex!==void 0&&(e.element.style.flex=e.element.dataset.maxSavedFlex,delete e.element.dataset.maxSavedFlex),e.kind==="split"&&(e.separator.dataset.maxSavedDisplay!==void 0&&(e.separator.style.display=e.separator.dataset.maxSavedDisplay,delete e.separator.dataset.maxSavedDisplay),this.restoreMaximizedSubtree(e.first),this.restoreMaximizedSubtree(e.second))}allGroups(){let e=[];return this.collectGroups(this.root,e),e}toJSON(){return this.serializeNode(this.root)}restoreFlexFromSerialized(e){!e||!this.root||this.restoreFlexParallel(e,this.root)}restoreFlexParallel(e,n){if(e.flex&&this.isValidFlex(e.flex)&&(n.element.style.flex=e.flex),e.kind==="split"&&n.kind==="split")this.restoreFlexParallel(e.first,n.first),this.restoreFlexParallel(e.second,n.second);else if(e.kind!==n.kind){let o=new Map;this.collectFlexValues(e,o),this.applyFlexValues(n,o)}}animateTransition(){let e=r=>{r&&(r.kind==="leaf"?r.element.classList.add("mb-split-leaf--animating"):(r.element.classList.add("mb-split-container--animating"),r.separator&&r.separator.classList.add("mb-layout-separator--animating"),e(r.first),e(r.second)))};e(this.root);let n=()=>{this.element.querySelectorAll(".mb-split-leaf--animating, .mb-split-container--animating, .mb-layout-separator--animating").forEach(r=>{r.classList.remove("mb-split-leaf--animating","mb-split-container--animating","mb-layout-separator--animating")})},o=setTimeout(n,350);this.element.addEventListener("transitionend",()=>{clearTimeout(o),n()},{once:!0})}rebuildFromSerialized(e,n){let o=this.buildNodeFromSerialized(e,n);o&&(this.element.appendChild(o.element),this.moveGroupsIntoTree(o),this.root&&this.root.element.remove(),this.root=o,this.root&&(this.root.element.style.flex="1"))}buildNodeFromSerialized(e,n){if(e.kind==="leaf"){let c=n(e.groupId);if(!c)return null;let m=document.createElement("div");return m.className="mb-split-leaf",e.flex&&this.isValidFlex(e.flex)?m.style.flex=e.flex:m.style.flex="1",{kind:"leaf",group:c,element:m}}let o=this.buildNodeFromSerialized(e.first,n),r=this.buildNodeFromSerialized(e.second,n);if(!o&&!r)return null;if(!o)return e.flex&&this.isValidFlex(e.flex)&&(r.element.style.flex=e.flex),r;if(!r)return e.flex&&this.isValidFlex(e.flex)&&(o.element.style.flex=e.flex),o;let i=document.createElement("div");i.className=`mb-split-container ${e.direction==="horizontal"?"mb-split-horizontal":"mb-split-vertical"}`,e.flex&&this.isValidFlex(e.flex)?i.style.flex=e.flex:i.style.flex="1",i.style.minWidth="0",i.style.minHeight="0";let a=document.createElement("div"),s=e.direction==="vertical";a.className=`mb-layout-separator ${s?"mb-layout-separator-h":"mb-layout-separator-v"}`,i.appendChild(o.element),i.appendChild(a),i.appendChild(r.element);let l={kind:"split",direction:e.direction,first:o,second:r,element:i,separator:a};return a.addEventListener("pointerdown",c=>this.onSeparatorDrag(c,l)),l}moveGroupsIntoTree(e){if(e.kind==="leaf"){e.element.appendChild(e.group.element);return}this.moveGroupsIntoTree(e.first),this.moveGroupsIntoTree(e.second)}dispose(){this.element.remove(),this.root=null}createLeaf(e){let n=document.createElement("div");return n.className="mb-split-leaf",n.style.flex="1",n.appendChild(e.element),{kind:"leaf",group:e,element:n}}dockToSplitDirection(e){return e==="left"||e==="right"?"horizontal":"vertical"}findGroupNodeIn(e,n){return e?e.kind==="leaf"?e.group===n?e:null:this.findGroupNodeIn(e.first,n)??this.findGroupNodeIn(e.second,n):null}collectGroups(e,n){e&&(e.kind==="leaf"?n.push(e.group):(this.collectGroups(e.first,n),this.collectGroups(e.second,n)))}findParentSplit(e){return this.findParentSplitIn(this.root,e)}findParentSplitIn(e,n){return!e||e.kind==="leaf"?null:e.first===n||e.second===n?e:this.findParentSplitIn(e.first,n)??this.findParentSplitIn(e.second,n)}replaceNodeInTree(e,n){if(this.root===e){this.root=n;return}let o=this.findParentSplit(e);o&&(o.first===e?o.first=n:o.second=n)}collectFlexValues(e,n){e.kind==="leaf"?n.set(e.groupId,e.flex):(this.collectFlexValues(e.first,n),this.collectFlexValues(e.second,n))}applyFlexValues(e,n){if(e.kind==="leaf"){let o=n.get(e.group.id);o&&this.isValidFlex(o)&&(e.element.style.flex=o)}else this.applyFlexValues(e.first,n),this.applyFlexValues(e.second,n)}isValidFlex(e){if(e.includes("px"))return!0;let n=e.split(" ")[0],o=Number(n);return Number.isFinite(o)&&o>=0}serializeNode(e){if(!e)return null;let n=e.element.dataset.maxSavedFlex||e.element.dataset.savedFlex||e.element.style.flex||"1";if(e.kind==="leaf")return e.group.size===0&&e.group.id!=="main-group"?null:{kind:"leaf",groupId:e.group.id,flex:n};let o=this.serializeNode(e.first),r=this.serializeNode(e.second);return!o&&!r?null:o?r?{kind:"split",direction:e.direction,first:o,second:r,flex:n}:(o.flex=n,o):(r.flex=n,r)}onSeparatorDrag(e,n){if(e.preventDefault(),n.first.element.style.display==="none"||n.second.element.style.display==="none")return;let o=n.direction==="horizontal",r=o?e.clientX:e.clientY,i=n.first.element,a=n.second.element;this.lockDescendantSizes(n.first,o),this.lockDescendantSizes(n.second,o);let s=o?i.offsetWidth:i.offsetHeight,l=o?a.offsetWidth:a.offsetHeight,c=s+l;if(c<=0)return;let m=150,g=Pn();n.separator.setPointerCapture(e.pointerId),n.separator.classList.add("mb-layout-separator--active");let f=G=>{if(i.style.display==="none"||a.style.display==="none"){n.separator.releasePointerCapture(G.pointerId),p();return}let Z=(o?G.clientX:G.clientY)-r,x=s+Z,J=l-Z;x<m&&(x=m,J=c-m),J<m&&(J=m,x=c-m),i.style.flex=String(x/c),a.style.flex=String(J/c)},p=()=>{g.release(),n.separator.classList.remove("mb-layout-separator--active"),n.separator.removeEventListener("pointermove",f),n.separator.removeEventListener("pointerup",p),n.separator.removeEventListener("pointercancel",p),this.unlockDescendantSizes(n.first,o),this.unlockDescendantSizes(n.second,o),this.onSplitResized?.()};n.separator.addEventListener("pointermove",f),n.separator.addEventListener("pointerup",p),n.separator.addEventListener("pointercancel",p)}lockDescendantSizes(e,n){if(e.kind!=="split"||e.direction==="horizontal"!==n)return;let o=n?e.first.element.getBoundingClientRect().width:e.first.element.getBoundingClientRect().height;e.first.element.style.flex=`0 0 ${o}px`,e.second.element.style.flex="1",this.lockDescendantSizes(e.first,n),this.lockDescendantSizes(e.second,n)}unlockDescendantSizes(e,n){if(e.kind!=="split"||e.direction==="horizontal"!==n)return;this.unlockDescendantSizes(e.first,n),this.unlockDescendantSizes(e.second,n);let o=n?e.first.element.getBoundingClientRect().width:e.first.element.getBoundingClientRect().height,r=n?e.second.element.getBoundingClientRect().width:e.second.element.getBoundingClientRect().height,i=o+r;i>0?(e.first.element.style.flex=String(o/i),e.second.element.style.flex=String(r/i)):(e.first.element.style.flex="0.5",e.second.element.style.flex="0.5")}},Je=class{constructor(e){this.groups=new Map;this.panels=new Map;this.floatingOverlays=new Map;this.mainGroupId=null;this.onPanelRemovedCbs=[];this.onGroupCreatedByDragCb=null;this.onLayoutChangedCb=null;this.disposed=!1;this.dragState=null;this.portals=new Map;this.portalRaf=0;this.mainGroupCollapsed=!1;this._beforeTabClose=null;this.zBase=0;this.container=e.container,this.splitEdgeSize=e.splitEdgeSize??100,this.layout=new Lt(this.container),e.onPanelRemoved&&this.onPanelRemovedCbs.push(e.onPanelRemoved),this.onGroupCreatedByDragCb=e.onGroupCreatedByDrag??null,this.onLayoutChangedCb=e.onLayoutChanged??null,this.layout.onSplitResized=this.onLayoutChangedCb,this.zBase=this.getZBase(),this.zBase!==0&&(Br=1e5+this.zBase),this.dropOverlay=document.createElement("div"),this.dropOverlay.className="mb-drop-overlay",this.container.appendChild(this.dropOverlay),this.portalLayer=document.createElement("div"),this.portalLayer.className="mb-iframe-portal-layer",this.container.appendChild(this.portalLayer),this.syncPortals()}getZBase(){let e=getComputedStyle(this.container).getPropertyValue("--mb-adapt-z-base").trim();return parseInt(e,10)||0}setBeforeTabClose(e){this._beforeTabClose=e}addPanel(e){let n=new Sr(e.id,e.element,e.title);this.panels.set(e.id,n);let o=e.groupId;if(o){let r=this.groups.get(o);r&&(r.addPanel(n),this.registerPortal(n.id,n.element,n.wrapper))}return n}removePanel(e){let n=this.panels.get(e);if(n){if(this.unregisterPortal(e),n.group){let o=n.group;o.removePanel(e),o.size===0&&o.id!==this.mainGroupId&&this.removeGroup(o.id)}this.panels.delete(e);for(let o of this.onPanelRemovedCbs)o(n)}}getPanel(e){return this.panels.get(e)}addGroup(e){let n=new On(e?.id);if(this.groups.set(n.id,n),this.wireGroupCallbacks(n),e?.floating)this.addFloatingGroup(n,e.floating);else if(e?.direction){let o=this.mainGroupId,r=o?this.groups.get(o):void 0;r&&this.layout.splitGroup(r,n,e.direction,e.initialSize)}return n}removeGroup(e){let n=this.groups.get(e);if(!n)return;for(let r of[...n.panels])this.unregisterPortal(r.id);let o=this.floatingOverlays.get(e);if(o)if(o.internalLayout){o.internalLayout.removeGroup(n),this.floatingOverlays.delete(e);let r=this.cleanupOrphanedFloatingLeaf(o);r.length>0?(o.group=r[0],this.floatingOverlays.set(r[0].id,o)):o.dispose()}else o.dispose(),this.floatingOverlays.delete(e);if(!o){let r=this.findOverlayForGroup(n);if(r?.internalLayout&&(r.internalLayout.removeGroup(n),this.cleanupOrphanedFloatingLeaf(r).length===0)){let a=[...this.floatingOverlays.entries()].find(([,s])=>s===r)?.[0];a&&this.floatingOverlays.delete(a),r.dispose()}}this.layout.findGroupNode(n)&&this.layout.removeGroup(n),n.isInFloatingSplit=!1,n.dispose(),this.groups.delete(e)}getGroup(e){return this.groups.get(e)}getGroupIds(){return Array.from(this.groups.keys())}getMainGroup(){if(this.mainGroupId)return this.groups.get(this.mainGroupId)}setMainGroup(e){this.mainGroupId=e.id,this.layout.setMainGroup(e)}collapseMainGroup(){let e=this.getMainGroup();!e||this.mainGroupCollapsed||(this.layout.collapseLeaf(e),this.mainGroupCollapsed=!0)}expandMainGroup(){let e=this.getMainGroup();!e||!this.mainGroupCollapsed||(this.layout.expandLeaf(e),this.mainGroupCollapsed=!1)}isMainGroupCollapsed(){return this.mainGroupCollapsed}getDockedGroups(){return this.layout.allGroups()}collapseDockedGroup(e){this.layout.collapseLeaf(e)}expandDockedGroup(e){this.layout.expandLeaf(e)}maximizeDockedGroup(e){this.layout.maximizeLeaf(e)}restoreMaximizedDockedGroup(e){this.layout.restoreMaximizedLeaf(e)}restoreLayoutFlex(e){this.layout.restoreFlexFromSerialized(e)}rebuildDockedLayout(e){this.layout.rebuildFromSerialized(e,n=>this.groups.get(n))}rebuildFloatingInternalLayout(e,n){let o=this.floatingOverlays.get(e);if(!o)return;o.internalLayout||(o.internalLayout=new Lt(o.element),o.internalLayout.setMainGroup(o.group),this.onLayoutChangedCb&&(o.internalLayout.onSplitResized=this.onLayoutChangedCb)),o.internalLayout.rebuildFromSerialized(n,a=>this.groups.get(a));let r=o.internalLayout.allGroups(),i=r.length>1;for(let a of r)a.location="floating",a.isInFloatingSplit=i;o.updateTotalTabCount()}addFloatingGroup(e,n){let o=this.floatingOverlays.get(e.id);o&&this.floatingOverlays.delete(e.id);let r=o?null:this.findOverlayForGroup(e),i=new jn(e,n,this.container,this.portalLayer);if(this.onLayoutChangedCb&&(i.onBoundsChanged=this.onLayoutChangedCb),this.floatingOverlays.set(e.id,i),this.layout.findGroupNode(e)&&this.layout.removeGroup(e),o?.internalLayout){o.internalLayout.removeGroup(e);let a=this.cleanupOrphanedFloatingLeaf(o);a.length>0?(o.group=a[0],this.floatingOverlays.set(a[0].id,o)):o.dispose()}else o?o.dispose():r?.internalLayout&&(r.internalLayout.removeGroup(e),this.cleanupOrphanedFloatingLeaf(r));return e.isInFloatingSplit=!1,e.location="floating",i.updateTotalTabCount(),i}dockGroup(e,n,o){let r=this.groups.get(e);if(!r||e===this.mainGroupId)return;let i=this.mainGroupId?this.groups.get(this.mainGroupId):void 0;if(!i)return;let a=this.floatingOverlays.get(e),s=a?null:this.findOverlayForGroup(r);if(this.layout.splitGroup(i,r,n,o)){if(a)if(a.internalLayout){a.internalLayout.removeGroup(r),this.floatingOverlays.delete(e);let l=this.cleanupOrphanedFloatingLeaf(a);l.length>0?(a.group=l[0],this.floatingOverlays.set(l[0].id,a)):a.dispose()}else a.dispose(),this.floatingOverlays.delete(e);else s?.internalLayout&&(s.internalLayout.removeGroup(r),this.cleanupOrphanedFloatingLeaf(s));r.location="grid",r.isInFloatingSplit=!1}}getFloatingOverlay(e){return this.floatingOverlays.get(e)}dockOverlay(e){let n=this.floatingOverlays.get(e);if(!n)return;let o=this.mainGroupId?this.groups.get(this.mainGroupId):void 0;if(!o)return;if(!n.internalLayout){this.dockGroup(e,"right");return}let r=n.internalLayout.allGroups();if(r.length===0)return;let i=r[0];this.layout.splitGroup(o,i,"right"),i.location="grid",i.isInFloatingSplit=!1;for(let a=1;a<r.length;a++){let s=r[a];this.layout.splitGroup(i,s,"bottom"),s.location="grid",s.isInFloatingSplit=!1}n.internalLayout.dispose(),n.internalLayout=null,n.dispose(),this.floatingOverlays.delete(e)}findOverlayContaining(e){let n=this.groups.get(e);if(n)return this.findOverlayForGroup(n)??void 0}movePanel(e,n){let o=this.panels.get(e);if(!o)return;let r=o.group;if(!r||r.id===n)return;let i=this.groups.get(n);i&&(r.detachPanel(e),i.addPanel(o),r.size===0&&r.id!==this.mainGroupId&&this.removeGroup(r.id))}serializeLayout(){let e=[];for(let[o,r]of this.floatingOverlays){if(r.getAllGroups().reduce((l,c)=>l+c.size,0)===0)continue;let s={groupId:o,bounds:r.getBounds(),internalLayout:r.internalLayout?.toJSON()??null};r.isMaximized&&(s.isMaximized=!0),e.push(s)}let n={};for(let[o,r]of this.panels)r.group&&(n[o]=r.group.id);return{mainLayout:this.layout.toJSON(),floatingGroups:e,panelLocations:n}}getFloatingOverlays(){return this.floatingOverlays}cleanupEmptyGroups(){let e=!1;for(let n of[...this.layout.allGroups()])n.id!==this.mainGroupId&&n.size===0&&(this.removeGroup(n.id),e=!0);for(let[n,o]of[...this.floatingOverlays]){if(o.internalLayout)for(let i of[...o.internalLayout.allGroups()])i.size===0&&(this.removeGroup(i.id),e=!0);let r=this.floatingOverlays.get(n);r&&r.getAllGroups().reduce((s,l)=>s+l.size,0)===0&&(this.removeGroup(n),e=!0)}e&&this.layout.getRoot()&&(this.layout.getRoot().element.style.flex="1")}onDidRemovePanel(e){return this.onPanelRemovedCbs.push(e),{dispose:()=>{let n=this.onPanelRemovedCbs.indexOf(e);n!==-1&&this.onPanelRemovedCbs.splice(n,1)}}}dispose(){if(!this.disposed){this.disposed=!0,this.cancelTabDrag(),cancelAnimationFrame(this.portalRaf);for(let e of this.floatingOverlays.values())e.dispose();this.floatingOverlays.clear();for(let e of this.groups.values())e.dispose();this.groups.clear(),this.panels.clear(),this.onPanelRemovedCbs=[],this.dropOverlay.remove();for(let e of this.portals.values())e.entry.remove();this.portals.clear(),this.portalLayer.remove(),this.layout.dispose()}}wireGroupCallbacks(e){e.onTabClose(n=>{if(this._beforeTabClose){let o=this._beforeTabClose(n);o&&typeof o.then=="function"?o.then(r=>{r&&this.removePanel(n)}):o!==!1&&this.removePanel(n);return}this.removePanel(n)}),e.onTabPointerDown((n,o)=>{this.onTabPointerDown(n,e,o)}),e.onTabPopOut(n=>{this.detachPanelToFloating(n,window.innerWidth/2,window.innerHeight/2)})}onTabPointerDown(e,n,o){if(this.dragState)return;this.dragState={panelId:e,sourceGroup:n,startX:o.clientX,startY:o.clientY,isDragging:!1,ghost:null,iframes:null,currentZone:null};let r=s=>{if(!this.dragState)return;if(!this.dragState.isDragging){let c=s.clientX-this.dragState.startX,m=s.clientY-this.dragState.startY;if(c*c+m*m<25)return;this.dragState.isDragging=!0,this.dragState.iframes=Pn(),this.dragState.ghost=this.createDragGhost(e),this.container.appendChild(this.dragState.ghost)}this.dragState.ghost.style.left=`${s.clientX+8}px`,this.dragState.ghost.style.top=`${s.clientY+8}px`;let l=this.hitTestDropZone(s.clientX,s.clientY);l=this.applyDragConstraints(l,this.dragState.sourceGroup),this.updateDropOverlay(l)},i=s=>{if(document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),!this.dragState)return;if(!this.dragState.isDragging){n.activatePanel(e),this.dragState=null;return}this.dragState.ghost?.remove(),this.dragState.iframes?.release(),this.updateDropOverlay(null);let l=this.applyDragConstraints(this.hitTestDropZone(s.clientX,s.clientY),n);if(l)switch(l.kind){case"header":case"content-center":l.group.id===n.id?n.reorderPanel(e,s.clientX):this.movePanel(e,l.group.id);break;case"content-split":this.dockTabFromDrag(e,l.direction,l.group);break}this.cleanupEmptyGroups(),l&&this.onLayoutChangedCb?.(),this.dragState=null},a=()=>{document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),this.cancelTabDrag()};document.addEventListener("pointermove",r),document.addEventListener("pointerup",i),document.addEventListener("pointercancel",a)}cancelTabDrag(){this.dragState&&(this.dragState.ghost?.remove(),this.dragState.iframes?.release(),this.updateDropOverlay(null),this.dragState=null)}createDragGhost(e){let n=this.panels.get(e),o=document.createElement("div");return o.className="mb-drag-ghost",o.innerHTML=Qn,o.title=n?.title||e,o}hitTestDropZone(e,n,o){let r=[...this.floatingOverlays.entries()].filter(([,i])=>i.element.style.display!=="none").sort((i,a)=>{let s=parseInt(i[1].element.style.zIndex||"0");return parseInt(a[1].element.style.zIndex||"0")-s});for(let[,i]of r){let a=i.internalLayout?i.internalLayout.allGroups():[i.group];for(let s of a){if(s.id===o||s.locked==="no-drop-target")continue;if(!s.headerHidden){let c=s.headerElement.getBoundingClientRect();if(e>=c.left&&e<=c.right&&n>=c.top&&n<=c.bottom)return{kind:"header",group:s}}let l=s.contentElement.getBoundingClientRect();if(e>=l.left&&e<=l.right&&n>=l.top&&n<=l.bottom)return this.classifyContentZone(e,n,l,s)}}for(let i of this.groups.values()){if(this.floatingOverlays.has(i.id)||this.findOverlayForGroup(i)||i.id===o)continue;if(!i.headerHidden){let s=i.headerElement.getBoundingClientRect();if(e>=s.left&&e<=s.right&&n>=s.top&&n<=s.bottom&&i.locked!=="no-drop-target")return{kind:"header",group:i}}let a=i.contentElement.getBoundingClientRect();if(e>=a.left&&e<=a.right&&n>=a.top&&n<=a.bottom)return this.classifyContentZone(e,n,a,i)}return null}classifyContentZone(e,n,o,r){if(r.locked==="no-drop-target"){let f=n-o.top,p=o.bottom-n,G=e-o.left,Z=o.right-e,x;return f<=p&&f<=G&&f<=Z?x="top":p<=f&&p<=G&&p<=Z?x="bottom":G<=Z?x="left":x="right",{kind:"content-split",group:r,direction:x}}let a=this.splitEdgeSize,s=n-o.top,l=o.bottom-n,c=e-o.left,m=o.right-e;if(Math.min(s,l,c,m)<a){let f;return s<=l&&s<=c&&s<=m?f="top":l<=s&&l<=c&&l<=m?f="bottom":c<=m?f="left":f="right",{kind:"content-split",group:r,direction:f}}return{kind:"content-center",group:r}}applyDragConstraints(e,n){if(!e)return null;if(!("group"in e))return e;let o=this.findOverlayForGroup(e.group)!==null,r=!!e.group.locked;return(e.kind==="content-center"||e.kind==="header")&&r||n.dockingBlocked&&!o?null:e.kind==="content-split"&&o&&n.dialogDockingBlocked?{kind:"content-center",group:e.group}:e}updateDropOverlay(e){let n=this.dragState?.currentZone??null;if(n&&n.kind==="header"&&n.group.headerElement.classList.remove("mb-group-header--drop-target"),this.dropOverlay.style.display="none",e===null){this.dragState&&(this.dragState.currentZone=null);return}switch(e.kind){case"header":e.group.headerElement.classList.add("mb-group-header--drop-target");break;case"content-center":{let o=e.group.contentElement.getBoundingClientRect();this.positionDropOverlay(o.left,o.top,o.width,o.height),this.dropOverlay.dataset.zone="center";break}case"content-split":this.showSplitIndicator(e.group,e.direction);break}this.dragState&&(this.dragState.currentZone=e)}showSplitIndicator(e,n){let o=e.contentElement.getBoundingClientRect();switch(n){case"top":this.positionDropOverlay(o.left,o.top,o.width,o.height/2);break;case"bottom":this.positionDropOverlay(o.left,o.top+o.height/2,o.width,o.height/2);break;case"left":this.positionDropOverlay(o.left,o.top,o.width/2,o.height);break;case"right":this.positionDropOverlay(o.left+o.width/2,o.top,o.width/2,o.height);break}this.dropOverlay.dataset.zone=n}positionDropOverlay(e,n,o,r){let i=this.dropOverlay;i.style.display="block",i.style.left=`${e}px`,i.style.top=`${n}px`,i.style.width=`${o}px`,i.style.height=`${r}px`}detachPanelToFloating(e,n,o){let r=this.panels.get(e);if(!r||!r.group||r.group.id===this.mainGroupId)return;let i=Math.min(600,window.innerWidth*.8),a=Math.min(450,window.innerHeight*.7),s=this.addGroup({floating:{x:(window.innerWidth-i)/2,y:(window.innerHeight-a)/2,width:i,height:a}});this.movePanel(e,s.id),this.onGroupCreatedByDragCb?.(s)}dockTabFromDrag(e,n,o){let r=this.getLayoutForGroup(o);if(!r)return;let i=new On;if(this.groups.set(i.id,i),this.wireGroupCallbacks(i),!r.splitGroup(o,i,n)){this.groups.delete(i.id),i.dispose(),this.movePanel(e,o.id);return}let s=this.findOverlayForGroup(o);s?.internalLayout&&(s.setDragGroup(i),i.location="floating",this.updateFloatingSplitState(s)),this.movePanel(e,i.id),s&&s.updateTotalTabCount(),this.onGroupCreatedByDragCb?.(i)}getLayoutForGroup(e){if(this.layout.findGroupNode(e))return this.layout;let n=this.findOverlayForGroup(e);return n?(n.internalLayout||(n.internalLayout=new Lt(n.element),n.internalLayout.setMainGroup(n.group)),n.internalLayout):null}escapeGroupFromSplit(e){let n=this.groups.get(e);if(!n||!n.isInFloatingSplit)return;let o=this.findOverlayForGroup(n);if(!o?.internalLayout)return;let r=o.element.getBoundingClientRect(),i=this.floatingOverlays.get(e)===o,a=new jn(n,{x:Math.min(r.left+30,window.innerWidth-320),y:Math.min(r.top+30,window.innerHeight-220),width:Math.max(300,r.width*.6),height:Math.max(200,r.height*.8)},this.container,this.portalLayer);this.floatingOverlays.set(e,a),o.internalLayout.removeGroup(n);let s=this.cleanupOrphanedFloatingLeaf(o);i&&s.length>0?(o.group=s[0],this.floatingOverlays.set(s[0].id,o)):s.length===0&&o.dispose(),n.isInFloatingSplit=!1,n.location==="floating"?n.fireLocationChanged():n.location="floating"}updateFloatingSplitState(e){if(!e.internalLayout)return;let n=e.internalLayout.allGroups(),o=n.length>1;for(let r of n)r.location="floating",r.isInFloatingSplit=o;e.repositionToolbar()}cleanupOrphanedFloatingLeaf(e){if(!e.internalLayout)return[];let n=e.internalLayout.allGroups();return n.length<=1?(n.length===1&&(e.element.appendChild(n[0].element),n[0].isInFloatingSplit=!1),e.internalLayout.dispose(),e.internalLayout=null,n.length===1&&(e.setDragGroup(n[0]),n[0].location="floating",e.repositionToolbar())):this.updateFloatingSplitState(e),e.updateTotalTabCount(),n}minimizeDocked(e){let n=this.layout.getGroupPosition(e);return this.layout.findGroupNode(e)&&this.layout.removeGroup(e),n?{siblingGroupId:n.siblingGroup.id,direction:n.direction}:null}restoreDocked(e,n,o,r){if(r){let a=this.groups.get(r);if(a&&this.layout.findGroupNode(a)&&this.layout.splitGroup(a,e,n,o))return}let i=this.mainGroupId?this.groups.get(this.mainGroupId):void 0;i&&this.layout.splitGroup(i,e,n,o)}findOverlayForGroup(e){let n=this.floatingOverlays.get(e.id);if(n)return n;for(let o of this.floatingOverlays.values())if(o.internalLayout?.findGroupNode(e))return o;return null}registerPortal(e,n,o){let r=document.createElement("div");r.className="mb-iframe-portal",r.dataset.portalId=e,this.portalLayer.appendChild(r),r.appendChild(n),this.portals.set(e,{entry:r,anchor:o})}unregisterPortal(e){let n=this.portals.get(e);n&&(n.entry.remove(),this.portals.delete(e))}syncPortals(){if(this.disposed)return;let e=[];for(let[,n]of this.portals){let{entry:o,anchor:r}=n;if(r.offsetParent===null)e.push({entry:o,rect:null,zIndex:"0"});else{let i=r.closest(".mb-floating-overlay"),a=i?.style.zIndex;e.push({entry:o,rect:r.getBoundingClientRect(),zIndex:String(i?parseInt(a||String(1e5+this.zBase),10)+1:50+this.zBase)})}}for(let{entry:n,rect:o,zIndex:r}of e)o?(n.style.display="",n.style.left=`${o.left}px`,n.style.top=`${o.top}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`,n.style.zIndex=r):n.style.display="none";this.portalRaf=requestAnimationFrame(()=>this.syncPortals())}};function _c(t){let e=/^#([0-9a-f]{3,8})$/i.exec(t.trim());if(!e)return null;let n=e[1];return n.length===3?[parseInt(n[0]+n[0],16),parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16)]:n.length===6||n.length===8?[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]:null}function Ht(t,e){let n=_c(t);return n?`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${e})`:t}function Tt(t){let e={};if(t.primary){let n=t.primary;e["--mb-adapt-separator-active"]=Ht(n,.4),e["--mb-adapt-drop-border"]=n,e["--mb-adapt-drop-header-bg"]=Ht(n,.15),e["--mb-adapt-drop-center-bg"]=Ht(n,.1),e["--mb-adapt-drop-split-bg"]=Ht(n,.12),e["--mb-adapt-status-icon-bg"]=Ht(n,.08),e["--mb-adapt-cap-spinner-color"]=n}if(t.background&&(e["--mb-adapt-bg"]=t.background,e["--mb-adapt-fork-tab-active-bg"]=t.background,e["--mb-adapt-status-card-bg"]=t.background),t.surface&&(e["--mb-adapt-fork-bg"]=t.surface,e["--mb-adapt-fork-tab-bg"]=t.surface),t.text&&(e["--mb-adapt-fork-tab-color"]=t.text,e["--mb-adapt-status-text"]=t.text,e["--mb-adapt-cap-color"]=t.text),t.textSecondary&&(e["--mb-adapt-fork-tab-inactive-color"]=t.textSecondary),t.border&&(e["--mb-adapt-fork-separator"]=t.border,e["--mb-adapt-status-card-border"]=t.border,e["--mb-adapt-cap-border-color"]=t.border),t.font&&(e["--mb-adapt-font"]=t.font,e["--mb-adapt-cap-font"]=t.font),t.vars)for(let[n,o]of Object.entries(t.vars))e[`--mb-adapt-${n}`]=o;return e}var Qc=["automation-id","session-token","auth-token","transmitter","challenge-token","requires-challenge","inherit-token","fork-display-mode","side-by-side-split","dark-mode","auto-resizing","allow-floating","allow-docking","allow-dialog-docking","allow-minimize","allow-maximize","floating-auto-resize","confirm-on-close","persist","debug"],Pc=typeof HTMLElement<"u"?HTMLElement:class{},st=class extends Pc{constructor(){super();this._client=null}static get observedAttributes(){return Qc}get theme(){return this._theme}set theme(n){this._theme=n,this._client?.setTheme(n)}get automationId(){return this.getAttribute("automation-id")}set automationId(n){n===null?this.removeAttribute("automation-id"):this.setAttribute("automation-id",n)}get darkMode(){return this.hasAttribute("dark-mode")}set darkMode(n){n?this.setAttribute("dark-mode",""):this.removeAttribute("dark-mode")}get autoResizing(){return this.hasAttribute("auto-resizing")}set autoResizing(n){n?this.setAttribute("auto-resizing",""):this.removeAttribute("auto-resizing")}get allowFloating(){return!this.hasAttribute("allow-floating")||this.getAttribute("allow-floating")!=="false"}set allowFloating(n){n?this.removeAttribute("allow-floating"):this.setAttribute("allow-floating","false")}get allowDocking(){return!this.hasAttribute("allow-docking")||this.getAttribute("allow-docking")!=="false"}set allowDocking(n){n?this.removeAttribute("allow-docking"):this.setAttribute("allow-docking","false")}get allowDialogDocking(){return!this.hasAttribute("allow-dialog-docking")||this.getAttribute("allow-dialog-docking")!=="false"}set allowDialogDocking(n){n?this.removeAttribute("allow-dialog-docking"):this.setAttribute("allow-dialog-docking","false")}get allowMinimize(){return!this.hasAttribute("allow-minimize")||this.getAttribute("allow-minimize")!=="false"}set allowMinimize(n){n?this.removeAttribute("allow-minimize"):this.setAttribute("allow-minimize","false")}get allowMaximize(){return!this.hasAttribute("allow-maximize")||this.getAttribute("allow-maximize")!=="false"}set allowMaximize(n){n?this.removeAttribute("allow-maximize"):this.setAttribute("allow-maximize","false")}get floatingAutoResize(){return this.hasAttribute("floating-auto-resize")}set floatingAutoResize(n){n?this.setAttribute("floating-auto-resize",""):this.removeAttribute("floating-auto-resize")}get confirmOnClose(){return this.hasAttribute("confirm-on-close")}set confirmOnClose(n){n?this.setAttribute("confirm-on-close",""):this.removeAttribute("confirm-on-close")}get forkDisplayMode(){return this.getAttribute("fork-display-mode")==="dialog"?"dialog":"side-by-side"}set forkDisplayMode(n){this.setAttribute("fork-display-mode",n)}get persist(){return this.hasAttribute("persist")}set persist(n){n?this.setAttribute("persist",""):this.removeAttribute("persist")}get debug(){return this.hasAttribute("debug")}set debug(n){n?this.setAttribute("debug",""):this.removeAttribute("debug")}async newSession(){this._client&&await this._client.newSession()}connectedCallback(){queueMicrotask(()=>this._tryInit())}disconnectedCallback(){this._destroyClient()}attributeChangedCallback(n,o,r){if(o!==r){if(n==="automation-id"||n==="persist"||n==="debug"){this._destroyClient(),queueMicrotask(()=>this._tryInit());return}if(this._client)switch(n){case"fork-display-mode":this._client.setForkDisplayMode(this.forkDisplayMode);break;case"dark-mode":this._client.setDarkMode(this.darkMode);break;case"auto-resizing":this._client.setAutoResizing(this.autoResizing);break;case"allow-floating":this._client.setAllowFloating(this.allowFloating);break;case"allow-docking":this._client.setAllowDocking(this.allowDocking);break;case"allow-dialog-docking":this._client.setAllowDialogDocking(this.allowDialogDocking);break;case"allow-minimize":this._client.setAllowMinimize(this.allowMinimize);break;case"allow-maximize":this._client.setAllowMaximize(this.allowMaximize);break;case"floating-auto-resize":this._client.setFloatingAutoResize(this.floatingAutoResize);break;case"confirm-on-close":this._client.setConfirmOnClose(this.confirmOnClose);break}}}_tryInit(){if(this._client||!this.isConnected)return;let n=this.automationId;if(!n){console.error(`[adapt] <adapt-automation> is missing the required "automation-id" attribute. The element will not initialize. Set it via HTML: <adapt-automation automation-id="..."> or via the Astro/React/Vue component's automationId prop.`);return}let o=this.getAttribute("session-token"),r=this.getAttribute("auth-token"),i=this.getAttribute("transmitter"),a=this.getAttribute("challenge-token"),s=this.hasAttribute("requires-challenge"),l=this.getAttribute("inherit-token"),c=this.getAttribute("side-by-side-split"),m;this.forkDisplayMode==="dialog"?m={mode:"dialog"}:m={mode:"side-by-side",...c!==null&&{split:Number(c)}};let g={container:this,automationId:n,forkDisplay:m,darkMode:this.darkMode,autoResizing:this.autoResizing,onSession:(f,p)=>{this.onSessionCallback?.(f,p),this.dispatchEvent(new CustomEvent("adapt-session",{detail:{status:f,fork:p},bubbles:!0}))},onOutput:f=>{this.onOutputCallback?.(f),this.dispatchEvent(new CustomEvent("adapt-output",{detail:{output:f},bubbles:!0}))},onForkActive:f=>{this.onForkActiveCallback?.(f),this.dispatchEvent(new CustomEvent("adapt-fork-active",{detail:{active:f},bubbles:!0}))},onError:f=>{this.onErrorCallback?.(f),this.dispatchEvent(new CustomEvent("adapt-error",{detail:{error:f},bubbles:!0}))}};this.allowFloating||(g.allowFloating=!1),this.allowDocking||(g.allowDocking=!1),this.allowDialogDocking||(g.allowDialogDocking=!1),this.allowMinimize||(g.allowMinimize=!1),this.allowMaximize||(g.allowMaximize=!1),this.floatingAutoResize&&(g.floatingAutoResize=!0),this.confirmOnClose&&(g.confirmOnClose=!0),this.debug&&(g.debug=!0),o&&(g.sessionToken=o),r&&(g.authToken=r),i&&(g.transmitter=i),a&&(g.challengeToken=a),s&&(g.requiresChallenge=!0),l&&(g.inheritToken=l),this.signals!==void 0&&(g.signals=this.signals),this.capWidgetOptions!==void 0&&(g.capWidgetOptions=this.capWidgetOptions),this.inheritFrom!==void 0&&(g.inheritFrom=this.inheritFrom),this.classNames!==void 0&&(g.classNames=this.classNames),this.styles!==void 0&&(g.styles=this.styles),this.text!==void 0&&(g.text=this.text),this._theme!==void 0&&(g.theme=this._theme),this.persistOptions!==void 0?g.persist=this.persistOptions:this.persist&&(g.persist=!0),this._client=new lt(g)}_destroyClient(){this._client&&(this._client.destroy(),this._client=null)}};if(typeof customElements<"u"&&!customElements.get("adapt-automation")){customElements.define("adapt-automation",st);let t="adapt-element-display";if(!document.getElementById(t)){let e=document.createElement("style");e.id=t,e.textContent="adapt-automation, adapt-cap { display: block; }",document.head.appendChild(e)}}function ts(t,e="both",n){let o=`mb_adapt_${n??t}`;(e==="session"||e==="both")&&sessionStorage.removeItem(o),(e==="local"||e==="both")&&localStorage.removeItem(o)}var _="main",F="fork-group",qa=768,es=40,Ut=class Ut{constructor(e){this.rootElement=null;this.panelManager=null;this.mainUrl=null;this.sessionToken=null;this.forks=new Map;this.mainRetentionPolicy="retain";this.mainCloseTimer=null;this.components=new Map;this.floatingAutoResized=new Set;this.beforeUnloadHandler=null;this.resizeObserver=null;this._autoMaximizedByResize=!1;this.destroyed=!1;this.sessionTerminated=!1;this.removingPanelProgrammatically=!1;this.restoringSession=!1;this.lastForkActive=null;this.messageHandler=null;this.minimizedTabsContainer=null;this.lastReportedContentHeight=0;this.forkPanelHeights=new Map;this.statusMessageElement=null;this.capWidgetInstance=null;this.minimizeManager=null;this.forkGroupActions=new Map;this.floatingToolbars=new Map;if(!e.automationId)throw new Error('[adapt] AdaptWebClient requires "automationId". Pass it in the options: new WebClient({ automationId: "...", ... })');this.options=e,this.debug=e.debug??!1;let n=e.forkDisplay??{mode:"side-by-side"};this.forkDisplay=n,this.darkMode=e.darkMode??!1,this.autoResizing=e.autoResizing??!1,this.allowFloating=e.allowFloating??!0,this.allowDocking=e.allowDocking??!0,this.allowDialogDocking=e.allowDialogDocking??!0,this.allowMinimize=e.allowMinimize??!0,this.allowMaximize=e.allowMaximize??!0,this.floatingAutoResize=e.floatingAutoResize??!1,this.confirmOnClose=e.confirmOnClose??!1,this.theme=e.theme;let o=typeof e.container=="string"?document.getElementById(e.container):e.container;if(!o)throw new Error(`Container with id '${e.container}' not found`);this.container=o;let r=Dn({id:e.automationId});this.client=Ua(r,e.automationId,{debug:this.debug}),this.log("info",`init automationId=${e.automationId} forkDisplay=${n.mode}`),ja(),this.createRootElement(),this.createPanelManager(),this.wireBeforeTabClose(),this.setupMessageListener(),this.init().catch(i=>{this.showErrorStatus(i)})}static registerCapWidget(e){Ut._capWidgetClass=e}get responsiveBreakpoint(){if(!this.rootElement)return qa;let e=getComputedStyle(this.rootElement).getPropertyValue("--mb-adapt-responsive-breakpoint").trim(),n=Number(e);return n>0?n:qa}get responsiveHysteresis(){if(!this.rootElement)return es;let e=getComputedStyle(this.rootElement).getPropertyValue("--mb-adapt-responsive-hysteresis").trim(),n=Number(e);return n>=0?n:es}log(e,n,o){if(!this.debug&&e==="info")return;(e==="error"?console.error:e==="warn"?console.warn:console.log)(`[Adapt] ${n}`,o!==void 0?o:"")}onComponentCreated(e,n){this.components.set(e,n)}onComponentDisposed(e){this.components.delete(e)}getDarkMode(){return this.darkMode}getClassNames(){return this.options.classNames}createPanelManager(){if(!this.rootElement)return;this.minimizeManager=new We,this.minimizeManager.setAllowDocking(this.allowDocking),this.minimizedTabsContainer=document.createElement("div"),this.minimizedTabsContainer.className="mb-adapt-minimized-tabs",this.rootElement.appendChild(this.minimizedTabsContainer),this.panelManager=new Je({container:this.rootElement,onGroupCreatedByDrag:o=>{o.dragConstraint="merge-only",this.allowDocking||(o.dockingBlocked=!0),this.allowDialogDocking||(o.dialogDockingBlocked=!0),this.setupForkGroupActions(o),this.saveState()},onLayoutChanged:()=>{this.saveState()}});let e=this.panelManager.addGroup({id:"main-group"});this.panelManager.setMainGroup(e),e.locked="no-drop-target",e.setHeaderHidden(!0),e.element.setAttribute("data-main-group","true");let n=new fe(this);n.init(_,{}),this.panelManager.addPanel({id:_,element:n.element,groupId:e.id}),this.minimizeManager.init(this.minimizedTabsContainer,this.panelManager),this.minimizeManager.onBarVisibilityChanged(()=>{this.reapplyAutoResizeHeight()}),this.resizeObserver=new ResizeObserver(o=>{let r=o[0]?.contentRect;r&&this.onContainerResize(r.width,r.height)}),this.resizeObserver.observe(this.rootElement)}getOrigin(e){try{return new URL(e).origin}catch{return null}}isValidMessageOrigin(e){if(this.mainUrl){let n=this.getOrigin(this.mainUrl);if(n&&e===n)return!0}for(let n of this.forks.values()){let o=this.getOrigin(n.url);if(o&&e===o)return!0}return!1}findComponentBySource(e){for(let[n,o]of this.components)if(o.contentWindow===e)return{panelId:n,component:o};return null}setupMessageListener(){this.messageHandler=e=>{if(!this.isValidMessageOrigin(e.origin))return;let n=e.data;if(!n||typeof n!="object")return;let o=e.source,r=this.findComponentBySource(o);if(!r)return;let{panelId:i,component:a}=r,s=i===_;if(n.type==="adapt-init"&&typeof n.resize=="boolean"){a.resizeCapable=n.resize,s&&!n.resize&&this.rootElement&&(this.rootElement.style.height="");let l=a.getOrigin();if(l){let c;if(s)c=this.autoResizing&&n.resize;else{let g=this.panelManager?.getPanel(i)?.group,f=g?!!this.panelManager?.findOverlayContaining(g.id):!1;c=n.resize&&(f&&this.floatingAutoResize||!f&&this.autoResizing)}a.postMessage({type:"adapt-autoResizing",autoResizing:c},l),a.postMessage({type:"adapt-darkMode",darkMode:this.darkMode},l)}return}if(n.type==="adapt-resize"){let{height:l}=n;if(typeof l!="number"||!Number.isFinite(l)||l<1)return;if(s)this.lastReportedContentHeight=l,a.resizeCapable&&this.autoResizing&&this.rootElement&&this.applyBestAutoResizeHeight();else{this.forkPanelHeights.set(i,l);let m=this.panelManager?.getPanel(i)?.group;if(m&&m.activePanel?.id===i){let g=!!this.panelManager?.findOverlayContaining(m.id);!g&&a.resizeCapable&&this.autoResizing&&this.rootElement&&this.applyBestAutoResizeHeight(),g&&this.floatingAutoResize&&(this.floatingAutoResized.has(m.id)||(this.floatingAutoResized.add(m.id),this.resizeOverlayForGroup(m)))}}return}},window.addEventListener("message",this.messageHandler)}postToComponent(e,n){let o=e.getOrigin();o&&e.postMessage(n,o)}setDarkMode(e){if(this.darkMode===e)return;this.darkMode=e,this.rootElement?.classList.toggle("mb-adapt--dark",e),this.capWidgetInstance?.setDarkMode(e),this.applyTheme();let n={type:"adapt-darkMode",darkMode:e};for(let o of this.components.values())this.postToComponent(o,n)}setTheme(e){if(this.theme=e,this.clearThemeVars(),e?.mode!==void 0){let n=e.mode==="dark";if(this.darkMode!==n){this.setDarkMode(n);return}}this.applyTheme()}clearThemeVars(){if(!(!this.rootElement||!this._appliedThemeVars)){for(let e of this._appliedThemeVars)this.rootElement.style.removeProperty(e);this._appliedThemeVars=void 0}}applyTheme(){if(!this.rootElement||!this.theme)return;let e=Tt(this.theme);for(let[n,o]of Object.entries(e))this.rootElement.style.setProperty(n,o);this._appliedThemeVars=Object.keys(e)}setAutoResizing(e){if(this.autoResizing===e)return;this.autoResizing=e;let n=this.components.get(_);n?.resizeCapable&&this.postToComponent(n,{type:"adapt-autoResizing",autoResizing:e});for(let[o,r]of this.components){if(o===_||!r.resizeCapable)continue;let a=this.panelManager?.getPanel(o)?.group;a&&this.panelManager?.findOverlayContaining(a.id)||this.postToComponent(r,{type:"adapt-autoResizing",autoResizing:e})}!e&&this.rootElement&&(this.rootElement.style.height="")}setAllowFloating(e){if(this.allowFloating!==e){this.allowFloating=e;for(let n of this.forkGroupActions.values())n.setAllowFloating(e)}}setAllowDocking(e){if(this.allowDocking!==e){if(this.allowDocking=e,this.minimizeManager?.setAllowDocking(e),this.panelManager)for(let n of this.getAllForkGroups())n.dockingBlocked=!e;for(let n of this.floatingToolbars.values())n.setAllowDocking(e)}}setAllowDialogDocking(e){if(this.allowDialogDocking!==e&&(this.allowDialogDocking=e,this.panelManager))for(let n of this.getAllForkGroups())n.dialogDockingBlocked=!e}setAllowMinimize(e){if(this.allowMinimize!==e){this.allowMinimize=e;for(let n of this.forkGroupActions.values())n.setAllowMinimize(e);for(let n of this.floatingToolbars.values())n.setAllowMinimize(e)}}setAllowMaximize(e){if(this.allowMaximize!==e){this.allowMaximize=e;for(let n of this.forkGroupActions.values())n.setAllowMaximize(e);for(let n of this.floatingToolbars.values())n.setAllowMaximize(e)}}setFloatingAutoResize(e){if(this.floatingAutoResize!==e){this.floatingAutoResize=e,this.floatingAutoResized.clear();for(let[n,o]of this.components){if(n===_||!o.resizeCapable)continue;let i=this.panelManager?.getPanel(n)?.group,s=(i?!!this.panelManager?.findOverlayContaining(i.id):!1)?e&&o.resizeCapable:this.autoResizing&&o.resizeCapable;this.postToComponent(o,{type:"adapt-autoResizing",autoResizing:s})}}}getAllForkGroups(){if(!this.panelManager)return[];let e=new Set,n=[],o=i=>{i.id==="main-group"||e.has(i.id)||(e.add(i.id),n.push(i))},r=this.panelManager.getGroup(F);r&&o(r);for(let i of this.panelManager.getDockedGroups())o(i);for(let[,i]of this.panelManager.getFloatingOverlays())for(let a of i.getAllGroups())o(a);return n}applyAutoResizeHeight(e){if(!this.rootElement)return;let n=this.minimizedTabsContainer?.offsetHeight??0;this.rootElement.style.height=`${Math.ceil(e)+n}px`}applyBestAutoResizeHeight(){if(!this.autoResizing||!this.rootElement)return;let e=0;if(this.components.get(_)?.resizeCapable&&this.lastReportedContentHeight>0){let o=this.panelManager?.getMainGroup();if(o?o.element.offsetHeight>0:!0){let i=o?.headerElement?.offsetHeight??0;e=this.lastReportedContentHeight+i}}for(let o of this.getAllForkGroups()){if(this.panelManager?.findOverlayContaining(o.id)||o.element.offsetHeight<=0)continue;let r=o.activePanel;if(r){let i=this.forkPanelHeights.get(r.id)??0,a=o.headerElement?.offsetHeight??0,s=i+a;s>e&&(e=s)}}e>0&&this.applyAutoResizeHeight(e)}reapplyAutoResizeHeight(){this.applyBestAutoResizeHeight()}setForkDisplayMode(e){this.forkDisplay.mode!==e&&(this.log("info",`setForkDisplayMode ${this.forkDisplay.mode} \u2192 ${e}`),e==="side-by-side"?this.forkDisplay={mode:"side-by-side"}:this.forkDisplay={mode:"dialog"},this.forks.size>0&&this.panelManager&&this.rebuildForkGroup(),this.emitForkActive(),this.saveState())}createRootElement(){this.rootElement=document.createElement("div"),this.rootElement.className=this.options.classNames?.root||"mb-adapt",this.darkMode&&this.rootElement.classList.add("mb-adapt--dark"),this.options.styles&&Object.assign(this.rootElement.style,this.options.styles),this.applyTheme(),this.container.appendChild(this.rootElement)}onUrl(e){if(this.destroyed)return;let n=e.fork||"";if(this.log("info",`onUrl fork=${n||"(main)"} stopped=${!!e.stopped} done=${!!e.done} url=${e.url?e.url.slice(0,60)+"...":"(none)"}`),e.stopped){this.handleStoppedMessage(n),this.saveState();return}if(e.done){this.handleDoneMessage(n,e.retentionPolicy),this.saveState();return}e.url&&(n?this.handleForkUrl(e.url,e.token,n,e.source,e.retentionPolicy):this.handleMainUrl(e.url,e.token,e.source,e.retentionPolicy),this.saveState())}handleMainUrl(e,n,o,r){this.log("info",`handleMainUrl url=${e.slice(0,60)}...`),this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null);let i=!this.mainUrl;if(this.removeStatusMessage(),this.mainUrl=e,this.mainToken=n,this.mainRetentionPolicy=this.resolveRetention(r),this.panelManager?.isMainGroupCollapsed()&&this.panelManager.expandMainGroup(),i){let s=this.getMaximizedDockedGroupId();if(s){let l=this.forkGroupActions.get(s);l&&l.clearMaximized()}}let a=this.components.get(_);a&&(a.update({url:e,token:n}),a.show())}handleForkUrl(e,n,o,r,i){if(!this.panelManager)return;let a=this.resolveRetention(i),s=this.forks.get(o);if(s){this.log("info",`handleForkUrl fork=${o} update existing panel=${s.panelId}`),s.closeTimer&&(clearTimeout(s.closeTimer),s.closeTimer=null),s.url=e,s.token=n,s.source=r,s.retentionPolicy=a,s.completed=!1,s.recyclable=!1;let g=this.components.get(s.panelId);g&&g.update({url:e,token:n});return}let l=this.findRecyclablePanel(r);if(l){this.log("info",`handleForkUrl fork=${o} recycling panel from fork=${l.forkKey}`);let{forkKey:g,state:f}=l;f.closeTimer&&(clearTimeout(f.closeTimer),f.closeTimer=null),this.forks.delete(g),f.url=e,f.token=n,f.fork=o,f.source=r,f.retentionPolicy=a,f.completed=!1,f.recyclable=!1,this.forks.set(o,f);let p=this.components.get(f.panelId);p&&p.update({url:e,token:n});return}this.log("info",`handleForkUrl fork=${o} creating new panel`);let c=`fork-${o}`;this.ensureForkGroup(),!this.mainUrl&&this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup();let m=new fe(this);m.init(c,{url:e,token:n}),this.panelManager.addPanel({id:c,element:m.element,groupId:F}),this.forks.set(o,{panelId:c,url:e,token:n,fork:o,source:r,completed:!1,recyclable:!1,retentionPolicy:a,closeTimer:null}),this.emitForkActive()}ensureForkGroup(){if(!this.panelManager||this.panelManager.getGroup(F))return;this.log("info",`ensureForkGroup mode=${this.forkDisplay.mode}`);let n=this.rootElement?.offsetWidth??800,o=this.rootElement?.offsetHeight??600;if(this.forkDisplay.mode==="dialog"){let r=n<this.responsiveBreakpoint,i=window.innerWidth,a=window.innerHeight,s=r?Math.min(n*.95,Math.max(200,i-20)):Math.min(720,n*.9),l=r?Math.min(o*.9,Math.max(200,a-20)):Math.min(o*.8,600),c=this.panelManager.addGroup({id:F,floating:{width:s,height:l,x:Math.max(0,(i-s)/2),y:Math.max(0,(a-l)/2)}});c.dragConstraint="merge-only",this.allowDocking||(c.dockingBlocked=!0),this.allowDialogDocking||(c.dialogDockingBlocked=!0),this.setupForkGroupActions(c),r&&(this.panelManager.getFloatingOverlay(F)?.maximize(),this._autoMaximizedByResize=!0)}else{let r=this.forkDisplay.mode==="side-by-side"?this.forkDisplay.split:void 0,i=r!==void 0?n*(1-r/100):void 0,a=this.panelManager.addGroup({id:F,direction:"right",initialSize:i});if(a.dragConstraint="merge-only",this.allowDocking||(a.dockingBlocked=!0),this.allowDialogDocking||(a.dialogDockingBlocked=!0),this.setupForkGroupActions(a),n<this.responsiveBreakpoint){let s=this.forkGroupActions.get(a.id);s?(s.setMaximized(),s.setAutoMaximizedByResize(!0)):this.panelManager.maximizeDockedGroup(a),this._autoMaximizedByResize=!0}}}setupForkGroupActions(e){if(!this.panelManager||!this.minimizeManager)return;let n=new Re(e,this.minimizeManager,this.panelManager,()=>{if(this.setupFloatingToolbar(e),e.location==="grid"&&!this.mainUrl&&this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup(),e.location==="floating"&&this.floatingAutoResized.delete(e.id),this.updateAutoResizeForGroup(e),e.location==="grid"){let o=this.rootElement?.offsetWidth??0;if(o>0&&o<this.responsiveBreakpoint){let r=this.forkGroupActions.get(e.id);r&&!r.isMaximized&&(r.setMaximized(),this._autoMaximizedByResize=!0,r.setAutoMaximizedByResize(!0))}}this.saveState()},{allowFloating:this.allowFloating,allowMinimize:this.allowMinimize,allowMaximize:this.allowMaximize});n.setBeforeClose(()=>this.confirmCloseGroup(e)),n.onMaximizeChanged(o=>{o||(this._autoMaximizedByResize=!1,n.setAutoMaximizedByResize(!1)),this.saveState()}),e.setHeaderActions(n.element),this.forkGroupActions.set(e.id,n),e.onActivePanelChanged(()=>{this.autoResizing&&this.rootElement&&this.applyBestAutoResizeHeight()}),this.setupFloatingToolbar(e)}updateAutoResizeForGroup(e){let n=this.panelManager?!!this.panelManager.findOverlayContaining(e.id):!1;for(let o of e.panels){let r=this.components.get(o.id);if(!r?.resizeCapable)continue;let i=n?this.floatingAutoResize:this.autoResizing;this.postToComponent(r,{type:"adapt-autoResizing",autoResizing:i})}}setupFloatingToolbar(e){if(!this.panelManager||!this.minimizeManager)return;let n=this.panelManager.findOverlayContaining(e.id);if(n)if(e.onPanelCountChanged(()=>n.updateTotalTabCount()),n.hasToolbar)n.repositionToolbar();else{let o=new we(n,this.panelManager,this.minimizeManager,{allowDocking:this.allowDocking,allowMinimize:this.allowMinimize,allowMaximize:this.allowMaximize});o.setBeforeClose(()=>this.confirmCloseGroup(n.group)),n.setToolbar(o.element),this.floatingToolbars.set(n.group.id,o),n.updateTotalTabCount()}}resolveRetention(e){return e?e.case:"retain"}findRecyclablePanel(e){let n=null;for(let[o,r]of this.forks)if(r.recyclable){if(e&&r.source===e)return{forkKey:o,state:r};n||(n={forkKey:o,state:r})}return n}handleMainDone(e){switch(e?this.resolveRetention(e):this.mainRetentionPolicy){case"close":this.scheduleMainClose(e?.case==="close"?e.timeoutSeconds:void 0);break;case"recycle":break;default:break}}scheduleForkClose(e,n,o){let r=()=>{n.closeTimer=null,this.removingPanelProgrammatically=!0;try{if(this.panelManager){let i=this.components.get(n.panelId);i&&i.dispose(),this.panelManager.removePanel(n.panelId)}this.forks.delete(e),this.removeForkGroupIfEmpty()}finally{this.removingPanelProgrammatically=!1}this.emitForkActive(),this.saveState()};o&&o>0?n.closeTimer=setTimeout(r,o*1e3):r()}scheduleMainClose(e){let n=()=>{this.mainCloseTimer=null,this.mainUrl=null,this.mainToken=void 0;let o=this.components.get(_);o&&o.hide(),this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup(),this.saveState()};e&&e>0?this.mainCloseTimer=setTimeout(n,e*1e3):n()}restoreFork(e,n){if(!this.panelManager)return;let o=n??F;this.log("info",`restoreFork fork=${e.fork} \u2192 group=${o} url=${e.url.slice(0,60)}...`);let r=`fork-${e.fork}`;o===F&&this.ensureForkGroup(),!this.mainUrl&&this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup();let i=new fe(this);i.init(r,{url:e.url,token:e.token}),this.panelManager.addPanel({id:r,element:i.element,groupId:o}),this.forks.set(e.fork,{panelId:r,url:e.url,token:e.token,fork:e.fork,source:e.source,completed:!1,recyclable:e.retentionPolicy==="recycle",retentionPolicy:e.retentionPolicy,closeTimer:null}),this.emitForkActive()}restoreDockedLayout(e){this.panelManager&&(this.createGroupsFromTree(e),this.panelManager.rebuildDockedLayout(e))}createGroupsFromTree(e){if(this.panelManager){if(e.kind==="leaf"){if(e.groupId==="main-group"||this.panelManager.getGroup(e.groupId))return;let n=this.panelManager.addGroup({id:e.groupId});n.dragConstraint="merge-only",this.allowDocking||(n.dockingBlocked=!0),this.allowDialogDocking||(n.dialogDockingBlocked=!0),this.setupForkGroupActions(n);return}this.createGroupsFromTree(e.first),this.createGroupsFromTree(e.second)}}clearAllForks(){this.log("info",`clearAllForks count=${this.forks.size}`),this.removingPanelProgrammatically=!0;try{if(this.panelManager)for(let e of this.forks.values()){e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null);let n=this.components.get(e.panelId);n&&n.dispose(),this.panelManager.removePanel(e.panelId)}this.forks.clear(),this.removeForkGroupIfEmpty()}finally{this.removingPanelProgrammatically=!1}}rebuildForkGroup(){if(!this.panelManager)return;let e=this.panelManager.getGroup(F);if(e)if(this.log("info",`rebuildForkGroup newMode=${this.forkDisplay.mode}`),this.forkDisplay.mode==="dialog"){let n=this.rootElement?.offsetWidth??800,o=this.rootElement?.offsetHeight??600,r=Math.min(720,n*.9),i=Math.min(o*.8,600);this.panelManager.addFloatingGroup(e,{width:r,height:i,x:(window.innerWidth-r)/2,y:(window.innerHeight-i)/2}),this.setupFloatingToolbar(e)}else{let n=this.forkDisplay.mode==="side-by-side"?this.forkDisplay.split:void 0,o=n!==void 0?(this.rootElement?.offsetWidth??800)*(1-n/100):void 0;this.panelManager.dockGroup(F,"right",o)}}handleSessionComplete(){this.clearAllForks(),this.emitForkActive()}handleDoneMessage(e,n){if(this.log("info",`handleDoneMessage fork=${e||"(main)"} retention=${n?.case??"default"}`),!e){this.handleMainDone(n);return}let o=this.forks.get(e);if(!o)return;switch(n?this.resolveRetention(n):o.retentionPolicy){case"close":o.completed=!0,this.scheduleForkClose(e,o,n?.case==="close"?n.timeoutSeconds:void 0);break;case"recycle":o.completed=!0,o.recyclable=!0;break;default:o.completed=!0;break}}handleStoppedMessage(e){if(this.log("info",`handleStoppedMessage fork=${e||"(main)"}`),!e){this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null),this.mainUrl=null,this.mainToken=void 0;let o=this.components.get(_);o&&o.hide(),this.showStatusMessage(this.options.text?.stopped??"This session has been stopped","stopped");return}let n=this.forks.get(e);if(n){n.closeTimer&&(clearTimeout(n.closeTimer),n.closeTimer=null),this.removingPanelProgrammatically=!0;try{if(this.panelManager){let o=this.components.get(n.panelId);o&&o.dispose(),this.panelManager.removePanel(n.panelId)}this.forks.delete(e),this.removeForkGroupIfEmpty()}finally{this.removingPanelProgrammatically=!1}this.emitForkActive()}}cleanupGroupTracking(e){let n=this.forkGroupActions.get(e);n&&(n.dispose(),this.forkGroupActions.delete(e)),this.floatingToolbars.delete(e),this.floatingAutoResized.delete(e),this.minimizeManager?.removeGroup(e),e===F&&(this._autoMaximizedByResize=!1)}cleanupStaleGroupTracking(){if(this.panelManager){for(let e of[...this.forkGroupActions.keys()])this.panelManager.getGroup(e)||this.cleanupGroupTracking(e);for(let e of[...this.floatingToolbars.keys()])this.panelManager.getGroup(e)||this.floatingToolbars.delete(e)}}removeForkGroupIfEmpty(){if(!this.panelManager)return;let e=this.panelManager.getGroup(F);e&&e.size===0?(this.panelManager.removeGroup(F),this.cleanupGroupTracking(F)):e||this.cleanupGroupTracking(F),this.minimizeManager?.removeGroup(F)}getMaximizedDockedGroupId(){for(let[e,n]of this.forkGroupActions)if(n.isMaximized)return e}emitForkActive(){if(!this.options.onForkActive)return;let e=this.forks.size>0;e!==this.lastForkActive&&(this.lastForkActive=e,this.options.onForkActive(e))}parseInheritToken(){let e=this.options.inheritFrom;return e?"hash"in e?this.parseFromHash(e.hash):this.parseFromParam(e.param):null}parseFromHash(e){let n=window.location.hash.slice(1);if(!n)return null;let o=new URLSearchParams(n),r=o.get(e);if(!r)return null;o.delete(e);let i=o.toString(),a=window.location.pathname+window.location.search+(i?"#"+i:"");return history.replaceState(null,"",a),decodeURIComponent(r)}parseFromParam(e){let n=new URLSearchParams(window.location.search),o=n.get(e);if(!o)return null;n.delete(e);let r=n.toString(),i=window.location.pathname+(r?"?"+r:"")+window.location.hash;return history.replaceState(null,"",i),decodeURIComponent(o)}async init(){this.panelManager?.onDidRemovePanel(n=>{if(!this.removingPanelProgrammatically){for(let[o,r]of this.forks)if(r.panelId===n.id){r.closeTimer&&(clearTimeout(r.closeTimer),r.closeTimer=null);let i=this.components.get(r.panelId);i&&i.dispose(),this.sessionToken&&this.client.stop(this.sessionToken,o).catch(()=>{}),this.forks.delete(o);break}this.emitForkActive(),this.cleanupStaleGroupTracking()}});let e={onUrl:n=>this.onUrl(n),onSession:n=>{n.status==="STATUS_COMPLETED"&&!n.fork&&this.handleSessionComplete(),!n.fork&&(n.status==="STATUS_COMPLETED"||n.status==="STATUS_STOPPED"||n.status==="STATUS_ERRORED"||n.status==="STATUS_DELEGATED"||n.status==="STATUS_EXPIRED")&&(this.sessionTerminated=!0,this.clearState(),this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null)),this.options.onSession&&this.options.onSession(n.status||"STATUS_UNSPECIFIED",n.fork)}};if(this.options.onOutput&&(e.onOutput=this.options.onOutput),e.onError=n=>{this.showErrorStatus(n),this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null)},!this.options.sessionToken&&this.resolvePersistOptions()){this.log("info","attempting session restore from persisted state");let n=await this.tryRestoreSession(e);if(this.log("info",`restore result=${n}`),n!=="none"){this.updateBeforeUnloadGuard();return}}if(this.options.sessionToken)this.log("info","using pre-created sessionToken"),this.sessionToken=this.options.sessionToken,await this.client.subscribe(this.sessionToken,e);else{let n=this.parseInheritToken(),o=n||this.options.inheritToken;if(this.options.inheritFrom&&!n){let a="hash"in this.options.inheritFrom?`hash key '${this.options.inheritFrom.hash}'`:`param '${this.options.inheritFrom.param}'`;this.log("error",`no inherit token found in URL ${a}`);return}let r=this.options.challengeToken;if(this.options.requiresChallenge&&!r&&!o&&(r=await this.showCapWidgetAndSolve(),!r)){this.log("error","failed to solve challenge");return}let i;if(o)this.log("info","starting session via inheritToken"),i=await this.client.runInherit(o,e);else{this.log("info",`starting session via run (transmitter=${this.options.transmitter??"default"})`);let a={...e};this.options.transmitter!==void 0&&(a.transmitter=this.options.transmitter),this.options.signals!==void 0&&(a.signals=this.options.signals),this.options.authToken!==void 0&&(a.authToken=this.options.authToken),r!==void 0&&(a.challengeToken=r),i=await this.client.run(a)}this.sessionToken=i.sessionToken,this.sessionExpiresAt=i.expiresAt,this.log("info",`session started token=${this.sessionToken?.slice(0,8)}...`),this.saveState()}this.updateBeforeUnloadGuard()}async showCapWidgetAndSolve(){let e=Ut._capWidgetClass;if(!e)throw new Error("Cap.js not loaded. Import '@mochabug/adapt-web/cap' or use the full UMD bundle.");return new Promise(n=>{this.capWidgetInstance=new e({container:this.rootElement,automationId:this.options.automationId,client:this.client.raw,...this.options.capWidgetOptions?.workerCount!==void 0&&{workerCount:this.options.capWidgetOptions.workerCount},...this.options.capWidgetOptions?.i18n&&{i18n:this.options.capWidgetOptions.i18n},onSolve:o=>{this.capWidgetInstance=null,n(o)},onError:o=>{this.log("error","Cap.js error:",o),this.capWidgetInstance=null,n(void 0)}}),this.darkMode&&this.capWidgetInstance.setDarkMode(!0)})}resolvePersistOptions(){let e=this.options.persist;if(!e)return null;if(e===!0)return{storage:"session",ttl:3600};let n={storage:e.storage??"session",ttl:e.ttl??3600};return e.key!==void 0&&(n.key=e.key),n}getStorageKey(){return`mb_adapt_${this.resolvePersistOptions()?.key??this.options.automationId}`}getStorage(){let e=this.resolvePersistOptions();return e?e.storage==="local"?localStorage:sessionStorage:null}saveState(){if(this.restoringSession)return;let e=this.getStorage();if(!e||!this.sessionToken)return;let n=this.resolvePersistOptions();this.log("info",`saveState key=${this.getStorageKey()} forks=${this.forks.size} mainUrl=${this.mainUrl?"yes":"none"}`);let o={v:3,token:this.sessionToken,expiresAt:this.sessionExpiresAt?this.sessionExpiresAt.toISOString():null,savedAt:Date.now(),ttl:n.ttl,mainUrl:this.mainUrl,mainToken:this.mainToken,forks:Array.from(this.forks.values()).filter(i=>!i.completed||i.recyclable).map(i=>{let a={url:i.url,token:i.token,fork:i.fork,retentionPolicy:i.retentionPolicy};return i.source!==void 0&&(a.source=i.source),a}),forkDisplayMode:this.forkDisplay.mode,layout:this.panelManager?.serializeLayout()};if(this.minimizeManager){let i=this.minimizeManager.getMinimizedGroupIds();i.length>0&&(o.minimizedGroups=i.map(a=>{let s=this.minimizeManager.getEntry(a),l={groupId:a,mode:s?.mode??"floating"};return s?.savedPosition&&(l.savedPosition={...s.savedPosition}),l}))}let r=this.getMaximizedDockedGroupId();r&&(o.maximizedDockedGroupId=r),e.setItem(this.getStorageKey(),JSON.stringify(o))}loadState(){let e=this.getStorage();if(!e)return null;let n=e.getItem(this.getStorageKey());if(!n)return this.log("info","loadState: no persisted state found"),null;let o;try{o=JSON.parse(n)}catch{return this.log("warn","loadState: invalid JSON, clearing"),this.clearState(),null}if(o.v!==3)return this.log("warn",`loadState: version mismatch v=${o.v}, clearing`),this.clearState(),null;let r=Date.now(),i=3e4;if(r-o.savedAt>o.ttl*1e3+i)return this.log("info","loadState: TTL expired, clearing"),this.clearState(),null;if(o.expiresAt){let a=new Date(o.expiresAt).getTime();if(r>a+i)return this.log("info","loadState: session expired, clearing"),this.clearState(),null}return this.log("info",`loadState: found state forks=${o.forks.length} mainUrl=${o.mainUrl?"yes":"none"}`),o}clearState(){this.log("info","clearState");let e=this.getStorage();e&&e.removeItem(this.getStorageKey())}async tryRestoreSession(e){let n=this.loadState();if(!n)return"none";let o=Date.now()-n.savedAt>1e4;if(this.log("info",`tryRestoreSession token=${n.token.slice(0,8)}... forks=${n.forks.length} stale=${o}`),this.sessionToken=n.token,this.sessionExpiresAt=n.expiresAt?new Date(n.expiresAt):void 0,this.mainUrl=n.mainUrl,this.mainToken=n.mainToken,n.forkDisplayMode&&(n.forkDisplayMode==="side-by-side"?this.forkDisplay={mode:"side-by-side"}:this.forkDisplay={mode:"dialog"}),this.mainUrl){let l=this.components.get(_);l&&l.update({url:this.mainUrl,token:this.mainToken})}this.restoringSession=!0;try{if(n.layout?.mainLayout&&this.panelManager&&this.restoreDockedLayout(n.layout.mainLayout),n.layout?.floatingGroups&&this.panelManager)for(let c of n.layout.floatingGroups){if(this.panelManager.getGroup(c.groupId))continue;let m=this.panelManager.addGroup({id:c.groupId,floating:c.bounds});m.dragConstraint="merge-only",this.allowDocking||(m.dockingBlocked=!0),this.allowDialogDocking||(m.dialogDockingBlocked=!0),this.setupForkGroupActions(m),c.internalLayout&&this.createGroupsFromTree(c.internalLayout)}this.panelManager&&$a(this.panelManager.getGroupIds());let l=()=>{if(!this.panelManager)return F;for(let c of this.panelManager.getDockedGroups())if(c.id!=="main-group")return c.id;return F};this.log("info",`restore phase2: ${n.forks.length} forks, panelLocations=${JSON.stringify(n.layout?.panelLocations??{})}`);for(let c of n.forks){let m=`fork-${c.fork}`,g=n.layout?.panelLocations?.[m]??F,f=this.panelManager?.getGroup(g),p=f?g:l();f||this.log("warn",`restore: target group "${g}" not found for ${m}, fallback="${p}"`),this.restoreFork(c,p)}if(n.layout?.floatingGroups&&this.panelManager)for(let c of n.layout.floatingGroups)c.internalLayout&&this.panelManager.rebuildFloatingInternalLayout(c.groupId,c.internalLayout);if(this.panelManager&&this.panelManager.cleanupEmptyGroups(),n.layout&&this.panelManager)for(let c of n.layout.floatingGroups){let m=this.panelManager.getFloatingOverlay(c.groupId);m&&(m.setFullBounds(c.bounds),c.isMaximized&&(m.maximize(),this.floatingToolbars.get(c.groupId)?.syncMaximizedState()))}if(n.minimizedGroups&&this.minimizeManager&&this.panelManager)for(let c of n.minimizedGroups){let m=this.panelManager.getGroup(c.groupId);if(m&&!this.minimizeManager.isMinimized(c.groupId))if(c.mode==="floating"){let g=this.panelManager.getFloatingOverlay(c.groupId);g&&this.minimizeManager.minimize(c.groupId,g,m)}else c.mode==="docked"&&this.minimizeManager.minimizeDocked(c.groupId,m,this.panelManager)}if(n.maximizedDockedGroupId&&this.panelManager){let c=this.forkGroupActions.get(n.maximizedDockedGroupId);c&&c.setMaximized()}o||e.onSession?.({status:"STATUS_RUNNING"})}finally{this.restoringSession=!1}this.saveState();let r=!1,i=!1,a=e.onError,s={...e,onError:l=>{r=!0;let c=this.loadState();!c||Date.now()-c.savedAt>1e4?(i=!0,this.clearState()):a?.(l)}};try{await this.client.subscribe(n.token,s)}catch{r=!0,o?(i=!0,this.clearState()):this.showErrorStatus(new Error("Session restore failed"))}return r?(await this.client.unsubscribe(),this.sessionToken=null,this.sessionExpiresAt=void 0,this.mainUrl=null,this.mainToken=void 0,this.clearAllForks(),this.components.get(_)?.hide(),i?"none":"failed"):"restored"}async newSession(){this.clearState(),this.sessionTerminated=!1,this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null),this.mainRetentionPolicy="retain",this.sessionToken&&this.client.stop(this.sessionToken).catch(()=>{}),await this.client.unsubscribe(),this.mainUrl=null,this.mainToken=void 0,this.sessionToken=null,this.sessionExpiresAt=void 0,this.lastForkActive=null,this.updateBeforeUnloadGuard(),this.clearAllForks(),this.components.get(_)?.hide(),this.removeStatusMessage();try{await this.init()}catch(e){this.showErrorStatus(e)}}resizeOverlayForGroup(e){if(!this.panelManager)return;let n=this.panelManager.findOverlayContaining(e.id);if(!n)return;let o=n.getAllGroups(),r=0;for(let i of o){let a=i.activePanel;if(a){let s=this.forkPanelHeights.get(a.id)??0;s>r&&(r=s)}}if(r>0){let i=e.headerElement?.offsetHeight??40,a=Math.ceil(r)+i,s=n.getBounds(),l=(window.innerHeight-a)/2;n.setFullBounds({...s,height:a,y:Math.max(0,l)})}}onContainerResize(e,n){if(!this.panelManager)return;let o=this.panelManager.getGroup(F);if(!o)return;let r=this.responsiveBreakpoint,i=r+this.responsiveHysteresis,a=this.forkGroupActions.get(F),s=a?.isMaximized??!1;if(e<r&&!this._autoMaximizedByResize){if(o.location==="floating"){let l=this.panelManager.getFloatingOverlay(F);l&&!l.isMaximized&&(l.maximize(),this._autoMaximizedByResize=!0)}else s||(a?(a.setMaximized(),a.setAutoMaximizedByResize(!0)):this.panelManager.maximizeDockedGroup(o),this._autoMaximizedByResize=!0);this.applyBestAutoResizeHeight()}e>=i&&this._autoMaximizedByResize&&(o.location==="floating"?this.panelManager.getFloatingOverlay(F)?.restore():a?a.clearMaximized():this.panelManager.restoreMaximizedDockedGroup(o),this._autoMaximizedByResize=!1,a?.setAutoMaximizedByResize(!1))}setConfirmOnClose(e){this.confirmOnClose=e,this.updateBeforeUnloadGuard()}updateBeforeUnloadGuard(){let e=this.confirmOnClose&&!!this.sessionToken&&!this.destroyed;e&&!this.beforeUnloadHandler?(this.beforeUnloadHandler=n=>{n.preventDefault()},window.addEventListener("beforeunload",this.beforeUnloadHandler)):!e&&this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null)}wireBeforeTabClose(){this.panelManager&&this.panelManager.setBeforeTabClose(e=>{if(this.removingPanelProgrammatically||!this.confirmOnClose)return!0;for(let[,n]of this.forks)if(n.panelId===e)return n.completed?!0:this.showConfirmDialog("This panel hasn\u2019t finished yet. Are you sure you want to close it?");return!0})}confirmCloseGroup(e){return!this.confirmOnClose||!e.panels.some(o=>{for(let r of this.forks.values())if(r.panelId===o.id&&!r.completed)return!0;return!1})?!0:this.showConfirmDialog("Some panels haven\u2019t finished yet. Are you sure you want to close them?")}showConfirmDialog(e){return new Promise(n=>{if(!this.rootElement){n(!0);return}let o=document.createElement("div");o.className="mb-adapt mb-adapt__confirm-overlay",this.darkMode&&o.classList.add("mb-adapt--dark");let r=document.createElement("div");r.className="mb-adapt__confirm-card";let i=document.createElement("p");i.className="mb-adapt__confirm-text",i.textContent=e,r.appendChild(i);let a=document.createElement("div");a.className="mb-adapt__confirm-buttons";let s=document.createElement("button");s.className="mb-adapt__confirm-btn mb-adapt__confirm-btn--cancel",s.textContent="Cancel";let l=document.createElement("button");l.className="mb-adapt__confirm-btn mb-adapt__confirm-btn--confirm",l.textContent="Close",a.appendChild(s),a.appendChild(l),r.appendChild(a),o.appendChild(r),document.body.appendChild(o);let c=m=>{o.remove(),n(m)};s.addEventListener("click",()=>c(!1)),l.addEventListener("click",()=>c(!0)),o.addEventListener("click",m=>{m.target===o&&c(!1)})})}async destroy(){if(!this.destroyed){this.log("info","destroy"),this.destroyed=!0,this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null);for(let e of this.forks.values())e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null);this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.capWidgetInstance?.destroy(),this.capWidgetInstance=null,this.minimizeManager?.dispose(),this.minimizeManager=null,this.sessionToken&&!this.loadState()&&!this.sessionTerminated&&this.client.stop(this.sessionToken).catch(()=>{}),await this.client.unsubscribe(),this.messageHandler&&window.removeEventListener("message",this.messageHandler),this.panelManager&&(this.panelManager.dispose(),this.panelManager=null),this.rootElement?.parentNode?.removeChild(this.rootElement),this.mainUrl=null,this.mainToken=void 0,this.forks.clear(),this.components.clear(),this.forkPanelHeights.clear(),this.forkGroupActions.clear(),this.floatingToolbars.clear(),this.sessionToken=null,this.lastForkActive=null,this.rootElement=null,this.messageHandler=null,this.statusMessageElement=null,this.minimizedTabsContainer=null}}showStatusMessage(e,n="error"){if(!this.rootElement)return;this.removeStatusMessage();let o=this.components.get(_);o&&o.hide(),this.statusMessageElement=document.createElement("div"),this.statusMessageElement.className=this.options.classNames?.statusMessage??"mb-adapt__status-message";let r=document.createElement("div");r.className=this.options.classNames?.statusCard??"mb-adapt__status-card";let i=document.createElement("div");i.className=n==="stopped"||n==="expired"?"mb-adapt__status-icon mb-adapt__status-icon--stopped":"mb-adapt__status-icon",i.innerHTML=n==="stopped"||n==="expired"?'<svg viewBox="0 0 24 24" fill="none" stroke="#6b7280" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="6" width="12" height="12" rx="2"/></svg>':'<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>',r.appendChild(i);let a=document.createElement("p");a.className="mb-adapt__status-text",a.textContent=e,r.appendChild(a);let s=document.createElement("button");s.className="mb-adapt__status-restart",s.textContent=this.options.text?.restartButton??"Try again",s.addEventListener("click",()=>this.newSession()),r.appendChild(s),this.statusMessageElement.appendChild(r),this.rootElement.appendChild(this.statusMessageElement)}removeStatusMessage(){this.statusMessageElement&&(this.statusMessageElement.remove(),this.statusMessageElement=null)}showErrorStatus(e){let n=this.classifyError(e),o=n.kind==="expired"?"expired":"error";this.clearState(),this.clearAllForks(),this.showStatusMessage(n.message,o),this.options.onError?.(n)}isExpiredTokenError(e){return e instanceof A&&e.code===h.PermissionDenied&&e.message.toLowerCase().includes("expired")}getErrorMessage(e){let n=this.options.text,o=n?.error??"Something went wrong. Please try again later.";if(e instanceof A){if(this.isExpiredTokenError(e))return n?.sessionExpired??"Your session has expired.";switch(e.code){case h.ResourceExhausted:return n?.resourceExhausted??"This automation is currently at capacity. Please try again later.";case h.NotFound:return e.message.toLowerCase().includes("session not found")?n?.sessionNotFound??"This session has timed out or been stopped.":n?.notFound??"This automation could not be found.";case h.PermissionDenied:case h.Unauthenticated:return n?.permissionDenied??"You don't have permission to run this automation.";default:return o}}return o}classifyError(e){let n=this.getErrorMessage(e);if(e instanceof A){if(this.isExpiredTokenError(e))return{kind:"expired",message:n,retriable:!1,cause:e};switch(e.code){case h.ResourceExhausted:return{kind:"capacity",message:n,retriable:!0,cause:e};case h.NotFound:return e.message.toLowerCase().includes("session not found")?{kind:"session_not_found",message:n,retriable:!1,cause:e}:{kind:"not_found",message:n,retriable:!1,cause:e};case h.PermissionDenied:case h.Unauthenticated:return{kind:"auth",message:n,retriable:!0,cause:e};default:return{kind:"error",message:n,retriable:!1,cause:e}}}return{kind:"error",message:n,retriable:!1,cause:e}}};Ut._capWidgetClass=null;var lt=Ut;return ss(Oc);})();
891
+ }`;var Ie=class{constructor(e){this.panelId="";this.resizeCapable=!1;this.host=e,this.element=document.createElement("div"),this.element.style.width="100%",this.element.style.height="100%",this.element.style.position="relative",this.iframe=this.createIframe(),this.element.appendChild(this.iframe)}get contentWindow(){return this.iframe.contentWindow}init(e,n){this.panelId=e,n.url&&(this.currentUrl=n.url,this.currentToken=n.token,this.setIframeSrc(n.url,n.token)),this.host.onComponentCreated(this.panelId,this)}update(e){if(e.url!==void 0){let n=e.url!==this.currentUrl,o=e.token!==this.currentToken;this.currentUrl=e.url,e.token!==void 0&&(this.currentToken=e.token),(n||o)&&(this.replaceIframe(),this.setIframeSrc(this.currentUrl,this.currentToken))}}dispose(){this.iframe.src="about:blank",this.host.onComponentDisposed(this.panelId)}postMessage(e,n){try{this.iframe.contentWindow?.postMessage(e,n)}catch{}}getOrigin(){if(!this.currentUrl)return null;try{return new URL(this.currentUrl).origin}catch{return null}}show(){this.iframe.classList.remove("mb-adapt__iframe--hidden"),this.iframe.offsetHeight,this.iframe.classList.add("mb-adapt__iframe--visible")}hide(){this.iframe.classList.remove("mb-adapt__iframe--visible"),this.iframe.classList.add("mb-adapt__iframe--hidden")}createIframe(){let e=document.createElement("iframe");return e.className=this.host.getClassNames()?.iframe||"mb-adapt__iframe",e.setAttribute("sandbox","allow-downloads allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox allow-forms allow-modals"),e.setAttribute("allow","autoplay; geolocation; camera; microphone; fullscreen; display-capture; web-share"),e.src="about:blank",e.addEventListener("load",()=>{if(e.src&&e.src!=="about:blank"){let n=this.getOrigin();if(n)try{e.contentWindow?.postMessage({type:"adapt-darkMode",darkMode:this.host.getDarkMode()},n)}catch{}}}),e}setIframeSrc(e,n){let o=_a(e,n);this.iframe.src!==o&&(this.resizeCapable=!1,this.iframe.style.height="",this.iframe.src=o),this.show()}replaceIframe(){let e=this.createIframe();this.element.replaceChild(e,this.iframe),this.iframe=e,this.resizeCapable=!1}},Kn='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M9.5 2h4.5v4.5"/><path d="M14 2L8.5 7.5"/><path d="M12 9v4.5a1.5 1.5 0 01-1.5 1.5h-8A1.5 1.5 0 011 13.5v-8A1.5 1.5 0 012.5 4H7"/></svg>',Qn='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1.5" y="2.5" width="13" height="11" rx="1.5"/><line x1="1.5" y1="6" x2="14.5" y2="6"/><circle cx="4" cy="4.25" r="0.75" fill="currentColor" stroke="none"/><circle cx="6.5" cy="4.25" r="0.75" fill="currentColor" stroke="none"/></svg>',Pa='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="4" y1="8" x2="12" y2="8"/></svg>',Ze='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="2.5" y="2.5" width="11" height="11" rx="1.5"/></svg>',_n='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><rect x="1.5" y="4.5" width="10" height="10" rx="1.5"/><path d="M4.5 4.5V3a1.5 1.5 0 011.5-1.5h7A1.5 1.5 0 0115 3v7a1.5 1.5 0 01-1.5 1.5H12"/></svg>',Zr='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',Oa='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M6.5 14H2V9.5"/><path d="M2 14l5.5-5.5"/><path d="M4 7V2.5A1.5 1.5 0 015.5 1h8A1.5 1.5 0 0115 2.5v8a1.5 1.5 0 01-1.5 1.5H9"/></svg>',Je=class{constructor(){this.tabsContainer=null;this.panelManager=null;this.entries=new Map;this._onBarVisibilityChanged=null;this._allowDocking=!0;this.dragState=null}setAllowDocking(e){this._allowDocking=e}onBarVisibilityChanged(e){this._onBarVisibilityChanged=e}init(e,n){this.tabsContainer=e,this.panelManager=n}minimize(e,n,o){if(!this.tabsContainer||this.entries.has(e))return;n.hide();let r=this.createTab(e,o.panels.length,"floating");this.entries.set(e,{tab:r,overlay:n,group:o,mode:"floating"}),this.tabsContainer.appendChild(r),this.showBar()}minimizeDocked(e,n,o){if(!this.tabsContainer||this.entries.has(e))return;let r=n.element.getBoundingClientRect();n.element.style.display="none",(this.tabsContainer.parentElement??document.body).appendChild(n.element);let a=o.minimizeDocked(n),s=a?.direction??"right",c=s==="top"||s==="bottom"?r.height>0?r.height:void 0:r.width>0?r.width:void 0,m=this.createTab(e,n.panels.length,"docked");this.entries.set(e,{tab:m,overlay:null,group:n,mode:"docked",savedPosition:{direction:s,...a?.siblingGroupId&&{siblingGroupId:a.siblingGroupId},initialSize:c}}),this.tabsContainer.appendChild(m),this.showBar()}restore(e){let n=this.entries.get(e);!n||!this.panelManager||(n.mode==="floating"&&n.overlay?n.overlay.show():n.mode==="docked"&&(n.group.element.style.display="",this.panelManager.restoreDocked(n.group,n.savedPosition?.direction??"right",n.savedPosition?.initialSize,n.savedPosition?.siblingGroupId),n.group.location="grid"),n.tab.remove(),this.entries.delete(e),this.hideBarIfEmpty())}closeGroup(e){let n=this.entries.get(e);if(!n||!this.panelManager)return;n.mode==="floating"&&n.overlay?n.overlay.show():n.mode==="docked"&&(n.group.element.style.display=""),n.tab.remove(),this.entries.delete(e);let o=n.group.panels.slice();for(let r of o)this.panelManager.removePanel(r.id);this.hideBarIfEmpty()}isMinimized(e){return this.entries.has(e)}getMinimizedGroupIds(){return Array.from(this.entries.keys())}getEntry(e){return this.entries.get(e)}removeGroup(e){let n=this.entries.get(e);n&&(n.tab.remove(),this.entries.delete(e),this.hideBarIfEmpty())}dispose(){for(let e of this.entries.values())e.overlay&&e.overlay.show(),e.mode==="docked"&&(e.group.element.style.display="");this.entries.clear(),this.tabsContainer&&(this.tabsContainer.innerHTML="",this.tabsContainer.style.display="none")}showBar(){if(this.tabsContainer){let e=this.tabsContainer.style.display==="none";this.tabsContainer.style.display="flex",e&&this._onBarVisibilityChanged?.()}}hideBarIfEmpty(){if(this.entries.size===0&&this.tabsContainer){let e=this.tabsContainer.style.display!=="none";this.tabsContainer.style.display="none",e&&this._onBarVisibilityChanged?.()}}mergeMinimized(e,n){let o=this.entries.get(e),r=this.entries.get(n);if(!o||!r||!this.panelManager)return;o.mode==="floating"&&o.overlay?o.overlay.show():o.mode==="docked"&&(o.group.element.style.display=""),r.mode==="floating"&&r.overlay?r.overlay.show():r.mode==="docked"&&(r.group.element.style.display="",this.panelManager.restoreDocked(r.group,r.savedPosition?.direction??"right",r.savedPosition?.initialSize),r.group.location="grid");let i=o.group.panels.map(a=>a.id);for(let a of i)this.panelManager.movePanel(a,r.group.id);if(o.tab.remove(),this.entries.delete(e),r.tab.remove(),this.entries.delete(n),r.mode==="floating"&&r.overlay){let a=this.createTab(n,r.group.panels.length);this.entries.set(n,{...r,tab:a}),this.tabsContainer.appendChild(a),r.overlay.hide()}this.hideBarIfEmpty()}dockMinimized(e){let n=this.entries.get(e);!n||!this.panelManager||(n.mode==="floating"&&n.overlay?(n.overlay.show(),this.panelManager.dockGroup(e,"right")):n.mode==="docked"&&(n.group.element.style.display="",this.panelManager.restoreDocked(n.group,n.savedPosition?.direction??"right",n.savedPosition?.initialSize,n.savedPosition?.siblingGroupId),n.group.location="grid"),n.tab.remove(),this.entries.delete(e),this.hideBarIfEmpty())}createTab(e,n,o="floating"){let r=document.createElement("div");r.className="mb-adapt-minimized-tab",r.dataset.groupId=e;let i=document.createElement("span");if(i.className="mb-adapt-minimized-tab-label",i.innerHTML=Array(n).fill(Qn).join(""),r.appendChild(i),o==="floating"&&this._allowDocking){let l=document.createElement("button");l.className="mb-adapt-minimized-tab-action",l.title="Dock to main",l.innerHTML=Oa,l.addEventListener("click",c=>{c.stopPropagation(),this.dockMinimized(e)}),r.appendChild(l)}let a=document.createElement("button");a.className="mb-adapt-minimized-tab-action",a.title="Restore",a.innerHTML=Ze,a.addEventListener("click",l=>{l.stopPropagation(),this.restore(e)}),r.appendChild(a);let s=document.createElement("button");return s.className="mb-adapt-minimized-tab-action",s.title="Close",s.innerHTML=Zr,s.addEventListener("click",l=>{l.stopPropagation(),this.closeGroup(e)}),r.appendChild(s),r.addEventListener("pointerdown",l=>{l.target.closest("button")||l.button===0&&(l.preventDefault(),this.onTabDragStart(e,r,l))}),r}onTabDragStart(e,n,o){if(this.dragState)return;this.dragState={groupId:e,tab:n,startX:o.clientX,startY:o.clientY,isDragging:!1,ghost:null,highlightedTab:null};let r=s=>{if(!this.dragState)return;if(!this.dragState.isDragging){let c=s.clientX-this.dragState.startX,m=s.clientY-this.dragState.startY;if(c*c+m*m<25)return;this.dragState.isDragging=!0,this.dragState.ghost=this.createDragGhost(e),document.body.appendChild(this.dragState.ghost),this.dragState.tab.style.opacity="0.4"}this.dragState.ghost.style.left=`${s.clientX+8}px`,this.dragState.ghost.style.top=`${s.clientY+8}px`;let l=this.findDropTarget(s.clientX,s.clientY,e);this.dragState.highlightedTab!==l&&(this.dragState.highlightedTab?.classList.remove("mb-adapt-minimized-tab--drop-target"),l?.classList.add("mb-adapt-minimized-tab--drop-target"),this.dragState.highlightedTab=l)},i=s=>{if(document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),!!this.dragState){if(this.dragState.ghost?.remove(),this.dragState.tab.style.opacity="",this.dragState.highlightedTab?.classList.remove("mb-adapt-minimized-tab--drop-target"),this.dragState.isDragging){let l=this.findDropTarget(s.clientX,s.clientY,e);if(l){let c=l.dataset.groupId;c&&c!==e&&this.mergeMinimized(e,c)}}this.dragState=null}},a=()=>{document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),this.dragState&&(this.dragState.ghost?.remove(),this.dragState.tab.style.opacity="",this.dragState.highlightedTab?.classList.remove("mb-adapt-minimized-tab--drop-target")),this.dragState=null};document.addEventListener("pointermove",r),document.addEventListener("pointerup",i),document.addEventListener("pointercancel",a)}createDragGhost(e){let n=this.entries.get(e),o=document.createElement("div");return o.className="mb-drag-ghost",o.textContent=n?.group.panels.map(r=>r.title||"Panel").join(" \xB7 ")??e,o}findDropTarget(e,n,o){if(!this.tabsContainer)return null;let r=this.tabsContainer.querySelectorAll(".mb-adapt-minimized-tab");for(let i of r){let a=i;if(a.dataset.groupId===o)continue;let s=a.getBoundingClientRect();if(e>=s.left&&e<=s.right&&n>=s.top&&n<=s.bottom)return a}return null}},ke=class{constructor(e,n,o,r){this.isMaximized=!1;this._beforeClose=null;this.overlay=e,this.panelManager=n,this.minimizeManager=o,this.element=document.createElement("div"),this.element.className="mb-adapt-fork-actions",this.minimizeBtn=this.createButton("Minimize",Pa),this.maxRestoreBtn=this.createButton("Maximize",Ze),this.dockBtn=this.createButton("Dock to main",Oa);let i=this.createButton("Close all",Zr);r?.allowDocking===!1&&(this.dockBtn.style.display="none"),r?.allowMinimize===!1&&(this.minimizeBtn.style.display="none"),r?.allowMaximize===!1&&(this.maxRestoreBtn.style.display="none"),this.element.appendChild(this.minimizeBtn),this.element.appendChild(this.maxRestoreBtn),this.element.appendChild(this.dockBtn),this.element.appendChild(i),this.minimizeBtn.addEventListener("click",()=>this.onMinimize()),this.maxRestoreBtn.addEventListener("click",()=>this.onMaxRestore()),this.dockBtn.addEventListener("click",()=>this.onDock()),i.addEventListener("click",()=>this.onClose())}setAllowDocking(e){this.dockBtn.style.display=e?"":"none"}setAllowMinimize(e){this.minimizeBtn.style.display=e?"":"none"}setAllowMaximize(e){this.maxRestoreBtn.style.display=e?"":"none"}setBeforeClose(e){this._beforeClose=e}syncMaximizedState(){this.overlay.isMaximized&&!this.isMaximized?(this.isMaximized=!0,this.maxRestoreBtn.innerHTML=_n,this.maxRestoreBtn.title="Restore"):!this.overlay.isMaximized&&this.isMaximized&&(this.isMaximized=!1,this.maxRestoreBtn.innerHTML=Ze,this.maxRestoreBtn.title="Maximize")}createButton(e,n){let o=document.createElement("button");return o.title=e,o.innerHTML=n,o}clearMaximize(){this.isMaximized&&(this.overlay.restore(),this.isMaximized=!1,this.maxRestoreBtn.innerHTML=Ze,this.maxRestoreBtn.title="Maximize")}onMinimize(){this.clearMaximize();let e=this.overlay.group;this.minimizeManager.minimize(e.id,this.overlay,e)}onMaxRestore(){this.isMaximized?(this.overlay.restore(),this.isMaximized=!1,this.maxRestoreBtn.innerHTML=Ze,this.maxRestoreBtn.title="Maximize"):(this.overlay.maximize(),this.isMaximized=!0,this.maxRestoreBtn.innerHTML=_n,this.maxRestoreBtn.title="Restore")}onDock(){this.clearMaximize(),this.panelManager.dockOverlay(this.overlay.group.id)}onClose(){let e=()=>{this.clearMaximize();for(let n of this.overlay.getAllGroups())for(let o of n.panels.slice())this.panelManager.removePanel(o.id)};if(this._beforeClose){let n=this._beforeClose();n&&typeof n.then=="function"?n.then(o=>{o&&e()}):n!==!1&&e()}else e()}},Me=class{constructor(e,n,o,r,i){this._isMaximized=!1;this._autoMaximizedByResize=!1;this._beforeClose=null;this._onMaximizeChanged=null;this.group=e,this.minimizeManager=n,this.panelManager=o,this._allowFloating=i?.allowFloating??!0,this._allowMinimize=i?.allowMinimize??!0,this._allowMaximize=i?.allowMaximize??!0,this.element=document.createElement("div"),this.element.className="mb-adapt-fork-actions",this.floatDockBtn=this.createButton("Pop out",Kn),this.maximizeBtn=this.createButton("Maximize",Ze),this.minimizeBtn=this.createButton("Minimize",Pa),this.closeBtn=this.createButton("Close all",Zr),this._allowFloating||(this.floatDockBtn.style.display="none",e.element.setAttribute("data-allow-floating","false")),this.element.appendChild(this.floatDockBtn),this.element.appendChild(this.maximizeBtn),this.element.appendChild(this.minimizeBtn),this.element.appendChild(this.closeBtn),this.floatDockBtn.addEventListener("click",()=>this.onFloatDock()),this.maximizeBtn.addEventListener("click",()=>this.onMaximize()),this.minimizeBtn.addEventListener("click",()=>this.onMinimize()),this.closeBtn.addEventListener("click",()=>this.onCloseGroup()),this.updateVisibility(),e.onLocationChanged(()=>{this.updateVisibility(),r?.()}),e.onSplitStateChanged(()=>this.updateVisibility())}dispose(){this.restoreMaximized(),this.minimizeManager.removeGroup(this.group.id)}setAllowFloating(e){this._allowFloating=e,e?this.group.element.removeAttribute("data-allow-floating"):this.group.element.setAttribute("data-allow-floating","false"),this.updateVisibility()}setAllowMinimize(e){this._allowMinimize=e,this.updateVisibility()}setAllowMaximize(e){this._allowMaximize=e,this.updateVisibility()}setAutoMaximizedByResize(e){this._autoMaximizedByResize=e,this.updateVisibility()}setBeforeClose(e){this._beforeClose=e}onMaximizeChanged(e){this._onMaximizeChanged=e}updateVisibility(){this.group.location==="floating"||this.group.isInFloatingSplit?(this.floatDockBtn.style.display="none",this.maximizeBtn.style.display="none",this.minimizeBtn.style.display="none",this.closeBtn.style.display="none"):(this.floatDockBtn.style.display=this._allowFloating?"":"none",this.floatDockBtn.innerHTML=Kn,this.floatDockBtn.title="Pop out",this.maximizeBtn.style.display=this._allowMaximize&&!this._autoMaximizedByResize?"":"none",this.minimizeBtn.style.display=this._allowMinimize?"":"none",this.closeBtn.style.display="")}createButton(e,n){let o=document.createElement("button");return o.title=e,o.innerHTML=n,o}onFloatDock(){this.restoreMaximized();let e=window.innerWidth,n=window.innerHeight,o=Math.min(720,Math.max(200,e-20)),r=Math.min(600,Math.max(200,n-20));this.panelManager.addFloatingGroup(this.group,{width:o,height:r,x:Math.max(0,(e-o)/2),y:Math.max(0,(n-r)/2)})}get isMaximized(){return this._isMaximized}clearMaximized(){this._isMaximized&&(this.panelManager.restoreMaximizedDockedGroup(this.group),this._isMaximized=!1,this.maximizeBtn.innerHTML=Ze,this.maximizeBtn.title="Maximize",this._onMaximizeChanged?.(!1))}setMaximized(){this._isMaximized||(this.panelManager.maximizeDockedGroup(this.group),this._isMaximized=!0,this.maximizeBtn.innerHTML=_n,this.maximizeBtn.title="Restore",this._onMaximizeChanged?.(!0))}onMaximize(){this._isMaximized?this.restoreMaximized():(this.panelManager.maximizeDockedGroup(this.group),this._isMaximized=!0,this.maximizeBtn.innerHTML=_n,this.maximizeBtn.title="Restore",this._onMaximizeChanged?.(!0))}restoreMaximized(){this._isMaximized&&(this.panelManager.restoreMaximizedDockedGroup(this.group),this._isMaximized=!1,this.maximizeBtn.innerHTML=Ze,this.maximizeBtn.title="Maximize",this._onMaximizeChanged?.(!1))}onMinimize(){this.restoreMaximized(),this.minimizeManager.minimizeDocked(this.group.id,this.group,this.panelManager)}onCloseGroup(){let e=()=>{this.restoreMaximized();for(let n of this.group.panels.slice())this.panelManager.removePanel(n.id)};if(this._beforeClose){let n=this._beforeClose();n&&typeof n.then=="function"?n.then(o=>{o&&e()}):n!==!1&&e()}else e()}};function ja(){if(typeof document>"u"||getComputedStyle(document.documentElement).getPropertyValue("--mb-adapt-styles-loaded").trim()||document.getElementById("mb-adapt-panel-styles"))return;let t=document.createElement("style");t.id="mb-adapt-panel-styles",t.textContent=Qa;let e=document.querySelector("style, link[rel=stylesheet]");e?e.parentNode.insertBefore(t,e):document.head.appendChild(t)}var Cr=0;function Pn(){return Cr++,document.documentElement.classList.add("mb-dragging"),{release(){--Cr<=0&&(Cr=0,document.documentElement.classList.remove("mb-dragging"))}}}var Sr=class{constructor(e,n,o){this.group=null;this.id=e,this.element=n,this.title=o||e,this.wrapper=document.createElement("div"),this.wrapper.className="mb-panel",this.wrapper.dataset.panelId=e,this.wrapper.dataset.active="false",this.wrapper.appendChild(n)}},Vr=0;function $a(t){for(let e=0;e<t.length;e++){let n=t[e].match(/^group-(\d+)$/);if(n){let o=parseInt(n[1],10);o>Vr&&(Vr=o)}}}var On=class{constructor(e){this._panels=[];this._activePanel=null;this._headerHidden=!1;this._locked=!1;this._onTabClose=null;this._onTabPointerDown=null;this._onTabPopOut=null;this._location="grid";this._onLocationChangedCb=null;this._isInFloatingSplit=!1;this._onSplitStateChangedCb=null;this._dragConstraint="any";this._dockingBlocked=!1;this._dialogDockingBlocked=!1;this._onPanelCountChangedCb=null;this._onActivePanelChangedCb=null;this.id=e||`group-${++Vr}`,this.element=document.createElement("div"),this.element.className="mb-group",this.element.dataset.groupId=this.id,this.headerElement=document.createElement("div"),this.headerElement.className="mb-group-header",this.headerPrefix=document.createElement("div"),this.headerPrefix.className="mb-group-header-prefix",this.tabsElement=document.createElement("div"),this.tabsElement.className="mb-group-tabs",this.headerVoid=document.createElement("div"),this.headerVoid.className="mb-group-header-void",this.headerActions=document.createElement("div"),this.headerActions.className="mb-group-header-actions",this.headerElement.appendChild(this.headerPrefix),this.headerElement.appendChild(this.tabsElement),this.headerElement.appendChild(this.headerVoid),this.headerElement.appendChild(this.headerActions),this.contentElement=document.createElement("div"),this.contentElement.className="mb-group-content",this.element.appendChild(this.headerElement),this.element.appendChild(this.contentElement)}get panels(){return this._panels}get activePanel(){return this._activePanel}get size(){return this._panels.length}get locked(){return this._locked}set locked(e){this._locked=e}setHeaderHidden(e){this._headerHidden=e,this.headerElement.style.display=e?"none":""}get headerHidden(){return this._headerHidden}setHeaderActions(e){this.headerActions.innerHTML="",this.headerActions.appendChild(e)}setHeaderPrefix(e){this.headerPrefix.innerHTML="",this.headerPrefix.appendChild(e)}onTabClose(e){this._onTabClose=e}onTabPointerDown(e){this._onTabPointerDown=e}get location(){return this._location}set location(e){this._location!==e&&(this._location=e,this._onLocationChangedCb?.(e))}onLocationChanged(e){this._onLocationChangedCb=e}fireLocationChanged(){this._onLocationChangedCb?.(this._location)}get isInFloatingSplit(){return this._isInFloatingSplit}set isInFloatingSplit(e){this._isInFloatingSplit!==e&&(this._isInFloatingSplit=e,this._onSplitStateChangedCb?.(e))}onSplitStateChanged(e){this._onSplitStateChangedCb=e}onTabPopOut(e){this._onTabPopOut=e}get dragConstraint(){return this._dragConstraint}set dragConstraint(e){this._dragConstraint=e}get dockingBlocked(){return this._dockingBlocked}set dockingBlocked(e){this._dockingBlocked=e}get dialogDockingBlocked(){return this._dialogDockingBlocked}set dialogDockingBlocked(e){this._dialogDockingBlocked=e}onPanelCountChanged(e){this._onPanelCountChangedCb=e}onActivePanelChanged(e){this._onActivePanelChangedCb=e}addPanel(e){if(this._panels.some(o=>o.id===e.id))return;e.group=this,this._panels.push(e),this.contentElement.appendChild(e.wrapper);let n=this.createTab(e);this.tabsElement.appendChild(n),this.activatePanel(e.id),this.element.dataset.tabCount=String(this._panels.length),this._onPanelCountChangedCb?.(this._panels.length)}removePanel(e){let n=this._panels.findIndex(i=>i.id===e);if(n===-1)return null;let o=this._panels[n];if(this._panels.splice(n,1),o.wrapper.remove(),this.tabsElement.querySelector(`[data-tab-id="${e}"]`)?.remove(),o.group=null,this._activePanel===o&&(this._activePanel=null,this._panels.length>0)){let i=this._panels[Math.min(n,this._panels.length-1)];i&&this.activatePanel(i.id)}return this.element.dataset.tabCount=String(this._panels.length),this._onPanelCountChangedCb?.(this._panels.length),o}detachPanel(e){let n=this._panels.findIndex(i=>i.id===e);if(n===-1)return null;let o=this._panels[n];if(this._panels.splice(n,1),this.tabsElement.querySelector(`[data-tab-id="${e}"]`)?.remove(),o.group=null,this._activePanel===o&&(this._activePanel=null,this._panels.length>0)){let i=this._panels[Math.min(n,this._panels.length-1)];i&&this.activatePanel(i.id)}return this.element.dataset.tabCount=String(this._panels.length),this._onPanelCountChangedCb?.(this._panels.length),o}activatePanel(e){let n=this._panels.find(r=>r.id===e);if(!n)return;this._activePanel=n;for(let r of this._panels)r.wrapper.dataset.active=r===n?"true":"false";let o=this.tabsElement.querySelectorAll(".mb-tab");for(let r of o){let i=r.dataset.tabId===e;r.dataset.active=i?"true":"false"}this._onActivePanelChangedCb?.(e)}reorderPanel(e,n){let o=this._panels.findIndex(c=>c.id===e);if(o===-1)return;let r=this._panels[o],i=Array.from(this.tabsElement.querySelectorAll(".mb-tab")),a=this._panels.length;for(let c=0;c<i.length;c++){let m=i[c].getBoundingClientRect();if(n<m.left+m.width/2){a=c;break}}if(a===o||a===o+1)return;this._panels.splice(o,1);let s=o<a?a-1:a;this._panels.splice(s,0,r);let l=this.tabsElement.querySelector(`[data-tab-id="${e}"]`);if(l){let c=this.tabsElement.querySelectorAll(".mb-tab")[s];c&&c!==l?this.tabsElement.insertBefore(l,c):this.tabsElement.appendChild(l)}}createTab(e){let n=document.createElement("div");n.className="mb-tab",n.dataset.tabId=e.id,n.dataset.active="false";let o=document.createElement("span");o.className="mb-tab-label",o.innerHTML=Qn,o.title=e.title,n.appendChild(o);let r=document.createElement("div");r.className="mb-tab-actions";let i=document.createElement("button");i.className="mb-tab-popout",i.title="Pop out",i.innerHTML=Kn,i.addEventListener("click",s=>{s.stopPropagation(),this._onTabPopOut?.(e.id)}),r.appendChild(i);let a=document.createElement("button");return a.className="mb-tab-close",a.title="Close",a.innerHTML='<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><line x1="4" y1="4" x2="12" y2="12"/><line x1="12" y1="4" x2="4" y2="12"/></svg>',a.addEventListener("click",s=>{s.stopPropagation(),this._onTabClose?.(e.id)}),r.appendChild(a),n.appendChild(r),n.addEventListener("pointerdown",s=>{s.target.closest(".mb-tab-close")||s.target.closest(".mb-tab-popout")||s.button===0&&(s.preventDefault(),this._onTabPointerDown?.(e.id,s))}),n}dispose(){for(let e of this._panels)e.group=null;this._panels=[],this._activePanel=null,this.element.remove()}},Br=1e5,jn=class t{constructor(e,n,o,r){this.internalLayout=null;this.toolbarElement=null;this.savedBounds=null;this._isMaximized=!1;this._onDragEnd=null;this._onDragMove=null;this._onBoundsChanged=null;this.group=e,this.bounds={...n},this.element=document.createElement("div"),this.element.className="mb-floating-overlay",this.element.dataset.groupId=e.id,this.applyBounds();let i=["n","s","e","w","ne","nw","se","sw"];for(let s of i){let l=document.createElement("div");l.className=`mb-resize-handle mb-resize-${s}`,l.addEventListener("pointerdown",c=>this.onResizeStart(c,s)),this.element.appendChild(l)}this.element.addEventListener("pointerdown",()=>this.bringToFront(),!0),e.headerVoid.addEventListener("pointerdown",s=>this.onDragStart(s)),e.headerVoid.style.cursor="grab",this.wireDragOnActions(e);let a=o??document.body;r?a.insertBefore(this.element,r):a.appendChild(this.element),this.element.appendChild(e.element),this.bringToFront()}get isMaximized(){return this._isMaximized}set onDragEnd(e){this._onDragEnd=e}set onDragMove(e){this._onDragMove=e}set onBoundsChanged(e){this._onBoundsChanged=e}bringToFront(){Br+=2,this.element.style.zIndex=String(Br)}maximize(){this._isMaximized||(this.savedBounds={...this.bounds},this._isMaximized=!0,this.element.style.inset="0",this.element.style.width="auto",this.element.style.height="auto",this.element.classList.add("mb-floating-maximized"))}restore(){!this._isMaximized||!this.savedBounds||(this._isMaximized=!1,this.bounds={...this.savedBounds},this.savedBounds=null,this.element.classList.remove("mb-floating-maximized"),this.element.style.inset="",this.applyBounds())}hide(){this.element.style.display="none"}show(){this.element.style.display=""}dispose(){this.internalLayout&&(this.internalLayout.dispose(),this.internalLayout=null),this.removeToolbar(),this.element.remove()}getBounds(){return{...this.bounds}}setBounds(e){if(this._isMaximized)return;let n=10;e.width!==void 0&&(this.bounds.width=Math.min(e.width,window.innerWidth-this.bounds.x-n)),e.height!==void 0&&(this.bounds.height=Math.min(e.height,window.innerHeight-this.bounds.y-n)),this.applyBounds()}setFullBounds(e){if(this._isMaximized)return;let n=window.innerWidth,o=window.innerHeight,r=10,i=100;this.bounds={width:Math.max(i,Math.min(e.width,n-r)),height:Math.max(i,Math.min(e.height,o-r)),x:Math.max(0,Math.min(e.x,n-i)),y:Math.max(0,Math.min(e.y,o-i))},this.applyBounds()}applyBounds(){this.element.style.position="fixed",this.element.style.left=`${this.bounds.x}px`,this.element.style.top=`${this.bounds.y}px`,this.element.style.width=`${this.bounds.width}px`,this.element.style.height=`${this.bounds.height}px`}setDragGroup(e){e.headerVoid.addEventListener("pointerdown",n=>this.onDragStart(n)),e.headerVoid.style.cursor="grab",this.wireDragOnActions(e)}wireDragOnActions(e){e.headerActions.addEventListener("pointerdown",n=>{n.target.closest("button")||this.onDragStart(n)}),e.headerActions.style.cursor="grab"}setToolbar(e){this.removeToolbar(),this.toolbarElement=e,this.getToolbarHost().headerActions.appendChild(e)}removeToolbar(){this.toolbarElement&&(this.toolbarElement.remove(),this.toolbarElement=null)}repositionToolbar(){this.toolbarElement&&this.getToolbarHost().headerActions.appendChild(this.toolbarElement)}getToolbarHost(){if(!this.internalLayout)return this.group;let e=this.internalLayout.getRoot();return e?t.topRightGroup(e):this.group}static topRightGroup(e){return e.kind==="leaf"?e.group:e.direction==="horizontal"?t.topRightGroup(e.second):t.topRightGroup(e.first)}get hasToolbar(){return this.toolbarElement!==null}getAllGroups(){return this.internalLayout?.allGroups()??[this.group]}updateTotalTabCount(){let e=this.getAllGroups(),n=0;for(let o of e)n+=o.size;this.element.dataset.totalTabCount=String(n)}onDragStart(e){if(this._isMaximized)return;e.preventDefault();let n=e.currentTarget,o=e.clientX,r=e.clientY,i=this.bounds.x,a=this.bounds.y,s=Pn();n.style.cursor="grabbing",n.setPointerCapture(e.pointerId);let l=m=>{let g=m.clientX-o,f=m.clientY-r;this.bounds.x=Math.max(0,Math.min(i+g,window.innerWidth-this.bounds.width)),this.bounds.y=Math.max(0,Math.min(a+f,window.innerHeight-this.bounds.height)),this.applyBounds(),this._onDragMove?.(this.bounds.x+this.bounds.width/2,this.bounds.y+this.bounds.height/2)},c=()=>{s.release(),n.style.cursor="grab",n.removeEventListener("pointermove",l),n.removeEventListener("pointerup",c),n.removeEventListener("pointercancel",c),this._onDragEnd?.(this.bounds.x+this.bounds.width/2,this.bounds.y+this.bounds.height/2),this._onBoundsChanged?.()};n.addEventListener("pointermove",l),n.addEventListener("pointerup",c),n.addEventListener("pointercancel",c)}onResizeStart(e,n){if(this._isMaximized)return;e.preventDefault(),e.stopPropagation();let o=e.clientX,r=e.clientY,i={...this.bounds},a=e.currentTarget,s=200,l=100,c=Pn();a.setPointerCapture(e.pointerId);let m=f=>{let p=f.clientX-o,I=f.clientY-r;if(n.includes("e")&&(this.bounds.width=Math.max(s,i.width+p)),n.includes("w")){let v=Math.max(s,i.width-p);this.bounds.x=i.x+(i.width-v),this.bounds.width=v}if(n.includes("s")&&(this.bounds.height=Math.max(l,i.height+I)),n.includes("n")){let v=Math.max(l,i.height-I);this.bounds.y=i.y+(i.height-v),this.bounds.height=v}let Z=10;this.bounds.x=Math.max(0,this.bounds.x),this.bounds.y=Math.max(0,this.bounds.y),this.bounds.x+this.bounds.width>window.innerWidth-Z&&(this.bounds.width=window.innerWidth-this.bounds.x-Z),this.bounds.y+this.bounds.height>window.innerHeight-Z&&(this.bounds.height=window.innerHeight-this.bounds.y-Z),this.applyBounds()},g=()=>{c.release(),a.removeEventListener("pointermove",m),a.removeEventListener("pointerup",g),a.removeEventListener("pointercancel",g),this._onBoundsChanged?.()};a.addEventListener("pointermove",m),a.addEventListener("pointerup",g),a.addEventListener("pointercancel",g)}},Lt=class{constructor(e){this.root=null;this.onSplitResized=null;this.element=document.createElement("div"),this.element.className="mb-layout",e.appendChild(this.element)}getRoot(){return this.root}setMainGroup(e){let n=this.createLeaf(e);n.element.style.flex="1",this.root=n,this.element.appendChild(n.element)}splitGroup(e,n,o,r){let i=this.dockToSplitDirection(o),a=this.findGroupNode(e);if(!a)return!1;let s=document.createElement("div");s.className="mb-split-leaf",s.style.flex="1";let l=document.createElement("div");l.className=`mb-split-container ${i==="horizontal"?"mb-split-horizontal":"mb-split-vertical"}`,l.style.flex=a.element.style.flex||"1",l.style.minWidth="0",l.style.minHeight="0";let c=document.createElement("div"),m=i==="vertical";c.className=`mb-layout-separator ${m?"mb-layout-separator-h":"mb-layout-separator-v"}`;let g=o==="right"||o==="bottom";a.element.parentElement.insertBefore(l,a.element),g?(l.appendChild(a.element),l.appendChild(c),l.appendChild(s)):(l.appendChild(s),l.appendChild(c),l.appendChild(a.element)),s.appendChild(n.element),r!==void 0&&r>0?g?(a.element.style.flex="1",s.style.flex=`0 0 ${r}px`):(s.style.flex=`0 0 ${r}px`,a.element.style.flex="1"):(a.element.style.flex="1",s.style.flex="1");let p={kind:"leaf",group:n,element:s},I={kind:"split",direction:i,first:g?a:p,second:g?p:a,element:l,separator:c};return c.addEventListener("pointerdown",Z=>this.onSeparatorDrag(Z,I)),this.replaceNodeInTree(a,I),a.element.style.display==="none"&&(c.style.display="none",s.dataset.savedFlex=s.style.flex,s.style.flex="1",a.element.dataset.savedFlex=a.element.style.flex),!0}removeGroup(e){let n=this.findGroupNode(e);if(!n)return;if(this.root===n){n.element.remove(),this.root=null;return}this.restoreMaximizedLeaf(e);let o=this.findParentSplit(n);if(!o)return;let r=o.first===n?o.second:o.first;this.restoreMaximizedSubtree(r),r.element.style.flex=o.element.style.flex||"1",o.element.parentElement.insertBefore(r.element,o.element),n.element.remove(),o.separator.remove(),o.element.remove(),this.replaceNodeInTree(o,r)}findGroupNode(e){return this.findGroupNodeIn(this.root,e)}getGroupPosition(e){let n=this.findGroupNode(e);if(!n)return null;let o=this.findParentSplit(n);if(!o)return null;let r=o.first===n,i=r?o.second:o.first,a=this.firstGroupIn(i);if(!a)return null;let s;return o.direction==="horizontal"?s=r?"left":"right":s=r?"top":"bottom",{siblingGroup:a,direction:s}}firstGroupIn(e){return e.kind==="leaf"?e.group:this.firstGroupIn(e.first)}collapseLeaf(e){let n=this.findGroupNode(e);if(!n)return;let o=this.findParentSplit(n);if(o){let r=o.first===n?o.second:o.first;r.element.dataset.savedFlex=r.element.style.flex,r.element.style.flex="1",o.separator.style.display="none"}n.element.dataset.savedFlex=n.element.style.flex,n.element.style.display="none"}expandLeaf(e){let n=this.findGroupNode(e);if(!n)return;n.element.style.display="",n.element.dataset.savedFlex!==void 0&&(n.element.style.flex=n.element.dataset.savedFlex,delete n.element.dataset.savedFlex);let o=this.findParentSplit(n);if(o){o.separator.style.display="";let r=o.first===n?o.second:o.first;r.element.dataset.savedFlex!==void 0&&(r.element.style.flex=r.element.dataset.savedFlex,delete r.element.dataset.savedFlex)}}maximizeLeaf(e){let n=this.findGroupNode(e);if(!n)return;let o=n,r=this.findParentSplit(o);for(;r;){let i=r.first===o?r.second:r.first;i.element.dataset.maxSavedDisplay===void 0&&(i.element.dataset.maxSavedDisplay=i.element.style.display),i.element.style.display="none",r.separator.dataset.maxSavedDisplay===void 0&&(r.separator.dataset.maxSavedDisplay=r.separator.style.display),r.separator.style.display="none",o.element.dataset.maxSavedFlex===void 0&&(o.element.dataset.maxSavedFlex=o.element.style.flex),o.element.style.flex="1",o=r,r=this.findParentSplit(o)}}restoreMaximizedLeaf(e){let n=this.findGroupNode(e);if(!n)return;let o=n,r=this.findParentSplit(o);for(;r;){let i=r.first===o?r.second:r.first;i.element.dataset.maxSavedDisplay!==void 0&&(i.element.style.display=i.element.dataset.maxSavedDisplay,delete i.element.dataset.maxSavedDisplay),r.separator.dataset.maxSavedDisplay!==void 0&&(r.separator.style.display=r.separator.dataset.maxSavedDisplay,delete r.separator.dataset.maxSavedDisplay),o.element.dataset.maxSavedFlex!==void 0&&(o.element.style.flex=o.element.dataset.maxSavedFlex,delete o.element.dataset.maxSavedFlex),o=r,r=this.findParentSplit(o)}}restoreMaximizedSubtree(e){e.element.dataset.maxSavedDisplay!==void 0&&(e.element.style.display=e.element.dataset.maxSavedDisplay,delete e.element.dataset.maxSavedDisplay),e.element.dataset.maxSavedFlex!==void 0&&(e.element.style.flex=e.element.dataset.maxSavedFlex,delete e.element.dataset.maxSavedFlex),e.kind==="split"&&(e.separator.dataset.maxSavedDisplay!==void 0&&(e.separator.style.display=e.separator.dataset.maxSavedDisplay,delete e.separator.dataset.maxSavedDisplay),this.restoreMaximizedSubtree(e.first),this.restoreMaximizedSubtree(e.second))}allGroups(){let e=[];return this.collectGroups(this.root,e),e}toJSON(){return this.serializeNode(this.root)}restoreFlexFromSerialized(e){!e||!this.root||this.restoreFlexParallel(e,this.root)}restoreFlexParallel(e,n){if(e.flex&&this.isValidFlex(e.flex)&&(n.element.style.flex=e.flex),e.kind==="split"&&n.kind==="split")this.restoreFlexParallel(e.first,n.first),this.restoreFlexParallel(e.second,n.second);else if(e.kind!==n.kind){let o=new Map;this.collectFlexValues(e,o),this.applyFlexValues(n,o)}}animateTransition(){let e=r=>{r&&(r.kind==="leaf"?r.element.classList.add("mb-split-leaf--animating"):(r.element.classList.add("mb-split-container--animating"),r.separator&&r.separator.classList.add("mb-layout-separator--animating"),e(r.first),e(r.second)))};e(this.root);let n=()=>{this.element.querySelectorAll(".mb-split-leaf--animating, .mb-split-container--animating, .mb-layout-separator--animating").forEach(r=>{r.classList.remove("mb-split-leaf--animating","mb-split-container--animating","mb-layout-separator--animating")})},o=setTimeout(n,350);this.element.addEventListener("transitionend",()=>{clearTimeout(o),n()},{once:!0})}rebuildFromSerialized(e,n){let o=this.buildNodeFromSerialized(e,n);o&&(this.element.appendChild(o.element),this.moveGroupsIntoTree(o),this.root&&this.root.element.remove(),this.root=o,this.root&&(this.root.element.style.flex="1"))}buildNodeFromSerialized(e,n){if(e.kind==="leaf"){let c=n(e.groupId);if(!c)return null;let m=document.createElement("div");return m.className="mb-split-leaf",e.flex&&this.isValidFlex(e.flex)?m.style.flex=e.flex:m.style.flex="1",{kind:"leaf",group:c,element:m}}let o=this.buildNodeFromSerialized(e.first,n),r=this.buildNodeFromSerialized(e.second,n);if(!o&&!r)return null;if(!o)return e.flex&&this.isValidFlex(e.flex)&&(r.element.style.flex=e.flex),r;if(!r)return e.flex&&this.isValidFlex(e.flex)&&(o.element.style.flex=e.flex),o;let i=document.createElement("div");i.className=`mb-split-container ${e.direction==="horizontal"?"mb-split-horizontal":"mb-split-vertical"}`,e.flex&&this.isValidFlex(e.flex)?i.style.flex=e.flex:i.style.flex="1",i.style.minWidth="0",i.style.minHeight="0";let a=document.createElement("div"),s=e.direction==="vertical";a.className=`mb-layout-separator ${s?"mb-layout-separator-h":"mb-layout-separator-v"}`,i.appendChild(o.element),i.appendChild(a),i.appendChild(r.element);let l={kind:"split",direction:e.direction,first:o,second:r,element:i,separator:a};return a.addEventListener("pointerdown",c=>this.onSeparatorDrag(c,l)),l}moveGroupsIntoTree(e){if(e.kind==="leaf"){e.element.appendChild(e.group.element);return}this.moveGroupsIntoTree(e.first),this.moveGroupsIntoTree(e.second)}dispose(){this.element.remove(),this.root=null}createLeaf(e){let n=document.createElement("div");return n.className="mb-split-leaf",n.style.flex="1",n.appendChild(e.element),{kind:"leaf",group:e,element:n}}dockToSplitDirection(e){return e==="left"||e==="right"?"horizontal":"vertical"}findGroupNodeIn(e,n){return e?e.kind==="leaf"?e.group===n?e:null:this.findGroupNodeIn(e.first,n)??this.findGroupNodeIn(e.second,n):null}collectGroups(e,n){e&&(e.kind==="leaf"?n.push(e.group):(this.collectGroups(e.first,n),this.collectGroups(e.second,n)))}findParentSplit(e){return this.findParentSplitIn(this.root,e)}findParentSplitIn(e,n){return!e||e.kind==="leaf"?null:e.first===n||e.second===n?e:this.findParentSplitIn(e.first,n)??this.findParentSplitIn(e.second,n)}replaceNodeInTree(e,n){if(this.root===e){this.root=n;return}let o=this.findParentSplit(e);o&&(o.first===e?o.first=n:o.second=n)}collectFlexValues(e,n){e.kind==="leaf"?n.set(e.groupId,e.flex):(this.collectFlexValues(e.first,n),this.collectFlexValues(e.second,n))}applyFlexValues(e,n){if(e.kind==="leaf"){let o=n.get(e.group.id);o&&this.isValidFlex(o)&&(e.element.style.flex=o)}else this.applyFlexValues(e.first,n),this.applyFlexValues(e.second,n)}isValidFlex(e){if(e.includes("px"))return!0;let n=e.split(" ")[0],o=Number(n);return Number.isFinite(o)&&o>=0}serializeNode(e){if(!e)return null;let n=e.element.dataset.maxSavedFlex||e.element.dataset.savedFlex||e.element.style.flex||"1";if(e.kind==="leaf")return e.group.size===0&&e.group.id!=="main-group"?null:{kind:"leaf",groupId:e.group.id,flex:n};let o=this.serializeNode(e.first),r=this.serializeNode(e.second);return!o&&!r?null:o?r?{kind:"split",direction:e.direction,first:o,second:r,flex:n}:(o.flex=n,o):(r.flex=n,r)}onSeparatorDrag(e,n){if(e.preventDefault(),n.first.element.style.display==="none"||n.second.element.style.display==="none")return;let o=n.direction==="horizontal",r=o?e.clientX:e.clientY,i=n.first.element,a=n.second.element;this.lockDescendantSizes(n.first,o),this.lockDescendantSizes(n.second,o);let s=o?i.offsetWidth:i.offsetHeight,l=o?a.offsetWidth:a.offsetHeight,c=s+l;if(c<=0)return;let m=150,g=Pn();n.separator.setPointerCapture(e.pointerId),n.separator.classList.add("mb-layout-separator--active");let f=I=>{if(i.style.display==="none"||a.style.display==="none"){n.separator.releasePointerCapture(I.pointerId),p();return}let Z=(o?I.clientX:I.clientY)-r,v=s+Z,J=l-Z;v<m&&(v=m,J=c-m),J<m&&(J=m,v=c-m),i.style.flex=String(v/c),a.style.flex=String(J/c)},p=()=>{g.release(),n.separator.classList.remove("mb-layout-separator--active"),n.separator.removeEventListener("pointermove",f),n.separator.removeEventListener("pointerup",p),n.separator.removeEventListener("pointercancel",p),this.unlockDescendantSizes(n.first,o),this.unlockDescendantSizes(n.second,o),this.onSplitResized?.()};n.separator.addEventListener("pointermove",f),n.separator.addEventListener("pointerup",p),n.separator.addEventListener("pointercancel",p)}lockDescendantSizes(e,n){if(e.kind!=="split"||e.direction==="horizontal"!==n)return;let o=n?e.first.element.getBoundingClientRect().width:e.first.element.getBoundingClientRect().height;e.first.element.style.flex=`0 0 ${o}px`,e.second.element.style.flex="1",this.lockDescendantSizes(e.first,n),this.lockDescendantSizes(e.second,n)}unlockDescendantSizes(e,n){if(e.kind!=="split"||e.direction==="horizontal"!==n)return;this.unlockDescendantSizes(e.first,n),this.unlockDescendantSizes(e.second,n);let o=n?e.first.element.getBoundingClientRect().width:e.first.element.getBoundingClientRect().height,r=n?e.second.element.getBoundingClientRect().width:e.second.element.getBoundingClientRect().height,i=o+r;i>0?(e.first.element.style.flex=String(o/i),e.second.element.style.flex=String(r/i)):(e.first.element.style.flex="0.5",e.second.element.style.flex="0.5")}},Fe=class{constructor(e){this.groups=new Map;this.panels=new Map;this.floatingOverlays=new Map;this.mainGroupId=null;this.onPanelRemovedCbs=[];this.onGroupCreatedByDragCb=null;this.onLayoutChangedCb=null;this.disposed=!1;this.dragState=null;this.portals=new Map;this.portalRaf=0;this.mainGroupCollapsed=!1;this._beforeTabClose=null;this.zBase=0;this.container=e.container,this.splitEdgeSize=e.splitEdgeSize??100,this.layout=new Lt(this.container),e.onPanelRemoved&&this.onPanelRemovedCbs.push(e.onPanelRemoved),this.onGroupCreatedByDragCb=e.onGroupCreatedByDrag??null,this.onLayoutChangedCb=e.onLayoutChanged??null,this.layout.onSplitResized=this.onLayoutChangedCb,this.zBase=this.getZBase(),this.zBase!==0&&(Br=1e5+this.zBase),this.dropOverlay=document.createElement("div"),this.dropOverlay.className="mb-drop-overlay",this.container.appendChild(this.dropOverlay),this.portalLayer=document.createElement("div"),this.portalLayer.className="mb-iframe-portal-layer",this.container.appendChild(this.portalLayer),this.syncPortals()}getZBase(){let e=getComputedStyle(this.container).getPropertyValue("--mb-adapt-z-base").trim();return parseInt(e,10)||0}setBeforeTabClose(e){this._beforeTabClose=e}addPanel(e){let n=new Sr(e.id,e.element,e.title);this.panels.set(e.id,n);let o=e.groupId;if(o){let r=this.groups.get(o);r&&(r.addPanel(n),this.registerPortal(n.id,n.element,n.wrapper))}return n}removePanel(e){let n=this.panels.get(e);if(n){if(this.unregisterPortal(e),n.group){let o=n.group;o.removePanel(e),o.size===0&&o.id!==this.mainGroupId&&this.removeGroup(o.id)}this.panels.delete(e);for(let o of this.onPanelRemovedCbs)o(n)}}getPanel(e){return this.panels.get(e)}addGroup(e){let n=new On(e?.id);if(this.groups.set(n.id,n),this.wireGroupCallbacks(n),e?.floating)this.addFloatingGroup(n,e.floating);else if(e?.direction){let o=this.mainGroupId,r=o?this.groups.get(o):void 0;r&&this.layout.splitGroup(r,n,e.direction,e.initialSize)}return n}removeGroup(e){let n=this.groups.get(e);if(!n)return;for(let r of[...n.panels])this.unregisterPortal(r.id);let o=this.floatingOverlays.get(e);if(o)if(o.internalLayout){o.internalLayout.removeGroup(n),this.floatingOverlays.delete(e);let r=this.cleanupOrphanedFloatingLeaf(o);r.length>0?(o.group=r[0],this.floatingOverlays.set(r[0].id,o)):o.dispose()}else o.dispose(),this.floatingOverlays.delete(e);if(!o){let r=this.findOverlayForGroup(n);if(r?.internalLayout&&(r.internalLayout.removeGroup(n),this.cleanupOrphanedFloatingLeaf(r).length===0)){let a=[...this.floatingOverlays.entries()].find(([,s])=>s===r)?.[0];a&&this.floatingOverlays.delete(a),r.dispose()}}this.layout.findGroupNode(n)&&this.layout.removeGroup(n),n.isInFloatingSplit=!1,n.dispose(),this.groups.delete(e)}getGroup(e){return this.groups.get(e)}getGroupIds(){return Array.from(this.groups.keys())}getMainGroup(){if(this.mainGroupId)return this.groups.get(this.mainGroupId)}setMainGroup(e){this.mainGroupId=e.id,this.layout.setMainGroup(e)}collapseMainGroup(){let e=this.getMainGroup();!e||this.mainGroupCollapsed||(this.layout.collapseLeaf(e),this.mainGroupCollapsed=!0)}expandMainGroup(){let e=this.getMainGroup();!e||!this.mainGroupCollapsed||(this.layout.expandLeaf(e),this.mainGroupCollapsed=!1)}isMainGroupCollapsed(){return this.mainGroupCollapsed}getDockedGroups(){return this.layout.allGroups()}collapseDockedGroup(e){this.layout.collapseLeaf(e)}expandDockedGroup(e){this.layout.expandLeaf(e)}maximizeDockedGroup(e){this.layout.maximizeLeaf(e)}restoreMaximizedDockedGroup(e){this.layout.restoreMaximizedLeaf(e)}restoreLayoutFlex(e){this.layout.restoreFlexFromSerialized(e)}rebuildDockedLayout(e){this.layout.rebuildFromSerialized(e,n=>this.groups.get(n))}rebuildFloatingInternalLayout(e,n){let o=this.floatingOverlays.get(e);if(!o)return;o.internalLayout||(o.internalLayout=new Lt(o.element),o.internalLayout.setMainGroup(o.group),this.onLayoutChangedCb&&(o.internalLayout.onSplitResized=this.onLayoutChangedCb)),o.internalLayout.rebuildFromSerialized(n,a=>this.groups.get(a));let r=o.internalLayout.allGroups(),i=r.length>1;for(let a of r)a.location="floating",a.isInFloatingSplit=i;o.updateTotalTabCount()}addFloatingGroup(e,n){let o=this.floatingOverlays.get(e.id);o&&this.floatingOverlays.delete(e.id);let r=o?null:this.findOverlayForGroup(e),i=new jn(e,n,this.container,this.portalLayer);if(this.onLayoutChangedCb&&(i.onBoundsChanged=this.onLayoutChangedCb),this.floatingOverlays.set(e.id,i),this.layout.findGroupNode(e)&&this.layout.removeGroup(e),o?.internalLayout){o.internalLayout.removeGroup(e);let a=this.cleanupOrphanedFloatingLeaf(o);a.length>0?(o.group=a[0],this.floatingOverlays.set(a[0].id,o)):o.dispose()}else o?o.dispose():r?.internalLayout&&(r.internalLayout.removeGroup(e),this.cleanupOrphanedFloatingLeaf(r));return e.isInFloatingSplit=!1,e.location="floating",i.updateTotalTabCount(),i}dockGroup(e,n,o){let r=this.groups.get(e);if(!r||e===this.mainGroupId)return;let i=this.mainGroupId?this.groups.get(this.mainGroupId):void 0;if(!i)return;let a=this.floatingOverlays.get(e),s=a?null:this.findOverlayForGroup(r);if(this.layout.splitGroup(i,r,n,o)){if(a)if(a.internalLayout){a.internalLayout.removeGroup(r),this.floatingOverlays.delete(e);let l=this.cleanupOrphanedFloatingLeaf(a);l.length>0?(a.group=l[0],this.floatingOverlays.set(l[0].id,a)):a.dispose()}else a.dispose(),this.floatingOverlays.delete(e);else s?.internalLayout&&(s.internalLayout.removeGroup(r),this.cleanupOrphanedFloatingLeaf(s));r.location="grid",r.isInFloatingSplit=!1}}getFloatingOverlay(e){return this.floatingOverlays.get(e)}dockOverlay(e){let n=this.floatingOverlays.get(e);if(!n)return;let o=this.mainGroupId?this.groups.get(this.mainGroupId):void 0;if(!o)return;if(!n.internalLayout){this.dockGroup(e,"right");return}let r=n.internalLayout.allGroups();if(r.length===0)return;let i=r[0];this.layout.splitGroup(o,i,"right"),i.location="grid",i.isInFloatingSplit=!1;for(let a=1;a<r.length;a++){let s=r[a];this.layout.splitGroup(i,s,"bottom"),s.location="grid",s.isInFloatingSplit=!1}n.internalLayout.dispose(),n.internalLayout=null,n.dispose(),this.floatingOverlays.delete(e)}findOverlayContaining(e){let n=this.groups.get(e);if(n)return this.findOverlayForGroup(n)??void 0}movePanel(e,n){let o=this.panels.get(e);if(!o)return;let r=o.group;if(!r||r.id===n)return;let i=this.groups.get(n);i&&(r.detachPanel(e),i.addPanel(o),r.size===0&&r.id!==this.mainGroupId&&this.removeGroup(r.id))}serializeLayout(){let e=[];for(let[o,r]of this.floatingOverlays){if(r.getAllGroups().reduce((l,c)=>l+c.size,0)===0)continue;let s={groupId:o,bounds:r.getBounds(),internalLayout:r.internalLayout?.toJSON()??null};r.isMaximized&&(s.isMaximized=!0),e.push(s)}let n={};for(let[o,r]of this.panels)r.group&&(n[o]=r.group.id);return{mainLayout:this.layout.toJSON(),floatingGroups:e,panelLocations:n}}getFloatingOverlays(){return this.floatingOverlays}cleanupEmptyGroups(){let e=!1;for(let n of[...this.layout.allGroups()])n.id!==this.mainGroupId&&n.size===0&&(this.removeGroup(n.id),e=!0);for(let[n,o]of[...this.floatingOverlays]){if(o.internalLayout)for(let i of[...o.internalLayout.allGroups()])i.size===0&&(this.removeGroup(i.id),e=!0);let r=this.floatingOverlays.get(n);r&&r.getAllGroups().reduce((s,l)=>s+l.size,0)===0&&(this.removeGroup(n),e=!0)}e&&this.layout.getRoot()&&(this.layout.getRoot().element.style.flex="1")}onDidRemovePanel(e){return this.onPanelRemovedCbs.push(e),{dispose:()=>{let n=this.onPanelRemovedCbs.indexOf(e);n!==-1&&this.onPanelRemovedCbs.splice(n,1)}}}dispose(){if(!this.disposed){this.disposed=!0,this.cancelTabDrag(),cancelAnimationFrame(this.portalRaf);for(let e of this.floatingOverlays.values())e.dispose();this.floatingOverlays.clear();for(let e of this.groups.values())e.dispose();this.groups.clear(),this.panels.clear(),this.onPanelRemovedCbs=[],this.dropOverlay.remove();for(let e of this.portals.values())e.entry.remove();this.portals.clear(),this.portalLayer.remove(),this.layout.dispose()}}wireGroupCallbacks(e){e.onTabClose(n=>{if(this._beforeTabClose){let o=this._beforeTabClose(n);o&&typeof o.then=="function"?o.then(r=>{r&&this.removePanel(n)}):o!==!1&&this.removePanel(n);return}this.removePanel(n)}),e.onTabPointerDown((n,o)=>{this.onTabPointerDown(n,e,o)}),e.onTabPopOut(n=>{this.detachPanelToFloating(n,window.innerWidth/2,window.innerHeight/2)})}onTabPointerDown(e,n,o){if(this.dragState)return;this.dragState={panelId:e,sourceGroup:n,startX:o.clientX,startY:o.clientY,isDragging:!1,ghost:null,iframes:null,currentZone:null};let r=s=>{if(!this.dragState)return;if(!this.dragState.isDragging){let c=s.clientX-this.dragState.startX,m=s.clientY-this.dragState.startY;if(c*c+m*m<25)return;this.dragState.isDragging=!0,this.dragState.iframes=Pn(),this.dragState.ghost=this.createDragGhost(e),this.container.appendChild(this.dragState.ghost)}this.dragState.ghost.style.left=`${s.clientX+8}px`,this.dragState.ghost.style.top=`${s.clientY+8}px`;let l=this.hitTestDropZone(s.clientX,s.clientY);l=this.applyDragConstraints(l,this.dragState.sourceGroup),this.updateDropOverlay(l)},i=s=>{if(document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),!this.dragState)return;if(!this.dragState.isDragging){n.activatePanel(e),this.dragState=null;return}this.dragState.ghost?.remove(),this.dragState.iframes?.release(),this.updateDropOverlay(null);let l=this.applyDragConstraints(this.hitTestDropZone(s.clientX,s.clientY),n);if(l)switch(l.kind){case"header":case"content-center":l.group.id===n.id?n.reorderPanel(e,s.clientX):this.movePanel(e,l.group.id);break;case"content-split":this.dockTabFromDrag(e,l.direction,l.group);break}this.cleanupEmptyGroups(),l&&this.onLayoutChangedCb?.(),this.dragState=null},a=()=>{document.removeEventListener("pointermove",r),document.removeEventListener("pointerup",i),document.removeEventListener("pointercancel",a),this.cancelTabDrag()};document.addEventListener("pointermove",r),document.addEventListener("pointerup",i),document.addEventListener("pointercancel",a)}cancelTabDrag(){this.dragState&&(this.dragState.ghost?.remove(),this.dragState.iframes?.release(),this.updateDropOverlay(null),this.dragState=null)}createDragGhost(e){let n=this.panels.get(e),o=document.createElement("div");return o.className="mb-drag-ghost",o.innerHTML=Qn,o.title=n?.title||e,o}hitTestDropZone(e,n,o){let r=[...this.floatingOverlays.entries()].filter(([,i])=>i.element.style.display!=="none").sort((i,a)=>{let s=parseInt(i[1].element.style.zIndex||"0");return parseInt(a[1].element.style.zIndex||"0")-s});for(let[,i]of r){let a=i.internalLayout?i.internalLayout.allGroups():[i.group];for(let s of a){if(s.id===o||s.locked==="no-drop-target")continue;if(!s.headerHidden){let c=s.headerElement.getBoundingClientRect();if(e>=c.left&&e<=c.right&&n>=c.top&&n<=c.bottom)return{kind:"header",group:s}}let l=s.contentElement.getBoundingClientRect();if(e>=l.left&&e<=l.right&&n>=l.top&&n<=l.bottom)return this.classifyContentZone(e,n,l,s)}}for(let i of this.groups.values()){if(this.floatingOverlays.has(i.id)||this.findOverlayForGroup(i)||i.id===o)continue;if(!i.headerHidden){let s=i.headerElement.getBoundingClientRect();if(e>=s.left&&e<=s.right&&n>=s.top&&n<=s.bottom&&i.locked!=="no-drop-target")return{kind:"header",group:i}}let a=i.contentElement.getBoundingClientRect();if(e>=a.left&&e<=a.right&&n>=a.top&&n<=a.bottom)return this.classifyContentZone(e,n,a,i)}return null}classifyContentZone(e,n,o,r){if(r.locked==="no-drop-target"){let f=n-o.top,p=o.bottom-n,I=e-o.left,Z=o.right-e,v;return f<=p&&f<=I&&f<=Z?v="top":p<=f&&p<=I&&p<=Z?v="bottom":I<=Z?v="left":v="right",{kind:"content-split",group:r,direction:v}}let a=this.splitEdgeSize,s=n-o.top,l=o.bottom-n,c=e-o.left,m=o.right-e;if(Math.min(s,l,c,m)<a){let f;return s<=l&&s<=c&&s<=m?f="top":l<=s&&l<=c&&l<=m?f="bottom":c<=m?f="left":f="right",{kind:"content-split",group:r,direction:f}}return{kind:"content-center",group:r}}applyDragConstraints(e,n){if(!e)return null;if(!("group"in e))return e;let o=this.findOverlayForGroup(e.group)!==null,r=!!e.group.locked;return(e.kind==="content-center"||e.kind==="header")&&r||n.dockingBlocked&&!o?null:e.kind==="content-split"&&o&&n.dialogDockingBlocked?{kind:"content-center",group:e.group}:e}updateDropOverlay(e){let n=this.dragState?.currentZone??null;if(n&&n.kind==="header"&&n.group.headerElement.classList.remove("mb-group-header--drop-target"),this.dropOverlay.style.display="none",e===null){this.dragState&&(this.dragState.currentZone=null);return}switch(e.kind){case"header":e.group.headerElement.classList.add("mb-group-header--drop-target");break;case"content-center":{let o=e.group.contentElement.getBoundingClientRect();this.positionDropOverlay(o.left,o.top,o.width,o.height),this.dropOverlay.dataset.zone="center";break}case"content-split":this.showSplitIndicator(e.group,e.direction);break}this.dragState&&(this.dragState.currentZone=e)}showSplitIndicator(e,n){let o=e.contentElement.getBoundingClientRect();switch(n){case"top":this.positionDropOverlay(o.left,o.top,o.width,o.height/2);break;case"bottom":this.positionDropOverlay(o.left,o.top+o.height/2,o.width,o.height/2);break;case"left":this.positionDropOverlay(o.left,o.top,o.width/2,o.height);break;case"right":this.positionDropOverlay(o.left+o.width/2,o.top,o.width/2,o.height);break}this.dropOverlay.dataset.zone=n}positionDropOverlay(e,n,o,r){let i=this.dropOverlay;i.style.display="block",i.style.left=`${e}px`,i.style.top=`${n}px`,i.style.width=`${o}px`,i.style.height=`${r}px`}detachPanelToFloating(e,n,o){let r=this.panels.get(e);if(!r||!r.group||r.group.id===this.mainGroupId)return;let i=Math.min(600,window.innerWidth*.8),a=Math.min(450,window.innerHeight*.7),s=this.addGroup({floating:{x:(window.innerWidth-i)/2,y:(window.innerHeight-a)/2,width:i,height:a}});this.movePanel(e,s.id),this.onGroupCreatedByDragCb?.(s)}dockTabFromDrag(e,n,o){let r=this.getLayoutForGroup(o);if(!r)return;let i=new On;if(this.groups.set(i.id,i),this.wireGroupCallbacks(i),!r.splitGroup(o,i,n)){this.groups.delete(i.id),i.dispose(),this.movePanel(e,o.id);return}let s=this.findOverlayForGroup(o);s?.internalLayout&&(s.setDragGroup(i),i.location="floating",this.updateFloatingSplitState(s)),this.movePanel(e,i.id),s&&s.updateTotalTabCount(),this.onGroupCreatedByDragCb?.(i)}getLayoutForGroup(e){if(this.layout.findGroupNode(e))return this.layout;let n=this.findOverlayForGroup(e);return n?(n.internalLayout||(n.internalLayout=new Lt(n.element),n.internalLayout.setMainGroup(n.group)),n.internalLayout):null}escapeGroupFromSplit(e){let n=this.groups.get(e);if(!n||!n.isInFloatingSplit)return;let o=this.findOverlayForGroup(n);if(!o?.internalLayout)return;let r=o.element.getBoundingClientRect(),i=this.floatingOverlays.get(e)===o,a=new jn(n,{x:Math.min(r.left+30,window.innerWidth-320),y:Math.min(r.top+30,window.innerHeight-220),width:Math.max(300,r.width*.6),height:Math.max(200,r.height*.8)},this.container,this.portalLayer);this.floatingOverlays.set(e,a),o.internalLayout.removeGroup(n);let s=this.cleanupOrphanedFloatingLeaf(o);i&&s.length>0?(o.group=s[0],this.floatingOverlays.set(s[0].id,o)):s.length===0&&o.dispose(),n.isInFloatingSplit=!1,n.location==="floating"?n.fireLocationChanged():n.location="floating"}updateFloatingSplitState(e){if(!e.internalLayout)return;let n=e.internalLayout.allGroups(),o=n.length>1;for(let r of n)r.location="floating",r.isInFloatingSplit=o;e.repositionToolbar()}cleanupOrphanedFloatingLeaf(e){if(!e.internalLayout)return[];let n=e.internalLayout.allGroups();return n.length<=1?(n.length===1&&(e.element.appendChild(n[0].element),n[0].isInFloatingSplit=!1),e.internalLayout.dispose(),e.internalLayout=null,n.length===1&&(e.setDragGroup(n[0]),n[0].location="floating",e.repositionToolbar())):this.updateFloatingSplitState(e),e.updateTotalTabCount(),n}minimizeDocked(e){let n=this.layout.getGroupPosition(e);return this.layout.findGroupNode(e)&&this.layout.removeGroup(e),n?{siblingGroupId:n.siblingGroup.id,direction:n.direction}:null}restoreDocked(e,n,o,r){if(r){let a=this.groups.get(r);if(a&&this.layout.findGroupNode(a)&&this.layout.splitGroup(a,e,n,o))return}let i=this.mainGroupId?this.groups.get(this.mainGroupId):void 0;i&&this.layout.splitGroup(i,e,n,o)}findOverlayForGroup(e){let n=this.floatingOverlays.get(e.id);if(n)return n;for(let o of this.floatingOverlays.values())if(o.internalLayout?.findGroupNode(e))return o;return null}registerPortal(e,n,o){let r=document.createElement("div");r.className="mb-iframe-portal",r.dataset.portalId=e,this.portalLayer.appendChild(r),r.appendChild(n),this.portals.set(e,{entry:r,anchor:o})}unregisterPortal(e){let n=this.portals.get(e);n&&(n.entry.remove(),this.portals.delete(e))}syncPortals(){if(this.disposed)return;let e=[];for(let[,n]of this.portals){let{entry:o,anchor:r}=n;if(r.offsetParent===null)e.push({entry:o,rect:null,zIndex:"0"});else{let i=r.closest(".mb-floating-overlay"),a=i?.style.zIndex;e.push({entry:o,rect:r.getBoundingClientRect(),zIndex:String(i?parseInt(a||String(1e5+this.zBase),10)+1:50+this.zBase)})}}for(let{entry:n,rect:o,zIndex:r}of e)o?(n.style.display="",n.style.left=`${o.left}px`,n.style.top=`${o.top}px`,n.style.width=`${o.width}px`,n.style.height=`${o.height}px`,n.style.zIndex=r):n.style.display="none";this.portalRaf=requestAnimationFrame(()=>this.syncPortals())}};function _c(t){let e=/^#([0-9a-f]{3,8})$/i.exec(t.trim());if(!e)return null;let n=e[1];return n.length===3?[parseInt(n[0]+n[0],16),parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16)]:n.length===6||n.length===8?[parseInt(n.slice(0,2),16),parseInt(n.slice(2,4),16),parseInt(n.slice(4,6),16)]:null}function Ht(t,e){let n=_c(t);return n?`rgba(${n[0]}, ${n[1]}, ${n[2]}, ${e})`:t}function Tt(t){let e={};if(t.primary){let n=t.primary;e["--mb-adapt-separator-active"]=Ht(n,.4),e["--mb-adapt-drop-border"]=n,e["--mb-adapt-drop-header-bg"]=Ht(n,.15),e["--mb-adapt-drop-center-bg"]=Ht(n,.1),e["--mb-adapt-drop-split-bg"]=Ht(n,.12),e["--mb-adapt-status-icon-bg"]=Ht(n,.08),e["--mb-adapt-cap-spinner-color"]=n}if(t.background&&(e["--mb-adapt-bg"]=t.background,e["--mb-adapt-fork-tab-active-bg"]=t.background,e["--mb-adapt-status-card-bg"]=t.background),t.surface&&(e["--mb-adapt-fork-bg"]=t.surface,e["--mb-adapt-fork-tab-bg"]=t.surface),t.text&&(e["--mb-adapt-fork-tab-color"]=t.text,e["--mb-adapt-status-text"]=t.text,e["--mb-adapt-cap-color"]=t.text),t.textSecondary&&(e["--mb-adapt-fork-tab-inactive-color"]=t.textSecondary),t.border&&(e["--mb-adapt-fork-separator"]=t.border,e["--mb-adapt-status-card-border"]=t.border,e["--mb-adapt-cap-border-color"]=t.border),t.font&&(e["--mb-adapt-font"]=t.font,e["--mb-adapt-cap-font"]=t.font),t.vars)for(let[n,o]of Object.entries(t.vars))e[`--mb-adapt-${n}`]=o;return e}var Qc=["automation-id","session-token","auth-token","transmitter","challenge-token","requires-challenge","inherit-token","fork-display-mode","side-by-side-split","dark-mode","auto-resizing","allow-floating","allow-docking","allow-dialog-docking","allow-minimize","allow-maximize","floating-auto-resize","confirm-on-close","persist","debug"],Pc=typeof HTMLElement<"u"?HTMLElement:class{},st=class extends Pc{constructor(){super();this._client=null}static get observedAttributes(){return Qc}get theme(){return this._theme}set theme(n){this._theme=n,this._client?.setTheme(n)}get automationId(){return this.getAttribute("automation-id")}set automationId(n){n===null?this.removeAttribute("automation-id"):this.setAttribute("automation-id",n)}get darkMode(){return this.hasAttribute("dark-mode")}set darkMode(n){n?this.setAttribute("dark-mode",""):this.removeAttribute("dark-mode")}get autoResizing(){return this.hasAttribute("auto-resizing")}set autoResizing(n){n?this.setAttribute("auto-resizing",""):this.removeAttribute("auto-resizing")}get allowFloating(){return!this.hasAttribute("allow-floating")||this.getAttribute("allow-floating")!=="false"}set allowFloating(n){n?this.removeAttribute("allow-floating"):this.setAttribute("allow-floating","false")}get allowDocking(){return!this.hasAttribute("allow-docking")||this.getAttribute("allow-docking")!=="false"}set allowDocking(n){n?this.removeAttribute("allow-docking"):this.setAttribute("allow-docking","false")}get allowDialogDocking(){return!this.hasAttribute("allow-dialog-docking")||this.getAttribute("allow-dialog-docking")!=="false"}set allowDialogDocking(n){n?this.removeAttribute("allow-dialog-docking"):this.setAttribute("allow-dialog-docking","false")}get allowMinimize(){return!this.hasAttribute("allow-minimize")||this.getAttribute("allow-minimize")!=="false"}set allowMinimize(n){n?this.removeAttribute("allow-minimize"):this.setAttribute("allow-minimize","false")}get allowMaximize(){return!this.hasAttribute("allow-maximize")||this.getAttribute("allow-maximize")!=="false"}set allowMaximize(n){n?this.removeAttribute("allow-maximize"):this.setAttribute("allow-maximize","false")}get floatingAutoResize(){return this.hasAttribute("floating-auto-resize")}set floatingAutoResize(n){n?this.setAttribute("floating-auto-resize",""):this.removeAttribute("floating-auto-resize")}get confirmOnClose(){return this.hasAttribute("confirm-on-close")}set confirmOnClose(n){n?this.setAttribute("confirm-on-close",""):this.removeAttribute("confirm-on-close")}get forkDisplayMode(){return this.getAttribute("fork-display-mode")==="dialog"?"dialog":"side-by-side"}set forkDisplayMode(n){this.setAttribute("fork-display-mode",n)}get persist(){return this.hasAttribute("persist")}set persist(n){n?this.setAttribute("persist",""):this.removeAttribute("persist")}get debug(){return this.hasAttribute("debug")}set debug(n){n?this.setAttribute("debug",""):this.removeAttribute("debug")}async newSession(){this._client&&await this._client.newSession()}initialize(){this._tryInit()}connectedCallback(){requestAnimationFrame(()=>this._tryInit())}disconnectedCallback(){this._destroyClient()}attributeChangedCallback(n,o,r){if(o!==r){if(n==="automation-id"||n==="persist"||n==="debug"){this._destroyClient(),requestAnimationFrame(()=>this._tryInit());return}if(this._client)switch(n){case"fork-display-mode":this._client.setForkDisplayMode(this.forkDisplayMode);break;case"dark-mode":this._client.setDarkMode(this.darkMode);break;case"auto-resizing":this._client.setAutoResizing(this.autoResizing);break;case"allow-floating":this._client.setAllowFloating(this.allowFloating);break;case"allow-docking":this._client.setAllowDocking(this.allowDocking);break;case"allow-dialog-docking":this._client.setAllowDialogDocking(this.allowDialogDocking);break;case"allow-minimize":this._client.setAllowMinimize(this.allowMinimize);break;case"allow-maximize":this._client.setAllowMaximize(this.allowMaximize);break;case"floating-auto-resize":this._client.setFloatingAutoResize(this.floatingAutoResize);break;case"confirm-on-close":this._client.setConfirmOnClose(this.confirmOnClose);break}}}_tryInit(){if(this._client||!this.isConnected)return;let n=this.automationId;if(!n){console.error(`[adapt] <adapt-automation> is missing the required "automation-id" attribute. The element will not initialize. Set it via HTML: <adapt-automation automation-id="..."> or via the Astro/React/Vue component's automationId prop.`);return}let o=this.getAttribute("session-token"),r=this.getAttribute("auth-token"),i=this.getAttribute("transmitter"),a=this.getAttribute("challenge-token"),s=this.hasAttribute("requires-challenge"),l=this.getAttribute("inherit-token"),c=this.getAttribute("side-by-side-split"),m;this.forkDisplayMode==="dialog"?m={mode:"dialog"}:m={mode:"side-by-side",...c!==null&&{split:Number(c)}};let g={container:this,automationId:n,forkDisplay:m,darkMode:this.darkMode,autoResizing:this.autoResizing,onSession:(H,ue)=>{this.onSessionCallback?.(H,ue),this.dispatchEvent(new CustomEvent("adapt-session",{detail:{status:H,fork:ue},bubbles:!0}))},onOutput:H=>{this.onOutputCallback?.(H),this.dispatchEvent(new CustomEvent("adapt-output",{detail:{output:H},bubbles:!0}))},onForkActive:H=>{this.onForkActiveCallback?.(H),this.dispatchEvent(new CustomEvent("adapt-fork-active",{detail:{active:H},bubbles:!0}))},onError:H=>{this.onErrorCallback?.(H),this.dispatchEvent(new CustomEvent("adapt-error",{detail:{error:H},bubbles:!0}))}};this.allowFloating||(g.allowFloating=!1),this.allowDocking||(g.allowDocking=!1),this.allowDialogDocking||(g.allowDialogDocking=!1),this.allowMinimize||(g.allowMinimize=!1),this.allowMaximize||(g.allowMaximize=!1),this.floatingAutoResize&&(g.floatingAutoResize=!0),this.confirmOnClose&&(g.confirmOnClose=!0),this.debug&&(g.debug=!0),o&&(g.sessionToken=o),r&&(g.authToken=r),i&&(g.transmitter=i),a&&(g.challengeToken=a),s&&(g.requiresChallenge=!0),l&&(g.inheritToken=l);let f=this.signals??this._parseData("adaptSignals"),p=this.capWidgetOptions??this._parseData("adaptCapWidgetOptions"),I=this.inheritFrom??this._parseData("adaptInheritFrom"),Z=this.classNames??this._parseData("adaptClassNames"),v=this.text??this._parseData("adaptText"),J=this._theme??this._parseData("adaptTheme"),de=this.persistOptions??this._parseData("adaptPersistOptions");f!==void 0&&(g.signals=f),p!==void 0&&(g.capWidgetOptions=p),I!==void 0&&(g.inheritFrom=I),Z!==void 0&&(g.classNames=Z),this.styles!==void 0&&(g.styles=this.styles),v!==void 0&&(g.text=v),J!==void 0&&(g.theme=J),de!==void 0?g.persist=de:this.persist&&(g.persist=!0),this._client=new lt(g)}_parseData(n){let o=this.dataset[n];if(o)try{return JSON.parse(o)}catch{return}}_destroyClient(){this._client&&(this._client.destroy(),this._client=null)}};if(typeof customElements<"u"&&!customElements.get("adapt-automation")){customElements.define("adapt-automation",st);let t="adapt-element-display";if(!document.getElementById(t)){let e=document.createElement("style");e.id=t,e.textContent="adapt-automation, adapt-cap { display: block; }",document.head.appendChild(e)}}function ts(t,e="both",n){let o=`mb_adapt_${n??t}`;(e==="session"||e==="both")&&sessionStorage.removeItem(o),(e==="local"||e==="both")&&localStorage.removeItem(o)}var Q="main",F="fork-group",qa=768,es=40,Ut=class Ut{constructor(e){this.rootElement=null;this.panelManager=null;this.mainUrl=null;this.sessionToken=null;this.forks=new Map;this.mainRetentionPolicy="retain";this.mainCloseTimer=null;this.components=new Map;this.floatingAutoResized=new Set;this.beforeUnloadHandler=null;this.resizeObserver=null;this._autoMaximizedByResize=!1;this.destroyed=!1;this.sessionTerminated=!1;this.removingPanelProgrammatically=!1;this.restoringSession=!1;this.lastForkActive=null;this.messageHandler=null;this.minimizedTabsContainer=null;this.lastReportedContentHeight=0;this.forkPanelHeights=new Map;this.statusMessageElement=null;this.capWidgetInstance=null;this.minimizeManager=null;this.forkGroupActions=new Map;this.floatingToolbars=new Map;if(!e.automationId)throw new Error('[adapt] AdaptWebClient requires "automationId". Pass it in the options: new WebClient({ automationId: "...", ... })');this.options=e,this.debug=e.debug??!1;let n=e.forkDisplay??{mode:"side-by-side"};this.forkDisplay=n,this.darkMode=e.darkMode??!1,this.autoResizing=e.autoResizing??!1,this.allowFloating=e.allowFloating??!0,this.allowDocking=e.allowDocking??!0,this.allowDialogDocking=e.allowDialogDocking??!0,this.allowMinimize=e.allowMinimize??!0,this.allowMaximize=e.allowMaximize??!0,this.floatingAutoResize=e.floatingAutoResize??!1,this.confirmOnClose=e.confirmOnClose??!1,this.theme=e.theme;let o=typeof e.container=="string"?document.getElementById(e.container):e.container;if(!o)throw new Error(`Container with id '${e.container}' not found`);this.container=o;let r=Dn({id:e.automationId});this.client=Ua(r,e.automationId,{debug:this.debug}),this.log("info",`init automationId=${e.automationId} forkDisplay=${n.mode}`),ja(),this.createRootElement(),this.createPanelManager(),this.wireBeforeTabClose(),this.setupMessageListener(),this.init().catch(i=>{this.showErrorStatus(i)})}static registerCapWidget(e){Ut._capWidgetClass=e}get responsiveBreakpoint(){if(!this.rootElement)return qa;let e=getComputedStyle(this.rootElement).getPropertyValue("--mb-adapt-responsive-breakpoint").trim(),n=Number(e);return n>0?n:qa}get responsiveHysteresis(){if(!this.rootElement)return es;let e=getComputedStyle(this.rootElement).getPropertyValue("--mb-adapt-responsive-hysteresis").trim(),n=Number(e);return n>=0?n:es}log(e,n,o){if(!this.debug&&e==="info")return;(e==="error"?console.error:e==="warn"?console.warn:console.log)(`[Adapt] ${n}`,o!==void 0?o:"")}onComponentCreated(e,n){this.components.set(e,n)}onComponentDisposed(e){this.components.delete(e)}getDarkMode(){return this.darkMode}getClassNames(){return this.options.classNames}createPanelManager(){if(!this.rootElement)return;this.minimizeManager=new Je,this.minimizeManager.setAllowDocking(this.allowDocking),this.minimizedTabsContainer=document.createElement("div"),this.minimizedTabsContainer.className="mb-adapt-minimized-tabs",this.rootElement.appendChild(this.minimizedTabsContainer),this.panelManager=new Fe({container:this.rootElement,onGroupCreatedByDrag:o=>{o.dragConstraint="merge-only",this.allowDocking||(o.dockingBlocked=!0),this.allowDialogDocking||(o.dialogDockingBlocked=!0),this.setupForkGroupActions(o),this.saveState()},onLayoutChanged:()=>{this.saveState()}});let e=this.panelManager.addGroup({id:"main-group"});this.panelManager.setMainGroup(e),e.locked="no-drop-target",e.setHeaderHidden(!0),e.element.setAttribute("data-main-group","true");let n=new Ie(this);n.init(Q,{}),this.panelManager.addPanel({id:Q,element:n.element,groupId:e.id}),this.minimizeManager.init(this.minimizedTabsContainer,this.panelManager),this.minimizeManager.onBarVisibilityChanged(()=>{this.reapplyAutoResizeHeight()}),this.resizeObserver=new ResizeObserver(o=>{let r=o[0]?.contentRect;r&&this.onContainerResize(r.width,r.height)}),this.resizeObserver.observe(this.rootElement)}getOrigin(e){try{return new URL(e).origin}catch{return null}}isValidMessageOrigin(e){if(this.mainUrl){let n=this.getOrigin(this.mainUrl);if(n&&e===n)return!0}for(let n of this.forks.values()){let o=this.getOrigin(n.url);if(o&&e===o)return!0}return!1}findComponentBySource(e){for(let[n,o]of this.components)if(o.contentWindow===e)return{panelId:n,component:o};return null}setupMessageListener(){this.messageHandler=e=>{if(!this.isValidMessageOrigin(e.origin))return;let n=e.data;if(!n||typeof n!="object")return;let o=e.source,r=this.findComponentBySource(o);if(!r)return;let{panelId:i,component:a}=r,s=i===Q;if(n.type==="adapt-init"&&typeof n.resize=="boolean"){a.resizeCapable=n.resize,s&&!n.resize&&this.rootElement&&(this.rootElement.style.height="");let l=a.getOrigin();if(l){let c;if(s)c=this.autoResizing&&n.resize;else{let g=this.panelManager?.getPanel(i)?.group,f=g?!!this.panelManager?.findOverlayContaining(g.id):!1;c=n.resize&&(f&&this.floatingAutoResize||!f&&this.autoResizing)}a.postMessage({type:"adapt-autoResizing",autoResizing:c},l),a.postMessage({type:"adapt-darkMode",darkMode:this.darkMode},l)}return}if(n.type==="adapt-resize"){let{height:l}=n;if(typeof l!="number"||!Number.isFinite(l)||l<1)return;if(s)this.lastReportedContentHeight=l,a.resizeCapable&&this.autoResizing&&this.rootElement&&this.applyBestAutoResizeHeight();else{this.forkPanelHeights.set(i,l);let m=this.panelManager?.getPanel(i)?.group;if(m&&m.activePanel?.id===i){let g=!!this.panelManager?.findOverlayContaining(m.id);!g&&a.resizeCapable&&this.autoResizing&&this.rootElement&&this.applyBestAutoResizeHeight(),g&&this.floatingAutoResize&&(this.floatingAutoResized.has(m.id)||(this.floatingAutoResized.add(m.id),this.resizeOverlayForGroup(m)))}}return}},window.addEventListener("message",this.messageHandler)}postToComponent(e,n){let o=e.getOrigin();o&&e.postMessage(n,o)}setDarkMode(e){if(this.darkMode===e)return;this.darkMode=e,this.rootElement?.classList.toggle("mb-adapt--dark",e),this.capWidgetInstance?.setDarkMode(e),this.applyTheme();let n={type:"adapt-darkMode",darkMode:e};for(let o of this.components.values())this.postToComponent(o,n)}setTheme(e){if(this.theme=e,this.clearThemeVars(),e?.mode!==void 0){let n=e.mode==="dark";if(this.darkMode!==n){this.setDarkMode(n);return}}this.applyTheme()}clearThemeVars(){if(!(!this.rootElement||!this._appliedThemeVars)){for(let e of this._appliedThemeVars)this.rootElement.style.removeProperty(e);this._appliedThemeVars=void 0}}applyTheme(){if(!this.rootElement||!this.theme)return;let e=Tt(this.theme);for(let[n,o]of Object.entries(e))this.rootElement.style.setProperty(n,o);this._appliedThemeVars=Object.keys(e)}setAutoResizing(e){if(this.autoResizing===e)return;this.autoResizing=e;let n=this.components.get(Q);n?.resizeCapable&&this.postToComponent(n,{type:"adapt-autoResizing",autoResizing:e});for(let[o,r]of this.components){if(o===Q||!r.resizeCapable)continue;let a=this.panelManager?.getPanel(o)?.group;a&&this.panelManager?.findOverlayContaining(a.id)||this.postToComponent(r,{type:"adapt-autoResizing",autoResizing:e})}!e&&this.rootElement&&(this.rootElement.style.height="")}setAllowFloating(e){if(this.allowFloating!==e){this.allowFloating=e;for(let n of this.forkGroupActions.values())n.setAllowFloating(e)}}setAllowDocking(e){if(this.allowDocking!==e){if(this.allowDocking=e,this.minimizeManager?.setAllowDocking(e),this.panelManager)for(let n of this.getAllForkGroups())n.dockingBlocked=!e;for(let n of this.floatingToolbars.values())n.setAllowDocking(e)}}setAllowDialogDocking(e){if(this.allowDialogDocking!==e&&(this.allowDialogDocking=e,this.panelManager))for(let n of this.getAllForkGroups())n.dialogDockingBlocked=!e}setAllowMinimize(e){if(this.allowMinimize!==e){this.allowMinimize=e;for(let n of this.forkGroupActions.values())n.setAllowMinimize(e);for(let n of this.floatingToolbars.values())n.setAllowMinimize(e)}}setAllowMaximize(e){if(this.allowMaximize!==e){this.allowMaximize=e;for(let n of this.forkGroupActions.values())n.setAllowMaximize(e);for(let n of this.floatingToolbars.values())n.setAllowMaximize(e)}}setFloatingAutoResize(e){if(this.floatingAutoResize!==e){this.floatingAutoResize=e,this.floatingAutoResized.clear();for(let[n,o]of this.components){if(n===Q||!o.resizeCapable)continue;let i=this.panelManager?.getPanel(n)?.group,s=(i?!!this.panelManager?.findOverlayContaining(i.id):!1)?e&&o.resizeCapable:this.autoResizing&&o.resizeCapable;this.postToComponent(o,{type:"adapt-autoResizing",autoResizing:s})}}}getAllForkGroups(){if(!this.panelManager)return[];let e=new Set,n=[],o=i=>{i.id==="main-group"||e.has(i.id)||(e.add(i.id),n.push(i))},r=this.panelManager.getGroup(F);r&&o(r);for(let i of this.panelManager.getDockedGroups())o(i);for(let[,i]of this.panelManager.getFloatingOverlays())for(let a of i.getAllGroups())o(a);return n}applyAutoResizeHeight(e){if(!this.rootElement)return;let n=this.minimizedTabsContainer?.offsetHeight??0;this.rootElement.style.height=`${Math.ceil(e)+n}px`}applyBestAutoResizeHeight(){if(!this.autoResizing||!this.rootElement)return;let e=0;if(this.components.get(Q)?.resizeCapable&&this.lastReportedContentHeight>0){let o=this.panelManager?.getMainGroup();if(o?o.element.offsetHeight>0:!0){let i=o?.headerElement?.offsetHeight??0;e=this.lastReportedContentHeight+i}}for(let o of this.getAllForkGroups()){if(this.panelManager?.findOverlayContaining(o.id)||o.element.offsetHeight<=0)continue;let r=o.activePanel;if(r){let i=this.forkPanelHeights.get(r.id)??0,a=o.headerElement?.offsetHeight??0,s=i+a;s>e&&(e=s)}}e>0&&this.applyAutoResizeHeight(e)}reapplyAutoResizeHeight(){this.applyBestAutoResizeHeight()}setForkDisplayMode(e){this.forkDisplay.mode!==e&&(this.log("info",`setForkDisplayMode ${this.forkDisplay.mode} \u2192 ${e}`),e==="side-by-side"?this.forkDisplay={mode:"side-by-side"}:this.forkDisplay={mode:"dialog"},this.forks.size>0&&this.panelManager&&this.rebuildForkGroup(),this.emitForkActive(),this.saveState())}createRootElement(){this.rootElement=document.createElement("div"),this.rootElement.className=this.options.classNames?.root||"mb-adapt",this.darkMode&&this.rootElement.classList.add("mb-adapt--dark"),this.options.styles&&Object.assign(this.rootElement.style,this.options.styles),this.applyTheme(),this.container.appendChild(this.rootElement)}onUrl(e){if(this.destroyed)return;let n=e.fork||"";if(this.log("info",`onUrl fork=${n||"(main)"} stopped=${!!e.stopped} done=${!!e.done} url=${e.url?e.url.slice(0,60)+"...":"(none)"}`),e.stopped){this.handleStoppedMessage(n),this.saveState();return}if(e.done){this.handleDoneMessage(n,e.retentionPolicy),this.saveState();return}e.url&&(n?this.handleForkUrl(e.url,e.token,n,e.source,e.retentionPolicy):this.handleMainUrl(e.url,e.token,e.source,e.retentionPolicy),this.saveState())}handleMainUrl(e,n,o,r){this.log("info",`handleMainUrl url=${e.slice(0,60)}...`),this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null);let i=!this.mainUrl;if(this.removeStatusMessage(),this.mainUrl=e,this.mainToken=n,this.mainRetentionPolicy=this.resolveRetention(r),this.panelManager?.isMainGroupCollapsed()&&this.panelManager.expandMainGroup(),i){let s=this.getMaximizedDockedGroupId();if(s){let l=this.forkGroupActions.get(s);l&&l.clearMaximized()}}let a=this.components.get(Q);a&&(a.update({url:e,token:n}),a.show())}handleForkUrl(e,n,o,r,i){if(!this.panelManager)return;let a=this.resolveRetention(i),s=this.forks.get(o);if(s){this.log("info",`handleForkUrl fork=${o} update existing panel=${s.panelId}`),s.closeTimer&&(clearTimeout(s.closeTimer),s.closeTimer=null),s.url=e,s.token=n,s.source=r,s.retentionPolicy=a,s.completed=!1,s.recyclable=!1;let g=this.components.get(s.panelId);g&&g.update({url:e,token:n});return}let l=this.findRecyclablePanel(r);if(l){this.log("info",`handleForkUrl fork=${o} recycling panel from fork=${l.forkKey}`);let{forkKey:g,state:f}=l;f.closeTimer&&(clearTimeout(f.closeTimer),f.closeTimer=null),this.forks.delete(g),f.url=e,f.token=n,f.fork=o,f.source=r,f.retentionPolicy=a,f.completed=!1,f.recyclable=!1,this.forks.set(o,f);let p=this.components.get(f.panelId);p&&p.update({url:e,token:n});return}this.log("info",`handleForkUrl fork=${o} creating new panel`);let c=`fork-${o}`;this.ensureForkGroup(),!this.mainUrl&&this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup();let m=new Ie(this);m.init(c,{url:e,token:n}),this.panelManager.addPanel({id:c,element:m.element,groupId:F}),this.forks.set(o,{panelId:c,url:e,token:n,fork:o,source:r,completed:!1,recyclable:!1,retentionPolicy:a,closeTimer:null}),this.emitForkActive()}ensureForkGroup(){if(!this.panelManager||this.panelManager.getGroup(F))return;this.log("info",`ensureForkGroup mode=${this.forkDisplay.mode}`);let n=this.rootElement?.offsetWidth??800,o=this.rootElement?.offsetHeight??600;if(this.forkDisplay.mode==="dialog"){let r=n<this.responsiveBreakpoint,i=window.innerWidth,a=window.innerHeight,s=r?Math.min(n*.95,Math.max(200,i-20)):Math.min(720,n*.9),l=r?Math.min(o*.9,Math.max(200,a-20)):Math.min(o*.8,600),c=this.panelManager.addGroup({id:F,floating:{width:s,height:l,x:Math.max(0,(i-s)/2),y:Math.max(0,(a-l)/2)}});c.dragConstraint="merge-only",this.allowDocking||(c.dockingBlocked=!0),this.allowDialogDocking||(c.dialogDockingBlocked=!0),this.setupForkGroupActions(c),r&&(this.panelManager.getFloatingOverlay(F)?.maximize(),this._autoMaximizedByResize=!0)}else{let r=this.forkDisplay.mode==="side-by-side"?this.forkDisplay.split:void 0,i=r!==void 0?n*(1-r/100):void 0,a=this.panelManager.addGroup({id:F,direction:"right",initialSize:i});if(a.dragConstraint="merge-only",this.allowDocking||(a.dockingBlocked=!0),this.allowDialogDocking||(a.dialogDockingBlocked=!0),this.setupForkGroupActions(a),n<this.responsiveBreakpoint){let s=this.forkGroupActions.get(a.id);s?(s.setMaximized(),s.setAutoMaximizedByResize(!0)):this.panelManager.maximizeDockedGroup(a),this._autoMaximizedByResize=!0}}}setupForkGroupActions(e){if(!this.panelManager||!this.minimizeManager)return;let n=new Me(e,this.minimizeManager,this.panelManager,()=>{if(this.setupFloatingToolbar(e),e.location==="grid"&&!this.mainUrl&&this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup(),e.location==="floating"&&this.floatingAutoResized.delete(e.id),this.updateAutoResizeForGroup(e),e.location==="grid"){let o=this.rootElement?.offsetWidth??0;if(o>0&&o<this.responsiveBreakpoint){let r=this.forkGroupActions.get(e.id);r&&!r.isMaximized&&(r.setMaximized(),this._autoMaximizedByResize=!0,r.setAutoMaximizedByResize(!0))}}this.saveState()},{allowFloating:this.allowFloating,allowMinimize:this.allowMinimize,allowMaximize:this.allowMaximize});n.setBeforeClose(()=>this.confirmCloseGroup(e)),n.onMaximizeChanged(o=>{o||(this._autoMaximizedByResize=!1,n.setAutoMaximizedByResize(!1)),this.saveState()}),e.setHeaderActions(n.element),this.forkGroupActions.set(e.id,n),e.onActivePanelChanged(()=>{this.autoResizing&&this.rootElement&&this.applyBestAutoResizeHeight()}),this.setupFloatingToolbar(e)}updateAutoResizeForGroup(e){let n=this.panelManager?!!this.panelManager.findOverlayContaining(e.id):!1;for(let o of e.panels){let r=this.components.get(o.id);if(!r?.resizeCapable)continue;let i=n?this.floatingAutoResize:this.autoResizing;this.postToComponent(r,{type:"adapt-autoResizing",autoResizing:i})}}setupFloatingToolbar(e){if(!this.panelManager||!this.minimizeManager)return;let n=this.panelManager.findOverlayContaining(e.id);if(n)if(e.onPanelCountChanged(()=>n.updateTotalTabCount()),n.hasToolbar)n.repositionToolbar();else{let o=new ke(n,this.panelManager,this.minimizeManager,{allowDocking:this.allowDocking,allowMinimize:this.allowMinimize,allowMaximize:this.allowMaximize});o.setBeforeClose(()=>this.confirmCloseGroup(n.group)),n.setToolbar(o.element),this.floatingToolbars.set(n.group.id,o),n.updateTotalTabCount()}}resolveRetention(e){return e?e.case:"retain"}findRecyclablePanel(e){let n=null;for(let[o,r]of this.forks)if(r.recyclable){if(e&&r.source===e)return{forkKey:o,state:r};n||(n={forkKey:o,state:r})}return n}handleMainDone(e){switch(e?this.resolveRetention(e):this.mainRetentionPolicy){case"close":this.scheduleMainClose(e?.case==="close"?e.timeoutSeconds:void 0);break;case"recycle":break;default:break}}scheduleForkClose(e,n,o){let r=()=>{n.closeTimer=null,this.removingPanelProgrammatically=!0;try{if(this.panelManager){let i=this.components.get(n.panelId);i&&i.dispose(),this.panelManager.removePanel(n.panelId)}this.forks.delete(e),this.removeForkGroupIfEmpty()}finally{this.removingPanelProgrammatically=!1}this.emitForkActive(),this.saveState()};o&&o>0?n.closeTimer=setTimeout(r,o*1e3):r()}scheduleMainClose(e){let n=()=>{this.mainCloseTimer=null,this.mainUrl=null,this.mainToken=void 0;let o=this.components.get(Q);o&&o.hide(),this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup(),this.saveState()};e&&e>0?this.mainCloseTimer=setTimeout(n,e*1e3):n()}restoreFork(e,n){if(!this.panelManager)return;let o=n??F;this.log("info",`restoreFork fork=${e.fork} \u2192 group=${o} url=${e.url.slice(0,60)}...`);let r=`fork-${e.fork}`;o===F&&this.ensureForkGroup(),!this.mainUrl&&this.panelManager&&!this.panelManager.isMainGroupCollapsed()&&this.panelManager.collapseMainGroup();let i=new Ie(this);i.init(r,{url:e.url,token:e.token}),this.panelManager.addPanel({id:r,element:i.element,groupId:o}),this.forks.set(e.fork,{panelId:r,url:e.url,token:e.token,fork:e.fork,source:e.source,completed:!1,recyclable:e.retentionPolicy==="recycle",retentionPolicy:e.retentionPolicy,closeTimer:null}),this.emitForkActive()}restoreDockedLayout(e){this.panelManager&&(this.createGroupsFromTree(e),this.panelManager.rebuildDockedLayout(e))}createGroupsFromTree(e){if(this.panelManager){if(e.kind==="leaf"){if(e.groupId==="main-group"||this.panelManager.getGroup(e.groupId))return;let n=this.panelManager.addGroup({id:e.groupId});n.dragConstraint="merge-only",this.allowDocking||(n.dockingBlocked=!0),this.allowDialogDocking||(n.dialogDockingBlocked=!0),this.setupForkGroupActions(n);return}this.createGroupsFromTree(e.first),this.createGroupsFromTree(e.second)}}clearAllForks(){this.log("info",`clearAllForks count=${this.forks.size}`),this.removingPanelProgrammatically=!0;try{if(this.panelManager)for(let e of this.forks.values()){e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null);let n=this.components.get(e.panelId);n&&n.dispose(),this.panelManager.removePanel(e.panelId)}this.forks.clear(),this.removeForkGroupIfEmpty()}finally{this.removingPanelProgrammatically=!1}}rebuildForkGroup(){if(!this.panelManager)return;let e=this.panelManager.getGroup(F);if(e)if(this.log("info",`rebuildForkGroup newMode=${this.forkDisplay.mode}`),this.forkDisplay.mode==="dialog"){let n=this.rootElement?.offsetWidth??800,o=this.rootElement?.offsetHeight??600,r=Math.min(720,n*.9),i=Math.min(o*.8,600);this.panelManager.addFloatingGroup(e,{width:r,height:i,x:(window.innerWidth-r)/2,y:(window.innerHeight-i)/2}),this.setupFloatingToolbar(e)}else{let n=this.forkDisplay.mode==="side-by-side"?this.forkDisplay.split:void 0,o=n!==void 0?(this.rootElement?.offsetWidth??800)*(1-n/100):void 0;this.panelManager.dockGroup(F,"right",o)}}handleSessionComplete(){this.clearAllForks(),this.emitForkActive()}handleDoneMessage(e,n){if(this.log("info",`handleDoneMessage fork=${e||"(main)"} retention=${n?.case??"default"}`),!e){this.handleMainDone(n);return}let o=this.forks.get(e);if(!o)return;switch(n?this.resolveRetention(n):o.retentionPolicy){case"close":o.completed=!0,this.scheduleForkClose(e,o,n?.case==="close"?n.timeoutSeconds:void 0);break;case"recycle":o.completed=!0,o.recyclable=!0;break;default:o.completed=!0;break}}handleStoppedMessage(e){if(this.log("info",`handleStoppedMessage fork=${e||"(main)"}`),!e){this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null),this.mainUrl=null,this.mainToken=void 0;let o=this.components.get(Q);o&&o.hide(),this.showStatusMessage(this.options.text?.stopped??"This session has been stopped","stopped");return}let n=this.forks.get(e);if(n){n.closeTimer&&(clearTimeout(n.closeTimer),n.closeTimer=null),this.removingPanelProgrammatically=!0;try{if(this.panelManager){let o=this.components.get(n.panelId);o&&o.dispose(),this.panelManager.removePanel(n.panelId)}this.forks.delete(e),this.removeForkGroupIfEmpty()}finally{this.removingPanelProgrammatically=!1}this.emitForkActive()}}cleanupGroupTracking(e){let n=this.forkGroupActions.get(e);n&&(n.dispose(),this.forkGroupActions.delete(e)),this.floatingToolbars.delete(e),this.floatingAutoResized.delete(e),this.minimizeManager?.removeGroup(e),e===F&&(this._autoMaximizedByResize=!1)}cleanupStaleGroupTracking(){if(this.panelManager){for(let e of[...this.forkGroupActions.keys()])this.panelManager.getGroup(e)||this.cleanupGroupTracking(e);for(let e of[...this.floatingToolbars.keys()])this.panelManager.getGroup(e)||this.floatingToolbars.delete(e)}}removeForkGroupIfEmpty(){if(!this.panelManager)return;let e=this.panelManager.getGroup(F);e&&e.size===0?(this.panelManager.removeGroup(F),this.cleanupGroupTracking(F)):e||this.cleanupGroupTracking(F),this.minimizeManager?.removeGroup(F)}getMaximizedDockedGroupId(){for(let[e,n]of this.forkGroupActions)if(n.isMaximized)return e}emitForkActive(){if(!this.options.onForkActive)return;let e=this.forks.size>0;e!==this.lastForkActive&&(this.lastForkActive=e,this.options.onForkActive(e))}parseInheritToken(){let e=this.options.inheritFrom;return e?"hash"in e?this.parseFromHash(e.hash):this.parseFromParam(e.param):null}parseFromHash(e){let n=window.location.hash.slice(1);if(!n)return null;let o=new URLSearchParams(n),r=o.get(e);if(!r)return null;o.delete(e);let i=o.toString(),a=window.location.pathname+window.location.search+(i?"#"+i:"");return history.replaceState(null,"",a),decodeURIComponent(r)}parseFromParam(e){let n=new URLSearchParams(window.location.search),o=n.get(e);if(!o)return null;n.delete(e);let r=n.toString(),i=window.location.pathname+(r?"?"+r:"")+window.location.hash;return history.replaceState(null,"",i),decodeURIComponent(o)}async init(){this.panelManager?.onDidRemovePanel(n=>{if(!this.removingPanelProgrammatically){for(let[o,r]of this.forks)if(r.panelId===n.id){r.closeTimer&&(clearTimeout(r.closeTimer),r.closeTimer=null);let i=this.components.get(r.panelId);i&&i.dispose(),this.sessionToken&&this.client.stop(this.sessionToken,o).catch(()=>{}),this.forks.delete(o);break}this.emitForkActive(),this.cleanupStaleGroupTracking()}});let e={onUrl:n=>this.onUrl(n),onSession:n=>{n.status==="STATUS_COMPLETED"&&!n.fork&&this.handleSessionComplete(),!n.fork&&(n.status==="STATUS_COMPLETED"||n.status==="STATUS_STOPPED"||n.status==="STATUS_ERRORED"||n.status==="STATUS_DELEGATED"||n.status==="STATUS_EXPIRED")&&(this.sessionTerminated=!0,this.clearState(),this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null)),this.options.onSession&&this.options.onSession(n.status||"STATUS_UNSPECIFIED",n.fork)}};if(this.options.onOutput&&(e.onOutput=this.options.onOutput),e.onError=n=>{this.showErrorStatus(n),this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null)},!this.options.sessionToken&&this.resolvePersistOptions()){this.log("info","attempting session restore from persisted state");let n=await this.tryRestoreSession(e);if(this.log("info",`restore result=${n}`),n!=="none"){this.updateBeforeUnloadGuard();return}}if(this.options.sessionToken)this.log("info","using pre-created sessionToken"),this.sessionToken=this.options.sessionToken,await this.client.subscribe(this.sessionToken,e);else{let n=this.parseInheritToken(),o=n||this.options.inheritToken;if(this.options.inheritFrom&&!n){let a="hash"in this.options.inheritFrom?`hash key '${this.options.inheritFrom.hash}'`:`param '${this.options.inheritFrom.param}'`;this.log("error",`no inherit token found in URL ${a}`);return}let r=this.options.challengeToken;if(this.options.requiresChallenge&&!r&&!o&&(r=await this.showCapWidgetAndSolve(),!r)){this.log("error","failed to solve challenge");return}let i;if(o)this.log("info","starting session via inheritToken"),i=await this.client.runInherit(o,e);else{this.log("info",`starting session via run (transmitter=${this.options.transmitter??"default"})`);let a={...e};this.options.transmitter!==void 0&&(a.transmitter=this.options.transmitter),this.options.signals!==void 0&&(a.signals=this.options.signals),this.options.authToken!==void 0&&(a.authToken=this.options.authToken),r!==void 0&&(a.challengeToken=r),i=await this.client.run(a)}this.sessionToken=i.sessionToken,this.sessionExpiresAt=i.expiresAt,this.log("info",`session started token=${this.sessionToken?.slice(0,8)}...`),this.saveState()}this.updateBeforeUnloadGuard()}async showCapWidgetAndSolve(){let e=Ut._capWidgetClass;if(!e)throw new Error("Cap.js not loaded. Import '@mochabug/adapt-web/cap' or use the full UMD bundle.");return new Promise(n=>{this.capWidgetInstance=new e({container:this.rootElement,automationId:this.options.automationId,client:this.client.raw,...this.options.capWidgetOptions?.workerCount!==void 0&&{workerCount:this.options.capWidgetOptions.workerCount},...this.options.capWidgetOptions?.i18n&&{i18n:this.options.capWidgetOptions.i18n},onSolve:o=>{this.capWidgetInstance=null,n(o)},onError:o=>{this.log("error","Cap.js error:",o),this.capWidgetInstance=null,n(void 0)}}),this.darkMode&&this.capWidgetInstance.setDarkMode(!0)})}resolvePersistOptions(){let e=this.options.persist;if(!e)return null;if(e===!0)return{storage:"session",ttl:3600};let n={storage:e.storage??"session",ttl:e.ttl??3600};return e.key!==void 0&&(n.key=e.key),n}getStorageKey(){return`mb_adapt_${this.resolvePersistOptions()?.key??this.options.automationId}`}getStorage(){let e=this.resolvePersistOptions();return e?e.storage==="local"?localStorage:sessionStorage:null}saveState(){if(this.restoringSession)return;let e=this.getStorage();if(!e||!this.sessionToken)return;let n=this.resolvePersistOptions();this.log("info",`saveState key=${this.getStorageKey()} forks=${this.forks.size} mainUrl=${this.mainUrl?"yes":"none"}`);let o={v:3,token:this.sessionToken,expiresAt:this.sessionExpiresAt?this.sessionExpiresAt.toISOString():null,savedAt:Date.now(),ttl:n.ttl,mainUrl:this.mainUrl,mainToken:this.mainToken,forks:Array.from(this.forks.values()).filter(i=>!i.completed||i.recyclable).map(i=>{let a={url:i.url,token:i.token,fork:i.fork,retentionPolicy:i.retentionPolicy};return i.source!==void 0&&(a.source=i.source),a}),forkDisplayMode:this.forkDisplay.mode,layout:this.panelManager?.serializeLayout()};if(this.minimizeManager){let i=this.minimizeManager.getMinimizedGroupIds();i.length>0&&(o.minimizedGroups=i.map(a=>{let s=this.minimizeManager.getEntry(a),l={groupId:a,mode:s?.mode??"floating"};return s?.savedPosition&&(l.savedPosition={...s.savedPosition}),l}))}let r=this.getMaximizedDockedGroupId();r&&(o.maximizedDockedGroupId=r),e.setItem(this.getStorageKey(),JSON.stringify(o))}loadState(){let e=this.getStorage();if(!e)return null;let n=e.getItem(this.getStorageKey());if(!n)return this.log("info","loadState: no persisted state found"),null;let o;try{o=JSON.parse(n)}catch{return this.log("warn","loadState: invalid JSON, clearing"),this.clearState(),null}if(o.v!==3)return this.log("warn",`loadState: version mismatch v=${o.v}, clearing`),this.clearState(),null;let r=Date.now(),i=3e4;if(r-o.savedAt>o.ttl*1e3+i)return this.log("info","loadState: TTL expired, clearing"),this.clearState(),null;if(o.expiresAt){let a=new Date(o.expiresAt).getTime();if(r>a+i)return this.log("info","loadState: session expired, clearing"),this.clearState(),null}return this.log("info",`loadState: found state forks=${o.forks.length} mainUrl=${o.mainUrl?"yes":"none"}`),o}clearState(){this.log("info","clearState");let e=this.getStorage();e&&e.removeItem(this.getStorageKey())}async tryRestoreSession(e){let n=this.loadState();if(!n)return"none";let o=Date.now()-n.savedAt>1e4;if(this.log("info",`tryRestoreSession token=${n.token.slice(0,8)}... forks=${n.forks.length} stale=${o}`),this.sessionToken=n.token,this.sessionExpiresAt=n.expiresAt?new Date(n.expiresAt):void 0,this.mainUrl=n.mainUrl,this.mainToken=n.mainToken,n.forkDisplayMode&&(n.forkDisplayMode==="side-by-side"?this.forkDisplay={mode:"side-by-side"}:this.forkDisplay={mode:"dialog"}),this.mainUrl){let l=this.components.get(Q);l&&l.update({url:this.mainUrl,token:this.mainToken})}this.restoringSession=!0;try{if(n.layout?.mainLayout&&this.panelManager&&this.restoreDockedLayout(n.layout.mainLayout),n.layout?.floatingGroups&&this.panelManager)for(let c of n.layout.floatingGroups){if(this.panelManager.getGroup(c.groupId))continue;let m=this.panelManager.addGroup({id:c.groupId,floating:c.bounds});m.dragConstraint="merge-only",this.allowDocking||(m.dockingBlocked=!0),this.allowDialogDocking||(m.dialogDockingBlocked=!0),this.setupForkGroupActions(m),c.internalLayout&&this.createGroupsFromTree(c.internalLayout)}this.panelManager&&$a(this.panelManager.getGroupIds());let l=()=>{if(!this.panelManager)return F;for(let c of this.panelManager.getDockedGroups())if(c.id!=="main-group")return c.id;return F};this.log("info",`restore phase2: ${n.forks.length} forks, panelLocations=${JSON.stringify(n.layout?.panelLocations??{})}`);for(let c of n.forks){let m=`fork-${c.fork}`,g=n.layout?.panelLocations?.[m]??F,f=this.panelManager?.getGroup(g),p=f?g:l();f||this.log("warn",`restore: target group "${g}" not found for ${m}, fallback="${p}"`),this.restoreFork(c,p)}if(n.layout?.floatingGroups&&this.panelManager)for(let c of n.layout.floatingGroups)c.internalLayout&&this.panelManager.rebuildFloatingInternalLayout(c.groupId,c.internalLayout);if(this.panelManager&&this.panelManager.cleanupEmptyGroups(),n.layout&&this.panelManager)for(let c of n.layout.floatingGroups){let m=this.panelManager.getFloatingOverlay(c.groupId);m&&(m.setFullBounds(c.bounds),c.isMaximized&&(m.maximize(),this.floatingToolbars.get(c.groupId)?.syncMaximizedState()))}if(n.minimizedGroups&&this.minimizeManager&&this.panelManager)for(let c of n.minimizedGroups){let m=this.panelManager.getGroup(c.groupId);if(m&&!this.minimizeManager.isMinimized(c.groupId))if(c.mode==="floating"){let g=this.panelManager.getFloatingOverlay(c.groupId);g&&this.minimizeManager.minimize(c.groupId,g,m)}else c.mode==="docked"&&this.minimizeManager.minimizeDocked(c.groupId,m,this.panelManager)}if(n.maximizedDockedGroupId&&this.panelManager){let c=this.forkGroupActions.get(n.maximizedDockedGroupId);c&&c.setMaximized()}o||e.onSession?.({status:"STATUS_RUNNING"})}finally{this.restoringSession=!1}this.saveState();let r=!1,i=!1,a=e.onError,s={...e,onError:l=>{r=!0;let c=this.loadState();!c||Date.now()-c.savedAt>1e4?(i=!0,this.clearState()):a?.(l)}};try{await this.client.subscribe(n.token,s)}catch{r=!0,o?(i=!0,this.clearState()):this.showErrorStatus(new Error("Session restore failed"))}return r?(await this.client.unsubscribe(),this.sessionToken=null,this.sessionExpiresAt=void 0,this.mainUrl=null,this.mainToken=void 0,this.clearAllForks(),this.components.get(Q)?.hide(),i?"none":"failed"):"restored"}async newSession(){this.clearState(),this.sessionTerminated=!1,this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null),this.mainRetentionPolicy="retain",this.sessionToken&&this.client.stop(this.sessionToken).catch(()=>{}),await this.client.unsubscribe(),this.mainUrl=null,this.mainToken=void 0,this.sessionToken=null,this.sessionExpiresAt=void 0,this.lastForkActive=null,this.updateBeforeUnloadGuard(),this.clearAllForks(),this.components.get(Q)?.hide(),this.removeStatusMessage();try{await this.init()}catch(e){this.showErrorStatus(e)}}resizeOverlayForGroup(e){if(!this.panelManager)return;let n=this.panelManager.findOverlayContaining(e.id);if(!n)return;let o=n.getAllGroups(),r=0;for(let i of o){let a=i.activePanel;if(a){let s=this.forkPanelHeights.get(a.id)??0;s>r&&(r=s)}}if(r>0){let i=e.headerElement?.offsetHeight??40,a=Math.ceil(r)+i,s=n.getBounds(),l=(window.innerHeight-a)/2;n.setFullBounds({...s,height:a,y:Math.max(0,l)})}}onContainerResize(e,n){if(!this.panelManager)return;let o=this.panelManager.getGroup(F);if(!o)return;let r=this.responsiveBreakpoint,i=r+this.responsiveHysteresis,a=this.forkGroupActions.get(F),s=a?.isMaximized??!1;if(e<r&&!this._autoMaximizedByResize){if(o.location==="floating"){let l=this.panelManager.getFloatingOverlay(F);l&&!l.isMaximized&&(l.maximize(),this._autoMaximizedByResize=!0)}else s||(a?(a.setMaximized(),a.setAutoMaximizedByResize(!0)):this.panelManager.maximizeDockedGroup(o),this._autoMaximizedByResize=!0);this.applyBestAutoResizeHeight()}e>=i&&this._autoMaximizedByResize&&(o.location==="floating"?this.panelManager.getFloatingOverlay(F)?.restore():a?a.clearMaximized():this.panelManager.restoreMaximizedDockedGroup(o),this._autoMaximizedByResize=!1,a?.setAutoMaximizedByResize(!1))}setConfirmOnClose(e){this.confirmOnClose=e,this.updateBeforeUnloadGuard()}updateBeforeUnloadGuard(){let e=this.confirmOnClose&&!!this.sessionToken&&!this.destroyed;e&&!this.beforeUnloadHandler?(this.beforeUnloadHandler=n=>{n.preventDefault()},window.addEventListener("beforeunload",this.beforeUnloadHandler)):!e&&this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null)}wireBeforeTabClose(){this.panelManager&&this.panelManager.setBeforeTabClose(e=>{if(this.removingPanelProgrammatically||!this.confirmOnClose)return!0;for(let[,n]of this.forks)if(n.panelId===e)return n.completed?!0:this.showConfirmDialog("This panel hasn\u2019t finished yet. Are you sure you want to close it?");return!0})}confirmCloseGroup(e){return!this.confirmOnClose||!e.panels.some(o=>{for(let r of this.forks.values())if(r.panelId===o.id&&!r.completed)return!0;return!1})?!0:this.showConfirmDialog("Some panels haven\u2019t finished yet. Are you sure you want to close them?")}showConfirmDialog(e){return new Promise(n=>{if(!this.rootElement){n(!0);return}let o=document.createElement("div");o.className="mb-adapt mb-adapt__confirm-overlay",this.darkMode&&o.classList.add("mb-adapt--dark");let r=document.createElement("div");r.className="mb-adapt__confirm-card";let i=document.createElement("p");i.className="mb-adapt__confirm-text",i.textContent=e,r.appendChild(i);let a=document.createElement("div");a.className="mb-adapt__confirm-buttons";let s=document.createElement("button");s.className="mb-adapt__confirm-btn mb-adapt__confirm-btn--cancel",s.textContent="Cancel";let l=document.createElement("button");l.className="mb-adapt__confirm-btn mb-adapt__confirm-btn--confirm",l.textContent="Close",a.appendChild(s),a.appendChild(l),r.appendChild(a),o.appendChild(r),document.body.appendChild(o);let c=m=>{o.remove(),n(m)};s.addEventListener("click",()=>c(!1)),l.addEventListener("click",()=>c(!0)),o.addEventListener("click",m=>{m.target===o&&c(!1)})})}async destroy(){if(!this.destroyed){this.log("info","destroy"),this.destroyed=!0,this.mainCloseTimer&&(clearTimeout(this.mainCloseTimer),this.mainCloseTimer=null);for(let e of this.forks.values())e.closeTimer&&(clearTimeout(e.closeTimer),e.closeTimer=null);this.beforeUnloadHandler&&(window.removeEventListener("beforeunload",this.beforeUnloadHandler),this.beforeUnloadHandler=null),this.resizeObserver?.disconnect(),this.resizeObserver=null,this.capWidgetInstance?.destroy(),this.capWidgetInstance=null,this.minimizeManager?.dispose(),this.minimizeManager=null,this.sessionToken&&!this.loadState()&&!this.sessionTerminated&&this.client.stop(this.sessionToken).catch(()=>{}),await this.client.unsubscribe(),this.messageHandler&&window.removeEventListener("message",this.messageHandler),this.panelManager&&(this.panelManager.dispose(),this.panelManager=null),this.rootElement?.parentNode?.removeChild(this.rootElement),this.mainUrl=null,this.mainToken=void 0,this.forks.clear(),this.components.clear(),this.forkPanelHeights.clear(),this.forkGroupActions.clear(),this.floatingToolbars.clear(),this.sessionToken=null,this.lastForkActive=null,this.rootElement=null,this.messageHandler=null,this.statusMessageElement=null,this.minimizedTabsContainer=null}}showStatusMessage(e,n="error"){if(!this.rootElement)return;this.removeStatusMessage();let o=this.components.get(Q);o&&o.hide(),this.statusMessageElement=document.createElement("div"),this.statusMessageElement.className=this.options.classNames?.statusMessage??"mb-adapt__status-message";let r=document.createElement("div");r.className=this.options.classNames?.statusCard??"mb-adapt__status-card";let i=document.createElement("div");i.className=n==="stopped"||n==="expired"?"mb-adapt__status-icon mb-adapt__status-icon--stopped":"mb-adapt__status-icon",i.innerHTML=n==="stopped"||n==="expired"?'<svg viewBox="0 0 24 24" fill="none" stroke="#6b7280" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="6" y="6" width="12" height="12" rx="2"/></svg>':'<svg viewBox="0 0 24 24" fill="none" stroke="#ef4444" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>',r.appendChild(i);let a=document.createElement("p");a.className="mb-adapt__status-text",a.textContent=e,r.appendChild(a);let s=document.createElement("button");s.className="mb-adapt__status-restart",s.textContent=this.options.text?.restartButton??"Try again",s.addEventListener("click",()=>this.newSession()),r.appendChild(s),this.statusMessageElement.appendChild(r),this.rootElement.appendChild(this.statusMessageElement)}removeStatusMessage(){this.statusMessageElement&&(this.statusMessageElement.remove(),this.statusMessageElement=null)}showErrorStatus(e){let n=this.classifyError(e),o=n.kind==="expired"?"expired":"error";this.clearState(),this.clearAllForks(),this.showStatusMessage(n.message,o),this.options.onError?.(n)}isExpiredTokenError(e){return e instanceof A&&e.code===h.PermissionDenied&&e.message.toLowerCase().includes("expired")}getErrorMessage(e){let n=this.options.text,o=n?.error??"Something went wrong. Please try again later.";if(e instanceof A){if(this.isExpiredTokenError(e))return n?.sessionExpired??"Your session has expired.";switch(e.code){case h.ResourceExhausted:return n?.resourceExhausted??"This automation is currently at capacity. Please try again later.";case h.NotFound:return e.message.toLowerCase().includes("session not found")?n?.sessionNotFound??"This session has timed out or been stopped.":n?.notFound??"This automation could not be found.";case h.PermissionDenied:case h.Unauthenticated:return n?.permissionDenied??"You don't have permission to run this automation.";default:return o}}return o}classifyError(e){let n=this.getErrorMessage(e);if(e instanceof A){if(this.isExpiredTokenError(e))return{kind:"expired",message:n,retriable:!1,cause:e};switch(e.code){case h.ResourceExhausted:return{kind:"capacity",message:n,retriable:!0,cause:e};case h.NotFound:return e.message.toLowerCase().includes("session not found")?{kind:"session_not_found",message:n,retriable:!1,cause:e}:{kind:"not_found",message:n,retriable:!1,cause:e};case h.PermissionDenied:case h.Unauthenticated:return{kind:"auth",message:n,retriable:!0,cause:e};default:return{kind:"error",message:n,retriable:!1,cause:e}}}return{kind:"error",message:n,retriable:!1,cause:e}}};Ut._capWidgetClass=null;var lt=Ut;return ss(Oc);})();
892
892
  if (__MbAdapt_prev) MbAdapt = Object.assign(__MbAdapt_prev, MbAdapt);