t[2]}else I=x>R;const M=Math.PI,L=[],b=C+n===e;let A;if(e=C,p=0,m=S,d=t[e],g=t[e+1],b){y(),A=Math.atan2(g-f,d-_),I&&(A+=A>0?-M:M);const t=(R+x)/2,e=(T+E)/2;return L[0]=[t,e,(w-r)/2,A,s],L}s=s.replace(/\n/g," ");for(let O=0,P=s.length;O0?-M:M),void 0!==A){let e=t-A;if(e+=e>M?-2*M:e<-M?2*M:0,Math.abs(e)>o)return null}A=t;const u=O;let x=0;for(;O
0&&t.push("\n",""),t.push(e,""),t}class qa{constructor(t,e,i,n){this.overlaps=i,this.pixelRatio=e,this.resolution=t,this.alignFill_,this.instructions=n.instructions,this.coordinates=n.coordinates,this.coordinateCache_={},this.renderedTransform_=mi(),this.hitDetectionInstructions=n.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=n.fillStates||{},this.strokeStates=n.strokeStates||{},this.textStates=n.textStates||{},this.widths_={},this.labels_={}}createLabel(t,e,i,n){const s=t+e+i+n;if(this.labels_[s])return this.labels_[s];const r=n?this.strokeStates[n]:null,o=i?this.fillStates[i]:null,a=this.textStates[e],h=this.pixelRatio,l=[a.scale[0]*h,a.scale[1]*h],c=Array.isArray(t),u=a.justify?Pa[a.justify]:Ua(Array.isArray(t)?t[0]:t,a.textAlign||ur),d=n&&r.lineWidth?r.lineWidth:0,g=c?t:t.split("\n").reduce(Ha,[]),{width:_,height:f,widths:p,heights:m,lineWidths:y}=wr(a,g),v=_+d,x=[],E=(v+2)*l[0],C=(f+d)*l[1],S={width:E<0?Math.floor(E):Math.ceil(E),height:C<0?Math.floor(C):Math.ceil(C),contextInstructions:x};1==l[0]&&1==l[1]||x.push("scale",l),n&&(x.push("strokeStyle",r.strokeStyle),x.push("lineWidth",d),x.push("lineCap",r.lineCap),x.push("lineJoin",r.lineJoin),x.push("miterLimit",r.miterLimit),x.push("setLineDash",[r.lineDash]),x.push("lineDashOffset",r.lineDashOffset)),i&&x.push("fillStyle",o.fillStyle),x.push("textBaseline","middle"),x.push("textAlign","center");const w=.5-u;let R=u*v+w*d;const T=[],I=[];let M,L=0,b=0,A=0,O=0;for(let P=0,D=g.length;Pt?t-h:s,v=r+l>e?e-l:r,x=g[3]+y*u[0]+g[1],E=g[0]+v*u[1]+g[2],C=p-g[3],S=m-g[0];let w;return(_||0!==c)&&(Ya[0]=C,Va[0]=C,Ya[1]=S,Ba[1]=S,Ba[0]=C+x,Ka[0]=Ba[0],Ka[1]=S+E,Va[1]=Ka[1]),0!==c?(w=Si(mi(),i,n,1,1,c,-i,-n),Ei(w,Ya),Ei(w,Ba),Ei(w,Ka),Ei(w,Va),Nt(Math.min(Ya[0],Ba[0],Ka[0],Va[0]),Math.min(Ya[1],Ba[1],Ka[1],Va[1]),Math.max(Ya[0],Ba[0],Ka[0],Va[0]),Math.max(Ya[1],Ba[1],Ka[1],Va[1]),Xa)):Nt(Math.min(C,C+x),Math.min(S,S+E),Math.max(C,C+x),Math.max(S,S+E),Xa),d&&(p=Math.round(p),m=Math.round(m)),{drawImageX:p,drawImageY:m,drawImageW:y,drawImageH:v,originX:h,originY:l,declutterBox:{minX:Xa[0],minY:Xa[1],maxX:Xa[2],maxY:Xa[3],value:f},canvasTransform:w,scale:u}}replayImageOrLabel_(t,e,i,n,s,r,o){const a=!(!r&&!o),h=n.declutterBox,l=t.canvas,c=o?o[2]*n.scale[0]/2:0,u=h.minX-c<=l.width/e&&h.maxX+c>=0&&h.minY-c<=l.height/e&&h.maxY+c>=0;return u&&(a&&this.replayTextBackground_(t,Ya,Ba,Ka,Va,r,o),Rr(t,n.canvasTransform,s,i,n.originX,n.originY,n.drawImageW,n.drawImageH,n.drawImageX,n.drawImageY,n.scale)),!0}fill_(t){if(this.alignFill_){const e=Ei(this.renderedTransform_,[0,0]),i=512*this.pixelRatio;t.save(),t.translate(e[0]%i,e[1]%i),t.rotate(this.viewRotation_)}t.fill(),this.alignFill_&&t.restore()}setStrokeStyle_(t,e){t["strokeStyle"]=e[1],t.lineWidth=e[2],t.lineCap=e[3],t.lineJoin=e[4],t.miterLimit=e[5],t.lineDashOffset=e[7],t.setLineDash(e[6])}drawLabelWithPointPlacement_(t,e,i,n){const s=this.textStates[e],r=this.createLabel(t,e,n,i),o=this.strokeStates[i],a=this.pixelRatio,h=Ua(Array.isArray(t)?t[0]:t,s.textAlign||ur),l=Pa[s.textBaseline||dr],c=o&&o.lineWidth?o.lineWidth:0,u=r.width/a-2*s.scale[0],d=h*u+2*(.5-h)*c,g=l*r.height/a+2*(.5-l)*c;return{label:r,anchorX:d,anchorY:g}}execute_(t,e,i,n,s,r,o,a){let h;this.pixelCoordinates_&&f(i,this.renderedTransform_)?h=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),h=Mi(this.coordinates,0,this.coordinates.length,2,i,this.pixelCoordinates_),xi(this.renderedTransform_,i));let l=0;const c=n.length;let u,d,g,_,p,m,y,v,x,E,C,S,w=0,R=0,T=0,I=null,M=null;const L=this.coordinateCache_,b=this.viewRotation_,A=Math.round(1e12*Math.atan2(-i[1],i[0]))/1e12,O={context:t,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:b},P=this.instructions!=n||this.overlaps?0:200;let D,F,k,N;while(lP&&(this.fill_(t),R=0),T>P&&(t.stroke(),T=0),R||T||(t.beginPath(),_=NaN,p=NaN),++l;break;case xa.CIRCLE:w=i[1];const n=h[w],c=h[w+1],f=h[w+2],G=h[w+3],W=f-n,z=G-c,X=Math.sqrt(W*W+z*z);t.moveTo(n+X,c),t.arc(n,c,X,0,2*Math.PI,!0),++l;break;case xa.CLOSE_PATH:t.closePath(),++l;break;case xa.CUSTOM:w=i[1],u=i[2];const Y=i[3],B=i[4],K=6==i.length?i[5]:void 0;O.geometry=Y,O.feature=D,l in L||(L[l]=[]);const V=L[l];K?K(h,w,u,2,V):(V[0]=h[w],V[1]=h[w+1],V.length=2),B(V,O),++l;break;case xa.DRAW_IMAGE:w=i[1],u=i[2],v=i[3],d=i[4],g=i[5];let j=i[6];const Z=i[7],U=i[8],H=i[9],q=i[10];let J=i[11];const $=i[12];let Q=i[13];const tt=i[14],et=i[15];if(!v&&i.length>=20){x=i[19],E=i[20],C=i[21],S=i[22];const t=this.drawLabelWithPointPlacement_(x,E,C,S);v=t.label,i[3]=v;const e=i[23];d=(t.anchorX-e)*this.pixelRatio,i[4]=d;const n=i[24];g=(t.anchorY-n)*this.pixelRatio,i[5]=g,j=v.height,i[6]=j,Q=v.width,i[13]=Q}let it,nt,st,rt;i.length>25&&(it=i[25]),i.length>17?(nt=i[16],st=i[17],rt=i[18]):(nt=gr,st=!1,rt=!1),q&&A?J+=b:q||A||(J-=b);let ot=0;for(;w0){if(!r||"Image"!==g&&"Text"!==g||r.includes(t)){const i=(d[a]-3)/4,r=n-i%o,h=n-(i/o|0),l=s(t,e,r*r+h*h);if(l)return l}l.clearRect(0,0,o,o);break}}const f=Object.keys(this.executorsByZIndex_).map(Number);let p,m,y,v,x;for(f.sort(u),p=f.length-1;p>=0;--p){const t=f[p].toString();for(y=this.executorsByZIndex_[t],m=$a.length-1;m>=0;--m)if(g=$a[m],v=y[g],void 0!==v&&(x=v.executeHitDetection(l,a,i,_,c),x))return x}}getClipCoords(t){const e=this.maxExtent_;if(!e)return null;const i=e[0],n=e[1],s=e[2],r=e[3],o=[i,n,i,r,s,r,s,n];return Mi(o,0,8,2,t,o),o}isEmpty(){return C(this.executorsByZIndex_)}execute(t,e,i,n,s,r,o){const a=Object.keys(this.executorsByZIndex_).map(Number);let h,l,c,d,g,_;for(a.sort(u),this.maxExtent_&&(t.save(),this.clip(t,i)),r=r||$a,o&&a.reverse(),h=0,l=a.length;hi)break;let a=n[o];a||(a=[],n[o]=a),a.push(4*((t+r)*e+(t+s))+3),r>0&&a.push(4*((t-r)*e+(t+s))+3),s>0&&(a.push(4*((t+r)*e+(t-s))+3),r>0&&a.push(4*((t-r)*e+(t-s))+3))}const s=[];for(let r=0,o=n.length;rt*this.pixelRatio_)),lineDashOffset:(s||ar)*this.pixelRatio_,lineJoin:void 0!==r?r:hr,lineWidth:(void 0!==o?o:_r)*this.pixelRatio_,miterLimit:void 0!==a?a:lr,strokeStyle:Us(t||cr)}}else this.strokeState_=null}setImageStyle(t){let e;if(!t||!(e=t.getSize()))return void(this.image_=null);const i=t.getPixelRatio(this.pixelRatio_),n=t.getAnchor(),s=t.getOrigin();this.image_=t.getImage(this.pixelRatio_),this.imageAnchorX_=n[0]*i,this.imageAnchorY_=n[1]*i,this.imageHeight_=e[1]*i,this.imageOpacity_=t.getOpacity(),this.imageOriginX_=s[0],this.imageOriginY_=s[1],this.imageRotateWithView_=t.getRotateWithView(),this.imageRotation_=t.getRotation();const r=t.getScaleArray();this.imageScale_=[r[0]*this.pixelRatio_/i,r[1]*this.pixelRatio_/i],this.imageWidth_=e[0]*i}setTextStyle(t){if(t){const e=t.getFill();if(e){const t=e.getColor();this.textFillState_={fillStyle:Us(t||sr)}}else this.textFillState_=null;const i=t.getStroke();if(i){const t=i.getColor(),e=i.getLineCap(),n=i.getLineDash(),s=i.getLineDashOffset(),r=i.getLineJoin(),o=i.getWidth(),a=i.getMiterLimit();this.textStrokeState_={lineCap:void 0!==e?e:rr,lineDash:n||or,lineDashOffset:s||ar,lineJoin:void 0!==r?r:hr,lineWidth:void 0!==o?o:_r,miterLimit:void 0!==a?a:lr,strokeStyle:Us(t||cr)}}else this.textStrokeState_=null;const n=t.getFont(),s=t.getOffsetX(),r=t.getOffsetY(),o=t.getRotateWithView(),a=t.getRotation(),h=t.getScaleArray(),l=t.getText(),c=t.getTextAlign(),u=t.getTextBaseline();this.textState_={font:void 0!==n?n:nr,textAlign:void 0!==c?c:ur,textBaseline:void 0!==u?u:dr},this.text_=void 0!==l?Array.isArray(l)?l.reduce(((t,e,i)=>t+(i%2?" ":e)),""):l:"",this.textOffsetX_=void 0!==s?this.pixelRatio_*s:0,this.textOffsetY_=void 0!==r?this.pixelRatio_*r:0,this.textRotateWithView_=void 0!==o&&o,this.textRotation_=void 0!==a?a:0,this.textScale_=[this.pixelRatio_*h[0],this.pixelRatio_*h[1]]}else this.text_=""}}var sh=nh;const rh=.5;function oh(t,e,i,n,s,r,o){const a=t[0]*rh,h=t[1]*rh,l=$n(a,h);l.imageSmoothingEnabled=!1;const c=l.canvas,d=new sh(l,rh,s,null,o),g=i.length,_=Math.floor(16777215/g),f={};for(let u=1;u<=g;++u){const t=i[u-1],e=t.getStyleFunction()||n;if(!e)continue;let o=e(t,r);if(!o)continue;Array.isArray(o)||(o=[o]);const a=u*_,h=a.toString(16).padStart(7,"#00000");for(let i=0,n=o.length;i{if(!this.hitDetectionImageData_&&!this.animatingOrInteracting_){const t=[this.context.canvas.width,this.context.canvas.height];Ei(this.pixelTransform,t);const e=this.renderedCenter_,i=this.renderedResolution_,n=this.renderedRotation_,s=this.renderedProjection_,r=this.wrappedRenderedExtent_,o=this.getLayer(),a=[],h=t[0]*rh,l=t[1]*rh;a.push(this.getRenderTransform(e,i,n,rh,h,l,0).slice());const c=o.getSource(),u=s.getExtent();if(c.getWrapX()&&s.canWrapX()&&!Pt(u,r)){let t=r[0];const s=se(u);let o,c=0;while(tu[2])++c,o=s*c,a.push(this.getRenderTransform(e,i,n,rh,h,l,o).slice()),t-=s}this.hitDetectionImageData_=oh(t,a,this.renderedFeatures_,o.getStyleFunction(),r,i,n)}e(ah(t,this.renderedFeatures_,this.hitDetectionImageData_))}))}forEachFeatureAtCoordinate(t,e,i,n,s){if(!this.replayGroup_)return;const r=e.viewState.resolution,o=e.viewState.rotation,a=this.getLayer(),h={},l=function(t,e,i){const r=D(t),o=h[r];if(o){if(!0!==o&&ic=n.forEachFeatureAtCoordinate(t,r,o,i,l,n===this.declutterExecutorGroup&&e.declutterTree?e.declutterTree.all().map((t=>t.value)):null))),c}handleFontsChanged(){const t=this.getLayer();t.getVisible()&&this.replayGroup_&&t.changed()}handleStyleImageChange_(t){this.renderIfReadyAndVisible()}prepareFrame(t){const e=this.getLayer(),i=e.getSource();if(!i)return!1;const n=t.viewHints[Q.ANIMATING],s=t.viewHints[Q.INTERACTING],r=e.getUpdateWhileAnimating(),o=e.getUpdateWhileInteracting();if(this.ready&&!r&&n||!o&&s)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;const a=t.extent,h=t.viewState,l=h.projection,c=h.resolution,u=t.pixelRatio,d=e.getRevision(),g=e.getRenderBuffer();let _=e.getRenderOrder();void 0===_&&(_=ch);const p=h.center.slice(),m=Lt(a,g*c),y=m.slice(),v=[m.slice()],x=l.getExtent();if(i.getWrapX()&&l.canWrapX()&&!Pt(x,t.extent)){const t=se(x),e=Math.max(se(m)/2,t);m[0]=x[0]-e,m[2]=x[2]+e,pe(p,l);const i=ce(v[0],l);i[0]x[0]&&i[2]>x[2]&&v.push([i[0]-t,i[1],i[2]-t,i[3]])}if(this.ready&&this.renderedResolution_==c&&this.renderedRevision_==d&&this.renderedRenderOrder_==_&&Pt(this.wrappedRenderedExtent_,m))return f(this.renderedExtent_,y)||(this.hitDetectionImageData_=null,this.renderedExtent_=y),this.renderedCenter_=p,this.replayGroupChanged=!1,!0;this.replayGroup_=null;const E=new Ga(dh(c,u),m,c,u);let C;this.getLayer().getDeclutter()&&(C=new Ga(dh(c,u),m,c,u));const S=ze();let w;if(S){for(let t=0,e=v.length;t{let i;const n=t.getStyleFunction()||e.getStyleFunction();if(n&&(i=n(t,c)),i){const e=this.renderFeature(t,R,i,E,w,C);T=T&&!e}},M=Be(m,l),L=i.getFeaturesInExtent(M);_&&L.sort(_);for(let f=0,O=L.length;f0)this.pop()}extend(t){for(let e=0,i=t.length;ethis.getLength())throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e),this.array_.splice(t,0,e),this.updateLength_(),this.dispatchEvent(new bh(Mh.ADD,e,t))}pop(){return this.removeAt(this.getLength()-1)}push(t){this.unique_&&this.assertUnique_(t);const e=this.getLength();return this.insertAt(e,t),this.getLength()}remove(t){const e=this.array_;for(let i=0,n=e.length;i=this.getLength())return;const e=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new bh(Mh.REMOVE,e,t)),e}setAt(t,e){const i=this.getLength();if(t>=i)return void this.insertAt(t,e);if(t<0)throw new Error("Index out of bounds: "+t);this.unique_&&this.assertUnique_(e,t);const n=this.array_[t];this.array_[t]=e,this.dispatchEvent(new bh(Mh.REMOVE,n,t)),this.dispatchEvent(new bh(Mh.ADD,e,t))}updateLength_(){this.set(Lh.LENGTH,this.array_.length)}assertUnique_(t,e){for(let i=0,n=this.array_.length;i=200&&a.status<300){const t=e.getType();let n;"json"==t||"text"==t?n=a.responseText:"xml"==t?(n=a.responseXML,n||(n=(new DOMParser).parseFromString(a.responseText,"application/xml"))):"arraybuffer"==t&&(n=a.response),n?r(e.readFeatures(n,{extent:i,featureProjection:s}),e.readProjection(n)):o()}else o()},a.onerror=o,a.send()}function Yh(t,e){return function(i,n,s,r,o){const a=this;Xh(t,e,i,n,s,(function(t,e){a.addFeatures(t),void 0!==r&&r(t)}),o||v)}}class Bh extends o{constructor(t,e,i){super(t),this.feature=e,this.features=i}}class Kh extends Nh{constructor(t){t=t||{},super({attributions:t.attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:void 0===t.wrapX||t.wrapX}),this.on,this.once,this.un,this.loader_=v,this.format_=t.format,this.overlaps_=void 0===t.overlaps||t.overlaps,this.url_=t.url,void 0!==t.loader?this.loader_=t.loader:void 0!==this.url_&&(W(this.format_,"`format` must be set when `url` is set"),this.loader_=Yh(this.url_,this.format_)),this.strategy_=void 0!==t.strategy?t.strategy:Wh;const e=void 0===t.useSpatialIndex||t.useSpatialIndex;let i,n;this.featuresRtree_=e?new Dh:null,this.loadedExtentsRtree_=new Dh,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null,Array.isArray(t.features)?n=t.features:t.features&&(i=t.features,n=i.getArray()),e||void 0!==i||(i=new Oh(n)),void 0!==n&&this.addFeaturesInternal(n),void 0!==i&&this.bindFeaturesCollection_(i)}addFeature(t){this.addFeatureInternal(t),this.changed()}addFeatureInternal(t){const e=D(t);if(!this.addToIndex_(e,t))return void(this.featuresCollection_&&this.featuresCollection_.remove(t));this.setupChangeEvents_(e,t);const i=t.getGeometry();if(i){const e=i.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(e,t)}else this.nullGeometryFeatures_[e]=t;this.dispatchEvent(new Bh(Gh.ADDFEATURE,t))}setupChangeEvents_(t,e){this.featureChangeKeys_[t]=[T(e,R.CHANGE,this.handleFeatureChange_,this),T(e,a.PROPERTYCHANGE,this.handleFeatureChange_,this)]}addToIndex_(t,e){let i=!0;const n=e.getId();return void 0!==n&&(n.toString()in this.idIndex_?i=!1:this.idIndex_[n.toString()]=e),i&&(W(!(t in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[t]=e),i}addFeatures(t){this.addFeaturesInternal(t),this.changed()}addFeaturesInternal(t){const e=[],i=[],n=[];for(let s=0,r=t.length;s{e||(e=!0,this.addFeature(t.element),e=!1)})),t.addEventListener(Mh.REMOVE,(t=>{e||(e=!0,this.removeFeature(t.element),e=!1)})),this.featuresCollection_=t}clear(t){if(t){for(const t in this.featureChangeKeys_){const e=this.featureChangeKeys_[t];e.forEach(M)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){const t=t=>{this.removeFeatureInternal(t)};this.featuresRtree_.forEach(t);for(const e in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[e])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};const e=new Bh(Gh.CLEAR);this.dispatchEvent(e),this.changed()}forEachFeature(t){if(this.featuresRtree_)return this.featuresRtree_.forEach(t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureAtCoordinateDirect(t,e){const i=[t[0],t[1],t[0],t[1]];return this.forEachFeatureInExtent(i,(function(i){const n=i.getGeometry();if(n.intersectsCoordinate(t))return e(i)}))}forEachFeatureInExtent(t,e){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(t,e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureIntersectingExtent(t,e){return this.forEachFeatureInExtent(t,(function(i){const n=i.getGeometry();if(n.intersectsExtent(t)){const t=e(i);if(t)return t}}))}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let t;return this.featuresCollection_?t=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(t=this.featuresRtree_.getAll(),C(this.nullGeometryFeatures_)||_(t,Object.values(this.nullGeometryFeatures_))),t}getFeaturesAtCoordinate(t){const e=[];return this.forEachFeatureAtCoordinateDirect(t,(function(t){e.push(t)})),e}getFeaturesInExtent(t,e){if(this.featuresRtree_){const i=e&&e.canWrapX()&&this.getWrapX();if(!i)return this.featuresRtree_.getInExtent(t);const n=ue(t,e);return[].concat(...n.map((t=>this.featuresRtree_.getInExtent(t))))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(t,e){const i=t[0],n=t[1];let s=null;const r=[NaN,NaN];let o=1/0;const a=[-1/0,-1/0,1/0,1/0];return e=e||m,this.featuresRtree_.forEachInExtent(a,(function(t){if(e(t)){const e=t.getGeometry(),h=o;if(o=e.closestPointXY(i,n,r,o),o{--this.loadingExtentsCount_,this.dispatchEvent(new Bh(Gh.FEATURESLOADEND,void 0,t))}),(()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Bh(Gh.FEATURESLOADERROR))})),n.insert(t,{extent:t.slice()}))}this.loading=!(this.loader_.length<4)&&this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(t){const e=this.loadedExtentsRtree_;let i;e.forEachInExtent(t,(function(e){if(Xt(e.extent,t))return i=e,!0})),i&&e.remove(i)}removeFeature(t){if(!t)return;const e=D(t);e in this.nullGeometryFeatures_?delete this.nullGeometryFeatures_[e]:this.featuresRtree_&&this.featuresRtree_.remove(t);const i=this.removeFeatureInternal(t);i&&this.changed()}removeFeatureInternal(t){const e=D(t),i=this.featureChangeKeys_[e];if(!i)return;i.forEach(M),delete this.featureChangeKeys_[e];const n=t.getId();return void 0!==n&&delete this.idIndex_[n.toString()],delete this.uidIndex_[e],this.dispatchEvent(new Bh(Gh.REMOVEFEATURE,t)),t}removeFromIdIndex_(t){let e=!1;for(const i in this.idIndex_)if(this.idIndex_[i]===t){delete this.idIndex_[i],e=!0;break}return e}setLoader(t){this.loader_=t}setUrl(t){W(this.format_,"`format` must be set when `url` is set"),this.url_=t,this.setLoader(Yh(t,this.format_))}}var Vh=Kh;class jh{constructor(t){this.highWaterMark=void 0!==t?t:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(t){while(this.canExpireCache())this.pop()}clear(){this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}containsKey(t){return this.entries_.hasOwnProperty(t)}forEach(t){let e=this.oldest_;while(e)t(e.value_,e.key_,this),e=e.newer}get(t,e){const i=this.entries_[t];return W(void 0!==i,"Tried to get a value for a key that does not exist in the cache"),i===this.newest_||(i===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(i.newer.older=i.older,i.older.newer=i.newer),i.newer=null,i.older=this.newest_,this.newest_.newer=i,this.newest_=i),i.value_}remove(t){const e=this.entries_[t];return W(void 0!==e,"Tried to get a value for a key that does not exist in the cache"),e===this.newest_?(this.newest_=e.older,this.newest_&&(this.newest_.newer=null)):e===this.oldest_?(this.oldest_=e.newer,this.oldest_&&(this.oldest_.older=null)):(e.newer.older=e.older,e.older.newer=e.newer),delete this.entries_[t],--this.count_,e.value_}getCount(){return this.count_}getKeys(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.key_;return t}getValues(){const t=new Array(this.count_);let e,i=0;for(e=this.newest_;e;e=e.older)t[i++]=e.value_;return t}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(t){if(this.containsKey(t))return this.entries_[t].value_}pop(){const t=this.oldest_;return delete this.entries_[t.key_],t.newer&&(t.newer.older=null),this.oldest_=t.newer,this.oldest_||(this.newest_=null),--this.count_,t.value_}replace(t,e){this.get(t),this.entries_[t].value_=e}set(t,e){W(!(t in this.entries_),"Tried to set a value for a key that is used already");const i={key_:t,newer:null,older:this.newest_,value_:e};this.newest_?this.newest_.newer=i:this.oldest_=i,this.newest_=i,this.entries_[t]=i,++this.count_}setSize(t){this.highWaterMark=t}}var Zh=jh;function Uh(t,e,i,n){return void 0!==n?(n[0]=t,n[1]=e,n[2]=i,n):[t,e,i]}function Hh(t,e,i){return t+"/"+e+"/"+i}function qh(t){return Hh(t[0],t[1],t[2])}function Jh(t){return t.split("/").map(Number)}function $h(t){return(t[1]<i||i>e.getMaxZoom())return!1;const r=e.getFullTileRange(i);return!r||r.containsXY(n,s)}class tl extends Zh{clear(){while(this.getCount()>0)this.pop().release();super.clear()}expireCache(t){while(this.canExpireCache()){const e=this.peekLast();if(e.getKey()in t)break;this.pop().release()}}pruneExceptNewestZ(){if(0===this.getCount())return;const t=this.peekFirstKey(),e=Jh(t),i=e[0];this.forEach((t=>{t.tileCoord[0]!==i&&(this.remove(qh(t.tileCoord)),t.release())}))}}var el=tl,il={TILELOADSTART:"tileloadstart",TILELOADEND:"tileloadend",TILELOADERROR:"tileloaderror"};const nl=[0,0,0],sl=5;class rl{constructor(t){let e;if(this.minZoom=void 0!==t.minZoom?t.minZoom:0,this.resolutions_=t.resolutions,W(p(this.resolutions_,(function(t,e){return e-t}),!0),"`resolutions` must be sorted in descending order"),!t.origins)for(let n=0,s=this.resolutions_.length-1;n=this.minZoom){if(2===this.zoomFactor_?(r=Math.floor(r/2),o=Math.floor(o/2),s=ks(r,r,o,o,i)):s=this.getTileRangeForExtentAndZ(a,h,i),e(h,s))return!0;--h}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(t){return this.origin_?this.origin_:this.origins_[t]}getResolution(t){return this.resolutions_[t]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(t,e,i){if(t[0]this.maxZoom||e0?n:Math.max(r/i[0],s/i[1]);const o=e+1,a=new Array(o);for(let h=0;hi.highWaterMark&&(i.highWaterMark=t)}useTile(t,e,i,n){}}class fl extends o{constructor(t,e){super(t),this.tile=e}}var pl=_l;function ml(t,e){const i=/\{z\}/g,n=/\{x\}/g,s=/\{y\}/g,r=/\{-y\}/g;return function(o,a,h){if(o)return t.replace(i,o[0].toString()).replace(n,o[1].toString()).replace(s,o[2].toString()).replace(r,(function(){const t=o[0],i=e.getFullTileRange(t);W(i,"The {-y} placeholder requires a tile grid with extent");const n=i.getHeight()-o[2]-1;return n.toString()}))}}function yl(t,e){const i=t.length,n=new Array(i);for(let s=0;sthis.getTileInternal(t,e,i,n,r)),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.getInterpolate());return _.key=c,h?(_.interimTile=h,_.refreshInterimChain(),o.replace(l,_)):o.set(l,_),_}getTileInternal(t,e,i,n,s){let r=null;const o=Hh(t,e,i),a=this.getKey();if(this.tileCache.containsKey(o)){if(r=this.tileCache.get(o),r.key!=a){const h=r;r=this.createTile_(t,e,i,n,s,a),h.getState()==us.IDLE?r.interimTile=h.interimTile:r.interimTile=h,r.refreshInterimChain(),this.tileCache.replace(o,r)}}else r=this.createTile_(t,e,i,n,s,a),this.tileCache.set(o,r);return r}setRenderReprojectionEdges(t){if(this.renderReprojectionEdges_!=t){this.renderReprojectionEdges_=t;for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear();this.changed()}}setTileGridForProjection(t,e){const i=Le(t);if(i){const t=D(i);t in this.tileGridForProjection||(this.tileGridForProjection[t]=e)}}clear(){super.clear();for(const t in this.tileCacheForProjection)this.tileCacheForProjection[t].clear()}}function wl(t,e){t.getImage().src=e}var Rl=Sl;class Tl extends Rl{constructor(t){t=t||{};const e=void 0!==t.projection?t.projection:"EPSG:3857",i=void 0!==t.tileGrid?t.tileGrid:cl({extent:gl(e),maxResolution:t.maxResolution,maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:t.tileSize});super({attributions:t.attributions,cacheSize:t.cacheSize,crossOrigin:t.crossOrigin,interpolate:t.interpolate,opaque:t.opaque,projection:e,reprojectionErrorThreshold:t.reprojectionErrorThreshold,tileGrid:i,tileLoadFunction:t.tileLoadFunction,tilePixelRatio:t.tilePixelRatio,tileUrlFunction:t.tileUrlFunction,url:t.url,urls:t.urls,wrapX:void 0===t.wrapX||t.wrapX,transition:t.transition,attributionsCollapsible:t.attributionsCollapsible,zDirection:t.zDirection}),this.gutter_=void 0!==t.gutter?t.gutter:0}getGutter(){return this.gutter_}}var Il=Tl;class Ml extends N{constructor(t){if(super(),this.on,this.once,this.un,this.id_=void 0,this.geometryName_="geometry",this.style_=null,this.styleFunction_=void 0,this.geometryChangeKey_=null,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),t)if("function"===typeof t.getSimplifiedGeometry){const e=t;this.setGeometry(e)}else{const e=t;this.setProperties(e)}}clone(){const t=new Ml(this.hasProperties()?this.getProperties():null);t.setGeometryName(this.getGeometryName());const e=this.getGeometry();e&&t.setGeometry(e.clone());const i=this.getStyle();return i&&t.setStyle(i),t}getGeometry(){return this.get(this.geometryName_)}getId(){return this.id_}getGeometryName(){return this.geometryName_}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}handleGeometryChange_(){this.changed()}handleGeometryChanged_(){this.geometryChangeKey_&&(M(this.geometryChangeKey_),this.geometryChangeKey_=null);const t=this.getGeometry();t&&(this.geometryChangeKey_=T(t,R.CHANGE,this.handleGeometryChange_,this)),this.changed()}setGeometry(t){this.set(this.geometryName_,t)}setStyle(t){this.style_=t,this.styleFunction_=t?Ll(t):void 0,this.changed()}setId(t){this.id_=t,this.changed()}setGeometryName(t){this.removeChangeListener(this.geometryName_,this.handleGeometryChanged_),this.geometryName_=t,this.addChangeListener(this.geometryName_,this.handleGeometryChanged_),this.handleGeometryChanged_()}}function Ll(t){if("function"===typeof t)return t;let e;if(Array.isArray(t))e=t;else{W("function"===typeof t.getZIndex,"Expected an `ol/style/Style` or an array of `ol/style/Style.js`");const i=t;e=[i]}return function(){return e}}var bl=Ml;class Al extends l{constructor(t){super(),this.map_=t}dispatchRenderEvent(t,e){O()}calculateMatrices2D(t){const e=t.viewState,i=t.coordinateToPixelTransform,n=t.pixelToCoordinateTransform;Si(i,t.size[0]/2,t.size[1]/2,1/e.resolution,-1/e.resolution,-e.rotation,-e.center[0],-e.center[1]),wi(n,i)}forEachFeatureAtCoordinate(t,e,i,n,s,r,o,a){let h;const l=e.viewState;function c(t,e,i,n){return s.call(r,e,t?i:null,n)}const u=l.projection,d=pe(t.slice(),u),g=[[0,0]];if(u.canWrapX()&&n){const t=u.getExtent(),e=se(t);g.push([-e,0],[e,0])}const _=e.layerStatesArray,f=_.length,p=[],m=[];for(let v=0;v=0;--n){const s=_[n],r=s.layer;if(r.hasRenderer()&&Pn(s,l)&&o.call(a,r)){const n=r.getRenderer(),o=r.getSource();if(n&&o){const r=o.getWrapX()?d:t,a=c.bind(null,s.managed);m[0]=r[0]+g[v][0],m[1]=r[1]+g[v][1],h=n.forEachFeatureAtCoordinate(m,e,i,a,p)}if(h)return h}}if(0===p.length)return;const y=1/p.length;return p.forEach(((t,e)=>t.distanceSq+=e*y)),p.sort(((t,e)=>t.distanceSq-e.distanceSq)),p.some((t=>h=t.callback(t.feature,t.layer,t.geometry))),h}hasFeatureAtCoordinate(t,e,i,n,s,r){const o=this.forEachFeatureAtCoordinate(t,e,i,n,m,this,s,r);return void 0!==o}getMap(){return this.map_}renderFrame(t){O()}flushDeclutterItems(t){}scheduleExpireIconCache(t){Br.canExpireCache()&&t.postRenderFunctions.push(Ol)}}function Ol(t,e){Br.expire()}var Pl=Al;class Dl extends Pl{constructor(t){super(t),this.fontChangeListenerKey_=T(fr,a.PROPERTYCHANGE,t.redrawText.bind(t)),this.element_=document.createElement("div");const e=this.element_.style;e.position="absolute",e.width="100%",e.height="100%",e.zIndex="0",this.element_.className=Js+" ol-layers";const i=t.getViewport();i.insertBefore(this.element_,i.firstChild||null),this.children_=[],this.renderedVisible_=!0,this.declutterLayers_=[]}dispatchRenderEvent(t,e){const i=this.getMap();if(i.hasListener(t)){const n=new Yn(t,void 0,e);i.dispatchEvent(n)}}disposeInternal(){M(this.fontChangeListenerKey_),this.element_.parentNode.removeChild(this.element_),super.disposeInternal()}renderFrame(t){if(!t)return void(this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1));this.calculateMatrices2D(t),this.dispatchRenderEvent($.PRECOMPOSE,t);const e=t.layerStatesArray.sort((function(t,e){return t.zIndex-e.zIndex})),i=t.viewState;this.children_.length=0;const n=this.declutterLayers_;n.length=0;let s=null;for(let r=0,o=e.length;r=0;--i)e[i].renderDeclutter(t);e.length=0}}var Fl=Dl;class kl extends o{constructor(t,e){super(t),this.layer=e}}const Nl={LAYERS:"layers"};class Gl extends J{constructor(t){t=t||{};const e=Object.assign({},t);delete e.layers;let i=t.layers;super(e),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(Nl.LAYERS,this.handleLayersChanged_),i?Array.isArray(i)?i=new Oh(i.slice(),{unique:!0}):W("function"===typeof i.getArray,"Expected `layers` to be an array or a `Collection`"):i=new Oh(void 0,{unique:!0}),this.setLayers(i)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(M),this.layersListenerKeys_.length=0;const t=this.getLayers();this.layersListenerKeys_.push(T(t,Mh.ADD,this.handleLayersAdd_,this),T(t,Mh.REMOVE,this.handleLayersRemove_,this));for(const i in this.listenerKeys_)this.listenerKeys_[i].forEach(M);E(this.listenerKeys_);const e=t.getArray();for(let i=0,n=e.length;i{this.clickTimeoutId_=void 0;const e=new Bl(Kl.SINGLECLICK,this.map_,t);this.dispatchEvent(e)}),250)}updateActivePointers_(t){const e=t,i=e.pointerId;if(e.type==Kl.POINTERUP||e.type==Kl.POINTERCANCEL){delete this.trackedTouches_[i];for(const t in this.trackedTouches_)if(this.trackedTouches_[t].target!==e.target){delete this.trackedTouches_[t];break}}else e.type!=Kl.POINTERDOWN&&e.type!=Kl.POINTERMOVE||(this.trackedTouches_[i]=e);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(t){this.updateActivePointers_(t);const e=new Bl(Kl.POINTERUP,this.map_,t,void 0,void 0,this.activePointers_);this.dispatchEvent(e),this.emulateClicks_&&!e.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(t)&&this.emulateClick_(this.down_),0===this.activePointers_.length&&(this.dragListenerKeys_.forEach(M),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(t){return 0===t.button}handlePointerDown_(t){this.emulateClicks_=0===this.activePointers_.length,this.updateActivePointers_(t);const e=new Bl(Kl.POINTERDOWN,this.map_,t,void 0,void 0,this.activePointers_);if(this.dispatchEvent(e),this.down_=new PointerEvent(t.type,t),Object.defineProperty(this.down_,"target",{writable:!1,value:t.target}),0===this.dragListenerKeys_.length){const t=this.map_.getOwnerDocument();this.dragListenerKeys_.push(T(t,Kl.POINTERMOVE,this.handlePointerMove_,this),T(t,Kl.POINTERUP,this.handlePointerUp_,this),T(this.element_,Kl.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==t&&this.dragListenerKeys_.push(T(this.element_.getRootNode(),Kl.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(t){if(this.isMoving_(t)){this.updateActivePointers_(t),this.dragging_=!0;const e=new Bl(Kl.POINTERDRAG,this.map_,t,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(e)}}relayMoveEvent_(t){this.originalPointerMoveEvent_=t;const e=!(!this.down_||!this.isMoving_(t));this.dispatchEvent(new Bl(Kl.POINTERMOVE,this.map_,t,e))}handleTouchMove_(t){const e=this.originalPointerMoveEvent_;e&&!e.defaultPrevented||"boolean"===typeof t.cancelable&&!0!==t.cancelable||t.preventDefault()}isMoving_(t){return this.dragging_||Math.abs(t.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(t.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(M(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(R.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(M(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(M),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}}var Zl=jl,Ul={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend",LOADSTART:"loadstart",LOADEND:"loadend"},Hl={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"};const ql=1/0;class Jl{constructor(t,e){this.priorityFunction_=t,this.keyFunction_=e,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,E(this.queuedElements_)}dequeue(){const t=this.elements_,e=this.priorities_,i=t[0];1==t.length?(t.length=0,e.length=0):(t[0]=t.pop(),e[0]=e.pop(),this.siftUp_(0));const n=this.keyFunction_(i);return delete this.queuedElements_[n],i}enqueue(t){W(!(this.keyFunction_(t)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");const e=this.priorityFunction_(t);return e!=ql&&(this.elements_.push(t),this.priorities_.push(e),this.queuedElements_[this.keyFunction_(t)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(t){return 2*t+1}getRightChildIndex_(t){return 2*t+2}getParentIndex_(t){return t-1>>1}heapify_(){let t;for(t=(this.elements_.length>>1)-1;t>=0;t--)this.siftUp_(t)}isEmpty(){return 0===this.elements_.length}isKeyQueued(t){return t in this.queuedElements_}isQueued(t){return this.isKeyQueued(this.keyFunction_(t))}siftUp_(t){const e=this.elements_,i=this.priorities_,n=e.length,s=e[t],r=i[t],o=t;while(t>1){const s=this.getLeftChildIndex_(t),r=this.getRightChildIndex_(t),o=rt){const t=this.getParentIndex_(e);if(!(n[t]>r))break;i[e]=i[t],n[e]=n[t],e=t}i[e]=s,n[e]=r}reprioritize(){const t=this.priorityFunction_,e=this.elements_,i=this.priorities_;let n=0;const s=e.length;let r,o,a;for(o=0;o0)n=this.dequeue()[0],s=n.getKey(),i=n.getState(),i!==us.IDLE||s in this.tilesLoadingKeys_||(this.tilesLoadingKeys_[s]=!0,++this.tilesLoading_,++r,n.load())}}var tc=Ql;function ec(t,e,i,n,s){if(!t||!(i in t.wantedTiles))return ql;if(!t.wantedTiles[i][e.getKey()])return ql;const r=t.viewState.center,o=n[0]-r[0],a=n[1]-r[1];return 65536*Math.log(s)+Math.sqrt(o*o+a*a)/s}class ic extends N{constructor(t){super();const e=t.element;!e||t.target||e.style.pointerEvents||(e.style.pointerEvents="auto"),this.element=e||null,this.target_=null,this.map_=null,this.listenerKeys=[],t.render&&(this.render=t.render),t.target&&this.setTarget(t.target)}disposeInternal(){ns(this.element),super.disposeInternal()}getMap(){return this.map_}setMap(t){this.map_&&ns(this.element);for(let e=0,i=this.listenerKeys.length;ee.getAttributions(t))))),i=!this.getMap().getAllLayers().some((t=>t.getSource()&&!1===t.getSource().getAttributionsCollapsible()));return this.overrideCollapsible_||this.setCollapsible(i),e}updateElement_(t){if(!t)return void(this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1));const e=this.collectSourceAttributions_(t),i=e.length>0;if(this.renderedVisible_!=i&&(this.element.style.display=i?"":"none",this.renderedVisible_=i),!f(e,this.renderedAttributions_)){ss(this.ulElement_);for(let t=0,i=e.length;t0&&i%(2*Math.PI)!==0?e.animate({rotation:0,duration:this.duration_,easing:ri}):e.setRotation(0))}render(t){const e=t.frameState;if(!e)return;const i=e.viewState.rotation;if(i!=this.rotation_){const t="rotate("+i+"rad)";if(this.autoHide_){const t=this.element.classList.contains(Hs);t||0!==i?t&&0!==i&&this.element.classList.remove(Hs):this.element.classList.add(Hs)}this.label_.style.transform=t}this.rotation_=i}}var ac=oc;class hc extends nc{constructor(t){t=t||{},super({element:document.createElement("div"),target:t.target});const e=void 0!==t.className?t.className:"ol-zoom",i=void 0!==t.delta?t.delta:1,n=void 0!==t.zoomInClassName?t.zoomInClassName:e+"-in",s=void 0!==t.zoomOutClassName?t.zoomOutClassName:e+"-out",r=void 0!==t.zoomInLabel?t.zoomInLabel:"+",o=void 0!==t.zoomOutLabel?t.zoomOutLabel:"–",a=void 0!==t.zoomInTipLabel?t.zoomInTipLabel:"Zoom in",h=void 0!==t.zoomOutTipLabel?t.zoomOutTipLabel:"Zoom out",l=document.createElement("button");l.className=n,l.setAttribute("type","button"),l.title=a,l.appendChild("string"===typeof r?document.createTextNode(r):r),l.addEventListener(R.CLICK,this.handleClick_.bind(this,i),!1);const c=document.createElement("button");c.className=s,c.setAttribute("type","button"),c.title=h,c.appendChild("string"===typeof o?document.createTextNode(o):o),c.addEventListener(R.CLICK,this.handleClick_.bind(this,-i),!1);const u=e+" "+Js+" "+$s,d=this.element;d.className=u,d.appendChild(l),d.appendChild(c),this.duration_=void 0!==t.duration?t.duration:250}handleClick_(t,e){e.preventDefault(),this.zoomByDelta_(t)}zoomByDelta_(t){const e=this.getMap(),i=e.getView();if(!i)return;const n=i.getZoom();if(void 0!==n){const e=i.getConstrainedZoom(n+t);this.duration_>0?(i.getAnimating()&&i.cancelAnimations(),i.animate({zoom:e,duration:this.duration_,easing:ri})):i.setZoom(e)}}}var lc=hc;function cc(t){t=t||{};const e=new Oh,i=void 0===t.zoom||t.zoom;i&&e.push(new lc(t.zoomOptions));const n=void 0===t.rotate||t.rotate;n&&e.push(new ac(t.rotateOptions));const s=void 0===t.attribution||t.attribution;return s&&e.push(new rc(t.attributionOptions)),e}var uc={ACTIVE:"active"};class dc extends N{constructor(t){super(),this.on,this.once,this.un,t&&t.handleEvent&&(this.handleEvent=t.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(uc.ACTIVE)}getMap(){return this.map_}handleEvent(t){return!0}setActive(t){this.set(uc.ACTIVE,t)}setMap(t){this.map_=t}}function gc(t,e,i){const n=t.getCenterInternal();if(n){const s=[n[0]+e[0],n[1]+e[1]];t.animateInternal({duration:void 0!==i?i:250,easing:ai,center:t.getConstrainedCenter(s)})}}function _c(t,e,i,n){const s=t.getZoom();if(void 0===s)return;const r=t.getConstrainedZoom(s+e),o=t.getResolutionForZoom(r);t.getAnimating()&&t.cancelAnimations(),t.animate({resolution:o,anchor:i,duration:void 0!==n?n:250,easing:ri})}var fc=dc;class pc extends fc{constructor(t){super(),t=t||{},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:250}handleEvent(t){let e=!1;if(t.type==Kl.DBLCLICK){const i=t.originalEvent,n=t.map,s=t.coordinate,r=i.shiftKey?-this.delta_:this.delta_,o=n.getView();_c(o,r,s,this.duration_),i.preventDefault(),e=!0}return!e}}var mc=pc;class yc extends fc{constructor(t){t=t||{},super(t),t.handleDownEvent&&(this.handleDownEvent=t.handleDownEvent),t.handleDragEvent&&(this.handleDragEvent=t.handleDragEvent),t.handleMoveEvent&&(this.handleMoveEvent=t.handleMoveEvent),t.handleUpEvent&&(this.handleUpEvent=t.handleUpEvent),t.stopDown&&(this.stopDown=t.stopDown),this.handlingDownUpSequence=!1,this.targetPointers=[]}getPointerCount(){return this.targetPointers.length}handleDownEvent(t){return!1}handleDragEvent(t){}handleEvent(t){if(!t.originalEvent)return!0;let e=!1;if(this.updateTrackedPointers_(t),this.handlingDownUpSequence){if(t.type==Kl.POINTERDRAG)this.handleDragEvent(t),t.originalEvent.preventDefault();else if(t.type==Kl.POINTERUP){const e=this.handleUpEvent(t);this.handlingDownUpSequence=e&&this.targetPointers.length>0}}else if(t.type==Kl.POINTERDOWN){const i=this.handleDownEvent(t);this.handlingDownUpSequence=i,e=this.stopDown(i)}else t.type==Kl.POINTERMOVE&&this.handleMoveEvent(t);return!e}handleMoveEvent(t){}handleUpEvent(t){return!1}stopDown(t){return t}updateTrackedPointers_(t){t.activePointers&&(this.targetPointers=t.activePointers)}}function vc(t){const e=t.length;let i=0,n=0;for(let s=0;s0&&this.condition_(t)){const e=t.map,i=e.getView();return this.lastCentroid=null,i.getAnimating()&&i.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}}var Dc=Pc;class Fc extends xc{constructor(t){t=t||{},super({stopDown:y}),this.condition_=t.condition?t.condition:Cc,this.lastAngle_=void 0,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){if(!Ac(t))return;const e=t.map,i=e.getView();if(i.getConstraints().rotation===ti)return;const n=e.getSize(),s=t.pixel,r=Math.atan2(n[1]/2-s[1],s[0]-n[0]/2);if(void 0!==this.lastAngle_){const t=r-this.lastAngle_;i.adjustRotationInternal(-t)}this.lastAngle_=r}handleUpEvent(t){if(!Ac(t))return!0;const e=t.map,i=e.getView();return i.endInteraction(this.duration_),!1}handleDownEvent(t){if(!Ac(t))return!1;if(Tc(t)&&this.condition_(t)){const e=t.map;return e.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}}var kc=Fc;class Nc extends l{constructor(t){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+t,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){const t=this.startPixel_,e=this.endPixel_,i="px",n=this.element_.style;n.left=Math.min(t[0],e[0])+i,n.top=Math.min(t[1],e[1])+i,n.width=Math.abs(e[0]-t[0])+i,n.height=Math.abs(e[1]-t[1])+i}setMap(t){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);const t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=t,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(t,e){this.startPixel_=t,this.endPixel_=e,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){const t=this.startPixel_,e=this.endPixel_,i=[t,[t[0],e[1]],e,[e[0],t[1]]],n=i.map(this.map_.getCoordinateFromPixelInternal,this.map_);n[4]=n[0].slice(),this.geometry_?this.geometry_.setCoordinates([n]):this.geometry_=new En([n])}getGeometry(){return this.geometry_}}var Gc=Nc;const Wc={BOXSTART:"boxstart",BOXDRAG:"boxdrag",BOXEND:"boxend",BOXCANCEL:"boxcancel"};class zc extends o{constructor(t,e,i){super(t),this.coordinate=e,this.mapBrowserEvent=i}}class Xc extends xc{constructor(t){super(),this.on,this.once,this.un,t=t||{},this.box_=new Gc(t.className||"ol-dragbox"),this.minArea_=void 0!==t.minArea?t.minArea:64,t.onBoxEnd&&(this.onBoxEnd=t.onBoxEnd),this.startPixel_=null,this.condition_=t.condition?t.condition:Tc,this.boxEndCondition_=t.boxEndCondition?t.boxEndCondition:this.defaultBoxEndCondition}defaultBoxEndCondition(t,e,i){const n=i[0]-e[0],s=i[1]-e[1];return n*n+s*s>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(t){this.box_.setPixels(this.startPixel_,t.pixel),this.dispatchEvent(new zc(Wc.BOXDRAG,t.coordinate,t))}handleUpEvent(t){this.box_.setMap(null);const e=this.boxEndCondition_(t,this.startPixel_,t.pixel);return e&&this.onBoxEnd(t),this.dispatchEvent(new zc(e?Wc.BOXEND:Wc.BOXCANCEL,t.coordinate,t)),!1}handleDownEvent(t){return!!this.condition_(t)&&(this.startPixel_=t.pixel,this.box_.setMap(t.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new zc(Wc.BOXSTART,t.coordinate,t)),!0)}onBoxEnd(t){}}var Yc=Xc;class Bc extends Yc{constructor(t){t=t||{};const e=t.condition?t.condition:Lc;super({condition:e,className:t.className||"ol-dragzoom",minArea:t.minArea}),this.duration_=void 0!==t.duration?t.duration:200,this.out_=void 0!==t.out&&t.out}onBoxEnd(t){const e=this.getMap(),i=e.getView();let n=this.getGeometry();if(this.out_){const t=i.rotatedExtentForGeometry(n),e=i.getResolutionForExtentInternal(t),s=i.getResolution()/e;n=n.clone(),n.scale(s*s)}i.fitInternal(n,{duration:this.duration_,easing:ri})}}var Kc=Bc,Vc={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"};class jc extends fc{constructor(t){super(),t=t||{},this.defaultCondition_=function(t){return Ic(t)&&bc(t)},this.condition_=void 0!==t.condition?t.condition:this.defaultCondition_,this.duration_=void 0!==t.duration?t.duration:100,this.pixelDelta_=void 0!==t.pixelDelta?t.pixelDelta:128}handleEvent(t){let e=!1;if(t.type==R.KEYDOWN){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&(n==Vc.DOWN||n==Vc.LEFT||n==Vc.RIGHT||n==Vc.UP)){const s=t.map,r=s.getView(),o=r.getResolution()*this.pixelDelta_;let a=0,h=0;n==Vc.DOWN?h=-o:n==Vc.LEFT?a=-o:n==Vc.RIGHT?a=o:h=o;const l=[a,h];_e(l,r.getRotation()),gc(r,l,this.duration_),i.preventDefault(),e=!0}}return!e}}var Zc=jc;class Uc extends fc{constructor(t){super(),t=t||{},this.condition_=t.condition?t.condition:function(t){return!Mc(t)&&bc(t)},this.delta_=t.delta?t.delta:1,this.duration_=void 0!==t.duration?t.duration:100}handleEvent(t){let e=!1;if(t.type==R.KEYDOWN||t.type==R.KEYPRESS){const i=t.originalEvent,n=i.key;if(this.condition_(t)&&("+"===n||"-"===n)){const s=t.map,r="+"===n?this.delta_:-this.delta_,o=s.getView();_c(o,r,void 0,this.duration_),i.preventDefault(),e=!0}}return!e}}var Hc=Uc;class qc{constructor(t,e,i){this.decay_=t,this.minVelocity_=e,this.delay_=i,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(t,e){this.points_.push(t,e,Date.now())}end(){if(this.points_.length<6)return!1;const t=Date.now()-this.delay_,e=this.points_.length-3;if(this.points_[e+2]0&&this.points_[i+2]>t)i-=3;const n=this.points_[e+2]-this.points_[i+2];if(n<1e3/60)return!1;const s=this.points_[e]-this.points_[i],r=this.points_[e+1]-this.points_[i+1];return this.angle_=Math.atan2(r,s),this.initialVelocity_=Math.sqrt(s*s+r*r)/n,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}}var Jc=qc;class $c extends fc{constructor(t){t=t||{},super(t),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=void 0!==t.maxDelta?t.maxDelta:1,this.duration_=void 0!==t.duration?t.duration:250,this.timeout_=void 0!==t.timeout?t.timeout:80,this.useAnchor_=void 0===t.useAnchor||t.useAnchor,this.constrainResolution_=void 0!==t.constrainResolution&&t.constrainResolution;const e=t.condition?t.condition:Rc;this.condition_=t.onFocusOnly?Ec(wc,e):e,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;const t=this.getMap();if(!t)return;const e=t.getView();e.endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_)}handleEvent(t){if(!this.condition_(t))return!0;const e=t.type;if(e!==R.WHEEL)return!0;const i=t.map,n=t.originalEvent;let s;if(n.preventDefault(),this.useAnchor_&&(this.lastAnchor_=t.coordinate),t.type==R.WHEEL&&(s=n.deltaY,li&&n.deltaMode===WheelEvent.DOM_DELTA_PIXEL&&(s/=gi),n.deltaMode===WheelEvent.DOM_DELTA_LINE&&(s*=40)),0===s)return!1;this.lastDelta_=s;const r=Date.now();void 0===this.startTime_&&(this.startTime_=r),(!this.mode_||r-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(s)<4?"trackpad":"wheel");const o=i.getView();if("trackpad"===this.mode_&&!o.getConstrainResolution()&&!this.constrainResolution_)return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(o.getAnimating()&&o.cancelAnimations(),o.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),o.adjustZoom(-s/this.deltaPerZoom_,this.lastAnchor_),this.startTime_=r,!1;this.totalDelta_+=s;const a=Math.max(this.timeout_-(r-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,i),a),!1}handleWheelZoom_(t){const e=t.getView();e.getAnimating()&&e.cancelAnimations();let i=-z(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(e.getConstrainResolution()||this.constrainResolution_)&&(i=i?i>0?1:-1:0),_c(e,i,this.lastAnchor_,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(t){this.useAnchor_=t,t||(this.lastAnchor_=null)}}var Qc=$c;class tu extends xc{constructor(t){t=t||{};const e=t;e.stopDown||(e.stopDown=y),super(e),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=void 0!==t.threshold?t.threshold:.3,this.duration_=void 0!==t.duration?t.duration:250}handleDragEvent(t){let e=0;const i=this.targetPointers[0],n=this.targetPointers[1],s=Math.atan2(n.clientY-i.clientY,n.clientX-i.clientX);if(void 0!==this.lastAngle_){const t=s-this.lastAngle_;this.rotationDelta_+=t,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),e=t}this.lastAngle_=s;const r=t.map,o=r.getView();o.getConstraints().rotation!==ti&&(this.anchor_=r.getCoordinateFromPixelInternal(r.getEventPixel(vc(this.targetPointers))),this.rotating_&&(r.render(),o.adjustRotationInternal(e,this.anchor_)))}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map,i=e.getView();return i.endInteraction(this.duration_),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}}var eu=tu;class iu extends xc{constructor(t){t=t||{};const e=t;e.stopDown||(e.stopDown=y),super(e),this.anchor_=null,this.duration_=void 0!==t.duration?t.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(t){let e=1;const i=this.targetPointers[0],n=this.targetPointers[1],s=i.clientX-n.clientX,r=i.clientY-n.clientY,o=Math.sqrt(s*s+r*r);void 0!==this.lastDistance_&&(e=this.lastDistance_/o),this.lastDistance_=o;const a=t.map,h=a.getView();1!=e&&(this.lastScaleDelta_=e),this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(vc(this.targetPointers))),a.render(),h.adjustResolutionInternal(e,this.anchor_)}handleUpEvent(t){if(this.targetPointers.length<2){const e=t.map,i=e.getView(),n=this.lastScaleDelta_>1?1:-1;return i.endInteraction(this.duration_,n),!1}return!0}handleDownEvent(t){if(this.targetPointers.length>=2){const e=t.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||e.getView().beginInteraction(),!0}return!1}}var nu=iu;function su(t){t=t||{};const e=new Oh,i=new Jc(-.005,.05,100),n=void 0===t.altShiftDragRotate||t.altShiftDragRotate;n&&e.push(new kc);const s=void 0===t.doubleClickZoom||t.doubleClickZoom;s&&e.push(new mc({delta:t.zoomDelta,duration:t.zoomDuration}));const r=void 0===t.dragPan||t.dragPan;r&&e.push(new Dc({onFocusOnly:t.onFocusOnly,kinetic:i}));const o=void 0===t.pinchRotate||t.pinchRotate;o&&e.push(new eu);const a=void 0===t.pinchZoom||t.pinchZoom;a&&e.push(new nu({duration:t.zoomDuration}));const h=void 0===t.keyboard||t.keyboard;h&&(e.push(new Zc),e.push(new Hc({delta:t.zoomDelta,duration:t.zoomDuration})));const l=void 0===t.mouseWheelZoom||t.mouseWheelZoom;l&&e.push(new Qc({onFocusOnly:t.onFocusOnly,duration:t.zoomDuration}));const c=void 0===t.shiftDragZoom||t.shiftDragZoom;return c&&e.push(new Kc({duration:t.zoomDuration})),e}function ru(t){t instanceof Dn?t.setMapInternal(null):t instanceof Wl&&t.getLayers().forEach(ru)}function ou(t,e){if(t instanceof Dn)t.setMapInternal(e);else if(t instanceof Wl){const i=t.getLayers().getArray();for(let t=0,n=i.length;tthis.updateSize())),this.controls=e.controls||cc(),this.interactions=e.interactions||su({onFocusOnly:!0}),this.overlays_=e.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new tc(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Hl.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(Hl.VIEW,this.handleViewChanged_),this.addChangeListener(Hl.SIZE,this.handleSizeChanged_),this.addChangeListener(Hl.TARGET,this.handleTargetChanged_),this.setProperties(e.values);const i=this;!t.view||t.view instanceof An||t.view.then((function(t){i.setView(new An(t))})),this.controls.addEventListener(Mh.ADD,(t=>{t.element.setMap(this)})),this.controls.addEventListener(Mh.REMOVE,(t=>{t.element.setMap(null)})),this.interactions.addEventListener(Mh.ADD,(t=>{t.element.setMap(this)})),this.interactions.addEventListener(Mh.REMOVE,(t=>{t.element.setMap(null)})),this.overlays_.addEventListener(Mh.ADD,(t=>{this.addOverlayInternal_(t.element)})),this.overlays_.addEventListener(Mh.REMOVE,(t=>{const e=t.element.getId();void 0!==e&&delete this.overlayIdIndex_[e.toString()],t.element.setMap(null)})),this.controls.forEach((t=>{t.setMap(this)})),this.interactions.forEach((t=>{t.setMap(this)})),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(t){this.getControls().push(t)}addInteraction(t){this.getInteractions().push(t)}addLayer(t){const e=this.getLayerGroup().getLayers();e.push(t)}handleLayerAdd_(t){ou(t.layer,this)}addOverlay(t){this.getOverlays().push(t)}addOverlayInternal_(t){const e=t.getId();void 0!==e&&(this.overlayIdIndex_[e.toString()]=t),t.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(t,e,i){if(!this.frameState_||!this.renderer_)return;const n=this.getCoordinateFromPixelInternal(t);i=void 0!==i?i:{};const s=void 0!==i.hitTolerance?i.hitTolerance:0,r=void 0!==i.layerFilter?i.layerFilter:m,o=!1!==i.checkWrapped;return this.renderer_.forEachFeatureAtCoordinate(n,this.frameState_,s,o,e,null,r,null)}getFeaturesAtPixel(t,e){const i=[];return this.forEachFeatureAtPixel(t,(function(t){i.push(t)}),e),i}getAllLayers(){const t=[];function e(i){i.forEach((function(i){i instanceof Wl?e(i.getLayers()):t.push(i)}))}return e(this.getLayers()),t}hasFeatureAtPixel(t,e){if(!this.frameState_||!this.renderer_)return!1;const i=this.getCoordinateFromPixelInternal(t);e=void 0!==e?e:{};const n=void 0!==e.layerFilter?e.layerFilter:m,s=void 0!==e.hitTolerance?e.hitTolerance:0,r=!1!==e.checkWrapped;return this.renderer_.hasFeatureAtCoordinate(i,this.frameState_,s,r,n,null)}getEventCoordinate(t){return this.getCoordinateFromPixel(this.getEventPixel(t))}getEventCoordinateInternal(t){return this.getCoordinateFromPixelInternal(this.getEventPixel(t))}getEventPixel(t){const e=this.viewport_,i=e.getBoundingClientRect(),n=this.getSize(),s=i.width/n[0],r=i.height/n[1],o="changedTouches"in t?t.changedTouches[0]:t;return[(o.clientX-i.left)/s,(o.clientY-i.top)/r]}getTarget(){return this.get(Hl.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(t){return Xe(this.getCoordinateFromPixelInternal(t),this.getView().getProjection())}getCoordinateFromPixelInternal(t){const e=this.frameState_;return e?Ei(e.pixelToCoordinateTransform,t.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(t){const e=this.overlayIdIndex_[t.toString()];return void 0!==e?e:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Hl.LAYERGROUP)}setLayers(t){const e=this.getLayerGroup();if(t instanceof Oh)return void e.setLayers(t);const i=e.getLayers();i.clear(),i.extend(t)}getLayers(){const t=this.getLayerGroup().getLayers();return t}getLoadingOrNotReady(){const t=this.getLayerGroup().getLayerStatesArray();for(let e=0,i=t.length;e=0;i--){const n=e[i];if(n.getMap()!==this||!n.getActive()||!this.getTargetElement())continue;const s=n.handleEvent(t);if(!s||t.propagationStopped)break}}}handlePostRender(){const t=this.frameState_,e=this.tileQueue_;if(!e.isEmpty()){let i=this.maxTilesLoading_,n=i;if(t){const e=t.viewHints;if(e[Q.ANIMATING]||e[Q.INTERACTING]){const e=Date.now()-t.time>8;i=e?0:8,n=e?0:2}}e.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()}),0))}setLayerGroup(t){const e=this.getLayerGroup();e&&this.handleLayerRemove_(new kl("removelayer",e)),this.set(Hl.LAYERGROUP,t)}setSize(t){this.set(Hl.SIZE,t)}setTarget(t){this.set(Hl.TARGET,t)}setView(t){if(!t||t instanceof An)return void this.set(Hl.VIEW,t);this.set(Hl.VIEW,new An);const e=this;t.then((function(t){e.setView(new An(t))}))}updateSize(){const t=this.getTargetElement();let e;if(t){const i=getComputedStyle(t),n=t.offsetWidth-parseFloat(i["borderLeftWidth"])-parseFloat(i["paddingLeft"])-parseFloat(i["paddingRight"])-parseFloat(i["borderRightWidth"]),s=t.offsetHeight-parseFloat(i["borderTopWidth"])-parseFloat(i["paddingTop"])-parseFloat(i["paddingBottom"])-parseFloat(i["borderBottomWidth"]);isNaN(n)||isNaN(s)||(e=[n,s],!Gs(e)&&(t.offsetWidth||t.offsetHeight||t.getClientRects().length)&&Ce("No map visible because the map container's width or height are 0."))}const i=this.getSize();!e||i&&f(e,i)||(this.setSize(e),this.updateViewportSize_())}updateViewportSize_(){const t=this.getView();if(t){let e;const i=getComputedStyle(this.viewport_);i.width&&i.height&&(e=[parseInt(i.width,10),parseInt(i.height,10)]),t.setViewportSize(e)}}}function hu(t){let e=null;void 0!==t.keyboardEventTarget&&(e="string"===typeof t.keyboardEventTarget?document.getElementById(t.keyboardEventTarget):t.keyboardEventTarget);const i={},n=t.layers&&"function"===typeof t.layers.getLayers?t.layers:new Wl({layers:t.layers});let s,r,o;return i[Hl.LAYERGROUP]=n,i[Hl.TARGET]=t.target,i[Hl.VIEW]=t.view instanceof An?t.view:new An,void 0!==t.controls&&(Array.isArray(t.controls)?s=new Oh(t.controls.slice()):(W("function"===typeof t.controls.getArray,"Expected `controls` to be an array or an `ol/Collection.js`"),s=t.controls)),void 0!==t.interactions&&(Array.isArray(t.interactions)?r=new Oh(t.interactions.slice()):(W("function"===typeof t.interactions.getArray,"Expected `interactions` to be an array or an `ol/Collection.js`"),r=t.interactions)),void 0!==t.overlays?Array.isArray(t.overlays)?o=new Oh(t.overlays.slice()):(W("function"===typeof t.overlays.getArray,"Expected `overlays` to be an array or an `ol/Collection.js`"),o=t.overlays):o=new Oh,{controls:s,interactions:r,keyboardEventTarget:e,overlays:o,values:i}}var lu=au;const cu={ELEMENT:"element",MAP:"map",OFFSET:"offset",POSITION:"position",POSITIONING:"positioning"};class uu extends N{constructor(t){super(),this.on,this.once,this.un,this.options=t,this.id=t.id,this.insertFirst=void 0===t.insertFirst||t.insertFirst,this.stopEvent=void 0===t.stopEvent||t.stopEvent,this.element=document.createElement("div"),this.element.className=void 0!==t.className?t.className:"ol-overlay-container "+qs,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=!0===t.autoPan?{}:t.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(cu.ELEMENT,this.handleElementChanged),this.addChangeListener(cu.MAP,this.handleMapChanged),this.addChangeListener(cu.OFFSET,this.handleOffsetChanged),this.addChangeListener(cu.POSITION,this.handlePositionChanged),this.addChangeListener(cu.POSITIONING,this.handlePositioningChanged),void 0!==t.element&&this.setElement(t.element),this.setOffset(void 0!==t.offset?t.offset:[0,0]),this.setPositioning(t.positioning||"top-left"),void 0!==t.position&&this.setPosition(t.position)}getElement(){return this.get(cu.ELEMENT)}getId(){return this.id}getMap(){return this.get(cu.MAP)||null}getOffset(){return this.get(cu.OFFSET)}getPosition(){return this.get(cu.POSITION)}getPositioning(){return this.get(cu.POSITIONING)}handleElementChanged(){ss(this.element);const t=this.getElement();t&&this.element.appendChild(t)}handleMapChanged(){this.mapPostrenderListenerKey&&(ns(this.element),M(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);const t=this.getMap();if(t){this.mapPostrenderListenerKey=T(t,Ul.POSTRENDER,this.render,this),this.updatePixelPosition();const e=this.stopEvent?t.getOverlayContainerStopEvent():t.getOverlayContainer();this.insertFirst?e.insertBefore(this.element,e.childNodes[0]||null):e.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(t){this.set(cu.ELEMENT,t)}setMap(t){this.set(cu.MAP,t)}setOffset(t){this.set(cu.OFFSET,t)}setPosition(t){this.set(cu.POSITION,t)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(t){const e=this.getMap();if(!e||!e.getTargetElement()||!this.get(cu.POSITION))return;const i=this.getRect(e.getTargetElement(),e.getSize()),n=this.getElement(),s=this.getRect(n,[ts(n),es(n)]);t=t||{};const r=void 0===t.margin?20:t.margin;if(!Pt(i,s)){const n=s[0]-i[0],o=i[2]-s[2],a=s[1]-i[1],h=i[3]-s[3],l=[0,0];if(n<0?l[0]=n-r:o<0&&(l[0]=Math.abs(o)+r),a<0?l[1]=a-r:h<0&&(l[1]=Math.abs(h)+r),0!==l[0]||0!==l[1]){const i=e.getView().getCenterInternal(),n=e.getPixelFromCoordinateInternal(i);if(!n)return;const s=[n[0]+l[0],n[1]+l[1]],r=t.animation||{};e.getView().animateInternal({center:e.getCoordinateFromPixelInternal(s),duration:r.duration,easing:r.easing})}}}getRect(t,e){const i=t.getBoundingClientRect(),n=i.left+window.pageXOffset,s=i.top+window.pageYOffset;return[n,s,n+e[0],s+e[1]]}setPositioning(t){this.set(cu.POSITIONING,t)}setVisible(t){this.rendered.visible!==t&&(this.element.style.display=t?"":"none",this.rendered.visible=t)}updatePixelPosition(){const t=this.getMap(),e=this.getPosition();if(!t||!t.isRendered()||!e)return void this.setVisible(!1);const i=t.getPixelFromCoordinate(e),n=t.getSize();this.updateRenderedPosition(i,n)}updateRenderedPosition(t,e){const i=this.element.style,n=this.getOffset(),s=this.getPositioning();this.setVisible(!0);const r=Math.round(t[0]+n[0])+"px",o=Math.round(t[1]+n[1])+"px";let a="0%",h="0%";"bottom-right"==s||"center-right"==s||"top-right"==s?a="-100%":"bottom-center"!=s&&"center-center"!=s&&"top-center"!=s||(a="-50%"),"bottom-left"==s||"bottom-center"==s||"bottom-right"==s?h="-100%":"center-left"!=s&&"center-center"!=s&&"center-right"!=s||(h="-50%");const l=`translate(${a}, ${h}) translate(${r}, ${o})`;this.rendered.transform_!=l&&(this.rendered.transform_=l,i.transform=l)}getOptions(){return this.options}}var du=uu;function gu(t,e,i,n,s,r,o){let a,h;const l=(i-e)/n;if(1===l)a=e;else if(2===l)a=e,h=s;else if(0!==l){let r=t[e],o=t[e+1],l=0;const u=[0];for(let s=e+n;s1?o:2,r=r||new Array(o);for(let c=0;c>1;sthis.styles[t.get("type")]}),this.map=new lu({target:"map",layers:[new Ks({source:new Il({url:"http://map.geoq.cn/ArcGIS/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}"})})],view:new An({projection:"EPSG:4326",center:[113.948306,22.562039],zoom:16})}),this.map.addLayer(this.vectorLayer)},clickMap(){this.map.on("click",(t=>{this.canAddPoints&&this.addPoints(t.coordinate)}))},addPoints(t){this.coordinate.push(t),console.log(JSON.stringify(this.coordinate)),0==Object.keys(this.pointLayer).length&&(this.pointLayer=new Ih({source:new Vh}),this.map.addLayer(this.pointLayer));const e=new bl({geometry:new an(t)});e.setStyle(new zr({image:new Hr({src:"https://smart-garden-manage.oss-cn-chengdu.aliyuncs.com/shexiangtou.png",scale:.3})})),this.pointLayer.getSource().addFeature(e)},addText(t){const e=document.getElementById("overlay-box"),i=document.createElement("span");i.contentEditable=!0,i.id=t[0];let n=document.createTextNode("摄像头"+t[0].toFixed(2));i.appendChild(n),e.appendChild(i);let s=new du({position:t,element:document.getElementById(t[0]),offset:[-25,30]});this.map.addOverlay(s)},moveFeature(t){let e=t.frameState.time;this.distance=(this.distance+this.speed*(e-this.lastTime)/1e3)%1,this.lastTime=e;const i=this.route.getCoordinateAt(this.distance>1?2-this.distance:this.distance);this.geometryMove.setCoordinates(i);const n=mu(t);n.setStyle(this.styles.featureMove),n.drawGeometry(this.geometryMove),this.map.render()},startAnimation(){this.lastTime=Date.now(),this.vectorLayer.on("postrender",this.moveFeature),this.featureMove.setGeometry(null)},stopAnimation(){this.featureMove.setGeometry(this.geometryMove),this.vectorLayer.un("postrender",this.moveFeature)}}},vu=yu,xu=i(3736),Eu=(0,xu.Z)(vu,n,s,!1,null,null,null),Cu=Eu.exports},5325:function(t,e,i){i(7658),function(e,i){t.exports=i()}(0,(function(){"use strict";function t(t,n,s,r,o){!function t(i,n,s,r,o){for(;r>s;){if(r-s>600){var a=r-s+1,h=n-s+1,l=Math.log(a),c=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*c*(a-c)/a)*(h-a/2<0?-1:1),d=Math.max(s,Math.floor(n-h*c/a+u)),g=Math.min(r,Math.floor(n+(a-h)*c/a+u));t(i,n,d,g,o)}var _=i[n],f=s,p=r;for(e(i,s,n),o(i[r],_)>0&&e(i,s,r);f0;)p--}0===o(i[s],_)?e(i,s,p):e(i,++p,r),p<=n&&(s=p+1),n<=p&&(r=p-1)}}(t,n,s||0,r||t.length-1,o||i)}function e(t,e,i){var n=t[e];t[e]=t[i],t[i]=n}function i(t,e){return te?1:0}var n=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function s(t,e,i){if(!i)return e.indexOf(t);for(var n=0;n=t.minX&&e.maxY>=t.minY}function _(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function f(e,i,n,s,r){for(var o=[i,n];o.length;)if(!((n=o.pop())-(i=o.pop())<=s)){var a=i+Math.ceil((n-i)/s/2)*s;t(e,a,i,n,r),o.push(i,a,a,n)}}return n.prototype.all=function(){return this._all(this.data,[])},n.prototype.search=function(t){var e=this.data,i=[];if(!g(t,e))return i;for(var n=this.toBBox,s=[];e;){for(var r=0;r=0&&s[e].children.length>this._maxEntries;)this._split(s,e),e--;this._adjustParentBBoxes(n,s,e)},n.prototype._split=function(t,e){var i=t[e],n=i.children.length,s=this._minEntries;this._chooseSplitAxis(i,s,n);var o=this._chooseSplitIndex(i,s,n),a=_(i.children.splice(o,i.children.length-o));a.height=i.height,a.leaf=i.leaf,r(i,this.toBBox),r(a,this.toBBox),e?t[e-1].children.push(a):this._splitRoot(i,a)},n.prototype._splitRoot=function(t,e){this.data=_([t,e]),this.data.height=t.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},n.prototype._chooseSplitIndex=function(t,e,i){for(var n,s,r,a,h,l,u,d=1/0,g=1/0,_=e;_<=i-e;_++){var f=o(t,0,_,this.toBBox),p=o(t,_,i,this.toBBox),m=(s=f,r=p,a=void 0,h=void 0,l=void 0,u=void 0,a=Math.max(s.minX,r.minX),h=Math.max(s.minY,r.minY),l=Math.min(s.maxX,r.maxX),u=Math.min(s.maxY,r.maxY),Math.max(0,l-a)*Math.max(0,u-h)),y=c(f)+c(p);m=e;g--){var _=t.children[g];a(h,t.leaf?s(_):_),l+=u(h)}return l},n.prototype._adjustParentBBoxes=function(t,e,i){for(var n=i;n>=0;n--)a(e[n],t)},n.prototype._condense=function(t){for(var e=t.length-1,i=void 0;e>=0;e--)0===t[e].children.length?e>0?(i=t[e-1].children).splice(i.indexOf(t[e]),1):this.clear():r(t[e],this.toBBox)},n}))}}]);
-//# sourceMappingURL=10.bf685dc9.js.map
\ No newline at end of file
diff --git a/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js.map b/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js.map
deleted file mode 100644
index b62e87e..0000000
--- a/hs-im-server/build/hd-glasses-app/dist/js/10.bf685dc9.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"js/10.bf685dc9.js","mappings":"wKAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,YAAY,CAACF,EAAG,MAAM,CAACG,IAAI,MAAMC,YAAY,CAAC,MAAQ,QAAQ,OAAS,SAASF,MAAM,CAAC,GAAK,SAASF,EAAG,MAAM,CAACE,MAAM,CAAC,GAAK,iBAAiBF,EAAG,MAAM,CAACK,YAAY,cAAc,CAACL,EAAG,WAAW,CAACE,MAAM,CAAC,aAAa,IAAI,CAACF,EAAG,gBAAgB,CAACA,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,OAAO,KAAO,WAAWI,GAAG,CAAC,MAAQ,SAASC,GAAQT,EAAIU,cAAa,CAAI,IAAI,CAACV,EAAIW,GAAG,aAAa,GAAGT,EAAG,gBAAgB,CAACA,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,OAAO,KAAO,WAAWI,GAAG,CAAC,MAAQ,SAASC,GAAQT,EAAIU,cAAa,CAAK,IAAI,CAACV,EAAIW,GAAG,aAAa,GAAGT,EAAG,gBAAgB,CAACA,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,OAAO,KAAO,WAAWI,GAAG,CAAC,MAAQR,EAAIY,oBAAoB,CAACZ,EAAIW,GAAG,WAAW,GAAGT,EAAG,gBAAgB,CAACA,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,OAAO,KAAO,WAAWI,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAIa,gBAAgB,IAAI,CAACb,EAAIW,GAAG,cAAc,GAAGT,EAAG,gBAAgB,CAACA,EAAG,aAAa,CAACE,MAAM,CAAC,KAAO,OAAO,KAAO,WAAWI,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOT,EAAIc,eAAe,IAAI,CAACd,EAAIW,GAAG,cAAc,IAAI,GAAGT,EAAG,OAAO,IAC5jC,EACIa,EAAkB,G,QCYtB,MAAMC,EAIJC,WAAAA,CAAYC,GAIVjB,KAAKkB,mBAKLlB,KAAKmB,iBAOLnB,KAAKiB,KAAOA,EAOZjB,KAAKoB,OAAS,IAChB,CAOAC,cAAAA,GACErB,KAAKmB,kBAAmB,CAC1B,CAMAG,eAAAA,GACEtB,KAAKkB,oBAAqB,CAC5B,EAiBF,QCrEA,GAMEK,eAAgB,kBCLlB,MAAMC,EACJR,WAAAA,GAMEhB,KAAKyB,UAAW,CAClB,CAKAC,OAAAA,GACO1B,KAAKyB,WACRzB,KAAKyB,UAAW,EAChBzB,KAAK2B,kBAET,CAMAA,eAAAA,GAAmB,EAGrB,QCtBO,SAASC,EAAaC,EAAUC,EAAQC,GAC7C,IAAIC,EAAKC,EACTF,EAAaA,GAAcG,EAC3B,IAAIC,EAAM,EACNC,EAAOP,EAASQ,OAChBC,GAAQ,EAEZ,MAAOH,EAAMC,EAGXJ,EAAMG,GAAQC,EAAOD,GAAQ,GAC7BF,GAAOF,EAAWF,EAASG,GAAMF,GAE7BG,EAAM,EAERE,EAAMH,EAAM,GAGZI,EAAOJ,EACPM,GAASL,GAKb,OAAOK,EAAQH,GAAOA,CACxB,CASO,SAASD,EAAUK,EAAGC,GAC3B,OAAOD,EAAIC,EAAI,EAAID,EAAIC,GAAK,EAAI,CAClC,CAoCO,SAASC,EAAkBC,EAAKtB,EAAQuB,GAC7C,GAAID,EAAI,IAAMtB,EACZ,OAAO,EAGT,MAAMwB,EAAIF,EAAIL,OACd,GAAIjB,GAAUsB,EAAIE,EAAI,GACpB,OAAOA,EAAI,EAGb,GAAyB,oBAAdD,EAA0B,CACnC,IAAK,IAAIE,EAAI,EAAGA,EAAID,IAAKC,EAAG,CAC1B,MAAMC,EAAYJ,EAAIG,GACtB,GAAIC,IAAc1B,EAChB,OAAOyB,EAET,GAAIC,EAAY1B,EACd,OAAIuB,EAAUvB,EAAQsB,EAAIG,EAAI,GAAIC,GAAa,EACtCD,EAAI,EAENA,CAEX,CACA,OAAOD,EAAI,CACb,CAEA,GAAID,EAAY,EAAG,CACjB,IAAK,IAAIE,EAAI,EAAGA,EAAID,IAAKC,EACvB,GAAIH,EAAIG,GAAKzB,EACX,OAAOyB,EAAI,EAGf,OAAOD,EAAI,CACb,CAEA,GAAID,EAAY,EAAG,CACjB,IAAK,IAAIE,EAAI,EAAGA,EAAID,IAAKC,EACvB,GAAIH,EAAIG,IAAMzB,EACZ,OAAOyB,EAGX,OAAOD,EAAI,CACb,CAEA,IAAK,IAAIC,EAAI,EAAGA,EAAID,IAAKC,EAAG,CAC1B,GAAIH,EAAIG,IAAMzB,EACZ,OAAOyB,EAET,GAAIH,EAAIG,GAAKzB,EACX,OAAIsB,EAAIG,EAAI,GAAKzB,EAASA,EAASsB,EAAIG,GAC9BA,EAAI,EAENA,CAEX,CACA,OAAOD,EAAI,CACb,CAOO,SAASG,EAAgBL,EAAKM,EAAOC,GAC1C,MAAOD,EAAQC,EAAK,CAClB,MAAMC,EAAMR,EAAIM,GAChBN,EAAIM,GAASN,EAAIO,GACjBP,EAAIO,GAAOC,IACTF,IACAC,CACJ,CACF,CAOO,SAASE,EAAOT,EAAKU,GAC1B,MAAMC,EAAYC,MAAMC,QAAQH,GAAQA,EAAO,CAACA,GAC1Cf,EAASgB,EAAUhB,OACzB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,EAAQQ,IAC1BH,EAAIA,EAAIL,QAAUgB,EAAUR,EAEhC,CAsBO,SAASW,EAAOC,EAAMC,GAC3B,MAAMC,EAAOF,EAAKpB,OAClB,GAAIsB,IAASD,EAAKrB,OAChB,OAAO,EAET,IAAK,IAAIQ,EAAI,EAAGA,EAAIc,EAAMd,IACxB,GAAIY,EAAKZ,KAAOa,EAAKb,GACnB,OAAO,EAGX,OAAO,CACT,CA8BO,SAASe,EAASlB,EAAKmB,EAAMC,GAClC,MAAMC,EAAUF,GAAQ3B,EACxB,OAAOQ,EAAIsB,OAAM,SAAUC,EAAYC,GACrC,GAAc,IAAVA,EACF,OAAO,EAET,MAAMC,EAAMJ,EAAQrB,EAAIwB,EAAQ,GAAID,GACpC,QAASE,EAAM,GAAML,GAAkB,IAARK,EACjC,GACF,CCvOO,SAASC,IACd,OAAO,CACT,CAMO,SAASC,IACd,OAAO,CACT,CAOO,SAASC,IAAQ,CAWjB,SAASC,EAAWC,GACzB,IAGIC,EAGAC,EAEAC,EARAC,GAAS,EAUb,OAAO,WACL,MAAMC,EAAWvB,MAAMwB,UAAUC,MAAMC,KAAKC,WAO5C,OANKL,GAAU5E,OAAS2E,GAAaO,EAAYL,EAAUH,KACzDE,GAAS,EACTD,EAAW3E,KACX0E,EAAWG,EACXJ,EAAaD,EAAGW,MAAMnF,KAAMiF,YAEvBR,CACT,CACF,CCnDO,SAASW,EAAMC,GACpB,IAAK,MAAMC,KAAYD,SACdA,EAAOC,EAElB,CAOO,SAASC,EAAQF,GACtB,IAAIC,EACJ,IAAKA,KAAYD,EACf,OAAO,EAET,OAAQC,CACV,CCEA,MAAME,UAAehE,EAInBR,WAAAA,CAAYI,GACVqE,QAMAzF,KAAK0F,aAAetE,EAMpBpB,KAAK2F,iBAAmB,KAMxB3F,KAAK4F,aAAe,KAMpB5F,KAAK6F,WAAa,IACpB,CAMAC,gBAAAA,CAAiB7E,EAAM8E,GACrB,IAAK9E,IAAS8E,EACZ,OAEF,MAAMC,EAAYhG,KAAK6F,aAAe7F,KAAK6F,WAAa,CAAC,GACnDI,EAAmBD,EAAU/E,KAAU+E,EAAU/E,GAAQ,IAC1DgF,EAAiBC,SAASH,IAC7BE,EAAiBE,KAAKJ,EAE1B,CAYAK,aAAAA,CAAcC,GACZ,MAAMC,EAA4B,kBAAVD,EAClBpF,EAAOqF,EAAWD,EAAQA,EAAMpF,KAChC+E,EAAYhG,KAAK6F,YAAc7F,KAAK6F,WAAW5E,GACrD,IAAK+E,EACH,OAGF,MAAMO,EAAMD,EAAW,IAAIE,EAAMH,GAA+BA,EAC3DE,EAAInF,SACPmF,EAAInF,OAASpB,KAAK0F,cAAgB1F,MAEpC,MAAMyG,EAAczG,KAAK4F,eAAiB5F,KAAK4F,aAAe,CAAC,GACzDc,EACJ1G,KAAK2F,mBAAqB3F,KAAK2F,iBAAmB,CAAC,GAMrD,IAAIgB,EALE1F,KAAQwF,IACZA,EAAYxF,GAAQ,EACpByF,EAAgBzF,GAAQ,KAExBwF,EAAYxF,GAEd,IAAK,IAAI4B,EAAI,EAAG+D,EAAKZ,EAAU3D,OAAQQ,EAAI+D,IAAM/D,EAU/C,GARE8D,EADE,gBAAiBX,EAAUnD,GAE3BmD,EAAUnD,GACVgE,YAAYN,GAGZP,EAAUnD,GACVmC,KAAKhF,KAAMuG,IAEG,IAAdI,GAAuBJ,EAAIrF,mBAAoB,CACjDyF,GAAY,EACZ,KACF,CAEF,GAA4B,MAAtBF,EAAYxF,GAAa,CAC7B,IAAI6F,EAAKJ,EAAgBzF,UAClByF,EAAgBzF,GACvB,MAAO6F,IACL9G,KAAK+G,oBAAoB9F,EAAMqD,UAE1BmC,EAAYxF,EACrB,CACA,OAAO0F,CACT,CAKAhF,eAAAA,GACE3B,KAAK6F,YAAcT,EAAMpF,KAAK6F,WAChC,CASAmB,YAAAA,CAAa/F,GACX,OAAQjB,KAAK6F,YAAc7F,KAAK6F,WAAW5E,SAAUgG,CACvD,CAOAC,WAAAA,CAAYjG,GACV,QAAKjB,KAAK6F,aAGH5E,EACHA,KAAQjB,KAAK6F,WACbsB,OAAOC,KAAKpH,KAAK6F,YAAYxD,OAAS,EAC5C,CAMA0E,mBAAAA,CAAoB9F,EAAM8E,GACxB,MAAMC,EAAYhG,KAAK6F,YAAc7F,KAAK6F,WAAW5E,GACrD,GAAI+E,EAAW,CACb,MAAM9B,EAAQ8B,EAAUqB,QAAQtB,IACjB,IAAX7B,IACElE,KAAK2F,kBAAoB1E,KAAQjB,KAAK2F,kBAExCK,EAAU9B,GAASI,IACjBtE,KAAK2F,iBAAiB1E,KAExB+E,EAAUsB,OAAOpD,EAAO,GACC,IAArB8B,EAAU3D,eACLrC,KAAK6F,WAAW5E,IAI/B,CACF,EAGF,QCnLA,GAMEsG,OAAQ,SAORC,MAAO,QAEPC,KAAM,OACNC,MAAO,QACPC,YAAa,cACbC,MAAO,QACPC,SAAU,WACVC,UAAW,YACXC,SAAU,WACVC,KAAM,OACNC,MAAO,QACPC,QAAS,UACTC,SAAU,WACVC,KAAM,OACNC,OAAQ,SACRC,UAAW,YACXC,MAAO,SCSF,SAASC,EAAOpH,EAAQH,EAAM8E,EAAU0C,EAASC,GAItD,GAHID,GAAWA,IAAYrH,IACzB2E,EAAWA,EAAS4C,KAAKF,IAEvBC,EAAM,CACR,MAAME,EAAmB7C,EACzBA,EAAW,WACT3E,EAAO2F,oBAAoB9F,EAAM8E,GACjC6C,EAAiBzD,MAAMnF,KAAMiF,UAC/B,CACF,CACA,MAAM4D,EAAY,CAChBzH,OAAQA,EACRH,KAAMA,EACN8E,SAAUA,GAGZ,OADA3E,EAAO0E,iBAAiB7E,EAAM8E,GACvB8C,CACT,CAsBO,SAASC,EAAW1H,EAAQH,EAAM8E,EAAU0C,GACjD,OAAOD,EAAOpH,EAAQH,EAAM8E,EAAU0C,GAAS,EACjD,CAWO,SAASM,EAAcC,GACxBA,GAAOA,EAAI5H,SACb4H,EAAI5H,OAAO2F,oBAAoBiC,EAAI/H,KAAM+H,EAAIjD,UAC7CX,EAAM4D,GAEV,CChEA,MAAMC,UAAmBC,EACvBlI,WAAAA,GACEyE,QAEAzF,KAAKO,GAEDP,KAAKmJ,WAGTnJ,KAAK0I,KAED1I,KAAKoJ,aAGTpJ,KAAKqJ,GAAiDrJ,KAAKsJ,WAM3DtJ,KAAKuJ,UAAY,CACnB,CAMAC,OAAAA,KACIxJ,KAAKuJ,UACPvJ,KAAKoG,cAAcqD,EAAUlC,OAC/B,CAQAmC,WAAAA,GACE,OAAO1J,KAAKuJ,SACd,CAQAJ,UAAAA,CAAWlI,EAAM8E,GACf,GAAIzC,MAAMC,QAAQtC,GAAO,CACvB,MAAM0I,EAAM1I,EAAKoB,OACX+E,EAAO,IAAI9D,MAAMqG,GACvB,IAAK,IAAI9G,EAAI,EAAGA,EAAI8G,IAAO9G,EACzBuE,EAAKvE,GAAK2F,EAAOxI,KAAMiB,EAAK4B,GAAIkD,GAElC,OAAOqB,CACT,CACA,OAAOoB,EAAOxI,KAA6BiB,EAAO8E,EACpD,CAQAqD,YAAAA,CAAanI,EAAM8E,GACjB,IAAIiD,EACJ,GAAI1F,MAAMC,QAAQtC,GAAO,CACvB,MAAM0I,EAAM1I,EAAKoB,OACjB2G,EAAM,IAAI1F,MAAMqG,GAChB,IAAK,IAAI9G,EAAI,EAAGA,EAAI8G,IAAO9G,EACzBmG,EAAInG,GAAKiG,EAAW9I,KAAMiB,EAAK4B,GAAIkD,EAEvC,MACEiD,EAAMF,EAAW9I,KAA6BiB,EAAO8E,GAGvD,OADuBA,EAAU6D,OAASZ,EACnCA,CACT,CAQAM,UAAAA,CAAWrI,EAAM8E,GACf,MAAMiD,EAA6BjD,EAAU6D,OAC7C,GAAIZ,EACFa,EAAQb,QACH,GAAI1F,MAAMC,QAAQtC,GACvB,IAAK,IAAI4B,EAAI,EAAG+D,EAAK3F,EAAKoB,OAAQQ,EAAI+D,IAAM/D,EAC1C7C,KAAK+G,oBAAoB9F,EAAK4B,GAAIkD,QAGpC/F,KAAK+G,oBAAoB9F,EAAM8E,EAEnC,EA0CK,SAAS8D,EAAQb,GACtB,GAAI1F,MAAMC,QAAQyF,GAChB,IAAK,IAAInG,EAAI,EAAG+D,EAAKoC,EAAI3G,OAAQQ,EAAI+D,IAAM/D,EACzCkG,EAAcC,EAAInG,SAGpBkG,EAA8DC,EAElE,CArCAC,EAAWnE,UAAUvE,GAYrB0I,EAAWnE,UAAU4D,KASrBO,EAAWnE,UAAUuE,GAkBrB,QCvLO,SAASS,IACd,MAAM,IAAIC,MAAM,iCAClB,CAOA,IAAIC,EAAc,EAWX,SAASC,EAAOC,GACrB,OAAOA,EAAIC,SAAWD,EAAIC,OAASC,SAASJ,GAC9C,CChBO,MAAMK,UAAoB7D,EAM/BxF,WAAAA,CAAYC,EAAM+H,EAAKsB,GACrB7E,MAAMxE,GAONjB,KAAKgJ,IAAMA,EAQXhJ,KAAKsK,SAAWA,CAClB,EAqDF,MAAMC,UAAmBtB,EAIvBjI,WAAAA,CAAYwJ,GACV/E,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLY,EAAOjK,MAMPA,KAAKyK,QAAU,UAEAxD,IAAXuD,GACFxK,KAAK0K,cAAcF,EAEvB,CAQAG,GAAAA,CAAI3B,GACF,IAAI4B,EAIJ,OAHI5K,KAAKyK,SAAWzK,KAAKyK,QAAQI,eAAe7B,KAC9C4B,EAAQ5K,KAAKyK,QAAQzB,IAEhB4B,CACT,CAOAE,OAAAA,GACE,OAAQ9K,KAAKyK,SAAWtD,OAAOC,KAAKpH,KAAKyK,UAAa,EACxD,CAOAM,aAAAA,GACE,OAAQ/K,KAAKyK,SAAWtD,OAAO6D,OAAO,CAAC,EAAGhL,KAAKyK,UAAa,CAAC,CAC/D,CAMAQ,qBAAAA,GACE,OAAOjL,KAAKyK,OACd,CAKAS,aAAAA,GACE,QAASlL,KAAKyK,OAChB,CAMAU,MAAAA,CAAOnC,EAAKsB,GACV,IAAIc,EACJA,EAAa,UAASpC,IAClBhJ,KAAKkH,YAAYkE,IACnBpL,KAAKoG,cAAc,IAAIiE,EAAYe,EAAWpC,EAAKsB,IAErDc,EAAYC,EAAgB9J,eACxBvB,KAAKkH,YAAYkE,IACnBpL,KAAKoG,cAAc,IAAIiE,EAAYe,EAAWpC,EAAKsB,GAEvD,CAMAgB,iBAAAA,CAAkBtC,EAAKjD,GACrB/F,KAAK8F,iBAAkB,UAASkD,IAAOjD,EACzC,CAMAwF,oBAAAA,CAAqBvC,EAAKjD,GACxB/F,KAAK+G,oBAAqB,UAASiC,IAAOjD,EAC5C,CASAyF,GAAAA,CAAIxC,EAAK4B,EAAOa,GACd,MAAMjB,EAASxK,KAAKyK,UAAYzK,KAAKyK,QAAU,CAAC,GAChD,GAAIgB,EACFjB,EAAOxB,GAAO4B,MACT,CACL,MAAMN,EAAWE,EAAOxB,GACxBwB,EAAOxB,GAAO4B,EACVN,IAAaM,GACf5K,KAAKmL,OAAOnC,EAAKsB,EAErB,CACF,CASAI,aAAAA,CAAcF,EAAQiB,GACpB,IAAK,MAAMzC,KAAOwB,EAChBxK,KAAKwL,IAAIxC,EAAKwB,EAAOxB,GAAMyC,EAE/B,CAOAC,eAAAA,CAAgBC,GACTA,EAAOlB,SAGZtD,OAAO6D,OAAOhL,KAAKyK,UAAYzK,KAAKyK,QAAU,CAAC,GAAIkB,EAAOlB,QAC5D,CAQAmB,KAAAA,CAAM5C,EAAKyC,GACT,GAAIzL,KAAKyK,SAAWzB,KAAOhJ,KAAKyK,QAAS,CACvC,MAAMH,EAAWtK,KAAKyK,QAAQzB,UACvBhJ,KAAKyK,QAAQzB,GAChBzD,EAAQvF,KAAKyK,WACfzK,KAAKyK,QAAU,MAEZgB,GACHzL,KAAKmL,OAAOnC,EAAKsB,EAErB,CACF,EAGF,QCzQA,GACEuB,QAAS,UACTC,QAAS,UACTC,OAAQ,SACRC,QAAS,SACTC,eAAgB,gBAChBC,eAAgB,gBAChBC,SAAU,UACVC,SAAU,UACVC,OAAQ,SACRC,IAAK,OCTA,SAASC,EAAOC,EAAWC,GAChC,IAAKD,EACH,MAAM,IAAIzC,MAAM0C,EAEpB,CCAO,SAASC,EAAM9B,EAAO+B,EAAKC,GAChC,OAAOC,KAAKF,IAAIE,KAAKD,IAAIhC,EAAO+B,GAAMC,EACxC,CAaO,SAASE,EAAuBC,EAAGC,EAAGC,EAAIC,EAAIC,EAAIC,GACvD,MAAMC,EAAKF,EAAKF,EACVK,EAAKF,EAAKF,EAChB,GAAW,IAAPG,GAAmB,IAAPC,EAAU,CACxB,MAAMC,IAAMR,EAAIE,GAAMI,GAAML,EAAIE,GAAMI,IAAOD,EAAKA,EAAKC,EAAKA,GACxDC,EAAI,GACNN,EAAKE,EACLD,EAAKE,GACIG,EAAI,IACbN,GAAMI,EAAKE,EACXL,GAAMI,EAAKC,EAEf,CACA,OAAOC,EAAgBT,EAAGC,EAAGC,EAAIC,EACnC,CAUO,SAASM,EAAgBP,EAAIC,EAAIC,EAAIC,GAC1C,MAAMC,EAAKF,EAAKF,EACVK,EAAKF,EAAKF,EAChB,OAAOG,EAAKA,EAAKC,EAAKA,CACxB,CASO,SAASG,EAAkBC,GAChC,MAAM9K,EAAI8K,EAAIrL,OAEd,IAAK,IAAIQ,EAAI,EAAGA,EAAID,EAAGC,IAAK,CAE1B,IAAI8K,EAAS9K,EACT+K,EAAQf,KAAKgB,IAAIH,EAAI7K,GAAGA,IAC5B,IAAK,IAAIiL,EAAIjL,EAAI,EAAGiL,EAAIlL,EAAGkL,IAAK,CAC9B,MAAMC,EAAWlB,KAAKgB,IAAIH,EAAII,GAAGjL,IAC7BkL,EAAWH,IACbA,EAAQG,EACRJ,EAASG,EAEb,CAEA,GAAc,IAAVF,EACF,OAAO,KAIT,MAAM1K,EAAMwK,EAAIC,GAChBD,EAAIC,GAAUD,EAAI7K,GAClB6K,EAAI7K,GAAKK,EAGT,IAAK,IAAI8K,EAAInL,EAAI,EAAGmL,EAAIpL,EAAGoL,IAAK,CAC9B,MAAMC,GAAQP,EAAIM,GAAGnL,GAAK6K,EAAI7K,GAAGA,GACjC,IAAK,IAAIqL,EAAIrL,EAAGqL,EAAItL,EAAI,EAAGsL,IACrBrL,GAAKqL,EACPR,EAAIM,GAAGE,GAAK,EAEZR,EAAIM,GAAGE,IAAMD,EAAOP,EAAI7K,GAAGqL,EAGjC,CACF,CAGA,MAAMnB,EAAI,IAAIzJ,MAAMV,GACpB,IAAK,IAAIuL,EAAIvL,EAAI,EAAGuL,GAAK,EAAGA,IAAK,CAC/BpB,EAAEoB,GAAKT,EAAIS,GAAGvL,GAAK8K,EAAIS,GAAGA,GAC1B,IAAK,IAAIC,EAAID,EAAI,EAAGC,GAAK,EAAGA,IAC1BV,EAAIU,GAAGxL,IAAM8K,EAAIU,GAAGD,GAAKpB,EAAEoB,EAE/B,CACA,OAAOpB,CACT,CAkBO,SAASsB,EAAUC,GACxB,OAAQA,EAAiBzB,KAAK0B,GAAM,GACtC,CASO,SAASC,EAAOjM,EAAGC,GACxB,MAAMsL,EAAIvL,EAAIC,EACd,OAAOsL,EAAItL,EAAI,EAAIsL,EAAItL,EAAIsL,CAC7B,CAUO,SAASW,EAAKlM,EAAGC,EAAGuK,GACzB,OAAOxK,EAAIwK,GAAKvK,EAAID,EACtB,CAQO,SAASmM,EAAQ9L,EAAG+L,GACzB,MAAMC,EAAS/B,KAAKgC,IAAI,GAAIF,GAC5B,OAAO9B,KAAKiC,MAAMlM,EAAIgM,GAAUA,CAClC,CAoBO,SAASG,EAAMnM,EAAG+L,GACvB,OAAO9B,KAAKkC,MAAML,EAAQ9L,EAAG+L,GAC/B,CASO,SAASK,EAAKpM,EAAG+L,GACtB,OAAO9B,KAAKmC,KAAKN,EAAQ9L,EAAG+L,GAC9B,CCxIA,MAAMM,UAAkB1E,EAItBvJ,WAAAA,CAAYkO,GACVzJ,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLrJ,KAAKmP,YAAcD,EAAQE,WAK3B,MAAMC,EAAalI,OAAO6D,OAAO,CAAC,EAAGkE,GACH,kBAAvBA,EAAQG,oBACVA,EAAWA,WAClBlI,OAAO6D,OAAOqE,EAAYH,EAAQG,aAGpCA,EAAWC,EAAczD,cACH5E,IAApBiI,EAAQK,QAAwBL,EAAQK,QAAU,EACpDhD,EAC+C,kBAAtC8C,EAAWC,EAAczD,SAChC,kCAGFwD,EAAWC,EAAcxD,cACH7E,IAApBiI,EAAQM,SAAwBN,EAAQM,QAC1CH,EAAWC,EAActD,SAAWkD,EAAQO,OAC5CJ,EAAWC,EAAcrD,qBACGhF,IAA1BiI,EAAQQ,cAA8BR,EAAQQ,cAAgBC,IAChEN,EAAWC,EAAcpD,qBACGjF,IAA1BiI,EAAQU,cAA8BV,EAAQU,cAAgB,EAChEP,EAAWC,EAAclD,eACHnF,IAApBiI,EAAQW,QAAwBX,EAAQW,SAAWF,IACrDN,EAAWC,EAAcnD,eACHlF,IAApBiI,EAAQY,QAAwBZ,EAAQY,QAAUH,IAMpD3P,KAAK+P,gBACsB9I,IAAzBoI,EAAWW,UAA0BX,EAAWW,UAAY,kBACvDX,EAAWW,UAElBhQ,KAAK0K,cAAc2E,GAMnBrP,KAAKiQ,OAAS,IAChB,CAMAC,aAAAA,GACE,OAAOlQ,KAAKmP,WACd,CAKAgB,YAAAA,GACE,OAAOnQ,KAAK+P,UACd,CASAK,aAAAA,CAAcC,GAEZ,MAAMC,EACJtQ,KAAKiQ,QACa,CAChBM,MAAOvQ,KACPqQ,aAAqBpJ,IAAZoJ,GAA+BA,GAEtCZ,EAASzP,KAAKwQ,YAWpB,OAVAF,EAAMf,QAAU7C,EAAMG,KAAKiC,MAA0B,IAApB9O,KAAKyQ,cAAsB,IAAK,EAAG,GACpEH,EAAMd,QAAUxP,KAAK0Q,aACrBJ,EAAMK,OAAS3Q,KAAK4Q,YACpBN,EAAMb,YAAoBxI,IAAXwI,GAAyBa,EAAMD,QAAqBZ,EAAXE,IACxDW,EAAMZ,cAAgB1P,KAAK6Q,mBAC3BP,EAAMV,cAAgB/C,KAAKD,IAAI5M,KAAK8Q,mBAAoB,GACxDR,EAAMT,QAAU7P,KAAK+Q,aACrBT,EAAMR,QAAU9P,KAAKgR,aACrBhR,KAAKiQ,OAASK,EAEPA,CACT,CAQAW,cAAAA,CAAeC,GACb,OAAOpH,GACT,CAQAqH,mBAAAA,CAAoBC,GAClB,OAAOtH,GACT,CASA8G,SAAAA,GACE,OACE5Q,KAAK2K,IAAI2E,EAAcvD,OAE3B,CASA8E,gBAAAA,GACE,OAA8B7Q,KAAK2K,IAAI2E,EAAcrD,eACvD,CASA6E,gBAAAA,GACE,OAA8B9Q,KAAK2K,IAAI2E,EAAcpD,eACvD,CASA6E,UAAAA,GACE,OAA8B/Q,KAAK2K,IAAI2E,EAAclD,SACvD,CASA4E,UAAAA,GACE,OAA8BhR,KAAK2K,IAAI2E,EAAcnD,SACvD,CAQAsE,UAAAA,GACE,OAA8BzQ,KAAK2K,IAAI2E,EAAczD,QACvD,CAMAwF,cAAAA,GACE,OAAOvH,GACT,CASA4G,UAAAA,GACE,OAA+B1Q,KAAK2K,IAAI2E,EAAcxD,QACxD,CASA0E,SAAAA,GACE,OAAwCxQ,KAAK2K,IAAI2E,EAActD,QACjE,CAMAsF,aAAAA,CAAclC,GACZpP,KAAKmP,YAAcC,EACnBpP,KAAKwJ,SACP,CASA+H,SAAAA,CAAUZ,GACR3Q,KAAKwL,IAAI8D,EAAcvD,OAAQ4E,EACjC,CAQAa,gBAAAA,CAAiB9B,GACf1P,KAAKwL,IAAI8D,EAAcrD,eAAgByD,EACzC,CAQA+B,gBAAAA,CAAiB7B,GACf5P,KAAKwL,IAAI8D,EAAcpD,eAAgB0D,EACzC,CAUA8B,UAAAA,CAAW5B,GACT9P,KAAKwL,IAAI8D,EAAcnD,SAAU2D,EACnC,CAUA6B,UAAAA,CAAW9B,GACT7P,KAAKwL,IAAI8D,EAAclD,SAAUyD,EACnC,CAQA+B,UAAAA,CAAWrC,GACThD,EAA0B,kBAAZgD,EAAsB,kCACpCvP,KAAKwL,IAAI8D,EAAczD,QAAS0D,EAClC,CAQAsC,UAAAA,CAAWrC,GACTxP,KAAKwL,IAAI8D,EAAcxD,QAAS0D,EAClC,CASAsC,SAAAA,CAAUC,GACR/R,KAAKwL,IAAI8D,EAActD,QAAS+F,EAClC,CAKApQ,eAAAA,GACM3B,KAAKiQ,SACPjQ,KAAKiQ,OAAOM,MAAQ,KACpBvQ,KAAKiQ,OAAS,MAEhBxK,MAAM9D,iBACR,EAGF,QC7YA,GAMEqQ,UAAW,YAOXC,WAAY,aASZC,WAAY,aASZC,YAAa,cASbC,eAAgB,kBCxClB,GACEC,UAAW,EACXC,YAAa,GCFf,IACEC,OAAQ,SACRC,WAAY,aACZC,SAAU,YCFL,MAAMC,GAAmB,GAMnBC,GAAoB,IC8B1B,MAAMC,GAAkB,CAE7B,QAAW,SAAW,EAAI/F,KAAK0B,IAC/B,QAAY,EAAI1B,KAAK0B,GAAK,QAAW,IACrC,GAAM,MACN,EAAK,EACL,QAAS,KAAO,MCClB,MAAMsE,GAIJ7R,WAAAA,CAAYkO,GAKVlP,KAAK8S,MAAQ5D,EAAQ6D,KASrB/S,KAAKgT,OAAoD9D,EAAQ+D,MASjEjT,KAAKkT,aAA6BjM,IAAnBiI,EAAQyB,OAAuBzB,EAAQyB,OAAS,KAS/D3Q,KAAKmT,kBACqBlM,IAAxBiI,EAAQkE,YAA4BlE,EAAQkE,YAAc,KAM5DpT,KAAKqT,sBACyBpM,IAA5BiI,EAAQoE,gBAAgCpE,EAAQoE,gBAAkB,MAMpEtT,KAAKuT,aAA6BtM,IAAnBiI,EAAQsE,QAAuBtE,EAAQsE,OAMtDxT,KAAKyT,aAAezT,KAAKuT,UAAWvT,KAAKkT,SAMzClT,KAAK0T,wBAA0BxE,EAAQyE,mBAMvC3T,KAAK4T,iBAAmB,KAMxB5T,KAAK6T,eAAiB3E,EAAQ4E,aAChC,CAKAC,QAAAA,GACE,OAAO/T,KAAKyT,SACd,CAOAO,OAAAA,GACE,OAAOhU,KAAK8S,KACd,CAOAlC,SAAAA,GACE,OAAO5Q,KAAKkT,OACd,CAOAe,QAAAA,GACE,OAAOjU,KAAKgT,MACd,CASAkB,gBAAAA,GACE,OAAOlU,KAAK6T,gBAAkBjB,GAAgB5S,KAAKgT,OACrD,CAOAmB,cAAAA,GACE,OAAOnU,KAAKmT,YACd,CAaAiB,kBAAAA,GACE,OAAOpU,KAAKqT,gBACd,CAOAgB,QAAAA,GACE,OAAOrU,KAAKuT,OACd,CAOAe,SAAAA,CAAUd,GACRxT,KAAKuT,QAAUC,EACfxT,KAAKyT,aAAeD,IAAUxT,KAAKkT,QACrC,CAKAqB,kBAAAA,GACE,OAAOvU,KAAK4T,gBACd,CAKAY,kBAAAA,CAAmBC,GACjBzU,KAAK4T,iBAAmBa,CAC1B,CAOAlD,SAAAA,CAAUZ,GACR3Q,KAAKkT,QAAUvC,EACf3Q,KAAKyT,aAAezT,KAAKuT,UAAW5C,EACtC,CAQA+D,cAAAA,CAAetB,GACbpT,KAAKmT,aAAeC,CACtB,CAQAuB,qBAAAA,CAAsB9Q,GACpB7D,KAAK0T,wBAA0B7P,CACjC,CAOA+Q,sBAAAA,GACE,OAAO5U,KAAK0T,uBACd,EAGF,UCnQO,MAAMmB,GAAS,QAMTC,GAAYjI,KAAK0B,GAAKsG,GAMtB9I,GAAS,EAAE+I,IAAYA,GAAWA,GAAWA,IAM7CC,GAAe,EAAE,KAAM,GAAI,IAAK,IAOhCC,GAAaH,GAAShI,KAAKoI,IAAIpI,KAAKqI,IAAIrI,KAAK0B,GAAK,IAM/D,MAAM4G,WAA2BtC,GAI/B7R,WAAAA,CAAY+R,GACVtN,MAAM,CACJsN,KAAMA,EACNE,MAAO,IACPtC,OAAQ5E,GACRyH,QAAQ,EACRJ,YAAa2B,GACbpB,mBAAoB,SAAUyB,EAAYC,GACxC,OAAOD,EAAavI,KAAKyI,KAAKD,EAAM,GAAKR,GAC3C,GAEJ,EASK,MAAMU,GAAc,CACzB,IAAIJ,GAAmB,aACvB,IAAIA,GAAmB,eACvB,IAAIA,GAAmB,eACvB,IAAIA,GAAmB,eACvB,IAAIA,GAAmB,8CACvB,IAAIA,GAAmB,iDAWlB,SAASK,GAAaC,EAAOC,EAAQC,GAC1C,MAAMtT,EAASoT,EAAMpT,OACrBsT,EAAYA,EAAY,EAAIA,EAAY,OACzB1O,IAAXyO,IAGAA,EAFEC,EAAY,EAELF,EAAM1Q,QAEN,IAAIzB,MAAMjB,IAGvB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,EAAQQ,GAAK8S,EAAW,CAC1CD,EAAO7S,GAAMiS,GAAYW,EAAM5S,GAAM,IACrC,IAAImK,EAAI6H,GAAShI,KAAKoI,IAAIpI,KAAKqI,IAAKrI,KAAK0B,KAAOkH,EAAM5S,EAAI,GAAK,IAAO,MAClEmK,EAAIgI,GACNhI,EAAIgI,GACKhI,GAAKgI,KACdhI,GAAKgI,IAEPU,EAAO7S,EAAI,GAAKmK,CAClB,CACA,OAAO0I,CACT,CAUO,SAASE,GAAWH,EAAOC,EAAQC,GACxC,MAAMtT,EAASoT,EAAMpT,OACrBsT,EAAYA,EAAY,EAAIA,EAAY,OACzB1O,IAAXyO,IAGAA,EAFEC,EAAY,EAELF,EAAM1Q,QAEN,IAAIzB,MAAMjB,IAGvB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,EAAQQ,GAAK8S,EAC/BD,EAAO7S,GAAM,IAAM4S,EAAM5S,GAAMiS,GAC/BY,EAAO7S,EAAI,GACR,IAAMgK,KAAKgJ,KAAKhJ,KAAKiJ,IAAIL,EAAM5S,EAAI,GAAKgS,KAAYhI,KAAK0B,GAAK,GAEnE,OAAOmH,CACT,CCzHO,MAAMb,GAAS,QAQT9I,GAAS,EAAE,KAAM,GAAI,IAAK,IAM1B6G,GAAmB/F,KAAK0B,GAAKsG,GAAU,IAUpD,MAAMkB,WAA2BlD,GAK/B7R,WAAAA,CAAY+R,EAAMO,GAChB7N,MAAM,CACJsN,KAAMA,EACNE,MAAO,UACPtC,OAAQ5E,GACRuH,gBAAiBA,EACjBE,QAAQ,EACRM,cAAelB,GACfQ,YAAarH,IAEjB,EASK,MAAMwJ,GAAc,CACzB,IAAIQ,GAAmB,UACvB,IAAIA,GAAmB,YAAa,OACpC,IAAIA,GAAmB,iCACvB,IAAIA,GAAmB,4BACvB,IAAIA,GAAmB,gDACvB,IAAIA,GAAmB,+CAAgD,OACvE,IAAIA,GAAmB,6CAA8C,QC3DvE,IAAIC,GAAQ,CAAC,EAcN,SAASrL,GAAIoI,GAClB,OACEiD,GAAMjD,IACNiD,GAAMjD,EAAKkD,QAAQ,yCAA0C,aAC7D,IAEJ,CAOO,SAASC,GAAInD,EAAMoD,GACxBH,GAAMjD,GAAQoD,CAChB,CC3BA,IAAIC,GAAa,CAAC,EAiBX,SAASF,GAAIvK,EAAQ0K,EAAaC,GACvC,MAAMC,EAAa5K,EAAOqI,UACpBwC,EAAkBH,EAAYrC,UAC9BuC,KAAcH,KAClBA,GAAWG,GAAc,CAAC,GAE5BH,GAAWG,GAAYC,GAAmBF,CAC5C,CA4BO,SAAS3L,GAAI4L,EAAYC,GAC9B,IAAIC,EAIJ,OAHIF,KAAcH,IAAcI,KAAmBJ,GAAWG,KAC5DE,EAAYL,GAAWG,GAAYC,IAE9BC,CACT,CC3DA,QACEC,QAAS,EACTC,aAAc,EACdC,MAAO,EACPC,MAAO,EACPC,MAAO,EACPC,KAAM,ICSD,SAASC,GAAeC,GAC7B,MAAMtG,EAASuG,KACf,IAAK,IAAIrU,EAAI,EAAG+D,EAAKqQ,EAAY5U,OAAQQ,EAAI+D,IAAM/D,EACjDsU,GAAiBxG,EAAQsG,EAAYpU,IAEvC,OAAO8N,CACT,CASA,SAASyG,GAAmBC,EAAIC,EAAIC,GAClC,MAAMC,EAAO3K,KAAKF,IAAIxH,MAAM,KAAMkS,GAC5BI,EAAO5K,KAAKF,IAAIxH,MAAM,KAAMmS,GAC5BI,EAAO7K,KAAKD,IAAIzH,MAAM,KAAMkS,GAC5BM,EAAO9K,KAAKD,IAAIzH,MAAM,KAAMmS,GAClC,OAAOM,GAAeJ,EAAMC,EAAMC,EAAMC,EAAMJ,EAChD,CAUO,SAASM,GAAOlH,EAAQ/F,EAAO2M,GACpC,OAAIA,GACFA,EAAK,GAAK5G,EAAO,GAAK/F,EACtB2M,EAAK,GAAK5G,EAAO,GAAK/F,EACtB2M,EAAK,GAAK5G,EAAO,GAAK/F,EACtB2M,EAAK,GAAK5G,EAAO,GAAK/F,EACf2M,GAEF,CACL5G,EAAO,GAAK/F,EACZ+F,EAAO,GAAK/F,EACZ+F,EAAO,GAAK/F,EACZ+F,EAAO,GAAK/F,EAEhB,CASO,SAASkN,GAAMnH,EAAQ4G,GAC5B,OAAIA,GACFA,EAAK,GAAK5G,EAAO,GACjB4G,EAAK,GAAK5G,EAAO,GACjB4G,EAAK,GAAK5G,EAAO,GACjB4G,EAAK,GAAK5G,EAAO,GACV4G,GAEF5G,EAAO5L,OAChB,CAQO,SAASgT,GAAyBpH,EAAQ5D,EAAGC,GAClD,IAAIK,EAAIC,EAeR,OAbED,EADEN,EAAI4D,EAAO,GACRA,EAAO,GAAK5D,EACR4D,EAAO,GAAK5D,EAChBA,EAAI4D,EAAO,GAEX,EAGLrD,EADEN,EAAI2D,EAAO,GACRA,EAAO,GAAK3D,EACR2D,EAAO,GAAK3D,EAChBA,EAAI2D,EAAO,GAEX,EAEAtD,EAAKA,EAAKC,EAAKA,CACxB,CAUO,SAAS0K,GAAmBrH,EAAQsH,GACzC,OAAOC,GAAWvH,EAAQsH,EAAW,GAAIA,EAAW,GACtD,CAcO,SAASE,GAAeC,EAASC,GACtC,OACED,EAAQ,IAAMC,EAAQ,IACtBA,EAAQ,IAAMD,EAAQ,IACtBA,EAAQ,IAAMC,EAAQ,IACtBA,EAAQ,IAAMD,EAAQ,EAE1B,CAWO,SAASF,GAAWvH,EAAQ5D,EAAGC,GACpC,OAAO2D,EAAO,IAAM5D,GAAKA,GAAK4D,EAAO,IAAMA,EAAO,IAAM3D,GAAKA,GAAK2D,EAAO,EAC3E,CASO,SAAS2H,GAAuB3H,EAAQsH,GAC7C,MAAMT,EAAO7G,EAAO,GACd8G,EAAO9G,EAAO,GACd+G,EAAO/G,EAAO,GACdgH,EAAOhH,EAAO,GACd5D,EAAIkL,EAAW,GACfjL,EAAIiL,EAAW,GACrB,IAAIM,EAAeC,GAAa9B,QAchC,OAbI3J,EAAIyK,EACNe,GAA8BC,GAAazB,KAClChK,EAAI2K,IACba,GAA8BC,GAAa3B,OAEzC7J,EAAIyK,EACNc,GAA8BC,GAAa1B,MAClC9J,EAAI2K,IACbY,GAA8BC,GAAa5B,OAEzC2B,IAAiBC,GAAa9B,UAChC6B,EAAeC,GAAa7B,cAEvB4B,CACT,CAOO,SAASrB,KACd,MAAO,CAACvH,IAAUA,KAAWA,KAAWA,IAC1C,CAWO,SAASiI,GAAeJ,EAAMC,EAAMC,EAAMC,EAAMJ,GACrD,OAAIA,GACFA,EAAK,GAAKC,EACVD,EAAK,GAAKE,EACVF,EAAK,GAAKG,EACVH,EAAK,GAAKI,EACHJ,GAEF,CAACC,EAAMC,EAAMC,EAAMC,EAC5B,CAOO,SAASc,GAAoBlB,GAClC,OAAOK,GAAejI,IAAUA,KAAWA,KAAWA,IAAU4H,EAClE,CAOO,SAASmB,GAA6BT,EAAYV,GACvD,MAAMxK,EAAIkL,EAAW,GACfjL,EAAIiL,EAAW,GACrB,OAAOL,GAAe7K,EAAGC,EAAGD,EAAGC,EAAGuK,EACpC,CAoBO,SAASoB,GACdC,EACAC,EACA5V,EACA6V,EACAvB,GAEA,MAAM5G,EAAS8H,GAAoBlB,GACnC,OAAOwB,GAAsBpI,EAAQiI,EAAiBC,EAAQ5V,EAAK6V,EACrE,CAmBO,SAAStV,GAAO4U,EAASC,GAC9B,OACED,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,EAE1B,CAyBO,SAASlV,GAAOiV,EAASC,GAa9B,OAZIA,EAAQ,GAAKD,EAAQ,KACvBA,EAAQ,GAAKC,EAAQ,IAEnBA,EAAQ,GAAKD,EAAQ,KACvBA,EAAQ,GAAKC,EAAQ,IAEnBA,EAAQ,GAAKD,EAAQ,KACvBA,EAAQ,GAAKC,EAAQ,IAEnBA,EAAQ,GAAKD,EAAQ,KACvBA,EAAQ,GAAKC,EAAQ,IAEhBD,CACT,CAMO,SAASjB,GAAiBxG,EAAQsH,GACnCA,EAAW,GAAKtH,EAAO,KACzBA,EAAO,GAAKsH,EAAW,IAErBA,EAAW,GAAKtH,EAAO,KACzBA,EAAO,GAAKsH,EAAW,IAErBA,EAAW,GAAKtH,EAAO,KACzBA,EAAO,GAAKsH,EAAW,IAErBA,EAAW,GAAKtH,EAAO,KACzBA,EAAO,GAAKsH,EAAW,GAE3B,CAsBO,SAASc,GACdpI,EACAiI,EACAC,EACA5V,EACA6V,GAEA,KAAOD,EAAS5V,EAAK4V,GAAUC,EAC7BE,GAASrI,EAAQiI,EAAgBC,GAASD,EAAgBC,EAAS,IAErE,OAAOlI,CACT,CAmBO,SAASqI,GAASrI,EAAQ5D,EAAGC,GAClC2D,EAAO,GAAK9D,KAAKF,IAAIgE,EAAO,GAAI5D,GAChC4D,EAAO,GAAK9D,KAAKF,IAAIgE,EAAO,GAAI3D,GAChC2D,EAAO,GAAK9D,KAAKD,IAAI+D,EAAO,GAAI5D,GAChC4D,EAAO,GAAK9D,KAAKD,IAAI+D,EAAO,GAAI3D,EAClC,CAWO,SAASiM,GAActI,EAAQuI,GACpC,IAAIC,EAEJ,OADAA,EAAMD,EAASE,GAAczI,IACzBwI,IAGJA,EAAMD,EAASG,GAAe1I,IAC1BwI,IAGJA,EAAMD,EAASI,GAAY3I,IACvBwI,IAGJA,EAAMD,EAASK,GAAW5I,IACtBwI,IAGG,IACT,CAQO,SAASK,GAAQ7I,GACtB,IAAI8I,EAAO,EAIX,OAHKlU,GAAQoL,KACX8I,EAAOC,GAAS/I,GAAUgJ,GAAUhJ,IAE/B8I,CACT,CAQO,SAASL,GAAczI,GAC5B,MAAO,CAACA,EAAO,GAAIA,EAAO,GAC5B,CAQO,SAAS0I,GAAe1I,GAC7B,MAAO,CAACA,EAAO,GAAIA,EAAO,GAC5B,CAQO,SAASiJ,GAAUjJ,GACxB,MAAO,EAAEA,EAAO,GAAKA,EAAO,IAAM,GAAIA,EAAO,GAAKA,EAAO,IAAM,EACjE,CAQO,SAASkJ,GAAUlJ,EAAQmJ,GAChC,IAAI7B,EACJ,GAAe,gBAAX6B,EACF7B,EAAamB,GAAczI,QACtB,GAAe,iBAAXmJ,EACT7B,EAAaoB,GAAe1I,QACvB,GAAe,aAAXmJ,EACT7B,EAAasB,GAAW5I,OACnB,IAAe,cAAXmJ,EAGT,MAAM,IAAI/P,MAAM,kBAFhBkO,EAAaqB,GAAY3I,EAG3B,CACA,OAAOsH,CACT,CAuBO,SAAS8B,GAAkBC,EAAQ5E,EAAY6E,EAAUC,EAAM3C,GACpE,MAAO4C,EAAIC,EAAInN,EAAIC,EAAIC,EAAIC,EAAIiN,EAAIC,GAAMC,GACvCP,EACA5E,EACA6E,EACAC,GAEF,OAAOtC,GACL/K,KAAKF,IAAIwN,EAAIlN,EAAIE,EAAIkN,GACrBxN,KAAKF,IAAIyN,EAAIlN,EAAIE,EAAIkN,GACrBzN,KAAKD,IAAIuN,EAAIlN,EAAIE,EAAIkN,GACrBxN,KAAKD,IAAIwN,EAAIlN,EAAIE,EAAIkN,GACrB/C,EAEJ,CASO,SAASgD,GAAmBP,EAAQ5E,EAAY6E,EAAUC,GAC/D,MAAM7M,EAAM+H,EAAa8E,EAAK,GAAM,EAC9B5M,EAAM8H,EAAa8E,EAAK,GAAM,EAC9BM,EAAc3N,KAAK4N,IAAIR,GACvBS,EAAc7N,KAAK8N,IAAIV,GACvBW,EAAOvN,EAAKmN,EACZK,EAAOxN,EAAKqN,EACZI,EAAOxN,EAAKkN,EACZO,EAAOzN,EAAKoN,EACZ3N,EAAIiN,EAAO,GACXhN,EAAIgN,EAAO,GACjB,MAAO,CACLjN,EAAI6N,EAAOG,EACX/N,EAAI6N,EAAOC,EACX/N,EAAI6N,EAAOG,EACX/N,EAAI6N,EAAOC,EACX/N,EAAI6N,EAAOG,EACX/N,EAAI6N,EAAOC,EACX/N,EAAI6N,EAAOG,EACX/N,EAAI6N,EAAOC,EACX/N,EAAI6N,EAAOG,EACX/N,EAAI6N,EAAOC,EAEf,CAQO,SAASnB,GAAUhJ,GACxB,OAAOA,EAAO,GAAKA,EAAO,EAC5B,CAoBO,SAASqK,GAAgB5C,EAASC,EAASd,GAChD,MAAM0D,EAAe1D,GAAcL,KAyBnC,OAxBIgE,GAAW9C,EAASC,IAClBD,EAAQ,GAAKC,EAAQ,GACvB4C,EAAa,GAAK7C,EAAQ,GAE1B6C,EAAa,GAAK5C,EAAQ,GAExBD,EAAQ,GAAKC,EAAQ,GACvB4C,EAAa,GAAK7C,EAAQ,GAE1B6C,EAAa,GAAK5C,EAAQ,GAExBD,EAAQ,GAAKC,EAAQ,GACvB4C,EAAa,GAAK7C,EAAQ,GAE1B6C,EAAa,GAAK5C,EAAQ,GAExBD,EAAQ,GAAKC,EAAQ,GACvB4C,EAAa,GAAK7C,EAAQ,GAE1B6C,EAAa,GAAK5C,EAAQ,IAG5BI,GAAoBwC,GAEfA,CACT,CA0BO,SAAS1B,GAAW5I,GACzB,MAAO,CAACA,EAAO,GAAIA,EAAO,GAC5B,CAQO,SAAS2I,GAAY3I,GAC1B,MAAO,CAACA,EAAO,GAAIA,EAAO,GAC5B,CAQO,SAAS+I,GAAS/I,GACvB,OAAOA,EAAO,GAAKA,EAAO,EAC5B,CASO,SAASuK,GAAW9C,EAASC,GAClC,OACED,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,IACtBD,EAAQ,IAAMC,EAAQ,EAE1B,CAQO,SAAS9S,GAAQoL,GACtB,OAAOA,EAAO,GAAKA,EAAO,IAAMA,EAAO,GAAKA,EAAO,EACrD,CAOO,SAASwK,GAAexK,EAAQ4G,GACrC,OAAIA,GACFA,EAAK,GAAK5G,EAAO,GACjB4G,EAAK,GAAK5G,EAAO,GACjB4G,EAAK,GAAK5G,EAAO,GACjB4G,EAAK,GAAK5G,EAAO,GACV4G,GAEF5G,CACT,CAuBO,SAASyK,GAAkBzK,EAAQ0K,EAAOpY,GAC/C,IAAIiY,GAAa,EACjB,MAAMI,EAAWhD,GAAuB3H,EAAQ0K,GAC1CE,EAASjD,GAAuB3H,EAAQ1N,GAC9C,GACEqY,IAAa9C,GAAa7B,cAC1B4E,IAAW/C,GAAa7B,aAExBuE,GAAa,MACR,CACL,MAAM1D,EAAO7G,EAAO,GACd8G,EAAO9G,EAAO,GACd+G,EAAO/G,EAAO,GACdgH,EAAOhH,EAAO,GACd6K,EAASH,EAAM,GACfI,EAASJ,EAAM,GACfK,EAAOzY,EAAI,GACX0Y,EAAO1Y,EAAI,GACX2Y,GAASD,EAAOF,IAAWC,EAAOF,GACxC,IAAIzO,EAAGC,EACAuO,EAAS/C,GAAa5B,SAAY0E,EAAW9C,GAAa5B,SAE/D7J,EAAI2O,GAAQC,EAAOhE,GAAQiE,EAC3BV,EAAanO,GAAKyK,GAAQzK,GAAK2K,GAG9BwD,KACEK,EAAS/C,GAAa3B,QACvByE,EAAW9C,GAAa3B,QAG1B7J,EAAI2O,GAAQD,EAAOhE,GAAQkE,EAC3BV,EAAalO,GAAKyK,GAAQzK,GAAK2K,GAG9BuD,KACEK,EAAS/C,GAAa1B,QACvBwE,EAAW9C,GAAa1B,QAG1B/J,EAAI2O,GAAQC,EAAOlE,GAAQmE,EAC3BV,EAAanO,GAAKyK,GAAQzK,GAAK2K,GAG9BwD,KACEK,EAAS/C,GAAazB,OACvBuE,EAAW9C,GAAazB,OAG1B/J,EAAI2O,GAAQD,EAAOlE,GAAQoE,EAC3BV,EAAalO,GAAKyK,GAAQzK,GAAK2K,EAEnC,CACA,OAAOuD,CACT,CAaO,SAASW,GAAelL,EAAQ2F,EAAaiB,EAAMuE,GACxD,GAAIvW,GAAQoL,GACV,OAAO8H,GAAoBlB,GAE7B,IAAIN,EAAc,GAClB,GAAI6E,EAAQ,EAAG,CACb,MAAMC,EAAQpL,EAAO,GAAKA,EAAO,GAC3BqL,EAASrL,EAAO,GAAKA,EAAO,GAClC,IAAK,IAAI9N,EAAI,EAAGA,EAAIiZ,IAASjZ,EAC3BoU,EAAY9Q,KACVwK,EAAO,GAAMoL,EAAQlZ,EAAKiZ,EAC1BnL,EAAO,GACPA,EAAO,GACPA,EAAO,GAAMqL,EAASnZ,EAAKiZ,EAC3BnL,EAAO,GAAMoL,EAAQlZ,EAAKiZ,EAC1BnL,EAAO,GACPA,EAAO,GACPA,EAAO,GAAMqL,EAASnZ,EAAKiZ,EAGjC,MACE7E,EAAc,CACZtG,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,GACPA,EAAO,IAGX2F,EAAYW,EAAaA,EAAa,GACtC,MAAMI,EAAK,GACLC,EAAK,GACX,IAAK,IAAIzU,EAAI,EAAGsL,EAAI8I,EAAY5U,OAAQQ,EAAIsL,EAAGtL,GAAK,EAClDwU,EAAGlR,KAAK8Q,EAAYpU,IACpByU,EAAGnR,KAAK8Q,EAAYpU,EAAI,IAE1B,OAAOuU,GAAmBC,EAAIC,EAAIC,EACpC,CAUO,SAAS0E,GAAMtL,EAAQwF,GAC5B,MAAM+F,EAAmB/F,EAAWvF,YAC9BoJ,EAASJ,GAAUjJ,GACzB,GACEwF,EAAWpC,aACViG,EAAO,GAAKkC,EAAiB,IAAMlC,EAAO,IAAMkC,EAAiB,IAClE,CACA,MAAMC,EAAazC,GAASwC,GACtBE,EAAavP,KAAKkC,OACrBiL,EAAO,GAAKkC,EAAiB,IAAMC,GAEhCtD,EAASuD,EAAaD,EAC5BxL,EAAO,IAAMkI,EACblI,EAAO,IAAMkI,CACf,CACA,OAAOlI,CACT,CAcO,SAAS0L,GAAc1L,EAAQwF,GACpC,GAAIA,EAAWpC,WAAY,CACzB,MAAMmI,EAAmB/F,EAAWvF,YAEpC,IAAK0L,SAAS3L,EAAO,MAAQ2L,SAAS3L,EAAO,IAC3C,MAAO,CAAC,CAACuL,EAAiB,GAAIvL,EAAO,GAAIuL,EAAiB,GAAIvL,EAAO,KAGvEsL,GAAMtL,EAAQwF,GACd,MAAMgG,EAAazC,GAASwC,GAE5B,GAAIxC,GAAS/I,GAAUwL,EAErB,MAAO,CAAC,CAACD,EAAiB,GAAIvL,EAAO,GAAIuL,EAAiB,GAAIvL,EAAO,KAEvE,GAAIA,EAAO,GAAKuL,EAAiB,GAE/B,MAAO,CACL,CAACvL,EAAO,GAAKwL,EAAYxL,EAAO,GAAIuL,EAAiB,GAAIvL,EAAO,IAChE,CAACuL,EAAiB,GAAIvL,EAAO,GAAIA,EAAO,GAAIA,EAAO,KAGvD,GAAIA,EAAO,GAAKuL,EAAiB,GAE/B,MAAO,CACL,CAACvL,EAAO,GAAIA,EAAO,GAAIuL,EAAiB,GAAIvL,EAAO,IACnD,CAACuL,EAAiB,GAAIvL,EAAO,GAAIA,EAAO,GAAKwL,EAAYxL,EAAO,IAGtE,CAEA,MAAO,CAACA,EACV,CCj3BO,SAASuF,GAAI+B,EAAYsE,GAG9B,OAFAtE,EAAW,KAAOsE,EAAM,GACxBtE,EAAW,KAAOsE,EAAM,GACjBtE,CACT,CAoMO,SAASzU,GAAOgZ,EAAaC,GAClC,IAAIjZ,GAAS,EACb,IAAK,IAAIX,EAAI2Z,EAAYna,OAAS,EAAGQ,GAAK,IAAKA,EAC7C,GAAI2Z,EAAY3Z,IAAM4Z,EAAY5Z,GAAI,CACpCW,GAAS,EACT,KACF,CAEF,OAAOA,CACT,CAoBO,SAASkZ,GAAOzE,EAAY0E,GACjC,MAAMC,EAAW/P,KAAK4N,IAAIkC,GACpBE,EAAWhQ,KAAK8N,IAAIgC,GACpB5P,EAAIkL,EAAW,GAAK2E,EAAW3E,EAAW,GAAK4E,EAC/C7P,EAAIiL,EAAW,GAAK2E,EAAW3E,EAAW,GAAK4E,EAGrD,OAFA5E,EAAW,GAAKlL,EAChBkL,EAAW,GAAKjL,EACTiL,CACT,CAmBO,SAAS6E,GAAM7E,EAAY6E,GAGhC,OAFA7E,EAAW,IAAM6E,EACjB7E,EAAW,IAAM6E,EACV7E,CACT,CA6GO,SAASgE,GAAMhE,EAAY9B,GAChC,GAAIA,EAAWpC,WAAY,CACzB,MAAMoI,EAAazC,GAASvD,EAAWvF,aACjCwL,EAAaW,GAAc9E,EAAY9B,EAAYgG,GACrDC,IACFnE,EAAW,IAAMmE,EAAaD,EAElC,CACA,OAAOlE,CACT,CAOO,SAAS8E,GAAc9E,EAAY9B,EAAY6G,GACpD,MAAMd,EAAmB/F,EAAWvF,YACpC,IAAIwL,EAAa,EAUjB,OAREjG,EAAWpC,aACVkE,EAAW,GAAKiE,EAAiB,IAAMjE,EAAW,GAAKiE,EAAiB,MAEzEc,EAAoBA,GAAqBtD,GAASwC,GAClDE,EAAavP,KAAKkC,OACfkJ,EAAW,GAAKiE,EAAiB,IAAMc,IAGrCZ,CACT,CChaO,MAAMa,GAAiB,UAWvB,SAASC,GAAYC,EAAIC,EAAIC,GAClCA,EAASA,GAAUJ,GACnB,MAAMK,EAAOjP,EAAU8O,EAAG,IACpBI,EAAOlP,EAAU+O,EAAG,IACpBI,GAAeD,EAAOD,GAAQ,EAC9BG,EAAcpP,EAAU+O,EAAG,GAAKD,EAAG,IAAM,EACzC5a,EACJsK,KAAK8N,IAAI6C,GAAe3Q,KAAK8N,IAAI6C,GACjC3Q,KAAK8N,IAAI8C,GACP5Q,KAAK8N,IAAI8C,GACT5Q,KAAK4N,IAAI6C,GACTzQ,KAAK4N,IAAI8C,GACb,OAAO,EAAIF,EAASxQ,KAAK6Q,MAAM7Q,KAAK8Q,KAAKpb,GAAIsK,KAAK8Q,KAAK,EAAIpb,GAC7D,CCnCA,MAAMqb,GAAS,CACbC,KAAM,EACNC,KAAM,EACNC,MAAO,EACPC,KAAM,GAMR,IAAIC,GAAQL,GAAOC,KAoBZ,SAASC,MAAQI,GAClBD,GAAQL,GAAOE,MAGnBK,QAAQL,QAAQI,EAClB,CCsDA,IAAIE,IAAwB,EAKrB,SAASC,GAAyBC,GACvC,MAAMC,OAAmBtX,IAAZqX,GAA+BA,EAC5CF,IAAyBG,CAC3B,CAQO,SAASC,GAAe/I,EAAOC,GACpC,QAAezO,IAAXyO,EACF,IAAK,IAAI7S,EAAI,EAAG+D,EAAK6O,EAAMpT,OAAQQ,EAAI+D,IAAM/D,EAC3C6S,EAAO7S,GAAK4S,EAAM5S,QAIpB6S,EAASD,EAAM1Q,QAEjB,OAAO2Q,CACT,CAOO,SAAS+I,GAAkBhJ,EAAOC,GACvC,QAAezO,IAAXyO,GAAwBD,IAAUC,EAAQ,CAC5C,IAAK,IAAI7S,EAAI,EAAG+D,EAAK6O,EAAMpT,OAAQQ,EAAI+D,IAAM/D,EAC3C6S,EAAO7S,GAAK4S,EAAM5S,GAEpB4S,EAAQC,CACV,CACA,OAAOD,CACT,CASO,SAASiJ,GAAcvI,GAC5BwI,GAAQxI,EAAWnC,UAAWmC,GAC9ByI,GAAiBzI,EAAYA,EAAYqI,GAC3C,CAKO,SAASK,GAAeC,GAC7BA,EAAYC,QAAQL,GACtB,CAWO,SAAS/T,GAAIqU,GAClB,MAAiC,kBAAnBA,EACVC,GAA+BD,GACJA,GAAmB,IACpD,CAsBO,SAASrL,GAAmBwC,EAAYf,EAAYC,EAAOpC,GAEhE,IAAIiM,EADJ/I,EAAaxL,GAAIwL,GAEjB,MAAMgJ,EAAShJ,EAAWvB,yBAC1B,GAAIuK,GAEF,GADAD,EAAkBC,EAAO/J,EAAYC,GACjCpC,GAASA,IAAUkD,EAAWlC,WAAY,CAC5C,MAAMH,EAAgBqC,EAAWjC,mBAC7BJ,IACFoL,EACGA,EAAkBpL,EAAiBlB,GAAgBK,GAE1D,MACK,CACL,MAAMmM,EAAYjJ,EAAWlC,WAC7B,GAAkB,WAAbmL,IAA2BnM,GAAmB,WAATA,EACxCiM,EAAkB9J,MACb,CAIL,MAAMQ,EAAayJ,GACjBlJ,EACAxL,GAAI,cAEN,GAAIiL,IAAe6I,IAAmC,YAAdW,EAEtCF,EAAkB9J,EAAae,EAAWjC,uBACrC,CACL,IAAIoL,EAAW,CACbjK,EAAM,GAAKD,EAAa,EACxBC,EAAM,GACNA,EAAM,GAAKD,EAAa,EACxBC,EAAM,GACNA,EAAM,GACNA,EAAM,GAAKD,EAAa,EACxBC,EAAM,GACNA,EAAM,GAAKD,EAAa,GAE1BkK,EAAW1J,EAAW0J,EAAUA,EAAU,GAC1C,MAAMvD,EAAQmB,GAAYoC,EAASva,MAAM,EAAG,GAAIua,EAASva,MAAM,EAAG,IAC5DiX,EAASkB,GAAYoC,EAASva,MAAM,EAAG,GAAIua,EAASva,MAAM,EAAG,IACnEma,GAAmBnD,EAAQC,GAAU,CACvC,CACA,MAAMlI,EAAgBb,EAClBL,GAAgBK,GAChBkD,EAAWjC,wBACOjN,IAAlB6M,IACFoL,GAAmBpL,EAEvB,CACF,CACA,OAAOoL,CACT,CASO,SAASK,GAAyBT,GACvCD,GAAeC,GACfA,EAAYC,SAAQ,SAAUpT,GAC5BmT,EAAYC,SAAQ,SAAU1I,GACxB1K,IAAW0K,GACbuI,GAAiBjT,EAAQ0K,EAAamI,GAE1C,GACF,GACF,CAeO,SAASgB,GACdC,EACAC,EACAC,EACAC,GAEAH,EAAaV,SAAQ,SAAUc,GAC7BH,EAAaX,SAAQ,SAAUe,GAC7BlB,GAAiBiB,EAAaC,EAAaH,GAC3Cf,GAAiBkB,EAAaD,EAAaD,EAC7C,GACF,GACF,CAeO,SAASG,GAAiB5J,EAAY6J,GAC3C,OAAK7J,EAGqB,kBAAfA,EACFxL,GAAIwL,GAEN,EALExL,GAAIqV,EAMf,CAwHO,SAASC,GAAWJ,EAAaC,GACtC,GAAID,IAAgBC,EAClB,OAAO,EAET,MAAMI,EAAaL,EAAY5L,aAAe6L,EAAY7L,WAC1D,GAAI4L,EAAY7L,YAAc8L,EAAY9L,UACxC,OAAOkM,EAET,MAAMC,EAAgBd,GAA4BQ,EAAaC,GAC/D,OAAOK,IAAkB3B,IAAkB0B,CAC7C,CAWO,SAASb,GACde,EACAC,GAEA,MAAM9J,EAAa6J,EAAiBpM,UAC9BwC,EAAkB6J,EAAsBrM,UAC9C,IAAImM,EAAgBG,GAAiB/J,EAAYC,GAIjD,OAHK2J,IACHA,EAAgB1B,IAEX0B,CACT,CAYO,SAASI,GAAa5U,EAAQ0K,GACnC,MAAM+J,EAAmBzV,GAAIgB,GACvB0U,EAAwB1V,GAAI0L,GAClC,OAAOgJ,GAA4Be,EAAkBC,EACvD,CAgBO,SAAS5J,GAAUwB,EAAYtM,EAAQ0K,GAC5C,MAAM8J,EAAgBI,GAAa5U,EAAQ0K,GAC3C,OAAO8J,EAAclI,OAAYhR,EAAWgR,EAAW5V,OACzD,CAcO,SAASme,GAAgB7P,EAAQhF,EAAQ0K,EAAayF,GAC3D,MAAMqE,EAAgBI,GAAa5U,EAAQ0K,GAC3C,OAAOwF,GAAelL,EAAQwP,OAAelZ,EAAW6U,EAC1D,CAyBA,IAAI2E,GAAiB,KA0Bd,SAASC,KACd,OAAOD,EACT,CAmBO,SAASE,GAAiB1I,EAAYmI,GAC3C,OAAKK,GAGEhK,GAAUwB,EAAYmI,EAAkBK,IAFtCxI,CAGX,CASO,SAAS2I,GAAmB3I,EAAY4I,GAC7C,OAAKJ,GAgBEhK,GAAUwB,EAAYwI,GAAgBI,IAdzCzC,KACC5a,GAAOyU,EAAY,CAAC,EAAG,KACxBA,EAAW,KAAO,KAClBA,EAAW,IAAM,KACjBA,EAAW,KAAO,IAClBA,EAAW,IAAM,KAEjBmG,IAAwB,EACxBN,GACE,2FAGG7F,EAGX,CASO,SAAS6I,GAAanQ,EAAQyP,GACnC,OAAKK,GAGED,GAAgB7P,EAAQyP,EAAkBK,IAFxC9P,CAGX,CASO,SAASoQ,GAAepQ,EAAQkQ,GACrC,OAAKJ,GAGED,GAAgB7P,EAAQ8P,GAAgBI,GAFtClQ,CAGX,CAUO,SAASqQ,GAAiB5L,EAAYgL,GAC3C,IAAKK,GACH,OAAOrL,EAET,MAAM6L,EAActW,GAAIyV,GAAkBnM,WACpCiN,EAAYT,GAAexM,WACjC,OAAOgN,GAAeC,EACjB9L,EAAaxC,GAAgBqO,GAAgBrO,GAAgBsO,GAC9D9L,CACN,CA8DO,SAAS+L,KAGd5B,GAAyB6B,IACzB7B,GAAyB8B,IAGzB7B,GACE6B,GACAD,GACA5L,GACAI,GAEJ,CC5tBO,SAAS0L,GAAa3Q,EAAQ4Q,EAAYC,GAC/C,OAAO,SASKxH,EAAQ5E,EAAY8E,EAAMuH,EAAUC,GAC5C,IAAK1H,EACH,OAEF,IAAK5E,IAAemM,EAClB,OAAOvH,EAET,MAAM2H,EAAYJ,EAAa,EAAIrH,EAAK,GAAK9E,EACvCwM,EAAaL,EAAa,EAAIrH,EAAK,GAAK9E,EACxCyM,EAASH,EAAcA,EAAY,GAAK,EACxCI,EAASJ,EAAcA,EAAY,GAAK,EAC9C,IAAIlK,EAAO7G,EAAO,GAAKgR,EAAY,EAAIE,EACnCnK,EAAO/G,EAAO,GAAKgR,EAAY,EAAIE,EACnCpK,EAAO9G,EAAO,GAAKiR,EAAa,EAAIE,EACpCnK,EAAOhH,EAAO,GAAKiR,EAAa,EAAIE,EAIpCtK,EAAOE,IACTF,GAAQE,EAAOF,GAAQ,EACvBE,EAAOF,GAELC,EAAOE,IACTF,GAAQE,EAAOF,GAAQ,EACvBE,EAAOF,GAGT,IAAI1K,EAAIL,EAAMsN,EAAO,GAAIxC,EAAME,GAC3B1K,EAAIN,EAAMsN,EAAO,GAAIvC,EAAME,GAG/B,GAAI8J,GAAYD,GAAUpM,EAAY,CACpC,MAAM2M,EAAQ,GAAK3M,EACnBrI,IACGgV,EAAQlV,KAAKoI,IAAI,EAAIpI,KAAKD,IAAI,EAAG4K,EAAOwC,EAAO,IAAM+H,GACtDA,EAAQlV,KAAKoI,IAAI,EAAIpI,KAAKD,IAAI,EAAGoN,EAAO,GAAKtC,GAAQqK,GACvD/U,IACG+U,EAAQlV,KAAKoI,IAAI,EAAIpI,KAAKD,IAAI,EAAG6K,EAAOuC,EAAO,IAAM+H,GACtDA,EAAQlV,KAAKoI,IAAI,EAAIpI,KAAKD,IAAI,EAAGoN,EAAO,GAAKrC,GAAQoK,EACzD,CAEA,MAAO,CAAChV,EAAGC,EACZ,CAEL,CAMO,SAASgR,GAAKhE,GACnB,OAAOA,CACT,CC1DA,SAASgI,GACP5M,EACA6M,EACAC,EACAC,GAEA,MAAMC,EAAc1I,GAASuI,GAAaC,EAAa,GACjDG,EAAc1I,GAAUsI,GAAaC,EAAa,GAExD,OAAIC,EACKtV,KAAKF,IAAIyI,EAAYvI,KAAKD,IAAIwV,EAAaC,IAE7CxV,KAAKF,IAAIyI,EAAYvI,KAAKF,IAAIyV,EAAaC,GACpD,CAcA,SAASC,GAA2BlN,EAAY1F,EAAeE,GAC7D,IAAI2S,EAAS1V,KAAKF,IAAIyI,EAAY1F,GAClC,MAAMqS,EAAQ,GAYd,OAVAQ,GACE1V,KAAKoI,IAAI,EAAI8M,EAAQlV,KAAKD,IAAI,EAAGwI,EAAa1F,EAAgB,IAAMqS,EACpE,EACEnS,IACF2S,EAAS1V,KAAKD,IAAI2V,EAAQ3S,GAC1B2S,GACE1V,KAAKoI,IAAI,EAAI8M,EAAQlV,KAAKD,IAAI,EAAGgD,EAAgBwF,EAAa,IAC5D2M,EACF,GAEGrV,EAAM6V,EAAQ3S,EAAgB,EAAmB,EAAhBF,EAC1C,CASO,SAAS8S,GACdC,EACAjB,EACAS,EACAE,GAGA,OADAX,OAAoBva,IAAXua,GAAuBA,EACzB,SAQKpM,EAAYzS,EAAWuX,EAAMuH,GACrC,QAAmBxa,IAAfmO,EAA0B,CAC5B,MAAM1F,EAAgB+S,EAAY,GAC5B7S,EAAgB6S,EAAYA,EAAYpgB,OAAS,GACjDqgB,EAAeT,EACjBD,GACEtS,EACAuS,EACA/H,EACAiI,GAEFzS,EAGJ,GAAI+R,EACF,OAAKD,EAGEc,GACLlN,EACAsN,EACA9S,GALOlD,EAAM0I,EAAYxF,EAAe8S,GAS5C,MAAMC,EAAS9V,KAAKF,IAAI+V,EAActN,GAChCwN,EAAI/V,KAAKkC,MAAMtM,EAAkBggB,EAAaE,EAAQhgB,IAC5D,OAAI8f,EAAYG,GAAKF,GAAgBE,EAAIH,EAAYpgB,OAAS,EACrDogB,EAAYG,EAAI,GAElBH,EAAYG,EACrB,CAED,CAEL,CAWO,SAASC,GACdC,EACApT,EACAE,EACA4R,EACAS,EACAE,GAKA,OAHAX,OAAoBva,IAAXua,GAAuBA,EAChC5R,OAAkC3I,IAAlB2I,EAA8BA,EAAgB,EAEvD,SAQKwF,EAAYzS,EAAWuX,EAAMuH,GACrC,QAAmBxa,IAAfmO,EAA0B,CAC5B,MAAMsN,EAAeT,EACjBD,GACEtS,EACAuS,EACA/H,EACAiI,GAEFzS,EAGJ,GAAI+R,EACF,OAAKD,EAGEc,GACLlN,EACAsN,EACA9S,GALOlD,EAAM0I,EAAYxF,EAAe8S,GAS5C,MAAMK,EAAY,KACZC,EAAenW,KAAKmC,KACxBnC,KAAKoI,IAAIvF,EAAgBgT,GAAgB7V,KAAKoI,IAAI6N,GAASC,GAEvDlK,GAAUlW,GAAa,GAAMogB,GAAa,GAC1CJ,EAAS9V,KAAKF,IAAI+V,EAActN,GAChC6N,EAAkBpW,KAAKkC,MAC3BlC,KAAKoI,IAAIvF,EAAgBiT,GAAU9V,KAAKoI,IAAI6N,GAASjK,GAEjDqK,EAAYrW,KAAKD,IAAIoW,EAAcC,GACnCE,EAAgBzT,EAAgB7C,KAAKgC,IAAIiU,EAAOI,GACtD,OAAOxW,EAAMyW,EAAevT,EAAe8S,EAC7C,CAED,CAEL,CAUO,SAASU,GACd1T,EACAE,EACA4R,EACAS,EACAE,GAIA,OAFAX,OAAoBva,IAAXua,GAAuBA,EAEzB,SAQKpM,EAAYzS,EAAWuX,EAAMuH,GACrC,QAAmBxa,IAAfmO,EAA0B,CAC5B,MAAMsN,EAAeT,EACjBD,GACEtS,EACAuS,EACA/H,EACAiI,GAEFzS,EAEJ,OAAK8R,GAAWC,EAGTa,GACLlN,EACAsN,EACA9S,GALOlD,EAAM0I,EAAYxF,EAAe8S,EAO5C,CAED,CAEL,CCnOO,SAASpE,GAAQrE,GACtB,QAAiBhT,IAAbgT,EACF,OAAO,CAGX,CAMO,SAAS+D,GAAK/D,GACnB,QAAiBhT,IAAbgT,EACF,OAAOA,CAGX,CAMO,SAASoJ,GAAczgB,GAC5B,MAAM0gB,EAAS,EAAIzW,KAAK0B,GAAM3L,EAC9B,OAAO,SAMKqX,EAAUwH,GAClB,OAAIA,EACKxH,OAGQhT,IAAbgT,GACFA,EAAWpN,KAAKkC,MAAMkL,EAAWqJ,EAAQ,IAAOA,EACzCrJ,QAFT,CAKD,CAEL,CAMO,SAASsJ,GAAiBR,GAE/B,OADAA,EAAYA,GAAa1U,EAAU,GAC5B,SAMK4L,EAAUwH,GAClB,OAAIA,EACKxH,OAGQhT,IAAbgT,EACEpN,KAAKgB,IAAIoM,IAAa8I,EACjB,EAEF9I,OAJT,CAOD,CAEL,CCzEO,SAASuJ,GAAOjW,GACrB,OAAOV,KAAKgC,IAAItB,EAAG,EACrB,CAQO,SAASkW,GAAQlW,GACtB,OAAO,EAAIiW,GAAO,EAAIjW,EACxB,CAQO,SAASmW,GAASnW,GACvB,OAAO,EAAIA,EAAIA,EAAI,EAAIA,EAAIA,EAAIA,CACjC,CAQO,SAASoW,GAAOpW,GACrB,OAAOA,CACT,CJosBA4T,KK1uBA,MAAMyC,GACiB,qBAAdC,WAA4D,qBAAxBA,UAAUC,UACjDD,UAAUC,UAAUC,cACpB,GAMOC,GAAUJ,GAAG1d,SAAS,WAMtB+d,GAASL,GAAG1d,SAAS,YAAc0d,GAAG1d,SAAS,SAe/Cge,IARXD,KACCL,GAAG1d,SAAS,iBACX,wCAAwCie,KAAKP,KAM3BA,GAAG1d,SAAS,YAAc0d,GAAG1d,SAAS,SAM/Cke,GAAMR,GAAG1d,SAAS,aASlBme,GACiB,qBAArBC,iBAAmCA,iBAAmB,EAOlDC,GACkB,qBAAtBC,mBACoB,qBAApBC,iBACPC,gBAAgBF,kBAMLG,GACM,qBAAVC,OAAyBA,MAAM9f,UAAU+f,OAWrCC,GAA2B,WACtC,IAAIC,GAAU,EACd,IACE,MAAM7V,EAAU/H,OAAO6d,eAAe,CAAC,EAAG,UAAW,CACnDra,IAAK,WACHoa,GAAU,CACZ,IAGFE,OAAOnf,iBAAiB,IAAK,KAAMoJ,GACnC+V,OAAOle,oBAAoB,IAAK,KAAMmI,EACxC,CAAE,MAAO6O,GACP,CAEF,OAAOgH,CACT,CAfwC,GCjD3B,IAAIzhB,MAAM,GAMhB,SAAS4hB,KACd,MAAO,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EACzB,CAkBO,SAASC,GAASC,EAAYC,GACnC,MAAMC,EAAKF,EAAW,GAChBG,EAAKH,EAAW,GAChBjI,EAAKiI,EAAW,GAChBI,EAAKJ,EAAW,GAChBK,EAAKL,EAAW,GAChBM,EAAKN,EAAW,GAChBO,EAAKN,EAAW,GAChBO,EAAKP,EAAW,GAChBjI,EAAKiI,EAAW,GAChBQ,EAAKR,EAAW,GAChBS,EAAKT,EAAW,GAChBU,EAAKV,EAAW,GAStB,OAPAD,EAAW,GAAKE,EAAKK,EAAKxI,EAAKyI,EAC/BR,EAAW,GAAKG,EAAKI,EAAKH,EAAKI,EAC/BR,EAAW,GAAKE,EAAKlI,EAAKD,EAAK0I,EAC/BT,EAAW,GAAKG,EAAKnI,EAAKoI,EAAKK,EAC/BT,EAAW,GAAKE,EAAKQ,EAAK3I,EAAK4I,EAAKN,EACpCL,EAAW,GAAKG,EAAKO,EAAKN,EAAKO,EAAKL,EAE7BN,CACT,CAaO,SAAS5Z,GAAIiL,EAAWlU,EAAGC,EAAGwjB,EAAGC,EAAGC,EAAGC,GAO5C,OANA1P,EAAU,GAAKlU,EACfkU,EAAU,GAAKjU,EACfiU,EAAU,GAAKuP,EACfvP,EAAU,GAAKwP,EACfxP,EAAU,GAAKyP,EACfzP,EAAU,GAAK0P,EACR1P,CACT,CAQO,SAAS2P,GAAahB,EAAYC,GAOvC,OANAD,EAAW,GAAKC,EAAW,GAC3BD,EAAW,GAAKC,EAAW,GAC3BD,EAAW,GAAKC,EAAW,GAC3BD,EAAW,GAAKC,EAAW,GAC3BD,EAAW,GAAKC,EAAW,GAC3BD,EAAW,GAAKC,EAAW,GACpBD,CACT,CAWO,SAASjgB,GAAMsR,EAAWwB,GAC/B,MAAMlL,EAAIkL,EAAW,GACfjL,EAAIiL,EAAW,GAGrB,OAFAA,EAAW,GAAKxB,EAAU,GAAK1J,EAAI0J,EAAU,GAAKzJ,EAAIyJ,EAAU,GAChEwB,EAAW,GAAKxB,EAAU,GAAK1J,EAAI0J,EAAU,GAAKzJ,EAAIyJ,EAAU,GACzDwB,CACT,CAgCO,SAASoO,GAAUjlB,EAAQ2L,EAAGC,GACnC,OAAOxB,GAAIpK,EAAQ2L,EAAG,EAAG,EAAGC,EAAG,EAAG,EACpC,CA0BO,SAASsZ,GAAQ7P,EAAW8P,EAAKC,EAAKC,EAAIC,EAAI/J,EAAOgK,EAAKC,GAC/D,MAAMjM,EAAM9N,KAAK8N,IAAIgC,GACflC,EAAM5N,KAAK4N,IAAIkC,GAOrB,OANAlG,EAAU,GAAKgQ,EAAKhM,EACpBhE,EAAU,GAAKiQ,EAAK/L,EACpBlE,EAAU,IAAMgQ,EAAK9L,EACrBlE,EAAU,GAAKiQ,EAAKjM,EACpBhE,EAAU,GAAKkQ,EAAMF,EAAKhM,EAAMmM,EAAMH,EAAK9L,EAAM4L,EACjD9P,EAAU,GAAKkQ,EAAMD,EAAK/L,EAAMiM,EAAMF,EAAKjM,EAAM+L,EAC1C/P,CACT,CAoCO,SAASoQ,GAAYzlB,EAAQuK,GAClC,MAAMmb,EAAMC,GAAYpb,GACxBY,EAAe,IAARua,EAAW,4CAElB,MAAMvkB,EAAIoJ,EAAO,GACXnJ,EAAImJ,EAAO,GACXqa,EAAIra,EAAO,GACXsa,EAAIta,EAAO,GACXua,EAAIva,EAAO,GACXwa,EAAIxa,EAAO,GASjB,OAPAvK,EAAO,GAAK6kB,EAAIa,EAChB1lB,EAAO,IAAMoB,EAAIskB,EACjB1lB,EAAO,IAAM4kB,EAAIc,EACjB1lB,EAAO,GAAKmB,EAAIukB,EAChB1lB,EAAO,IAAM4kB,EAAIG,EAAIF,EAAIC,GAAKY,EAC9B1lB,EAAO,KAAOmB,EAAI4jB,EAAI3jB,EAAI0jB,GAAKY,EAExB1lB,CACT,CAOO,SAAS2lB,GAAYrZ,GAC1B,OAAOA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,EACxC,CAMA,IAAIsZ,GAQG,SAASC,GAASvZ,GACvB,MAAMwZ,EAAkB,UAAYxZ,EAAIyZ,KAAK,MAAQ,IACrD,GAAI5C,GACF,OAAO2C,EAET,MAAME,EACJJ,KAAuBA,GAAqBK,SAASC,cAAc,QAErE,OADAF,EAAKG,MAAM9Q,UAAYyQ,EAChBE,EAAKG,MAAM9Q,SACpB,CCnRO,SAAS+Q,GACd5O,EACAC,EACA5V,EACA6V,EACArC,EACAc,GAEAA,EAAOA,GAAc,GACrB,IAAI1U,EAAI,EACR,IAAK,IAAImL,EAAI6K,EAAQ7K,EAAI/K,EAAK+K,GAAK8K,EAAQ,CACzC,MAAM/L,EAAI6L,EAAgB5K,GACpBhB,EAAI4L,EAAgB5K,EAAI,GAC9BuJ,EAAK1U,KAAO4T,EAAU,GAAK1J,EAAI0J,EAAU,GAAKzJ,EAAIyJ,EAAU,GAC5Dc,EAAK1U,KAAO4T,EAAU,GAAK1J,EAAI0J,EAAU,GAAKzJ,EAAIyJ,EAAU,EAC9D,CAIA,OAHIc,GAAQA,EAAKlV,QAAUQ,IACzB0U,EAAKlV,OAASQ,GAET0U,CACT,CAYO,SAASmF,GACd9D,EACAC,EACA5V,EACA6V,EACA6D,EACA8K,EACAlQ,GAEAA,EAAOA,GAAc,GACrB,MAAMkD,EAAM5N,KAAK4N,IAAIkC,GACfhC,EAAM9N,KAAK8N,IAAIgC,GACf+K,EAAUD,EAAO,GACjBE,EAAUF,EAAO,GACvB,IAAI5kB,EAAI,EACR,IAAK,IAAImL,EAAI6K,EAAQ7K,EAAI/K,EAAK+K,GAAK8K,EAAQ,CACzC,MAAM8O,EAAShP,EAAgB5K,GAAK0Z,EAC9BG,EAASjP,EAAgB5K,EAAI,GAAK2Z,EACxCpQ,EAAK1U,KAAO6kB,EAAUE,EAASnN,EAAMoN,EAASlN,EAC9CpD,EAAK1U,KAAO8kB,EAAUC,EAASjN,EAAMkN,EAASpN,EAC9C,IAAK,IAAIvM,EAAIF,EAAI,EAAGE,EAAIF,EAAI8K,IAAU5K,EACpCqJ,EAAK1U,KAAO+V,EAAgB1K,EAEhC,CAIA,OAHIqJ,GAAQA,EAAKlV,QAAUQ,IACzB0U,EAAKlV,OAASQ,GAET0U,CACT,CAcO,SAASuF,GACdlE,EACAC,EACA5V,EACA6V,EACA2N,EACAC,EACAe,EACAlQ,GAEAA,EAAOA,GAAc,GACrB,MAAMmQ,EAAUD,EAAO,GACjBE,EAAUF,EAAO,GACvB,IAAI5kB,EAAI,EACR,IAAK,IAAImL,EAAI6K,EAAQ7K,EAAI/K,EAAK+K,GAAK8K,EAAQ,CACzC,MAAM8O,EAAShP,EAAgB5K,GAAK0Z,EAC9BG,EAASjP,EAAgB5K,EAAI,GAAK2Z,EACxCpQ,EAAK1U,KAAO6kB,EAAUjB,EAAKmB,EAC3BrQ,EAAK1U,KAAO8kB,EAAUjB,EAAKmB,EAC3B,IAAK,IAAI3Z,EAAIF,EAAI,EAAGE,EAAIF,EAAI8K,IAAU5K,EACpCqJ,EAAK1U,KAAO+V,EAAgB1K,EAEhC,CAIA,OAHIqJ,GAAQA,EAAKlV,QAAUQ,IACzB0U,EAAKlV,OAASQ,GAET0U,CACT,CAYO,SAASuQ,GACdlP,EACAC,EACA5V,EACA6V,EACA8O,EACAC,EACAtQ,GAEAA,EAAOA,GAAc,GACrB,IAAI1U,EAAI,EACR,IAAK,IAAImL,EAAI6K,EAAQ7K,EAAI/K,EAAK+K,GAAK8K,EAAQ,CACzCvB,EAAK1U,KAAO+V,EAAgB5K,GAAK4Z,EACjCrQ,EAAK1U,KAAO+V,EAAgB5K,EAAI,GAAK6Z,EACrC,IAAK,IAAI3Z,EAAIF,EAAI,EAAGE,EAAIF,EAAI8K,IAAU5K,EACpCqJ,EAAK1U,KAAO+V,EAAgB1K,EAEhC,CAIA,OAHIqJ,GAAQA,EAAKlV,QAAUQ,IACzB0U,EAAKlV,OAASQ,GAET0U,CACT,CCjHA,MAAMwQ,GAAeC,KAcrB,MAAMC,WAAiB1d,EACrBvJ,WAAAA,GACEyE,QAMAzF,KAAKkT,QAAUgE,KAMflX,KAAKkoB,iBAAmB,EAMxBloB,KAAKmoB,yCAA2C,EAMhDnoB,KAAKooB,2BAA6B,EAUlCpoB,KAAKqoB,4BAA8B9jB,GAAW,SAC5C+jB,EACAC,EACA9R,GAEA,IAAKA,EACH,OAAOzW,KAAKwoB,sBAAsBD,GAEpC,MAAMzQ,EAAQ9X,KAAK8X,QAEnB,OADAA,EAAM+D,eAAepF,GACdqB,EAAM0Q,sBAAsBD,EACrC,GACF,CASAE,mBAAAA,CAAoBF,EAAkB9R,GACpC,OAAOzW,KAAKqoB,4BACVroB,KAAK0J,cACL6e,EACA9R,EAEJ,CAOAqB,KAAAA,GACE,OAAOhO,GACT,CAUA4e,cAAAA,CAAe3b,EAAGC,EAAG2b,EAAcC,GACjC,OAAO9e,GACT,CAOAoO,UAAAA,CAAWnL,EAAGC,GACZ,MAAM6b,EAAQ7oB,KAAK8oB,gBAAgB,CAAC/b,EAAGC,IACvC,OAAO6b,EAAM,KAAO9b,GAAK8b,EAAM,KAAO7b,CACxC,CAUA8b,eAAAA,CAAgBzT,EAAOsT,GAGrB,OAFAA,EAAeA,GAA8B,CAACI,IAAKA,KACnD/oB,KAAK0oB,eAAerT,EAAM,GAAIA,EAAM,GAAIsT,EAAchZ,KAC/CgZ,CACT,CASAK,oBAAAA,CAAqB/Q,GACnB,OAAOjY,KAAKkY,WAAWD,EAAW,GAAIA,EAAW,GACnD,CAQAgR,aAAAA,CAActY,GACZ,OAAO7G,GACT,CAQA8G,SAAAA,CAAUD,GACR,GAAI3Q,KAAKkoB,iBAAmBloB,KAAK0J,cAAe,CAC9C,MAAMiH,EAAS3Q,KAAKipB,cAAcjpB,KAAKkT,UACnCgW,MAAMvY,EAAO,KAAOuY,MAAMvY,EAAO,MACnC8H,GAAoB9H,GAEtB3Q,KAAKkoB,gBAAkBloB,KAAK0J,aAC9B,CACA,OAAOyR,GAAenb,KAAKkT,QAASvC,EACtC,CAUA+L,MAAAA,CAAOC,EAAO8K,GACZ3d,GACF,CAYAgT,KAAAA,CAAM2J,EAAIC,EAAIe,GACZ3d,GACF,CAWAqf,QAAAA,CAASpG,GACP,OAAO/iB,KAAKwoB,sBAAsBzF,EAAYA,EAChD,CAUAyF,qBAAAA,CAAsBD,GACpB,OAAOze,GACT,CAOAsf,OAAAA,GACE,OAAOtf,GACT,CAWA+R,cAAAA,CAAevF,GACbxM,GACF,CAQAuf,gBAAAA,CAAiB1Y,GACf,OAAO7G,GACT,CAUAge,SAAAA,CAAUF,EAAQC,GAChB/d,GACF,CAiBA2M,SAAAA,CAAU9K,EAAQ0K,GAEhB,MAAMiT,EAAaC,GAAc5d,GAC3B2K,EACqB,eAAzBgT,EAAWrV,WACP,SAAUuV,EAAeC,EAAgB3Q,GACvC,MAAM4Q,EAAcJ,EAAW1Y,YACzB+Y,EAAkBL,EAAWnV,iBAC7B2I,EAAQnD,GAAUgQ,GAAmBhQ,GAAU+P,GAmBrD,OAlBAE,GACE7B,GACA4B,EAAgB,GAChBA,EAAgB,GAChB7M,GACCA,EACD,EACA,EACA,GAEF0K,GACEgC,EACA,EACAA,EAAcnnB,OACdyW,EACAiP,GACA0B,GAEKlJ,GAAa+I,EAAYjT,EAAzBkK,CACLiJ,EACAC,EACA3Q,EAEJ,EACAyH,GAAa+I,EAAYjT,GAE/B,OADArW,KAAK6b,eAAevF,GACbtW,IACT,EAGF,UC1UA,MAAM6pB,WAAuB5B,GAC3BjnB,WAAAA,GACEyE,QAMAzF,KAAK8pB,OAAS,KAMd9pB,KAAK8Y,OAAS,EAMd9Y,KAAK4Y,gBAAkB,IACzB,CAOAqQ,aAAAA,CAActY,GACZ,OAAOgI,GACL3Y,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACLnI,EAEJ,CAMAoZ,cAAAA,GACE,OAAOjgB,GACT,CAOAkgB,kBAAAA,GACE,OAAOhqB,KAAK4Y,gBAAgB7T,MAAM,EAAG/E,KAAK8Y,OAC5C,CAKAmR,kBAAAA,GACE,OAAOjqB,KAAK4Y,eACd,CAOAsR,iBAAAA,GACE,OAAOlqB,KAAK4Y,gBAAgB7T,MAC1B/E,KAAK4Y,gBAAgBvW,OAASrC,KAAK8Y,OAEvC,CAOAqR,SAAAA,GACE,OAAOnqB,KAAK8pB,MACd,CAOAtB,qBAAAA,CAAsBD,GAOpB,GANIvoB,KAAKooB,6BAA+BpoB,KAAK0J,gBAC3C1J,KAAKmoB,yCAA2C,EAChDnoB,KAAKooB,2BAA6BpoB,KAAK0J,eAKvC6e,EAAmB,GACgC,IAAlDvoB,KAAKmoB,0CACJI,GAAoBvoB,KAAKmoB,yCAE3B,OAAOnoB,KAGT,MAAMoqB,EACJpqB,KAAKqqB,8BAA8B9B,GAC/B+B,EAA4BF,EAAmBH,qBACrD,OAAIK,EAA0BjoB,OAASrC,KAAK4Y,gBAAgBvW,OACnD+nB,GAQTpqB,KAAKmoB,yCAA2CI,EACzCvoB,KACT,CAOAqqB,6BAAAA,CAA8B9B,GAC5B,OAAOvoB,IACT,CAKAuqB,SAAAA,GACE,OAAOvqB,KAAK8Y,MACd,CAMA0R,kBAAAA,CAAmBV,EAAQlR,GACzB5Y,KAAK8Y,OAAS2R,GAAmBX,GACjC9pB,KAAK8pB,OAASA,EACd9pB,KAAK4Y,gBAAkBA,CACzB,CAOA8R,cAAAA,CAAezT,EAAa6S,GAC1BhgB,GACF,CAQA6gB,SAAAA,CAAUb,EAAQ7S,EAAa2T,GAE7B,IAAI9R,EACJ,GAAIgR,EACFhR,EAAS2R,GAAmBX,OACvB,CACL,IAAK,IAAIjnB,EAAI,EAAGA,EAAI+nB,IAAW/nB,EAAG,CAChC,GAA2B,IAAvBoU,EAAY5U,OAGd,OAFArC,KAAK8pB,OAAS,UACd9pB,KAAK8Y,OAAS,GAGhB7B,EAAoCA,EAAY,EAClD,CACA6B,EAAS7B,EAAY5U,OACrBynB,EAASe,GAAmB/R,EAC9B,CACA9Y,KAAK8pB,OAASA,EACd9pB,KAAK8Y,OAASA,CAChB,CAWA+C,cAAAA,CAAevF,GACTtW,KAAK4Y,kBACPtC,EAAYtW,KAAK4Y,gBAAiB5Y,KAAK4Y,gBAAiB5Y,KAAK8Y,QAC7D9Y,KAAKwJ,UAET,CASAkT,MAAAA,CAAOC,EAAO8K,GACZ,MAAM7O,EAAkB5Y,KAAKiqB,qBAC7B,GAAIrR,EAAiB,CACnB,MAAME,EAAS9Y,KAAKuqB,YACpB7N,GACE9D,EACA,EACAA,EAAgBvW,OAChByW,EACA6D,EACA8K,EACA7O,GAEF5Y,KAAKwJ,SACP,CACF,CAWAsT,KAAAA,CAAM2J,EAAIC,EAAIe,QACDxgB,IAAPyf,IACFA,EAAKD,GAEFgB,IACHA,EAAS7N,GAAU5Z,KAAK4Q,cAE1B,MAAMgI,EAAkB5Y,KAAKiqB,qBAC7B,GAAIrR,EAAiB,CACnB,MAAME,EAAS9Y,KAAKuqB,YACpBzN,GACElE,EACA,EACAA,EAAgBvW,OAChByW,EACA2N,EACAC,EACAe,EACA7O,GAEF5Y,KAAKwJ,SACP,CACF,CASAse,SAAAA,CAAUF,EAAQC,GAChB,MAAMjP,EAAkB5Y,KAAKiqB,qBAC7B,GAAIrR,EAAiB,CACnB,MAAME,EAAS9Y,KAAKuqB,YACpBzC,GACElP,EACA,EACAA,EAAgBvW,OAChByW,EACA8O,EACAC,EACAjP,GAEF5Y,KAAKwJ,SACP,CACF,EAOF,SAASqhB,GAAmB/R,GAC1B,IAAIgR,EAQJ,OAPc,GAAVhR,EACFgR,EAAS,KACU,GAAVhR,EACTgR,EAAS,MACU,GAAVhR,IACTgR,EAAS,QAEJ,CACT,CAMO,SAASW,GAAmBX,GACjC,IAAIhR,EAQJ,MAPc,MAAVgR,EACFhR,EAAS,EACU,OAAVgR,GAA6B,OAAVA,EAC5BhR,EAAS,EACU,QAAVgR,IACThR,EAAS,GAEJ,CACT,CAQO,SAASgS,GAAgBC,EAAgBtU,EAAWc,GACzD,MAAMqB,EAAkBmS,EAAed,qBACvC,IAAKrR,EACH,OAAO,KAET,MAAME,EAASiS,EAAeR,YAC9B,OAAO/C,GACL5O,EACA,EACAA,EAAgBvW,OAChByW,EACArC,EACAc,EAEJ,CAEA,UC3UA,SAASyT,GACPpS,EACAqS,EACAC,EACApS,EACA/L,EACAC,EACA2b,GAEA,MAAM1b,EAAK2L,EAAgBqS,GACrB/d,EAAK0L,EAAgBqS,EAAU,GAC/B5d,EAAKuL,EAAgBsS,GAAWje,EAChCK,EAAKsL,EAAgBsS,EAAU,GAAKhe,EAC1C,IAAI2L,EACJ,GAAW,IAAPxL,GAAmB,IAAPC,EACduL,EAASoS,MACJ,CACL,MAAM1d,IAAMR,EAAIE,GAAMI,GAAML,EAAIE,GAAMI,IAAOD,EAAKA,EAAKC,EAAKA,GAC5D,GAAIC,EAAI,EACNsL,EAASqS,MACJ,IAAI3d,EAAI,EAAG,CAChB,IAAK,IAAI1K,EAAI,EAAGA,EAAIiW,IAAUjW,EAC5B8lB,EAAa9lB,GAAK4L,EAChBmK,EAAgBqS,EAAUpoB,GAC1B+V,EAAgBsS,EAAUroB,GAC1B0K,GAIJ,YADAob,EAAatmB,OAASyW,EAExB,CACED,EAASoS,CACX,CACF,CACA,IAAK,IAAIpoB,EAAI,EAAGA,EAAIiW,IAAUjW,EAC5B8lB,EAAa9lB,GAAK+V,EAAgBC,EAAShW,GAE7C8lB,EAAatmB,OAASyW,CACxB,CAYO,SAASqS,GAAgBvS,EAAiBC,EAAQ5V,EAAK6V,EAAQlM,GACpE,IAAIK,EAAK2L,EAAgBC,GACrB3L,EAAK0L,EAAgBC,EAAS,GAClC,IAAKA,GAAUC,EAAQD,EAAS5V,EAAK4V,GAAUC,EAAQ,CACrD,MAAM3L,EAAKyL,EAAgBC,GACrBzL,EAAKwL,EAAgBC,EAAS,GAC9BuS,EAAeC,EAAUpe,EAAIC,EAAIC,EAAIC,GACvCge,EAAexe,IACjBA,EAAMwe,GAERne,EAAKE,EACLD,EAAKE,CACP,CACA,OAAOR,CACT,CAUO,SAAS0e,GACd1S,EACAC,EACA0S,EACAzS,EACAlM,GAEA,IAAK,IAAI/J,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACjB+J,EAAMue,GAAgBvS,EAAiBC,EAAQ5V,EAAK6V,EAAQlM,GAC5DiM,EAAS5V,CACX,CACA,OAAO2J,CACT,CAuCO,SAAS4e,GACd5S,EACAC,EACA5V,EACA6V,EACA2S,EACAC,EACA3e,EACAC,EACA2b,EACAC,EACA+C,GAEA,GAAI9S,GAAU5V,EACZ,OAAO2lB,EAET,IAAI/lB,EAAG2K,EACP,GAAiB,IAAbie,EAAgB,CAQlB,GANAje,EAAkB6d,EAChBte,EACAC,EACA4L,EAAgBC,GAChBD,EAAgBC,EAAS,IAEvBrL,EAAkBob,EAAoB,CACxC,IAAK/lB,EAAI,EAAGA,EAAIiW,IAAUjW,EACxB8lB,EAAa9lB,GAAK+V,EAAgBC,EAAShW,GAG7C,OADA8lB,EAAatmB,OAASyW,EACftL,CACT,CACA,OAAOob,CACT,CACA+C,EAAWA,GAAsB,CAAC5C,IAAKA,KACvC,IAAI7kB,EAAQ2U,EAASC,EACrB,MAAO5U,EAAQjB,EAWb,GAVA+nB,GACEpS,EACA1U,EAAQ4U,EACR5U,EACA4U,EACA/L,EACAC,EACA2e,GAEFne,EAAkB6d,EAAUte,EAAGC,EAAG2e,EAAS,GAAIA,EAAS,IACpDne,EAAkBob,EAAoB,CAExC,IADAA,EAAqBpb,EAChB3K,EAAI,EAAGA,EAAIiW,IAAUjW,EACxB8lB,EAAa9lB,GAAK8oB,EAAS9oB,GAE7B8lB,EAAatmB,OAASyW,EACtB5U,GAAS4U,CACX,MAWE5U,GACE4U,EACAjM,KAAKD,KACDC,KAAK8Q,KAAKnQ,GAAmBX,KAAK8Q,KAAKiL,IACvC6C,EACA,EACF,GAIR,GAAIC,IAEFV,GACEpS,EACA3V,EAAM6V,EACND,EACAC,EACA/L,EACAC,EACA2e,GAEFne,EAAkB6d,EAAUte,EAAGC,EAAG2e,EAAS,GAAIA,EAAS,IACpDne,EAAkBob,GAAoB,CAExC,IADAA,EAAqBpb,EAChB3K,EAAI,EAAGA,EAAIiW,IAAUjW,EACxB8lB,EAAa9lB,GAAK8oB,EAAS9oB,GAE7B8lB,EAAatmB,OAASyW,CACxB,CAEF,OAAO8P,CACT,CAgBO,SAASgD,GACdhT,EACAC,EACA0S,EACAzS,EACA2S,EACAC,EACA3e,EACAC,EACA2b,EACAC,EACA+C,GAEAA,EAAWA,GAAsB,CAAC5C,IAAKA,KACvC,IAAK,IAAIlmB,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACjB+lB,EAAqB4C,GACnB5S,EACAC,EACA5V,EACA6V,EACA2S,EACAC,EACA3e,EACAC,EACA2b,EACAC,EACA+C,GAEF9S,EAAS5V,CACX,CACA,OAAO2lB,CACT,CCpRO,SAASiD,GAAkBjT,EAAiBC,EAAQZ,EAAYa,GACrE,IAAK,IAAIjW,EAAI,EAAG+D,EAAKqR,EAAW5V,OAAQQ,EAAI+D,IAAM/D,EAChD+V,EAAgBC,KAAYZ,EAAWpV,GAEzC,OAAOgW,CACT,CASO,SAASiT,GACdlT,EACAC,EACA5B,EACA6B,GAEA,IAAK,IAAIjW,EAAI,EAAG+D,EAAKqQ,EAAY5U,OAAQQ,EAAI+D,IAAM/D,EAAG,CACpD,MAAMoV,EAAahB,EAAYpU,GAC/B,IAAK,IAAImL,EAAI,EAAGA,EAAI8K,IAAU9K,EAC5B4K,EAAgBC,KAAYZ,EAAWjK,EAE3C,CACA,OAAO6K,CACT,CAUO,SAASkT,GACdnT,EACAC,EACAmT,EACAlT,EACAyS,GAEAA,EAAOA,GAAc,GACrB,IAAI1oB,EAAI,EACR,IAAK,IAAImL,EAAI,EAAGie,EAAKD,EAAa3pB,OAAQ2L,EAAIie,IAAMje,EAAG,CACrD,MAAM/K,EAAM6oB,GACVlT,EACAC,EACAmT,EAAahe,GACb8K,GAEFyS,EAAK1oB,KAAOI,EACZ4V,EAAS5V,CACX,CAEA,OADAsoB,EAAKlpB,OAASQ,EACP0oB,CACT,CCqBO,SAASW,GACdtT,EACAC,EACA5V,EACA6V,EACAyP,EACA+B,EACA6B,GAEA,MAAMvpB,GAAKK,EAAM4V,GAAUC,EAC3B,GAAIlW,EAAI,EAAG,CACT,KAAOiW,EAAS5V,EAAK4V,GAAUC,EAC7BwR,EAA0B6B,KAAsBvT,EAAgBC,GAChEyR,EAA0B6B,KACxBvT,EAAgBC,EAAS,GAE7B,OAAOsT,CACT,CAEA,MAAMC,EAAU,IAAI9oB,MAAMV,GAC1BwpB,EAAQ,GAAK,EACbA,EAAQxpB,EAAI,GAAK,EAEjB,MAAMypB,EAAQ,CAACxT,EAAQ5V,EAAM6V,GAC7B,IAAI5U,EAAQ,EACZ,MAAOmoB,EAAMhqB,OAAS,EAAG,CACvB,MAAMiqB,EAAOD,EAAME,MACbC,EAAQH,EAAME,MACpB,IAAIE,EAAqB,EACzB,MAAMxf,EAAK2L,EAAgB4T,GACrBtf,EAAK0L,EAAgB4T,EAAQ,GAC7Brf,EAAKyL,EAAgB0T,GACrBlf,EAAKwL,EAAgB0T,EAAO,GAClC,IAAK,IAAIzpB,EAAI2pB,EAAQ1T,EAAQjW,EAAIypB,EAAMzpB,GAAKiW,EAAQ,CAClD,MAAM/L,EAAI6L,EAAgB/V,GACpBmK,EAAI4L,EAAgB/V,EAAI,GACxB2K,EAAkBV,EAAuBC,EAAGC,EAAGC,EAAIC,EAAIC,EAAIC,GAC7DI,EAAkBif,IACpBvoB,EAAQrB,EACR4pB,EAAqBjf,EAEzB,CACIif,EAAqBlE,IACvB6D,GAASloB,EAAQ2U,GAAUC,GAAU,EACjC0T,EAAQ1T,EAAS5U,GACnBmoB,EAAMlmB,KAAKqmB,EAAOtoB,GAEhBA,EAAQ4U,EAASwT,GACnBD,EAAMlmB,KAAKjC,EAAOooB,GAGxB,CACA,IAAK,IAAIzpB,EAAI,EAAGA,EAAID,IAAKC,EACnBupB,EAAQvpB,KACVynB,EAA0B6B,KACxBvT,EAAgBC,EAAShW,EAAIiW,GAC/BwR,EAA0B6B,KACxBvT,EAAgBC,EAAShW,EAAIiW,EAAS,IAG5C,OAAOqT,CACT,CA8IO,SAASO,GAAK9hB,EAAOmY,GAC1B,OAAOA,EAAYlW,KAAKiC,MAAMlE,EAAQmY,EACxC,CAqBO,SAAS4J,GACd/T,EACAC,EACA5V,EACA6V,EACAiK,EACAuH,EACA6B,GAGA,GAAItT,GAAU5V,EACZ,OAAOkpB,EAGT,IAQIhf,EAAIC,EARJH,EAAKyf,GAAK9T,EAAgBC,GAASkK,GACnC7V,EAAKwf,GAAK9T,EAAgBC,EAAS,GAAIkK,GAC3ClK,GAAUC,EAEVwR,EAA0B6B,KAAsBlf,EAChDqd,EAA0B6B,KAAsBjf,EAIhD,GAIE,GAHAC,EAAKuf,GAAK9T,EAAgBC,GAASkK,GACnC3V,EAAKsf,GAAK9T,EAAgBC,EAAS,GAAIkK,GACvClK,GAAUC,EACND,GAAU5V,EAOZ,OAFAqnB,EAA0B6B,KAAsBhf,EAChDmd,EAA0B6B,KAAsB/e,EACzC+e,QAEFhf,GAAMF,GAAMG,GAAMF,GAC3B,MAAO2L,EAAS5V,EAAK,CAEnB,MAAMoX,EAAKqS,GAAK9T,EAAgBC,GAASkK,GACnCzI,EAAKoS,GAAK9T,EAAgBC,EAAS,GAAIkK,GAG7C,GAFAlK,GAAUC,EAENuB,GAAMlN,GAAMmN,GAAMlN,EACpB,SAGF,MAAMmZ,EAAMpZ,EAAKF,EACXuZ,EAAMpZ,EAAKF,EAEXyZ,EAAMtM,EAAKpN,EACX2Z,EAAMtM,EAAKpN,EAKfqZ,EAAMK,GAAOJ,EAAMG,IACjBJ,EAAM,GAAKI,EAAMJ,GAAQA,GAAOI,GAAQJ,EAAM,GAAKI,EAAMJ,KACzDC,EAAM,GAAKI,EAAMJ,GAAQA,GAAOI,GAAQJ,EAAM,GAAKI,EAAMJ,IAG3DrZ,EAAKkN,EACLjN,EAAKkN,IAMPgQ,EAA0B6B,KAAsBhf,EAChDmd,EAA0B6B,KAAsB/e,EAChDH,EAAKE,EACLD,EAAKE,EACLD,EAAKkN,EACLjN,EAAKkN,EACP,CAIA,OAFAgQ,EAA0B6B,KAAsBhf,EAChDmd,EAA0B6B,KAAsB/e,EACzC+e,CACT,CAcO,SAASS,GACdhU,EACAC,EACA0S,EACAzS,EACAiK,EACAuH,EACA6B,EACAU,GAEA,IAAK,IAAIhqB,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACjBspB,EAAmBQ,GACjB/T,EACAC,EACA5V,EACA6V,EACAiK,EACAuH,EACA6B,GAEFU,EAAe1mB,KAAKgmB,GACpBtT,EAAS5V,CACX,CACA,OAAOkpB,CACT,CCtaO,SAASW,GACdlU,EACAC,EACA5V,EACA6V,EACA7B,GAEAA,OAA8BhQ,IAAhBgQ,EAA4BA,EAAc,GACxD,IAAIpU,EAAI,EACR,IAAK,IAAImL,EAAI6K,EAAQ7K,EAAI/K,EAAK+K,GAAK8K,EACjC7B,EAAYpU,KAAO+V,EAAgB7T,MAAMiJ,EAAGA,EAAI8K,GAGlD,OADA7B,EAAY5U,OAASQ,EACdoU,CACT,CAUO,SAAS8V,GACdnU,EACAC,EACA0S,EACAzS,EACAkT,GAEAA,OAAgC/kB,IAAjB+kB,EAA6BA,EAAe,GAC3D,IAAInpB,EAAI,EACR,IAAK,IAAImL,EAAI,EAAGie,EAAKV,EAAKlpB,OAAQ2L,EAAIie,IAAMje,EAAG,CAC7C,MAAM/K,EAAMsoB,EAAKvd,GACjBge,EAAanpB,KAAOiqB,GAClBlU,EACAC,EACA5V,EACA6V,EACAkT,EAAanpB,IAEfgW,EAAS5V,CACX,CAEA,OADA+oB,EAAa3pB,OAASQ,EACfmpB,CACT,CAWO,SAASgB,GACdpU,EACAC,EACAoU,EACAnU,EACAoU,GAEAA,OAAkCjmB,IAAlBimB,EAA8BA,EAAgB,GAC9D,IAAIrqB,EAAI,EACR,IAAK,IAAImL,EAAI,EAAGie,EAAKgB,EAAM5qB,OAAQ2L,EAAIie,IAAMje,EAAG,CAC9C,MAAMud,EAAO0B,EAAMjf,GACnBkf,EAAcrqB,KACI,IAAhB0oB,EAAKlpB,QAAgBkpB,EAAK,KAAO1S,EAC7B,GACAkU,GACEnU,EACAC,EACA0S,EACAzS,EACAoU,EAAcrqB,IAEtBgW,EAAS0S,EAAKA,EAAKlpB,OAAS,EAC9B,CAEA,OADA6qB,EAAc7qB,OAASQ,EAChBqqB,CACT,CCnFO,SAASC,GAAWvU,EAAiBC,EAAQ5V,EAAK6V,GACvD,IAAIsU,EAAY,EACZngB,EAAK2L,EAAgB3V,EAAM6V,GAC3B5L,EAAK0L,EAAgB3V,EAAM6V,EAAS,GACxC,KAAOD,EAAS5V,EAAK4V,GAAUC,EAAQ,CACrC,MAAM3L,EAAKyL,EAAgBC,GACrBzL,EAAKwL,EAAgBC,EAAS,GACpCuU,GAAalgB,EAAKC,EAAKF,EAAKG,EAC5BH,EAAKE,EACLD,EAAKE,CACP,CACA,OAAOggB,EAAY,CACrB,CASO,SAASC,GAAYzU,EAAiBC,EAAQ0S,EAAMzS,GACzD,IAAIW,EAAO,EACX,IAAK,IAAI5W,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACjB4W,GAAQ0T,GAAWvU,EAAiBC,EAAQ5V,EAAK6V,GACjDD,EAAS5V,CACX,CACA,OAAOwW,CACT,CCtBA,MAAM6T,WAAmBzD,GAMvB7oB,WAAAA,CAAYiW,EAAa6S,GACvBrkB,QAMAzF,KAAKutB,WAAa,EAMlBvtB,KAAKwtB,mBAAqB,OAEXvmB,IAAX6iB,GAAyBxmB,MAAMC,QAAQ0T,EAAY,IAMrDjX,KAAK0qB,eAEDzT,EAEF6S,GATF9pB,KAAKwqB,mBACHV,EAC8B7S,EAUpC,CAOAa,KAAAA,GACE,OAAO,IAAIwV,GAAWttB,KAAK4Y,gBAAgB7T,QAAS/E,KAAK8pB,OAC3D,CASApB,cAAAA,CAAe3b,EAAGC,EAAG2b,EAAcC,GACjC,OAAIA,EAAqB7Q,GAAyB/X,KAAK4Q,YAAa7D,EAAGC,GAC9D4b,GAEL5oB,KAAKwtB,mBAAqBxtB,KAAK0J,gBACjC1J,KAAKutB,UAAY1gB,KAAK8Q,KACpBwN,GACEnrB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACL,IAGJ9Y,KAAKwtB,kBAAoBxtB,KAAK0J,eAEzB8hB,GACLxrB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACL9Y,KAAKutB,WACL,EACAxgB,EACAC,EACA2b,EACAC,GAEJ,CAOApP,OAAAA,GACE,OAAOiU,GACLztB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OAET,CAOAiR,cAAAA,GACE,OAAO+C,GACL9sB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OAET,CAOAuR,6BAAAA,CAA8B9B,GAC5B,MAAM+B,EAA4B,GAUlC,OATAA,EAA0BjoB,OAAS6pB,GACjClsB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACLyP,EACA+B,EACA,GAEK,IAAIgD,GAAWhD,EAA2B,KACnD,CAOAlB,OAAAA,GACE,MAAO,YACT,CAQAC,gBAAAA,CAAiB1Y,GACf,OAAO,CACT,CAQA+Z,cAAAA,CAAezT,EAAa6S,GAC1B9pB,KAAK2qB,UAAUb,EAAQ7S,EAAa,GAC/BjX,KAAK4Y,kBACR5Y,KAAK4Y,gBAAkB,IAEzB5Y,KAAK4Y,gBAAgBvW,OAASypB,GAC5B9rB,KAAK4Y,gBACL,EACA3B,EACAjX,KAAK8Y,QAEP9Y,KAAKwJ,SACP,EAGF,UC7KA,MAAMkkB,WAAc7D,GAKlB7oB,WAAAA,CAAYiW,EAAa6S,GACvBrkB,QACAzF,KAAK0qB,eAAezT,EAAa6S,EACnC,CAOAhS,KAAAA,GACE,MAAMzC,EAAQ,IAAIqY,GAAM1tB,KAAK4Y,gBAAgB7T,QAAS/E,KAAK8pB,QAE3D,OADAzU,EAAM3J,gBAAgB1L,MACfqV,CACT,CASAqT,cAAAA,CAAe3b,EAAGC,EAAG2b,EAAcC,GACjC,MAAMhQ,EAAkB5Y,KAAK4Y,gBACvBpL,EAAkB6d,EACtBte,EACAC,EACA4L,EAAgB,GAChBA,EAAgB,IAElB,GAAIpL,EAAkBob,EAAoB,CACxC,MAAM9P,EAAS9Y,KAAK8Y,OACpB,IAAK,IAAIjW,EAAI,EAAGA,EAAIiW,IAAUjW,EAC5B8lB,EAAa9lB,GAAK+V,EAAgB/V,GAGpC,OADA8lB,EAAatmB,OAASyW,EACftL,CACT,CACA,OAAOob,CACT,CAOAmB,cAAAA,GACE,OAAQ/pB,KAAK4Y,gBAAuB5Y,KAAK4Y,gBAAgB7T,QAA1B,EACjC,CAOAkkB,aAAAA,CAActY,GACZ,OAAO+H,GAA6B1Y,KAAK4Y,gBAAiBjI,EAC5D,CAOAyY,OAAAA,GACE,MAAO,OACT,CAQAC,gBAAAA,CAAiB1Y,GACf,OAAOuH,GAAWvH,EAAQ3Q,KAAK4Y,gBAAgB,GAAI5Y,KAAK4Y,gBAAgB,GAC1E,CAOA8R,cAAAA,CAAezT,EAAa6S,GAC1B9pB,KAAK2qB,UAAUb,EAAQ7S,EAAa,GAC/BjX,KAAK4Y,kBACR5Y,KAAK4Y,gBAAkB,IAEzB5Y,KAAK4Y,gBAAgBvW,OAASwpB,GAC5B7rB,KAAK4Y,gBACL,EACA3B,EACAjX,KAAK8Y,QAEP9Y,KAAKwJ,SACP,EAGF,UCzGO,SAASmkB,GACd/U,EACAC,EACA5V,EACA6V,EACAnI,GAEA,MAAMid,EAAU3U,GACdtI,GAKA,SAAUsH,GACR,OAAQ4V,GACNjV,EACAC,EACA5V,EACA6V,EACAb,EAAW,GACXA,EAAW,GAEf,IAEF,OAAQ2V,CACV,CAWO,SAASC,GACdjV,EACAC,EACA5V,EACA6V,EACA/L,EACAC,GASA,IAAI8gB,EAAK,EACL7gB,EAAK2L,EAAgB3V,EAAM6V,GAC3B5L,EAAK0L,EAAgB3V,EAAM6V,EAAS,GACxC,KAAOD,EAAS5V,EAAK4V,GAAUC,EAAQ,CACrC,MAAM3L,EAAKyL,EAAgBC,GACrBzL,EAAKwL,EAAgBC,EAAS,GAChC3L,GAAMF,EACJI,EAAKJ,IAAMG,EAAKF,IAAOD,EAAIE,IAAOH,EAAIE,IAAOG,EAAKF,GAAM,GAC1D4gB,IAEO1gB,GAAMJ,IAAMG,EAAKF,IAAOD,EAAIE,IAAOH,EAAIE,IAAOG,EAAKF,GAAM,GAClE4gB,IAEF7gB,EAAKE,EACLD,EAAKE,CACP,CACA,OAAc,IAAP0gB,CACT,CAWO,SAASC,GACdnV,EACAC,EACA0S,EACAzS,EACA/L,EACAC,GAEA,GAAoB,IAAhBue,EAAKlpB,OACP,OAAO,EAET,IAAKwrB,GAAqBjV,EAAiBC,EAAQ0S,EAAK,GAAIzS,EAAQ/L,EAAGC,GACrE,OAAO,EAET,IAAK,IAAInK,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAC1C,GACEgrB,GAAqBjV,EAAiB2S,EAAK1oB,EAAI,GAAI0oB,EAAK1oB,GAAIiW,EAAQ/L,EAAGC,GAEvE,OAAO,EAGX,OAAO,CACT,CC/FO,SAASghB,GACdpV,EACAC,EACA0S,EACAzS,EACAmV,EACAC,EACA3W,GAEA,IAAI1U,EAAG+D,EAAImG,EAAGE,EAAIE,EAAID,EAAIE,EAC1B,MAAMJ,EAAIihB,EAAYC,EAAoB,GAEpCC,EAAgB,GAEtB,IAAK,IAAIrgB,EAAI,EAAGsgB,EAAK7C,EAAKlpB,OAAQyL,EAAIsgB,IAAMtgB,EAAG,CAC7C,MAAM7K,EAAMsoB,EAAKzd,GAGjB,IAFAb,EAAK2L,EAAgB3V,EAAM6V,GAC3B5L,EAAK0L,EAAgB3V,EAAM6V,EAAS,GAC/BjW,EAAIgW,EAAQhW,EAAII,EAAKJ,GAAKiW,EAC7B3L,EAAKyL,EAAgB/V,GACrBuK,EAAKwL,EAAgB/V,EAAI,IACpBmK,GAAKE,GAAME,GAAMJ,GAAOE,GAAMF,GAAKA,GAAKI,KAC3CL,GAAMC,EAAIE,IAAOE,EAAKF,IAAQC,EAAKF,GAAMA,EACzCkhB,EAAchoB,KAAK4G,IAErBE,EAAKE,EACLD,EAAKE,CAET,CAGA,IAAIihB,EAAStF,IACTuF,GAAoB3e,IAGxB,IAFAwe,EAAcI,KAAKrsB,GACnB+K,EAAKkhB,EAAc,GACdtrB,EAAI,EAAG+D,EAAKunB,EAAc9rB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAClDsK,EAAKghB,EAActrB,GACnB,MAAM2rB,EAAgB3hB,KAAKgB,IAAIV,EAAKF,GAChCuhB,EAAgBF,IAClBvhB,GAAKE,EAAKE,GAAM,EACZ4gB,GAAsBnV,EAAiBC,EAAQ0S,EAAMzS,EAAQ/L,EAAGC,KAClEqhB,EAASthB,EACTuhB,EAAmBE,IAGvBvhB,EAAKE,CACP,CAMA,OALI+b,MAAMmF,KAGRA,EAASJ,EAAYC,IAEnB3W,GACFA,EAAKpR,KAAKkoB,EAAQrhB,EAAGshB,GACd/W,GAEF,CAAC8W,EAAQrhB,EAAGshB,EACrB,CC3DO,SAASvP,GAAQnG,EAAiBC,EAAQ5V,EAAK6V,EAAQI,GAC5D,IAAIuV,EAEJ,IADA5V,GAAUC,EACHD,EAAS5V,EAAK4V,GAAUC,EAK7B,GAJA2V,EAAMvV,EACJN,EAAgB7T,MAAM8T,EAASC,EAAQD,GACvCD,EAAgB7T,MAAM8T,EAAQA,EAASC,IAErC2V,EACF,OAAOA,EAGX,OAAO,CACT,CCTO,SAASC,GACd9V,EACAC,EACA5V,EACA6V,EACAnI,GAEA,MAAMge,EAAoB5V,GACxB7B,KACA0B,EACAC,EACA5V,EACA6V,GAEF,QAAKoC,GAAWvK,EAAQge,OAGpBxW,GAAexH,EAAQge,KAGvBA,EAAkB,IAAMhe,EAAO,IAAMge,EAAkB,IAAMhe,EAAO,KAGpEge,EAAkB,IAAMhe,EAAO,IAAMge,EAAkB,IAAMhe,EAAO,IAGjEie,GACLhW,EACAC,EACA5V,EACA6V,GAOA,SAAU+V,EAAQC,GAChB,OAAO1T,GAAkBzK,EAAQke,EAAQC,EAC3C,MAEJ,CAoCO,SAASC,GACdnW,EACAC,EACA5V,EACA6V,EACAnI,GAEA,QAAI+d,GAAqB9V,EAAiBC,EAAQ5V,EAAK6V,EAAQnI,OAI7Dkd,GACEjV,EACAC,EACA5V,EACA6V,EACAnI,EAAO,GACPA,EAAO,QAMTkd,GACEjV,EACAC,EACA5V,EACA6V,EACAnI,EAAO,GACPA,EAAO,QAMTkd,GACEjV,EACAC,EACA5V,EACA6V,EACAnI,EAAO,GACPA,EAAO,OAMTkd,GACEjV,EACAC,EACA5V,EACA6V,EACAnI,EAAO,GACPA,EAAO,MAMb,CAUO,SAASqe,GACdpW,EACAC,EACA0S,EACAzS,EACAnI,GAEA,IAAKoe,GAAqBnW,EAAiBC,EAAQ0S,EAAK,GAAIzS,EAAQnI,GAClE,OAAO,EAET,GAAoB,IAAhB4a,EAAKlpB,OACP,OAAO,EAET,IAAK,IAAIQ,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAC1C,GACE8qB,GACE/U,EACA2S,EAAK1oB,EAAI,GACT0oB,EAAK1oB,GACLiW,EACAnI,KAIC+d,GACC9V,EACA2S,EAAK1oB,EAAI,GACT0oB,EAAK1oB,GACLiW,EACAnI,GAGF,OAAO,EAIb,OAAO,CACT,CClMO,SAASsG,GAAY2B,EAAiBC,EAAQ5V,EAAK6V,GACxD,MAAOD,EAAS5V,EAAM6V,EAAQ,CAC5B,IAAK,IAAIjW,EAAI,EAAGA,EAAIiW,IAAUjW,EAAG,CAC/B,MAAMK,EAAM0V,EAAgBC,EAAShW,GACrC+V,EAAgBC,EAAShW,GAAK+V,EAAgB3V,EAAM6V,EAASjW,GAC7D+V,EAAgB3V,EAAM6V,EAASjW,GAAKK,CACtC,CACA2V,GAAUC,EACV7V,GAAO6V,CACT,CACF,CCLO,SAASmW,GAAsBrW,EAAiBC,EAAQ5V,EAAK6V,GAGlE,IAAIoW,EAAO,EACPjiB,EAAK2L,EAAgB3V,EAAM6V,GAC3B5L,EAAK0L,EAAgB3V,EAAM6V,EAAS,GACxC,KAAOD,EAAS5V,EAAK4V,GAAUC,EAAQ,CACrC,MAAM3L,EAAKyL,EAAgBC,GACrBzL,EAAKwL,EAAgBC,EAAS,GACpCqW,IAAS/hB,EAAKF,IAAOG,EAAKF,GAC1BD,EAAKE,EACLD,EAAKE,CACP,CACA,OAAgB,IAAT8hB,OAAajoB,EAAYioB,EAAO,CACzC,CAeO,SAASC,GACdvW,EACAC,EACA0S,EACAzS,EACAsW,GAEAA,OAAkBnoB,IAAVmoB,GAAsBA,EAC9B,IAAK,IAAIvsB,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACXwsB,EAAcJ,GAClBrW,EACAC,EACA5V,EACA6V,GAEF,GAAU,IAANjW,GACF,GAAKusB,GAASC,IAAkBD,IAAUC,EACxC,OAAO,OAGT,GAAKD,IAAUC,IAAkBD,GAASC,EACxC,OAAO,EAGXxW,EAAS5V,CACX,CACA,OAAO,CACT,CA+CO,SAASqsB,GACd1W,EACAC,EACA0S,EACAzS,EACAsW,GAEAA,OAAkBnoB,IAAVmoB,GAAsBA,EAC9B,IAAK,IAAIvsB,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACXwsB,EAAcJ,GAClBrW,EACAC,EACA5V,EACA6V,GAEIyW,EACE,IAAN1sB,EACKusB,GAASC,IAAkBD,IAAUC,EACrCD,IAAUC,IAAkBD,GAASC,EACxCE,GACFC,GAAmB5W,EAAiBC,EAAQ5V,EAAK6V,GAEnDD,EAAS5V,CACX,CACA,OAAO4V,CACT,CCvHA,MAAM4W,WAAgB5F,GAYpB7oB,WAAAA,CAAYiW,EAAa6S,EAAQyB,GAC/B9lB,QAMAzF,KAAK0vB,MAAQ,GAMb1vB,KAAK2vB,4BAA8B,EAMnC3vB,KAAK4vB,mBAAqB,KAM1B5vB,KAAKutB,WAAa,EAMlBvtB,KAAKwtB,mBAAqB,EAM1BxtB,KAAK6vB,mBAAqB,EAM1B7vB,KAAK8vB,yBAA2B,UAEjB7oB,IAAX6iB,GAAwByB,GAC1BvrB,KAAKwqB,mBACHV,EAC8B7S,GAEhCjX,KAAK0vB,MAAQnE,GAEbvrB,KAAK0qB,eAEDzT,EAEF6S,EAGN,CAOAiG,gBAAAA,CAAiB5C,GACVntB,KAAK4Y,gBAGRzV,EAAOnD,KAAK4Y,gBAAiBuU,EAAWlD,sBAFxCjqB,KAAK4Y,gBAAkBuU,EAAWlD,qBAAqBllB,QAIzD/E,KAAK0vB,MAAMvpB,KAAKnG,KAAK4Y,gBAAgBvW,QACrCrC,KAAKwJ,SACP,CAOAsO,KAAAA,GACE,MAAMkY,EAAU,IAAIP,GAClBzvB,KAAK4Y,gBAAgB7T,QACrB/E,KAAK8pB,OACL9pB,KAAK0vB,MAAM3qB,SAGb,OADAirB,EAAQtkB,gBAAgB1L,MACjBgwB,CACT,CASAtH,cAAAA,CAAe3b,EAAGC,EAAG2b,EAAcC,GACjC,OAAIA,EAAqB7Q,GAAyB/X,KAAK4Q,YAAa7D,EAAGC,GAC9D4b,GAEL5oB,KAAKwtB,mBAAqBxtB,KAAK0J,gBACjC1J,KAAKutB,UAAY1gB,KAAK8Q,KACpB2N,GACEtrB,KAAK4Y,gBACL,EACA5Y,KAAK0vB,MACL1vB,KAAK8Y,OACL,IAGJ9Y,KAAKwtB,kBAAoBxtB,KAAK0J,eAEzBkiB,GACL5rB,KAAK4Y,gBACL,EACA5Y,KAAK0vB,MACL1vB,KAAK8Y,OACL9Y,KAAKutB,WACL,EACAxgB,EACAC,EACA2b,EACAC,GAEJ,CAOA1Q,UAAAA,CAAWnL,EAAGC,GACZ,OAAO+gB,GACL/tB,KAAKiwB,6BACL,EACAjwB,KAAK0vB,MACL1vB,KAAK8Y,OACL/L,EACAC,EAEJ,CAOAwM,OAAAA,GACE,OAAO0W,GACLlwB,KAAKiwB,6BACL,EACAjwB,KAAK0vB,MACL1vB,KAAK8Y,OAET,CAeAiR,cAAAA,CAAeqF,GACb,IAAIxW,EAQJ,YAPc3R,IAAVmoB,GACFxW,EAAkB5Y,KAAKiwB,6BAA6BlrB,QACpDuqB,GAAkB1W,EAAiB,EAAG5Y,KAAK0vB,MAAO1vB,KAAK8Y,OAAQsW,IAE/DxW,EAAkB5Y,KAAK4Y,gBAGlBmU,GAAwBnU,EAAiB,EAAG5Y,KAAK0vB,MAAO1vB,KAAK8Y,OACtE,CAKAqX,OAAAA,GACE,OAAOnwB,KAAK0vB,KACd,CAKAU,oBAAAA,GACE,GAAIpwB,KAAK2vB,4BAA8B3vB,KAAK0J,cAAe,CACzD,MAAM2mB,EAAazW,GAAU5Z,KAAK4Q,aAClC5Q,KAAK4vB,mBAAqB5B,GACxBhuB,KAAKiwB,6BACL,EACAjwB,KAAK0vB,MACL1vB,KAAK8Y,OACLuX,EACA,GAEFrwB,KAAK2vB,2BAA6B3vB,KAAK0J,aACzC,CACA,OAAO1J,KAAK4vB,kBACd,CAQAU,gBAAAA,GACE,OAAO,IAAI5C,GAAM1tB,KAAKowB,uBAAwB,MAChD,CASAG,kBAAAA,GACE,OAAOvwB,KAAK0vB,MAAMrtB,MACpB,CAYAmuB,aAAAA,CAActsB,GACZ,OAAIA,EAAQ,GAAKlE,KAAK0vB,MAAMrtB,QAAU6B,EAC7B,KAEF,IAAIopB,GACTttB,KAAK4Y,gBAAgB7T,MACT,IAAVb,EAAc,EAAIlE,KAAK0vB,MAAMxrB,EAAQ,GACrClE,KAAK0vB,MAAMxrB,IAEblE,KAAK8pB,OAET,CAOA2G,cAAAA,GACE,MAAM3G,EAAS9pB,KAAK8pB,OACdlR,EAAkB5Y,KAAK4Y,gBACvB2S,EAAOvrB,KAAK0vB,MACZrC,EAAc,GACpB,IAAIxU,EAAS,EACb,IAAK,IAAIhW,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACXsqB,EAAa,IAAIG,GACrB1U,EAAgB7T,MAAM8T,EAAQ5V,GAC9B6mB,GAEFuD,EAAYlnB,KAAKgnB,GACjBtU,EAAS5V,CACX,CACA,OAAOoqB,CACT,CAKA4C,0BAAAA,GACE,GAAIjwB,KAAK6vB,mBAAqB7vB,KAAK0J,cAAe,CAChD,MAAMkP,EAAkB5Y,KAAK4Y,gBACzBuW,GAAuBvW,EAAiB,EAAG5Y,KAAK0vB,MAAO1vB,KAAK8Y,QAC9D9Y,KAAK8vB,yBAA2BlX,GAEhC5Y,KAAK8vB,yBAA2BlX,EAAgB7T,QAChD/E,KAAK8vB,yBAAyBztB,OAASitB,GACrCtvB,KAAK8vB,yBACL,EACA9vB,KAAK0vB,MACL1vB,KAAK8Y,SAGT9Y,KAAK6vB,kBAAoB7vB,KAAK0J,aAChC,CACA,OAAO1J,KAAK8vB,wBACd,CAOAzF,6BAAAA,CAA8B9B,GAC5B,MAAM+B,EAA4B,GAC5BuC,EAAiB,GAWvB,OAVAvC,EAA0BjoB,OAASuqB,GACjC5sB,KAAK4Y,gBACL,EACA5Y,KAAK0vB,MACL1vB,KAAK8Y,OACLjM,KAAK8Q,KAAK4K,GACV+B,EACA,EACAuC,GAEK,IAAI4C,GAAQnF,EAA2B,KAAMuC,EACtD,CAOAzD,OAAAA,GACE,MAAO,SACT,CAQAC,gBAAAA,CAAiB1Y,GACf,OAAOqe,GACLhvB,KAAKiwB,6BACL,EACAjwB,KAAK0vB,MACL1vB,KAAK8Y,OACLnI,EAEJ,CAQA+Z,cAAAA,CAAezT,EAAa6S,GAC1B9pB,KAAK2qB,UAAUb,EAAQ7S,EAAa,GAC/BjX,KAAK4Y,kBACR5Y,KAAK4Y,gBAAkB,IAEzB,MAAM2S,EAAOQ,GACX/rB,KAAK4Y,gBACL,EACA3B,EACAjX,KAAK8Y,OACL9Y,KAAK0vB,OAEP1vB,KAAK4Y,gBAAgBvW,OAAyB,IAAhBkpB,EAAKlpB,OAAe,EAAIkpB,EAAKA,EAAKlpB,OAAS,GACzErC,KAAKwJ,SACP,EAGF,UAkCO,SAASknB,GAAW/f,GACzB,GAAIpL,GAAQoL,GACV,MAAM,IAAI5G,MAAM,2CAElB,MAAMyN,EAAO7G,EAAO,GACd8G,EAAO9G,EAAO,GACd+G,EAAO/G,EAAO,GACdgH,EAAOhH,EAAO,GACdiI,EAAkB,CACtBpB,EACAC,EACAD,EACAG,EACAD,EACAC,EACAD,EACAD,EACAD,EACAC,GAEF,OAAO,IAAIgY,GAAQ7W,EAAiB,KAAM,CAACA,EAAgBvW,QAC7D,CC1OA,MAAMsuB,GAAmB,EAqFzB,MAAMC,WAAarmB,EAIjBvJ,WAAAA,CAAYkO,GACVzJ,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAEL6F,EAAU/H,OAAO6D,OAAO,CAAC,EAAGkE,GAM5BlP,KAAK6wB,OAAS,CAAC,EAAG,GAMlB7wB,KAAK8wB,YAAc,GAMnB9wB,KAAK+wB,oBAOL/wB,KAAKgxB,YAAcjR,GAAiB7Q,EAAQiH,WAAY,aAMxDnW,KAAKixB,cAAgB,CAAC,IAAK,KAM3BjxB,KAAKkxB,cAAgB,KAMrBlxB,KAAKmxB,kBAMLnxB,KAAKoxB,gBAMLpxB,KAAKqxB,YAAc,KAMnBrxB,KAAKsxB,gBAMLtxB,KAAKuxB,cAMLvxB,KAAKwxB,mBAAgBvqB,EAEjBiI,EAAQiH,YACVkI,KAEEnP,EAAQ8K,SACV9K,EAAQ8K,OAAS4G,GAAmB1R,EAAQ8K,OAAQha,KAAKgxB,cAEvD9hB,EAAQyB,SACVzB,EAAQyB,OAASoQ,GAAe7R,EAAQyB,OAAQ3Q,KAAKgxB,cAGvDhxB,KAAKyxB,cAAcviB,EACrB,CAMAuiB,aAAAA,CAAcviB,GACZ,MAAMG,EAAalI,OAAO6D,OAAO,CAAC,EAAGkE,GACrC,IAAK,MAAMlG,KAAO0oB,UACTriB,EAAWrG,GAEpBhJ,KAAK0K,cAAc2E,GAAY,GAE/B,MAAMsiB,EAA2BC,GAA2B1iB,GAM5DlP,KAAK6xB,eAAiBF,EAAyBjiB,cAM/C1P,KAAK8xB,eAAiBH,EAAyB/hB,cAM/C5P,KAAK+xB,YAAcJ,EAAyBK,WAM5ChyB,KAAKiyB,aAAe/iB,EAAQuT,YAM5BziB,KAAKkyB,SAAWhjB,EAAQijB,QAMxBnyB,KAAKoyB,SAAWT,EAAyB9hB,QAEzC,MAAMwiB,EAAmBC,GAAuBpjB,GAC1CqjB,EAAuBZ,EAAyBa,WAChDC,EAAqBC,GAAyBxjB,GAMpDlP,KAAK2yB,aAAe,CAClB3Y,OAAQqY,EACRjd,WAAYmd,EACZtY,SAAUwY,GAGZzyB,KAAK4yB,iBAAiC3rB,IAArBiI,EAAQ+K,SAAyB/K,EAAQ+K,SAAW,GACrEja,KAAK6yB,uBACgB5rB,IAAnBiI,EAAQ8K,OAAuB9K,EAAQ8K,OAAS,WAEvB/S,IAAvBiI,EAAQkG,WACVpV,KAAK8yB,cAAc5jB,EAAQkG,iBACDnO,IAAjBiI,EAAQ6jB,MACjB/yB,KAAKgzB,QAAQ9jB,EAAQ6jB,KAEzB,CAWA,WAAIZ,GACF,OAAOnyB,KAAKkyB,QACd,CACA,WAAIC,CAAQA,GACV,IAAIc,EAAajzB,KAAKkyB,SACtBlyB,KAAKkyB,SAAWC,EAChB,MAAMnY,EAASha,KAAKkzB,oBACpB,GAAIlZ,EAAQ,CACV,MAAMmZ,EAAahB,GAAW,CAAC,EAAG,EAAG,EAAG,GACxCc,EAAaA,GAAc,CAAC,EAAG,EAAG,EAAG,GACrC,MAAM7d,EAAapV,KAAKozB,gBAClBC,EACHje,EAAa,GACb+d,EAAW,GAAKF,EAAW,GAAKA,EAAW,GAAKE,EAAW,IACxDG,EACHle,EAAa,GACb+d,EAAW,GAAKF,EAAW,GAAKA,EAAW,GAAKE,EAAW,IAC9DnzB,KAAK6yB,kBAAkB,CAAC7Y,EAAO,GAAKqZ,EAASrZ,EAAO,GAAKsZ,GAC3D,CACF,CAUAC,kBAAAA,CAAmBC,GACjB,MAAMtkB,EAAUlP,KAAK+K,gBAerB,YAZ2B9D,IAAvBiI,EAAQkG,WACVlG,EAAQkG,WAAapV,KAAKozB,gBAE1BlkB,EAAQ6jB,KAAO/yB,KAAKyzB,UAItBvkB,EAAQ8K,OAASha,KAAKkzB,oBAGtBhkB,EAAQ+K,SAAWja,KAAK0zB,cAEjBvsB,OAAO6D,OAAO,CAAC,EAAGkE,EAASskB,EACpC,CAmCAG,OAAAA,CAAQC,GACF5zB,KAAK6zB,UAAY7zB,KAAK8zB,gBACxB9zB,KAAK+zB,mBAAmB,GAE1B,MAAM7V,EAAO,IAAI5a,MAAM2B,UAAU5C,QACjC,IAAK,IAAIQ,EAAI,EAAGA,EAAIqb,EAAK7b,SAAUQ,EAAG,CACpC,IAAIqM,EAAUjK,UAAUpC,GACpBqM,EAAQ8K,SACV9K,EAAU/H,OAAO6D,OAAO,CAAC,EAAGkE,GAC5BA,EAAQ8K,OAAS4G,GACf1R,EAAQ8K,OACRha,KAAKupB,kBAGLra,EAAQuY,SACVvY,EAAU/H,OAAO6D,OAAO,CAAC,EAAGkE,GAC5BA,EAAQuY,OAAS7G,GACf1R,EAAQuY,OACRznB,KAAKupB,kBAGTrL,EAAKrb,GAAKqM,CACZ,CACAlP,KAAKg0B,gBAAgB7uB,MAAMnF,KAAMke,EACnC,CAKA8V,eAAAA,CAAgBJ,GACd,IACI1a,EADA+a,EAAiBhvB,UAAU5C,OAG7B4xB,EAAiB,GACwB,oBAAlChvB,UAAUgvB,EAAiB,KAElC/a,EAAWjU,UAAUgvB,EAAiB,KACpCA,GAGJ,IAAIpxB,EAAI,EACR,KAAOA,EAAIoxB,IAAmBj0B,KAAK6zB,UAAWhxB,EAAG,CAE/C,MAAMyN,EAAQrL,UAAUpC,GACpByN,EAAM0J,QACRha,KAAK6yB,kBAAkBviB,EAAM0J,aAEZ/S,IAAfqJ,EAAMyiB,KACR/yB,KAAKgzB,QAAQ1iB,EAAMyiB,MACVziB,EAAM8E,YACfpV,KAAK8yB,cAAcxiB,EAAM8E,iBAEJnO,IAAnBqJ,EAAM2J,UACRja,KAAK4yB,YAAYtiB,EAAM2J,SAE3B,CACA,GAAIpX,IAAMoxB,EAIR,YAHI/a,GACFgb,GAAkBhb,GAAU,IAKhC,IAAImC,EAAQ8Y,KAAKC,MACbpa,EAASha,KAAKkxB,cAAcnsB,QAC5BqQ,EAAapV,KAAKmxB,kBAClBlX,EAAWja,KAAKoxB,gBACpB,MAAMiD,EAAS,GACf,KAAOxxB,EAAIoxB,IAAkBpxB,EAAG,CAC9B,MAAMqM,EAA2CjK,UAAUpC,GAErDyxB,EAAY,CAChBjZ,MAAOA,EACPkZ,UAAU,EACV9M,OAAQvY,EAAQuY,OAChB+M,cAA+BvtB,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,IAC9DC,OAAQvlB,EAAQulB,QAAU/Q,GAC1BxK,SAAUA,GAmBZ,GAhBIhK,EAAQ8K,SACVsa,EAAUI,aAAe1a,EACzBsa,EAAUK,aAAezlB,EAAQ8K,OAAOjV,QACxCiV,EAASsa,EAAUK,mBAGA1tB,IAAjBiI,EAAQ6jB,MACVuB,EAAUM,iBAAmBxf,EAC7Bkf,EAAUO,iBAAmB70B,KAAK80B,qBAAqB5lB,EAAQ6jB,MAC/D3d,EAAakf,EAAUO,kBACd3lB,EAAQkG,aACjBkf,EAAUM,iBAAmBxf,EAC7Bkf,EAAUO,iBAAmB3lB,EAAQkG,WACrCA,EAAakf,EAAUO,uBAGA5tB,IAArBiI,EAAQ+K,SAAwB,CAClCqa,EAAUS,eAAiB9a,EAC3B,MAAMsC,EACJ/N,EAAOU,EAAQ+K,SAAWA,EAAWpN,KAAK0B,GAAI,EAAI1B,KAAK0B,IAAM1B,KAAK0B,GACpE+lB,EAAUU,eAAiB/a,EAAWsC,EACtCtC,EAAWqa,EAAUU,cACvB,CAGIC,GAAgBX,GAClBA,EAAUC,UAAW,EAGrBlZ,GAASiZ,EAAUE,SAErBH,EAAOluB,KAAKmuB,EACd,CACAt0B,KAAK8wB,YAAY3qB,KAAKkuB,GACtBr0B,KAAKk1B,QAAQC,EAAS9iB,UAAW,GACjCrS,KAAKo1B,mBACP,CAOAtB,YAAAA,GACE,OAAO9zB,KAAK6wB,OAAOsE,EAAS9iB,WAAa,CAC3C,CAOAgjB,cAAAA,GACE,OAAOr1B,KAAK6wB,OAAOsE,EAAS7iB,aAAe,CAC7C,CAMAgjB,gBAAAA,GAEE,IAAI7N,EADJznB,KAAKk1B,QAAQC,EAAS9iB,WAAYrS,KAAK6wB,OAAOsE,EAAS9iB,YAEvD,IAAK,IAAIxP,EAAI,EAAG+D,EAAK5G,KAAK8wB,YAAYzuB,OAAQQ,EAAI+D,IAAM/D,EAAG,CACzD,MAAMwxB,EAASr0B,KAAK8wB,YAAYjuB,GAIhC,GAHIwxB,EAAO,GAAGnb,UACZgb,GAAkBG,EAAO,GAAGnb,UAAU,IAEnCuO,EACH,IAAK,IAAIzZ,EAAI,EAAGie,EAAKoI,EAAOhyB,OAAQ2L,EAAIie,IAAMje,EAAG,CAC/C,MAAMsmB,EAAYD,EAAOrmB,GACzB,IAAKsmB,EAAUC,SAAU,CACvB9M,EAAS6M,EAAU7M,OACnB,KACF,CACF,CAEJ,CACAznB,KAAK8wB,YAAYzuB,OAAS,EAC1BrC,KAAKwxB,cAAgB/J,EACrBznB,KAAKqxB,YAAc,KACnBrxB,KAAKsxB,gBAAkBvI,IACvB/oB,KAAKuxB,cAAgBxI,GACvB,CAKAqM,iBAAAA,GAKE,QAJiCnuB,IAA7BjH,KAAK+wB,sBACPwE,qBAAqBv1B,KAAK+wB,qBAC1B/wB,KAAK+wB,yBAAsB9pB,IAExBjH,KAAK8zB,eACR,OAEF,MAAMM,EAAMD,KAAKC,MACjB,IAAIoB,GAAO,EACX,IAAK,IAAI3yB,EAAI7C,KAAK8wB,YAAYzuB,OAAS,EAAGQ,GAAK,IAAKA,EAAG,CACrD,MAAMwxB,EAASr0B,KAAK8wB,YAAYjuB,GAChC,IAAI4yB,GAAiB,EACrB,IAAK,IAAIznB,EAAI,EAAGie,EAAKoI,EAAOhyB,OAAQ2L,EAAIie,IAAMje,EAAG,CAC/C,MAAMsmB,EAAYD,EAAOrmB,GACzB,GAAIsmB,EAAUC,SACZ,SAEF,MAAMmB,EAAUtB,EAAME,EAAUjZ,MAChC,IAAIsa,EACFrB,EAAUE,SAAW,EAAIkB,EAAUpB,EAAUE,SAAW,EACtDmB,GAAY,GACdrB,EAAUC,UAAW,EACrBoB,EAAW,GAEXF,GAAiB,EAEnB,MAAMG,EAAWtB,EAAUG,OAAOkB,GAClC,GAAIrB,EAAUI,aAAc,CAC1B,MAAMva,EAAKma,EAAUI,aAAa,GAC5Bta,EAAKka,EAAUI,aAAa,GAC5BznB,EAAKqnB,EAAUK,aAAa,GAC5BznB,EAAKonB,EAAUK,aAAa,GAClC30B,KAAKqxB,YAAciD,EAAUK,aAC7B,MAAM5nB,EAAIoN,EAAKyb,GAAY3oB,EAAKkN,GAC1BnN,EAAIoN,EAAKwb,GAAY1oB,EAAKkN,GAChCpa,KAAKkxB,cAAgB,CAACnkB,EAAGC,EAC3B,CACA,GAAIsnB,EAAUM,kBAAoBN,EAAUO,iBAAkB,CAC5D,MAAMzf,EACS,IAAbwgB,EACItB,EAAUO,iBACVP,EAAUM,iBACVgB,GACGtB,EAAUO,iBAAmBP,EAAUM,kBAChD,GAAIN,EAAU7M,OAAQ,CACpB,MAAMvN,EAAOla,KAAK61B,iBAAiB71B,KAAK0zB,eAClCoC,EAAwB91B,KAAK2yB,aAAavd,WAC9CA,EACA,EACA8E,GACA,GAEFla,KAAKkxB,cAAgBlxB,KAAK+1B,oBACxBD,EACAxB,EAAU7M,OAEd,CACAznB,KAAKsxB,gBAAkBgD,EAAUO,iBACjC70B,KAAKmxB,kBAAoB/b,EACzBpV,KAAKg2B,mBAAkB,EACzB,CACA,QAC+B/uB,IAA7BqtB,EAAUS,qBACmB9tB,IAA7BqtB,EAAUU,eACV,CACA,MAAM/a,EACS,IAAb2b,EACIpnB,EAAO8lB,EAAUU,eAAiBnoB,KAAK0B,GAAI,EAAI1B,KAAK0B,IACpD1B,KAAK0B,GACL+lB,EAAUS,eACVa,GACGtB,EAAUU,eAAiBV,EAAUS,gBAC9C,GAAIT,EAAU7M,OAAQ,CACpB,MAAMwO,EAAsBj2B,KAAK2yB,aAAa1Y,SAC5CA,GACA,GAEFja,KAAKkxB,cAAgBlxB,KAAKk2B,sBACxBD,EACA3B,EAAU7M,OAEd,CACAznB,KAAKuxB,cAAgB+C,EAAUU,eAC/Bh1B,KAAKoxB,gBAAkBnX,CACzB,CAGA,GAFAja,KAAKg2B,mBAAkB,GACvBR,GAAO,GACFlB,EAAUC,SACb,KAEJ,CACA,GAAIkB,EAAgB,CAClBz1B,KAAK8wB,YAAYjuB,GAAK,KACtB7C,KAAKk1B,QAAQC,EAAS9iB,WAAY,GAClCrS,KAAKqxB,YAAc,KACnBrxB,KAAKsxB,gBAAkBvI,IACvB/oB,KAAKuxB,cAAgBxI,IACrB,MAAM7P,EAAWmb,EAAO,GAAGnb,SACvBA,GACFgb,GAAkBhb,GAAU,EAEhC,CACF,CAEAlZ,KAAK8wB,YAAc9wB,KAAK8wB,YAAYqF,OAAOC,SACvCZ,QAAqCvuB,IAA7BjH,KAAK+wB,sBACf/wB,KAAK+wB,oBAAsBsF,sBACzBr2B,KAAKo1B,kBAAkBzsB,KAAK3I,OAGlC,CAOAk2B,qBAAAA,CAAsBjc,EAAUwN,GAC9B,IAAIzN,EACJ,MAAMsc,EAAgBt2B,KAAKkzB,oBAM3B,YALsBjsB,IAAlBqvB,IACFtc,EAAS,CAACsc,EAAc,GAAK7O,EAAO,GAAI6O,EAAc,GAAK7O,EAAO,IAClE8O,GAAiBvc,EAAQC,EAAWja,KAAK0zB,eACzC8C,GAAcxc,EAAQyN,IAEjBzN,CACT,CAOA+b,mBAAAA,CAAoB3gB,EAAYqS,GAC9B,IAAIzN,EACJ,MAAMsc,EAAgBt2B,KAAKkzB,oBACrBuD,EAAoBz2B,KAAKozB,gBAC/B,QAAsBnsB,IAAlBqvB,QAAqDrvB,IAAtBwvB,EAAiC,CAClE,MAAM1pB,EACJ0a,EAAO,GACNrS,GAAcqS,EAAO,GAAK6O,EAAc,IAAOG,EAC5CzpB,EACJya,EAAO,GACNrS,GAAcqS,EAAO,GAAK6O,EAAc,IAAOG,EAClDzc,EAAS,CAACjN,EAAGC,EACf,CACA,OAAOgN,CACT,CAQA6b,gBAAAA,CAAiB5b,GACf,MAAMC,EAAOla,KAAKixB,cAClB,GAAIhX,EAAU,CACZ,MAAMyc,EAAIxc,EAAK,GACTyc,EAAIzc,EAAK,GACf,MAAO,CACLrN,KAAKgB,IAAI6oB,EAAI7pB,KAAK4N,IAAIR,IAAapN,KAAKgB,IAAI8oB,EAAI9pB,KAAK8N,IAAIV,IACzDpN,KAAKgB,IAAI6oB,EAAI7pB,KAAK8N,IAAIV,IAAapN,KAAKgB,IAAI8oB,EAAI9pB,KAAK4N,IAAIR,IAE7D,CACA,OAAOC,CACT,CASA0c,eAAAA,CAAgB1c,GACdla,KAAKixB,cAAgB3tB,MAAMC,QAAQ2W,GAAQA,EAAKnV,QAAU,CAAC,IAAK,KAC3D/E,KAAK8zB,gBACR9zB,KAAK+zB,mBAAmB,EAE5B,CAQAna,SAAAA,GACE,MAAMI,EAASha,KAAKkzB,oBACpB,OAAKlZ,EAGE2G,GAAiB3G,EAAQha,KAAKupB,iBAF5BvP,CAGX,CAMAkZ,iBAAAA,GACE,OACElzB,KAAK2K,IAAI+mB,GAAanf,OAE1B,CAKAskB,cAAAA,GACE,OAAO72B,KAAK2yB,YACd,CAKAmE,sBAAAA,GACE,OAAO92B,KAAK2K,IAAI,sBAClB,CAMAosB,QAAAA,CAASC,GACP,YAAc/vB,IAAV+vB,GACFA,EAAM,GAAKh3B,KAAK6wB,OAAO,GACvBmG,EAAM,GAAKh3B,KAAK6wB,OAAO,GAChBmG,GAEFh3B,KAAK6wB,OAAO9rB,OACrB,CAYAkyB,eAAAA,CAAgB/c,GACd,MAAMvJ,EAAS3Q,KAAKk3B,wBAAwBhd,GAC5C,OAAO4G,GAAanQ,EAAQ3Q,KAAKupB,gBACnC,CAOA2N,uBAAAA,CAAwBhd,GACtBA,EAAOA,GAAQla,KAAKm3B,+BACpB,MAAMnd,EACJha,KAAKkzB,oBAEP3mB,EAAOyN,EAAQ,kCACf,MAAM5E,EAAqCpV,KAAKozB,gBAChD7mB,OAAsBtF,IAAfmO,EAA0B,sCACjC,MAAM6E,EAAmCja,KAAK0zB,cAG9C,OAFAnnB,OAAoBtF,IAAbgT,EAAwB,oCAExBF,GAAkBC,EAAQ5E,EAAY6E,EAAUC,EACzD,CAOArJ,gBAAAA,GACE,OAAO7Q,KAAK6xB,cACd,CAOA/gB,gBAAAA,GACE,OAAO9Q,KAAK8xB,cACd,CAOA9gB,UAAAA,GACE,OACEhR,KAAKo3B,qBAAqBp3B,KAAK8xB,eAEnC,CAOApgB,UAAAA,CAAWqhB,GACT/yB,KAAKyxB,cAAczxB,KAAKuzB,mBAAmB,CAACzjB,QAASijB,IACvD,CAOAhiB,UAAAA,GACE,OACE/Q,KAAKo3B,qBAAqBp3B,KAAK6xB,eAEnC,CAOAlgB,UAAAA,CAAWohB,GACT/yB,KAAKyxB,cAAczxB,KAAKuzB,mBAAmB,CAAC1jB,QAASkjB,IACvD,CAOAsE,sBAAAA,CAAuBC,GACrBt3B,KAAKyxB,cAAczxB,KAAKuzB,mBAAmB,CAACgE,oBAAqBD,IACnE,CAOA/N,aAAAA,GACE,OAAOvpB,KAAKgxB,WACd,CAQAoC,aAAAA,GACE,OAAwCpzB,KAAK2K,IAAI+mB,GAAalf,WAChE,CAQAglB,cAAAA,GACE,OAAOx3B,KAAKiyB,YACd,CAUAwF,sBAAAA,CAAuB9mB,EAAQuJ,GAC7B,OAAOla,KAAK03B,+BACV3W,GAAepQ,EAAQ3Q,KAAKupB,iBAC5BrP,EAEJ,CASAwd,8BAAAA,CAA+B/mB,EAAQuJ,GACrCA,EAAOA,GAAQla,KAAKm3B,+BACpB,MAAM/U,EAAc1I,GAAS/I,GAAUuJ,EAAK,GACtCmI,EAAc1I,GAAUhJ,GAAUuJ,EAAK,GAC7C,OAAOrN,KAAKD,IAAIwV,EAAaC,EAC/B,CAQAsV,6BAAAA,CAA8B7U,GAC5BA,EAAQA,GAAS,EACjB,MAAMpT,EAAgB1P,KAAK43B,yBAAyB53B,KAAK6xB,gBACnDjiB,EAAgB5P,KAAK8xB,eACrBllB,EAAMC,KAAKoI,IAAIvF,EAAgBE,GAAiB/C,KAAKoI,IAAI6N,GAC/D,OAAO,SAKKlY,GACR,MAAMwK,EAAa1F,EAAgB7C,KAAKgC,IAAIiU,EAAOlY,EAAQgC,GAC3D,OAAOwI,CACR,CAEL,CAQAse,WAAAA,GACE,OAA8B1zB,KAAK2K,IAAI+mB,GAAajf,SACtD,CAQAolB,6BAAAA,CAA8B/U,GAC5B,MAAMgV,EAAWjrB,KAAKoI,IAAI6N,GAAS,GAC7BpT,EAAgB1P,KAAK43B,yBAAyB53B,KAAK6xB,gBACnDjiB,EAAgB5P,KAAK8xB,eACrBllB,EAAMC,KAAKoI,IAAIvF,EAAgBE,GAAiBkoB,EACtD,OAAO,SAKK1iB,GACR,MAAMxK,EAAQiC,KAAKoI,IAAIvF,EAAgB0F,GAAc0iB,EAAWlrB,EAChE,OAAOhC,CACR,CAEL,CAQAusB,4BAAAA,CAA6Bld,GAC3B,IAAIC,EAAOla,KAAK61B,iBAAiB5b,GACjC,MAAMkY,EAAUnyB,KAAKkyB,SAOrB,OANIC,IACFjY,EAAO,CACLA,EAAK,GAAKiY,EAAQ,GAAKA,EAAQ,GAC/BjY,EAAK,GAAKiY,EAAQ,GAAKA,EAAQ,KAG5BjY,CACT,CAKA6d,QAAAA,GACE,MAAM5hB,EAAanW,KAAKupB,gBAClBnU,EAAapV,KAAKozB,gBAClBnZ,EAAWja,KAAK0zB,cACtB,IAAI1Z,EACFha,KAAKkzB,oBAEP,MAAMf,EAAUnyB,KAAKkyB,SACrB,GAAIC,EAAS,CACX,MAAM6F,EAAch4B,KAAKm3B,+BACzBnd,EAASie,GACPje,EACAha,KAAK61B,mBACL,CAACmC,EAAY,GAAK,EAAI7F,EAAQ,GAAI6F,EAAY,GAAK,EAAI7F,EAAQ,IAC/D/c,EACA6E,EAEJ,CACA,MAAO,CACLD,OAAQA,EAAOjV,MAAM,GACrBoR,gBAA2BlP,IAAfkP,EAA2BA,EAAa,KACpDf,WAAYA,EACZ8iB,WAAYl4B,KAAKqxB,YACjB8G,eAAgBn4B,KAAKsxB,gBACrB8G,aAAcp4B,KAAKuxB,cACnBtX,SAAUA,EACV8Y,KAAM/yB,KAAKyzB,UAEf,CAKA4E,qBAAAA,GACE,MAAO,CACLC,UAAWt4B,KAAK+3B,WAChBpnB,OAAQ3Q,KAAKi3B,kBAEjB,CASAxD,OAAAA,GACE,IAAIV,EACJ,MAAM3d,EAAapV,KAAKozB,gBAIxB,YAHmBnsB,IAAfmO,IACF2d,EAAO/yB,KAAKo3B,qBAAqBhiB,IAE5B2d,CACT,CAQAqE,oBAAAA,CAAqBhiB,GACnB,IACIxI,EAAKolB,EADLnZ,EAAS7Y,KAAKoyB,UAAY,EAE9B,GAAIpyB,KAAKiyB,aAAc,CACrB,MAAMsG,EAAU91B,EAAkBzC,KAAKiyB,aAAc7c,EAAY,GACjEyD,EAAS0f,EACT3rB,EAAM5M,KAAKiyB,aAAasG,GAEtBvG,EADEuG,GAAWv4B,KAAKiyB,aAAa5vB,OAAS,EAC3B,EAEAuK,EAAM5M,KAAKiyB,aAAasG,EAAU,EAEnD,MACE3rB,EAAM5M,KAAK6xB,eACXG,EAAahyB,KAAK+xB,YAEpB,OAAOlZ,EAAShM,KAAKoI,IAAIrI,EAAMwI,GAAcvI,KAAKoI,IAAI+c,EACxD,CAQA8C,oBAAAA,CAAqB/B,GACnB,GAAI/yB,KAAKiyB,aAAc,CACrB,GAAIjyB,KAAKiyB,aAAa5vB,QAAU,EAC9B,OAAO,EAET,MAAMm2B,EAAY9rB,EAChBG,KAAKkC,MAAMgkB,GACX,EACA/yB,KAAKiyB,aAAa5vB,OAAS,GAEvB2vB,EACJhyB,KAAKiyB,aAAauG,GAAax4B,KAAKiyB,aAAauG,EAAY,GAC/D,OACEx4B,KAAKiyB,aAAauG,GAClB3rB,KAAKgC,IAAImjB,EAAYtlB,EAAMqmB,EAAOyF,EAAW,EAAG,GAEpD,CACA,OACEx4B,KAAK6xB,eAAiBhlB,KAAKgC,IAAI7O,KAAK+xB,YAAagB,EAAO/yB,KAAKoyB,SAEjE,CAYAqG,GAAAA,CAAIC,EAAkBxpB,GAEpB,IAAIypB,EAOJ,GANApsB,EACEjJ,MAAMC,QAAQm1B,IAEV,oBADwBA,EAAkBlQ,sBAE9C,qDAEEllB,MAAMC,QAAQm1B,GAAmB,CACnCnsB,GACGhH,GAAQmzB,GACT,kDAEF,MAAM/nB,EAASoQ,GAAe2X,EAAkB14B,KAAKupB,iBACrDoP,EAAWC,GAAkBjoB,EAC/B,MAAO,GAAmC,WAA/B+nB,EAAiBtP,UAAwB,CAClD,MAAMzY,EAASoQ,GACb2X,EAAiB9nB,YACjB5Q,KAAKupB,iBAEPoP,EAAWC,GAAkBjoB,GAC7BgoB,EAASjc,OAAO1c,KAAK0zB,cAAe9Z,GAAUjJ,GAChD,KAAO,CACL,MAAM8P,EAAiBC,KAErBiY,EADElY,EAEAiY,EACG5gB,QACArB,UAAUgK,EAAgBzgB,KAAKupB,iBAGzBmP,CAEf,CAEA14B,KAAK64B,YAAYF,EAAUzpB,EAC7B,CAOA4pB,wBAAAA,CAAyBH,GACvB,MAAM1e,EAAWja,KAAK0zB,cAChB9W,EAAW/P,KAAK4N,IAAIR,GACpB4C,EAAWhQ,KAAK8N,KAAKV,GACrB8e,EAASJ,EAAS1O,qBAClBnR,EAAS6f,EAASpO,YACxB,IAAIyO,EAAWrpB,IACXspB,EAAWtpB,IACXupB,GAAWvpB,IACXwpB,GAAWxpB,IACf,IAAK,IAAI9M,EAAI,EAAG+D,EAAKmyB,EAAO12B,OAAQQ,EAAI+D,EAAI/D,GAAKiW,EAAQ,CACvD,MAAMsgB,EAAOL,EAAOl2B,GAAK+Z,EAAWmc,EAAOl2B,EAAI,GAAKga,EAC9Cwc,EAAON,EAAOl2B,GAAKga,EAAWkc,EAAOl2B,EAAI,GAAK+Z,EACpDoc,EAAUnsB,KAAKF,IAAIqsB,EAASI,GAC5BH,EAAUpsB,KAAKF,IAAIssB,EAASI,GAC5BH,EAAUrsB,KAAKD,IAAIssB,EAASE,GAC5BD,EAAUtsB,KAAKD,IAAIusB,EAASE,EAC9B,CACA,MAAO,CAACL,EAASC,EAASC,EAASC,EACrC,CAMAN,WAAAA,CAAYF,EAAUzpB,GACpBA,EAAUA,GAAW,CAAC,EACtB,IAAIgL,EAAOhL,EAAQgL,KACdA,IACHA,EAAOla,KAAKm3B,gCAEd,MAAMhF,OACgBlrB,IAApBiI,EAAQijB,QAAwBjjB,EAAQijB,QAAU,CAAC,EAAG,EAAG,EAAG,GACxDoG,OAA8BtxB,IAApBiI,EAAQqpB,SAAwBrpB,EAAQqpB,QACxD,IAAI3oB,EAEFA,OAD4B3I,IAA1BiI,EAAQU,cACMV,EAAQU,mBACK3I,IAApBiI,EAAQY,QACD9P,KAAK80B,qBAAqB5lB,EAAQY,SAElC,EAGlB,MAAMwpB,EAAgBt5B,KAAK84B,yBAAyBH,GAGpD,IAAIvjB,EAAapV,KAAK03B,+BAA+B4B,EAAe,CAClEpf,EAAK,GAAKiY,EAAQ,GAAKA,EAAQ,GAC/BjY,EAAK,GAAKiY,EAAQ,GAAKA,EAAQ,KAEjC/c,EAAa8T,MAAM9T,GACfxF,EACA/C,KAAKD,IAAIwI,EAAYxF,GACzBwF,EAAapV,KAAK43B,yBAAyBxiB,EAAYmjB,EAAU,EAAI,GAGrE,MAAMte,EAAWja,KAAK0zB,cAChB7W,EAAWhQ,KAAK8N,IAAIV,GACpB2C,EAAW/P,KAAK4N,IAAIR,GACpBsf,EAAY3f,GAAU0f,GAC5BC,EAAU,KAAQpH,EAAQ,GAAKA,EAAQ,IAAM,EAAK/c,EAClDmkB,EAAU,KAAQpH,EAAQ,GAAKA,EAAQ,IAAM,EAAK/c,EAClD,MAAMokB,EAAUD,EAAU,GAAK3c,EAAW2c,EAAU,GAAK1c,EACnD4c,EAAUF,EAAU,GAAK3c,EAAW2c,EAAU,GAAK1c,EACnD7C,EAASha,KAAK05B,qBAAqB,CAACF,EAASC,GAAUrkB,GACvD8D,EAAWhK,EAAQgK,SAAWhK,EAAQgK,SAAW5U,OAE9B2C,IAArBiI,EAAQslB,SACVx0B,KAAKg0B,gBACH,CACE5e,WAAYA,EACZ4E,OAAQA,EACRwa,SAAUtlB,EAAQslB,SAClBC,OAAQvlB,EAAQulB,QAElBvb,IAGFlZ,KAAKmxB,kBAAoB/b,EACzBpV,KAAKkxB,cAAgBlX,EACrBha,KAAKg2B,mBAAkB,GAAO,GAC9B9B,GAAkBhb,GAAU,GAEhC,CASAygB,QAAAA,CAAS1hB,EAAYiC,EAAM0f,GACzB55B,KAAK65B,iBACHjZ,GAAmB3I,EAAYjY,KAAKupB,iBACpCrP,EACA0f,EAEJ,CAOAC,gBAAAA,CAAiB5hB,EAAYiC,EAAM0f,GACjC55B,KAAK6yB,kBACHoF,GACEhgB,EACAiC,EACA0f,EACA55B,KAAKozB,gBACLpzB,KAAK0zB,eAGX,CAUAoG,oBAAAA,CAAqB9f,EAAQ5E,EAAY6E,EAAUC,GACjD,IAAIwH,EACJ,MAAMyQ,EAAUnyB,KAAKkyB,SACrB,GAAIC,GAAWnY,EAAQ,CACrB,MAAMge,EAAch4B,KAAKm3B,8BAA8Bld,GACjD8f,EAAgB9B,GACpBje,EACAE,EACA,CAAC8d,EAAY,GAAK,EAAI7F,EAAQ,GAAI6F,EAAY,GAAK,EAAI7F,EAAQ,IAC/D/c,EACA6E,GAEFyH,EAAc,CACZ1H,EAAO,GAAK+f,EAAc,GAC1B/f,EAAO,GAAK+f,EAAc,GAE9B,CACA,OAAOrY,CACT,CAKAmS,KAAAA,GACE,QAAS7zB,KAAKkzB,0BAAgDjsB,IAAzBjH,KAAKozB,eAC5C,CAOA4G,YAAAA,CAAaC,GACX,MAAMjgB,EAAS2G,GAAiB3gB,KAAKkxB,cAAelxB,KAAKupB,iBACzDvpB,KAAKk6B,UAAU,CACblgB,EAAO,GAAKigB,EAAiB,GAC7BjgB,EAAO,GAAKigB,EAAiB,IAEjC,CAMAE,oBAAAA,CAAqBF,GACnB,MAAMjgB,EAASha,KAAKkxB,cACpBlxB,KAAK6yB,kBAAkB,CACrB7Y,EAAO,GAAKigB,EAAiB,GAC7BjgB,EAAO,GAAKigB,EAAiB,IAEjC,CASAG,gBAAAA,CAAiBrY,EAAO0F,GACtBA,EAASA,GAAU7G,GAAmB6G,EAAQznB,KAAKupB,iBACnDvpB,KAAKq6B,yBAAyBtY,EAAO0F,EACvC,CAQA4S,wBAAAA,CAAyBtY,EAAO0F,GAC9B,MAAMhG,EAAWzhB,KAAK8zB,gBAAkB9zB,KAAKq1B,iBACvCnb,EAAOla,KAAK61B,iBAAiB71B,KAAK0zB,eAClCvQ,EAAgBnjB,KAAK2yB,aAAavd,WACtCpV,KAAKmxB,kBAAoBpP,EACzB,EACA7H,EACAuH,GAGEgG,IACFznB,KAAKkxB,cAAgBlxB,KAAK+1B,oBAAoB5S,EAAesE,IAG/DznB,KAAKmxB,mBAAqBpP,EAC1B/hB,KAAKg2B,mBACP,CASAsE,UAAAA,CAAW/d,EAAOkL,GAChBznB,KAAKo6B,iBAAiBvtB,KAAKgC,IAAI7O,KAAK+xB,aAAcxV,GAAQkL,EAC5D,CASA8S,cAAAA,CAAehe,EAAOkL,GAChBA,IACFA,EAAS7G,GAAmB6G,EAAQznB,KAAKupB,kBAE3CvpB,KAAKw6B,uBAAuBje,EAAOkL,EACrC,CAMA+S,sBAAAA,CAAuBje,EAAOkL,GAC5B,MAAMhG,EAAWzhB,KAAK8zB,gBAAkB9zB,KAAKq1B,iBACvCoF,EAAcz6B,KAAK2yB,aAAa1Y,SACpCja,KAAKoxB,gBAAkB7U,EACvBkF,GAEEgG,IACFznB,KAAKkxB,cAAgBlxB,KAAKk2B,sBAAsBuE,EAAahT,IAE/DznB,KAAKoxB,iBAAmB7U,EACxBvc,KAAKg2B,mBACP,CAQAkE,SAAAA,CAAUlgB,GACRha,KAAK6yB,kBACH7Y,EAAS4G,GAAmB5G,EAAQha,KAAKupB,iBAAmBvP,EAEhE,CAMA6Y,iBAAAA,CAAkB7Y,GAChBha,KAAKkxB,cAAgBlX,EACrBha,KAAKg2B,mBACP,CAOAd,OAAAA,CAAQwF,EAAMne,GAGZ,OAFAvc,KAAK6wB,OAAO6J,IAASne,EACrBvc,KAAKwJ,UACExJ,KAAK6wB,OAAO6J,EACrB,CAQA5H,aAAAA,CAAc1d,GACZpV,KAAKmxB,kBAAoB/b,EACzBpV,KAAKg2B,mBACP,CAQApD,WAAAA,CAAY3Y,GACVja,KAAKoxB,gBAAkBnX,EACvBja,KAAKg2B,mBACP,CAOAhD,OAAAA,CAAQD,GACN/yB,KAAK8yB,cAAc9yB,KAAK80B,qBAAqB/B,GAC/C,CAUAiD,iBAAAA,CAAkB2E,EAAkBC,GAClC,MAAMnZ,EACJzhB,KAAK8zB,gBAAkB9zB,KAAKq1B,kBAAoBuF,EAG5CH,EAAcz6B,KAAK2yB,aAAa1Y,SACpCja,KAAKoxB,gBACL3P,GAEIvH,EAAOla,KAAK61B,iBAAiB4E,GAC7BtX,EAAgBnjB,KAAK2yB,aAAavd,WACtCpV,KAAKmxB,kBACL,EACAjX,EACAuH,GAEIoZ,EAAY76B,KAAK2yB,aAAa3Y,OAClCha,KAAKkxB,cACL/N,EACAjJ,EACAuH,EACAzhB,KAAK85B,qBACH95B,KAAKkxB,cACL/N,EACAsX,EACAvgB,IAIAla,KAAK2K,IAAI+mB,GAAajf,YAAcgoB,GACtCz6B,KAAKwL,IAAIkmB,GAAajf,SAAUgoB,GAE9Bz6B,KAAK2K,IAAI+mB,GAAalf,cAAgB2Q,IACxCnjB,KAAKwL,IAAIkmB,GAAalf,WAAY2Q,GAClCnjB,KAAKwL,IAAI,OAAQxL,KAAKyzB,WAAW,IAGhCoH,GACA76B,KAAK2K,IAAI+mB,GAAanf,SACtB/O,GAAOxD,KAAK2K,IAAI+mB,GAAanf,QAASsoB,IAEvC76B,KAAKwL,IAAIkmB,GAAanf,OAAQsoB,GAG5B76B,KAAK8zB,iBAAmB6G,GAC1B36B,KAAKs1B,mBAEPt1B,KAAKwxB,mBAAgBvqB,CACvB,CAWA8sB,kBAAAA,CAAmBS,EAAUsG,EAAqBrT,GAChD+M,OAAwBvtB,IAAbutB,EAAyBA,EAAW,IAC/C,MAAM7xB,EAAYm4B,GAAuB,EAEnCL,EAAcz6B,KAAK2yB,aAAa1Y,SAASja,KAAKoxB,iBAC9ClX,EAAOla,KAAK61B,iBAAiB4E,GAC7BtX,EAAgBnjB,KAAK2yB,aAAavd,WACtCpV,KAAKmxB,kBACLxuB,EACAuX,GAEI2gB,EAAY76B,KAAK2yB,aAAa3Y,OAClCha,KAAKkxB,cACL/N,EACAjJ,GACA,EACAla,KAAK85B,qBACH95B,KAAKkxB,cACL/N,EACAsX,EACAvgB,IAIJ,GAAiB,IAAbsa,IAAmBx0B,KAAKwxB,cAK1B,OAJAxxB,KAAKmxB,kBAAoBhO,EACzBnjB,KAAKoxB,gBAAkBqJ,EACvBz6B,KAAKkxB,cAAgB2J,OACrB76B,KAAKg2B,oBAIPvO,EAASA,IAAwB,IAAb+M,EAAiBx0B,KAAKwxB,mBAAgBvqB,GAC1DjH,KAAKwxB,mBAAgBvqB,EAGnBjH,KAAKozB,kBAAoBjQ,GACzBnjB,KAAK0zB,gBAAkB+G,GACtBz6B,KAAKkzB,qBACL1vB,GAAOxD,KAAKkzB,oBAAqB2H,KAE9B76B,KAAK8zB,gBACP9zB,KAAKs1B,mBAGPt1B,KAAKg0B,gBAAgB,CACnB/Z,SAAUwgB,EACVzgB,OAAQ6gB,EACRzlB,WAAY+N,EACZqR,SAAUA,EACVC,OAAQhR,GACRgE,OAAQA,IAGd,CAQAsT,gBAAAA,GACE/6B,KAAK+zB,mBAAmB,GAExB/zB,KAAKk1B,QAAQC,EAAS7iB,YAAa,EACrC,CAUA0oB,cAAAA,CAAexG,EAAUsG,EAAqBrT,GAC5CA,EAASA,GAAU7G,GAAmB6G,EAAQznB,KAAKupB,iBACnDvpB,KAAKi7B,uBAAuBzG,EAAUsG,EAAqBrT,EAC7D,CASAwT,sBAAAA,CAAuBzG,EAAUsG,EAAqBrT,GAC/CznB,KAAKq1B,mBAGVr1B,KAAKk1B,QAAQC,EAAS7iB,aAAc,GACpCtS,KAAK+zB,mBAAmBS,EAAUsG,EAAqBrT,GACzD,CASAiS,oBAAAA,CAAqB/E,EAAcE,GACjC,MAAM3a,EAAOla,KAAK61B,iBAAiB71B,KAAK0zB,eACxC,OAAO1zB,KAAK2yB,aAAa3Y,OACvB2a,EACAE,GAAoB70B,KAAKozB,gBACzBlZ,EAEJ,CAWAghB,kBAAAA,CAAmBC,EAAYx4B,GAC7B,MAAMy4B,EAAYp7B,KAAK80B,qBAAqBqG,GAC5C,OAAOn7B,KAAKo3B,qBACVp3B,KAAK43B,yBAAyBwD,EAAWz4B,GAE7C,CAWAi1B,wBAAAA,CAAyB/C,EAAkBlyB,GACzCA,EAAYA,GAAa,EACzB,MAAMuX,EAAOla,KAAK61B,iBAAiB71B,KAAK0zB,eAExC,OAAO1zB,KAAK2yB,aAAavd,WAAWyf,EAAkBlyB,EAAWuX,EACnE,EAOF,SAASga,GAAkBhb,EAAUmiB,GACnCC,YAAW,WACTpiB,EAASmiB,EACX,GAAG,EACL,CAMO,SAAS/I,GAAuBpjB,GACrC,QAAuBjI,IAAnBiI,EAAQyB,OAAsB,CAChC,MAAM6Q,OAC+Bva,IAAnCiI,EAAQqsB,wBACJrsB,EAAQqsB,uBAEd,OAAOja,GAAapS,EAAQyB,OAAQzB,EAAQssB,oBAAqBha,EACnE,CAEA,MAAMrL,EAAa4J,GAAiB7Q,EAAQiH,WAAY,aACxD,IAA2B,IAAvBjH,EAAQusB,YAAuBtlB,EAAW9B,WAAY,CACxD,MAAM1D,EAASwF,EAAWvF,YAAY7L,QAGtC,OAFA4L,EAAO,IAAMhB,IACbgB,EAAO,GAAKhB,IACL2R,GAAa3Q,GAAQ,GAAO,EACrC,CAEA,OAAO+qB,EACT,CAOO,SAAS9J,GAA2B1iB,GACzC,IAAIqjB,EACA7iB,EACAE,EAIJ,MAAM+rB,EAAiB,GACjBC,EAAoB,EAE1B,IAAI/rB,OACkB5I,IAApBiI,EAAQW,QAAwBX,EAAQW,QAAU8gB,GAEhD7gB,OACkB7I,IAApBiI,EAAQY,QAAwBZ,EAAQY,QAAU6rB,EAEpD,MAAM3J,OACmB/qB,IAAvBiI,EAAQ8iB,WAA2B9iB,EAAQ8iB,WAAa4J,EAEpDH,OACmBx0B,IAAvBiI,EAAQusB,YAA2BvsB,EAAQusB,WAEvCja,OACmCva,IAAvCiI,EAAQ2sB,4BACJ3sB,EAAQ2sB,2BAGR1Z,OACuBlb,IAA3BiI,EAAQiT,gBAA+BjT,EAAQiT,eAE3ChM,EAAa4J,GAAiB7Q,EAAQiH,WAAY,aAClD2lB,EAAa3lB,EAAWvF,YAC9B,IAAI4qB,EAAsBtsB,EAAQssB,oBAC9B7qB,EAASzB,EAAQyB,OAMrB,GALK8qB,GAAe9qB,IAAUwF,EAAW9B,aACvCmnB,GAAsB,EACtB7qB,EAASmrB,QAGiB70B,IAAxBiI,EAAQuT,YAA2B,CACrC,MAAMA,EAAcvT,EAAQuT,YAC5B/S,EAAgB+S,EAAY5S,GAC5BD,OAC2B3I,IAAzBwb,EAAY3S,GACR2S,EAAY3S,GACZ2S,EAAYA,EAAYpgB,OAAS,GAGrCkwB,EADErjB,EAAQqoB,oBACa/U,GACrBC,EACAjB,GACCga,GAAuB7qB,EACxBwR,GAGqBiB,GACrB1T,EACAE,EACA4R,GACCga,GAAuB7qB,EACxBwR,EAGN,KAAO,CAEL,MAAMjI,EAAQ4hB,EAGVjvB,KAAKD,IAAI8M,GAASoiB,GAAaniB,GAAUmiB,IADxC,IAAMlpB,GAAgBmpB,QAAW5lB,EAAWjC,mBAG3C8nB,EACJ9hB,EAAOvH,GAAoB9F,KAAKgC,IAAI+sB,EAAmBjL,IAEnDsL,EACJD,EACAnvB,KAAKgC,IAAI+sB,EAAmBD,EAAiBhL,IAG/CjhB,EAAgBR,EAAQQ,mBACFzI,IAAlByI,EACFG,EAAU,EAEVH,EAAgBssB,EAAuBnvB,KAAKgC,IAAImjB,EAAYniB,GAI9DD,EAAgBV,EAAQU,mBACF3I,IAAlB2I,IAGEA,OAFoB3I,IAApBiI,EAAQY,aACoB7I,IAA1BiI,EAAQQ,cACMA,EAAgB7C,KAAKgC,IAAImjB,EAAYliB,GAErCksB,EAAuBnvB,KAAKgC,IAAImjB,EAAYliB,GAG9CmsB,GAKpBnsB,EACED,EACAhD,KAAKkC,MACHlC,KAAKoI,IAAIvF,EAAgBE,GAAiB/C,KAAKoI,IAAI+c,IAEvDpiB,EAAgBF,EAAgB7C,KAAKgC,IAAImjB,EAAYliB,EAAUD,GAG7D0iB,EADErjB,EAAQqoB,oBACa1U,GACrBmP,EACAtiB,EACAE,EACA4R,GACCga,GAAuB7qB,EACxBwR,GAGqBiB,GACrB1T,EACAE,EACA4R,GACCga,GAAuB7qB,EACxBwR,EAGN,CACA,MAAO,CACLqQ,WAAYD,EACZ7iB,cAAeA,EACfE,cAAeA,EACfC,QAASA,EACTmiB,WAAYA,EAEhB,CAMO,SAASU,GAAyBxjB,GACvC,MAAMgtB,OACuBj1B,IAA3BiI,EAAQgtB,gBAA+BhtB,EAAQgtB,eACjD,GAAIA,EAAgB,CAClB,MAAMC,EAAoBjtB,EAAQitB,kBAClC,YAA0Bl1B,IAAtBk1B,IAAyD,IAAtBA,EAC9B5Y,MAEiB,IAAtB4Y,EACKC,GAEwB,kBAAtBD,EACF9Y,GAAc8Y,GAEhBC,EACT,CACA,OAAO9d,EACT,CAOO,SAAS2W,GAAgBX,GAC9B,QAAIA,EAAUI,cAAgBJ,EAAUK,eACjC0H,GAAiB/H,EAAUI,aAAcJ,EAAUK,iBAItDL,EAAUM,mBAAqBN,EAAUO,kBAGzCP,EAAUS,iBAAmBT,EAAUU,eAI7C,CAUA,SAASiD,GAAkBhgB,EAAYiC,EAAM0f,EAAUxkB,EAAY6E,GAEjE,MAAM2C,EAAW/P,KAAK4N,KAAKR,GAC3B,IAAI4C,EAAWhQ,KAAK8N,KAAKV,GACrBmf,EAAOnhB,EAAW,GAAK2E,EAAW3E,EAAW,GAAK4E,EAClDwc,EAAOphB,EAAW,GAAK2E,EAAW3E,EAAW,GAAK4E,EACtDuc,IAASlf,EAAK,GAAK,EAAI0f,EAAS,IAAMxkB,EACtCikB,IAASO,EAAS,GAAK1f,EAAK,GAAK,GAAK9E,EAGtCyH,GAAYA,EACZ,MAAM2c,EAAUJ,EAAOxc,EAAWyc,EAAOxc,EACnC4c,EAAUJ,EAAOzc,EAAWwc,EAAOvc,EAEzC,MAAO,CAAC2c,EAASC,EACnB,CAEA,UC3gEA,MAAM6C,WAAcrtB,EAIlBjO,WAAAA,CAAYkO,GACV,MAAMqtB,EAAcp1B,OAAO6D,OAAO,CAAC,EAAGkE,UAC/BqtB,EAAY5wB,OAEnBlG,MAAM82B,GAKNv8B,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLrJ,KAAKw8B,kBAAoB,KAMzBx8B,KAAKy8B,cAAgB,KAMrBz8B,KAAK08B,iBAAmB,KAMxB18B,KAAK28B,UAAY,KAMjB38B,KAAK48B,cAAe,EAMpB58B,KAAK68B,UAAW,EAGZ3tB,EAAQpP,SACVE,KAAKF,OAASoP,EAAQpP,QAGpBoP,EAAQ4tB,KACV98B,KAAK+8B,OAAO7tB,EAAQ4tB,KAGtB98B,KAAKsL,kBACHgE,EAAcjD,OACdrM,KAAKg9B,6BAGP,MAAMrxB,EAASuD,EAAQvD,OACQuD,EAAQvD,OACnC,KACJ3L,KAAKi9B,UAAUtxB,EACjB,CAMAsF,cAAAA,CAAeC,GAGb,OAFAA,EAAQA,GAAgB,GACxBA,EAAM/K,KAAKnG,MACJkR,CACT,CAMAC,mBAAAA,CAAoBC,GAGlB,OAFAA,EAASA,GAAkB,GAC3BA,EAAOjL,KAAKnG,KAAKoQ,iBACVgB,CACT,CAQA8rB,SAAAA,GACE,OAAkCl9B,KAAK2K,IAAI2E,EAAcjD,SAAY,IACvE,CAKA8wB,eAAAA,GACE,OAAOn9B,KAAKk9B,WACd,CAKA7rB,cAAAA,GACE,MAAM1F,EAAS3L,KAAKk9B,YACpB,OAAQvxB,EAAuBA,EAAOosB,WAArB,WACnB,CAKAqF,mBAAAA,GACEp9B,KAAKwJ,UACDxJ,KAAK48B,cAAgD,UAAhC58B,KAAKk9B,YAAYnF,aAG1C/3B,KAAK48B,cAAe,EACpB58B,KAAKoG,cAAc,eACrB,CAKA42B,2BAAAA,GACMh9B,KAAK08B,mBACP3zB,EAAc/I,KAAK08B,kBACnB18B,KAAK08B,iBAAmB,MAE1B18B,KAAK48B,cAAe,EACpB,MAAMjxB,EAAS3L,KAAKk9B,YAChBvxB,IACF3L,KAAK08B,iBAAmBl0B,EACtBmD,EACAlC,EAAUlC,OACVvH,KAAKo9B,oBACLp9B,MAEwB,UAAtB2L,EAAOosB,aACT/3B,KAAK48B,cAAe,EACpBtB,YAAW,KACTt7B,KAAKoG,cAAc,cAAc,GAChC,KAGPpG,KAAKwJ,SACP,CAOA6zB,WAAAA,CAAYC,GACV,OAAKt9B,KAAK28B,UAGH38B,KAAK28B,UAAUU,YAAYC,GAFzBC,QAAQC,QAAQ,GAG3B,CAMAC,OAAAA,CAAQH,GACN,OAAKt9B,KAAK28B,WAAc38B,KAAK68B,SAGtB78B,KAAK28B,UAAUc,QAAQH,GAFrB,IAGX,CAWAI,SAAAA,CAAUC,GACR,IAAIC,EACJ,MAAMd,EAAM98B,KAAK69B,iBAejB,IAAIC,GAdCH,GAAQb,IACXa,EAAOb,EAAIiB,WAGXH,EADED,aAAgB/M,GACL,CACX0H,UAAWqF,EAAK5F,WAChBpnB,OAAQgtB,EAAK1G,mBAGF0G,GAEVC,EAAWI,kBAAoBlB,IAClCc,EAAWI,iBAAmBlB,EAAImB,gBAAgB9sB,uBAIlD2sB,EADEF,EAAWI,iBACAJ,EAAWI,iBAAiBE,MACtCJ,GAAeA,EAAWvtB,QAAUvQ,OAG1BA,KAAKoQ,gBAGpB,MAAM+tB,EAAcn+B,KAAK4Q,YAEzB,OACEwtB,GAAON,EAAYF,EAAWtF,cAC5B6F,GAAejjB,GAAWijB,EAAaP,EAAWjtB,QAExD,CASA0tB,eAAAA,CAAgBV,GACd,IAAK39B,KAAK09B,UAAUC,GAClB,MAAO,GAET,IAAIU,EACJ,MAAM1yB,EAAS3L,KAAKk9B,YAIpB,GAHIvxB,IACF0yB,EAAkB1yB,EAAO0yB,oBAEtBA,EACH,MAAO,GAET,MAAMT,EACJD,aAAgB/M,GAAO+M,EAAKtF,wBAA0BsF,EACxD,IAAIW,EAAeD,EAAgBT,GAInC,OAHKt6B,MAAMC,QAAQ+6B,KACjBA,EAAe,CAACA,IAEXA,CACT,CAUAx+B,MAAAA,CAAO89B,EAAYx8B,GACjB,MAAMm9B,EAAgBv+B,KAAKw+B,cAE3B,OAAID,EAAcE,aAAab,IAC7B59B,KAAK68B,UAAW,EACT0B,EAAcG,YAAYd,EAAYx8B,IAExC,IACT,CAKAu9B,QAAAA,GACE3+B,KAAK68B,UAAW,CAClB,CAMA+B,cAAAA,CAAe9B,GACRA,GACH98B,KAAK2+B,WAEP3+B,KAAKwL,IAAI8D,EAAchD,IAAKwwB,EAC9B,CAMAe,cAAAA,GACE,OAAO79B,KAAK2K,IAAI2E,EAAchD,IAChC,CAaAywB,MAAAA,CAAOD,GACD98B,KAAKw8B,oBACPzzB,EAAc/I,KAAKw8B,mBACnBx8B,KAAKw8B,kBAAoB,MAEtBM,GACH98B,KAAKwJ,UAEHxJ,KAAKy8B,gBACP1zB,EAAc/I,KAAKy8B,eACnBz8B,KAAKy8B,cAAgB,MAEnBK,IACF98B,KAAKw8B,kBAAoBh0B,EACvBs0B,EACA+B,EAAgB3sB,YAChB,SAAU3L,GACR,MAAMu4B,EACiDv4B,EACjDy3B,EAAmBc,EAAYlB,WAAWI,iBAC1CF,EAAa99B,KAAKoQ,eAAc,GACtC7D,GACGyxB,EAAiBe,MAAK,SAAUC,GAC/B,OAAOA,EAAgBzuB,QAAUutB,EAAWvtB,KAC9C,IACA,yGAEFytB,EAAiB73B,KAAK23B,EACxB,GACA99B,MAEFA,KAAKy8B,cAAgBj0B,EAAOxI,KAAMyJ,EAAUlC,OAAQu1B,EAAIh9B,OAAQg9B,GAChE98B,KAAKwJ,UAET,CAQAyzB,SAAAA,CAAUtxB,GACR3L,KAAKwL,IAAI8D,EAAcjD,OAAQV,EACjC,CAMA6yB,WAAAA,GAIE,OAHKx+B,KAAK28B,YACR38B,KAAK28B,UAAY38B,KAAKi/B,kBAEjBj/B,KAAK28B,SACd,CAKAuC,WAAAA,GACE,QAASl/B,KAAK28B,SAChB,CAOAsC,cAAAA,GACE,OAAO,IACT,CAKAt9B,eAAAA,GACM3B,KAAK28B,YACP38B,KAAK28B,UAAUj7B,iBACR1B,KAAK28B,WAGd38B,KAAKi9B,UAAU,MACfx3B,MAAM9D,iBACR,EAUK,SAASy8B,GAAON,EAAYxF,GACjC,IAAKwF,EAAWtuB,QACd,OAAO,EAET,MAAM4F,EAAakjB,EAAUljB,WAC7B,GACEA,EAAa0oB,EAAWluB,eACxBwF,GAAc0oB,EAAWpuB,cAEzB,OAAO,EAET,MAAMqjB,EAAOuF,EAAUvF,KACvB,OAAOA,EAAO+K,EAAWjuB,SAAWkjB,GAAQ+K,EAAWhuB,OACzD,CAEA,UCngBA,IACEqvB,QAAS,UACTC,2BAA4B,0BCmD9B,MAAMC,WAAsB/C,GAI1Bt7B,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/B,MAAMqtB,EAAcp1B,OAAO6D,OAAO,CAAC,EAAGkE,UAE/BqtB,EAAY+C,eACZ/C,EAAYgD,uBACnB95B,MAAM82B,GAKNv8B,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAELrJ,KAAKw/B,gBAA+Bv4B,IAApBiI,EAAQowB,QAAwBpwB,EAAQowB,QAAU,GAClEt/B,KAAKy/B,+BACgCx4B,IAAnCiI,EAAQqwB,wBACJrwB,EAAQqwB,uBAGhB,CAQAG,UAAAA,GACE,OAA8B1/B,KAAK2K,IAAIg1B,GAAaR,QACtD,CAQAK,UAAAA,CAAWF,GACTt/B,KAAKwL,IAAIm0B,GAAaR,QAASG,EACjC,CAQAM,yBAAAA,GACE,OACE5/B,KAAK2K,IAAIg1B,GAAaP,2BAE1B,CAQAK,yBAAAA,CAA0BF,GACxBv/B,KAAKwL,IAAIm0B,GAAaP,2BAA4BG,EACpD,CAkBA9B,OAAAA,CAAQH,GACN,OAAO73B,MAAMg4B,QAAQH,EACvB,EAGF,UCxJA,I,OAAA,CACEuC,KAAM,EACNC,QAAS,EACTC,OAAQ,EACRv4B,MAAO,EACPw4B,MAAO,ICDT,MAAMC,WAAsBh3B,EAI1BjI,WAAAA,CAAYuP,GACV9K,QAMAzF,KAAKkgC,OAAQ,EAGblgC,KAAKmgC,wBAA0BngC,KAAKogC,mBAAmBz3B,KAAK3I,MAM5DA,KAAKqgC,OAAS9vB,EAKdvQ,KAAKsgC,uBAAyB,IAChC,CAQAjD,WAAAA,CAAYC,GACV,OAAOxzB,GACT,CAMA2zB,OAAAA,CAAQH,GACN,OAAO,IACT,CAQAmB,YAAAA,CAAab,GACX,OAAO9zB,GACT,CASA40B,WAAAA,CAAYd,EAAYx8B,GACtB,OAAO0I,GACT,CAQAy2B,kBAAAA,CAAmBC,EAAOzN,EAAM0N,GACzBD,EAAMzN,KACTyN,EAAMzN,GAAQ,CAAC,GAEjByN,EAAMzN,GAAM0N,EAAKC,UAAUzZ,YAAcwZ,CAE3C,CAWAE,sBAAAA,CAAuBh1B,EAAQwK,EAAYqqB,GACzC,MAAO,CAMJzN,EAAM6N,KACL,MAAM1nB,EAAWlZ,KAAKugC,mBAAmB53B,KAAK3I,KAAMwgC,EAAOzN,GAC3D,OAAOpnB,EAAOk1B,kBAAkB1qB,EAAY4c,EAAM6N,EAAW1nB,EAC9D,CAEL,CAWA4nB,0BAAAA,CACE7oB,EACA2lB,EACAmD,EACA7nB,EACA8nB,GAGF,CAKAC,QAAAA,GACE,OAAOjhC,KAAKqgC,MACd,CAMAa,kBAAAA,GAAsB,CAOtBd,kBAAAA,CAAmB/5B,GACjB,MAAM86B,EAAsD96B,EAAMjF,OAEhE+/B,EAAMpJ,aAAeqJ,GAAWrB,QAChCoB,EAAMpJ,aAAeqJ,GAAW55B,OAEhCxH,KAAKqhC,yBAET,CASAC,SAAAA,CAAUH,GACR,IAAII,EAAaJ,EAAMpJ,WAQvB,OAPIwJ,GAAcH,GAAWrB,QAAUwB,GAAcH,GAAW55B,OAC9D25B,EAAMr7B,iBAAiB2D,EAAUlC,OAAQvH,KAAKmgC,yBAE5CoB,GAAcH,GAAWvB,OAC3BsB,EAAMK,OACND,EAAaJ,EAAMpJ,YAEdwJ,GAAcH,GAAWrB,MAClC,CAKAsB,uBAAAA,GACE,MAAM9wB,EAAQvQ,KAAKihC,WACf1wB,GAASA,EAAMG,cAA2C,UAA3BH,EAAMc,kBACvCd,EAAM/G,SAEV,CAKA7H,eAAAA,UACS3B,KAAKqgC,OACZ56B,MAAM9D,iBACR,EAGF,UClMA,MAAM8/B,WAAoBj7B,EAQxBxF,WAAAA,CAAYC,EAAMygC,EAAuB9D,EAAY+D,GACnDl8B,MAAMxE,GAQNjB,KAAK0hC,sBAAwBA,EAO7B1hC,KAAK49B,WAAaA,EASlB59B,KAAK2hC,QAAUA,CACjB,EAGF,UCvBA,MAAMC,GAAgB,oDAQhBC,GAAkB,4BAQjB,SAASC,GAASC,GACvB,MAAqB,kBAAVA,EACFA,EAEF9a,GAAS8a,EAClB,CAOA,SAASC,GAAUD,GACjB,MAAME,EAAK5a,SAASC,cAAc,OAElC,GADA2a,EAAG1a,MAAMwa,MAAQA,EACM,KAAnBE,EAAG1a,MAAMwa,MAAc,CACzB1a,SAAS6a,KAAKC,YAAYF,GAC1B,MAAMG,EAAMC,iBAAiBJ,GAAIF,MAEjC,OADA1a,SAAS6a,KAAKI,YAAYL,GACnBG,CACT,CACA,MAAO,EACT,CAMO,MAAMG,GAAc,WASzB,MAAMC,EAAiB,KAKjBxsB,EAAQ,CAAC,EAKf,IAAIysB,EAAY,EAEhB,OAAO,SAKKC,GACR,IAAIX,EACJ,GAAI/rB,EAAMnL,eAAe63B,GACvBX,EAAQ/rB,EAAM0sB,OACT,CACL,GAAID,GAAaD,EAAgB,CAC/B,IAAI3/B,EAAI,EACR,IAAK,MAAMmG,KAAOgN,EACE,KAAP,EAANnT,cACImT,EAAMhN,KACXy5B,EAGR,CACAV,EAAQY,GAAoBD,GAC5B1sB,EAAM0sB,GAAKX,IACTU,CACJ,CACA,OAAOV,CACR,CAEL,CA/C2B,GAwDpB,SAASa,GAAQb,GACtB,OAAIz+B,MAAMC,QAAQw+B,GACTA,EAEFQ,GAAWR,EACpB,CAOA,SAASY,GAAoBD,GAC3B,IAAI50B,EAAG+0B,EAAGrgC,EAAGD,EAAGw/B,EAMhB,GAJIF,GAAgBiB,KAAKJ,KACvBA,EAAIV,GAAUU,IAGZd,GAAckB,KAAKJ,GAAI,CAEzB,MAAM9/B,EAAI8/B,EAAErgC,OAAS,EACrB,IAAI4jB,EAEFA,EADErjB,GAAK,EACH,EAEA,EAEN,MAAMmgC,EAAiB,IAANngC,GAAiB,IAANA,EAC5BkL,EAAIk1B,SAASN,EAAEO,OAAO,EAAI,EAAIhd,EAAGA,GAAI,IACrC4c,EAAIG,SAASN,EAAEO,OAAO,EAAI,EAAIhd,EAAGA,GAAI,IACrCzjB,EAAIwgC,SAASN,EAAEO,OAAO,EAAI,EAAIhd,EAAGA,GAAI,IAEnC1jB,EADEwgC,EACEC,SAASN,EAAEO,OAAO,EAAI,EAAIhd,EAAGA,GAAI,IAEjC,IAEG,GAALA,IACFnY,GAAKA,GAAK,GAAKA,EACf+0B,GAAKA,GAAK,GAAKA,EACfrgC,GAAKA,GAAK,GAAKA,EACXugC,IACFxgC,GAAKA,GAAK,GAAKA,IAGnBw/B,EAAQ,CAACj0B,EAAG+0B,EAAGrgC,EAAGD,EAAI,IACxB,MAAO,GAAImgC,EAAEQ,WAAW,SAEtBnB,EAAQW,EAAE39B,MAAM,GAAI,GAAGo+B,MAAM,KAAKrG,IAAIsG,QACtCC,GAAUtB,OACL,KAAIW,EAAEQ,WAAW,QAMtB,MAAM,IAAIn5B,MAAM,iBAJhBg4B,EAAQW,EAAE39B,MAAM,GAAI,GAAGo+B,MAAM,KAAKrG,IAAIsG,QACtCrB,EAAM57B,KAAK,GACXk9B,GAAUtB,EAGZ,CACA,OAAOA,CACT,CAOO,SAASsB,GAAUtB,GAKxB,OAJAA,EAAM,GAAKr1B,EAAOq1B,EAAM,GAAK,GAAO,EAAG,EAAG,KAC1CA,EAAM,GAAKr1B,EAAOq1B,EAAM,GAAK,GAAO,EAAG,EAAG,KAC1CA,EAAM,GAAKr1B,EAAOq1B,EAAM,GAAK,GAAO,EAAG,EAAG,KAC1CA,EAAM,GAAKr1B,EAAMq1B,EAAM,GAAI,EAAG,GACvBA,CACT,CAMO,SAAS9a,GAAS8a,GACvB,IAAIj0B,EAAIi0B,EAAM,GACVj0B,IAAU,EAAJA,KACRA,EAAKA,EAAI,GAAO,GAElB,IAAI+0B,EAAId,EAAM,GACVc,IAAU,EAAJA,KACRA,EAAKA,EAAI,GAAO,GAElB,IAAIrgC,EAAIu/B,EAAM,GACVv/B,IAAU,EAAJA,KACRA,EAAKA,EAAI,GAAO,GAElB,MAAMD,OAAiB0E,IAAb86B,EAAM,GAAmB,EAAIl1B,KAAKiC,MAAiB,IAAXizB,EAAM,IAAY,IACpE,MAAO,QAAUj0B,EAAI,IAAM+0B,EAAI,IAAMrgC,EAAI,IAAMD,EAAI,GACrD,CCtMO,SAAS+gC,GAAsBvnB,EAAOC,EAAQunB,EAAYC,GAE/D,IAAIC,EAeJ,OAbEA,EADEF,GAAcA,EAAWlhC,OAClBkhC,EAAWG,QACXnf,GACA,IAAIE,gBAAgB1I,GAAS,IAAKC,GAAU,KAE5CqL,SAASC,cAAc,UAE9BvL,IACF0nB,EAAO1nB,MAAQA,GAEbC,IACFynB,EAAOznB,OAASA,GAIhBynB,EAAOE,WAAW,KAAMH,EAE5B,CAOO,SAASI,GAAcjC,GAC5B,MAAM8B,EAAS9B,EAAQ8B,OACvBA,EAAO1nB,MAAQ,EACf0nB,EAAOznB,OAAS,EAChB2lB,EAAQkC,UAAU,EAAG,EAAG,EAAG,EAC7B,CASO,SAASC,GAAWC,GACzB,IAAIhoB,EAAQgoB,EAAQC,YACpB,MAAMzc,EAAQ8a,iBAAiB0B,GAG/B,OAFAhoB,GAASinB,SAASzb,EAAM0c,WAAY,IAAMjB,SAASzb,EAAM2c,YAAa,IAE/DnoB,CACT,CASO,SAASooB,GAAYJ,GAC1B,IAAI/nB,EAAS+nB,EAAQK,aACrB,MAAM7c,EAAQ8a,iBAAiB0B,GAG/B,OAFA/nB,GAAUgnB,SAASzb,EAAM8c,UAAW,IAAMrB,SAASzb,EAAM+c,aAAc,IAEhEtoB,CACT,CAMO,SAASuoB,GAAYC,EAASC,GACnC,MAAMC,EAASD,EAAQE,WACnBD,GACFA,EAAOE,aAAaJ,EAASC,EAEjC,CAMO,SAASI,GAAWzd,GACzB,OAAOA,GAAQA,EAAKud,WAAavd,EAAKud,WAAWrC,YAAYlb,GAAQ,IACvE,CAKO,SAAS0d,GAAe1d,GAC7B,MAAOA,EAAK2d,UACV3d,EAAKkb,YAAYlb,EAAK2d,UAE1B,CAUO,SAASC,GAAgB5d,EAAM6d,GACpC,MAAMC,EAAc9d,EAAK+d,WAEzB,IAAK,IAAItiC,EAAI,EAAG,IAAQA,EAAG,CACzB,MAAMuiC,EAAWF,EAAYriC,GACvBwiC,EAAWJ,EAASpiC,GAG1B,IAAKuiC,IAAaC,EAChB,MAIED,IAAaC,IAKZD,EAMAC,EAOLje,EAAKke,aAAaD,EAAUD,IAN1Bhe,EAAKkb,YAAY8C,KACfviC,GAPFukB,EAAK+a,YAAYkD,GAarB,CACF,CC5HO,MAAM9B,GAAa,GAK1B,IAAIgC,GAAe,KAEnB,SAASC,KACPD,GAAejC,GAAsB,EAAG,OAAGr8B,EAAW,CACpDw+B,oBAAoB,GAExB,CAOA,MAAMC,WAA4BzF,GAIhCj/B,WAAAA,CAAYuP,GACV9K,MAAM8K,GAMNvQ,KAAK2lC,UAAY,KAMjB3lC,KAAK4lC,mBAQL5lC,KAAK6lC,cAAgB7d,KAQrBhoB,KAAK8lC,eAAiB9d,KAQtBhoB,KAAK0hC,sBAAwB1Z,KAK7BhoB,KAAK2hC,QAAU,KAKf3hC,KAAK+lC,iBAAkB,EAMvB/lC,KAAKgmC,cAAgB,KAMrBhmC,KAAK49B,WAAa,IACpB,CAQAqI,YAAAA,CAAa9E,EAAO+E,EAAKC,GAMvB,IAAI/iC,EALCmiC,IACHC,KAEFD,GAAa1B,UAAU,EAAG,EAAG,EAAG,GAGhC,IACE0B,GAAaa,UAAUjF,EAAO+E,EAAKC,EAAK,EAAG,EAAG,EAAG,EAAG,EAAG,GACvD/iC,EAAOmiC,GAAaU,aAAa,EAAG,EAAG,EAAG,GAAG7iC,IAC/C,CAAE,MAAOijC,GAEP,OADAd,GAAe,KACR,IACT,CACA,OAAOniC,CACT,CAMA8M,aAAAA,CAAc0tB,GACZ,MAAMrtB,EAAQvQ,KAAKihC,WACnB,IAAI7xB,EAAamB,EAAML,gBAIvB,MAH0B,oBAAfd,IACTA,EAAaA,EAAWwuB,EAAWtF,UAAUljB,aAExChG,QAAcnI,CACvB,CAQAq/B,YAAAA,CAAallC,EAAQqV,EAAW8vB,GAC9B,MAAMC,EAAiBxmC,KAAKihC,WAAW9wB,eACvC,IAAIw1B,EAAWhE,EACf,GACEvgC,GACAA,EAAO4O,YAAcw2B,KACnBD,GACCnlC,GACCA,EAAOmmB,MAAMgf,iBACb/iC,EACEo/B,GAAQxhC,EAAOmmB,MAAMgf,iBACrB3D,GAAQ2D,KAEd,CACA,MAAM9C,EAASriC,EAAOqlC,kBAClBhD,aAAkBiD,oBACpB/E,EAAU8B,EAAOE,WAAW,MAEhC,CAcA,GAbIhC,GAAWA,EAAQ8B,OAAOlc,MAAM9Q,YAAcA,GAEhDzW,KAAK2lC,UAAYvkC,EACjBpB,KAAK2hC,QAAUA,EACf3hC,KAAK+lC,iBAAkB,GACd/lC,KAAK+lC,iBAEd/lC,KAAK2lC,UAAY,KACjB3lC,KAAK2hC,QAAU,KACf3hC,KAAK+lC,iBAAkB,GACd/lC,KAAK2lC,YACd3lC,KAAK2lC,UAAUpe,MAAMgf,gBAAkB,OAEpCvmC,KAAK2lC,UAAW,CACnBA,EAAYte,SAASC,cAAc,OACnCqe,EAAU31B,UAAYw2B,EACtB,IAAIjf,EAAQoe,EAAUpe,MACtBA,EAAMqS,SAAW,WACjBrS,EAAMxL,MAAQ,OACdwL,EAAMvL,OAAS,OACf2lB,EAAU2B,KACV,MAAMG,EAAS9B,EAAQ8B,OACvBkC,EAAUxD,YAAYsB,GACtBlc,EAAQkc,EAAOlc,MACfA,EAAMqS,SAAW,WACjBrS,EAAMof,KAAO,IACbpf,EAAMqf,gBAAkB,WACxB5mC,KAAK2lC,UAAYA,EACjB3lC,KAAK2hC,QAAUA,CACjB,CAEG3hC,KAAK+lC,kBACNQ,GACCvmC,KAAK2lC,UAAUpe,MAAMgf,kBAEtBvmC,KAAK2lC,UAAUpe,MAAMgf,gBAAkBA,EAE3C,CAQAM,aAAAA,CAAclF,EAAS/D,EAAYjtB,GACjC,MAAMm2B,EAAUvtB,GAAW5I,GACrBo2B,EAAWztB,GAAY3I,GACvBq2B,EAAc3tB,GAAe1I,GAC7Bs2B,EAAa7tB,GAAczI,GAEjCkL,GAAe+hB,EAAWsJ,2BAA4BJ,GACtDjrB,GAAe+hB,EAAWsJ,2BAA4BH,GACtDlrB,GAAe+hB,EAAWsJ,2BAA4BF,GACtDnrB,GAAe+hB,EAAWsJ,2BAA4BD,GAEtD,MAAME,EAAWnnC,KAAK0hC,sBACtB7lB,GAAesrB,EAAUL,GACzBjrB,GAAesrB,EAAUJ,GACzBlrB,GAAesrB,EAAUH,GACzBnrB,GAAesrB,EAAUF,GAEzBtF,EAAQyF,OACRzF,EAAQ0F,YACR1F,EAAQ2F,OAAOz6B,KAAKiC,MAAMg4B,EAAQ,IAAKj6B,KAAKiC,MAAMg4B,EAAQ,KAC1DnF,EAAQ4F,OAAO16B,KAAKiC,MAAMi4B,EAAS,IAAKl6B,KAAKiC,MAAMi4B,EAAS,KAC5DpF,EAAQ4F,OAAO16B,KAAKiC,MAAMk4B,EAAY,IAAKn6B,KAAKiC,MAAMk4B,EAAY,KAClErF,EAAQ4F,OAAO16B,KAAKiC,MAAMm4B,EAAW,IAAKp6B,KAAKiC,MAAMm4B,EAAW,KAChEtF,EAAQ6F,MACV,CAQAC,oBAAAA,CAAqBxmC,EAAM0gC,EAAS/D,GAClC,MAAMrtB,EAAQvQ,KAAKihC,WACnB,GAAI1wB,EAAMrJ,YAAYjG,GAAO,CAC3B,MAAMoF,EAAQ,IAAIo7B,GAChBxgC,EACAjB,KAAK0hC,sBACL9D,EACA+D,GAEFpxB,EAAMnK,cAAcC,EACtB,CACF,CAOAqhC,SAAAA,CAAU/F,EAAS/D,GACjB59B,KAAK49B,WAAaA,EAClB59B,KAAKynC,qBAAqB5I,EAAgB7sB,UAAW2vB,EAAS/D,EAChE,CAOA+J,UAAAA,CAAWhG,EAAS/D,GAClB59B,KAAKynC,qBAAqB5I,EAAgB5sB,WAAY0vB,EAAS/D,EACjE,CAcAgK,kBAAAA,CACE5tB,EACA5E,EACA6E,EACA4tB,EACA9rB,EACAC,EACAqX,GAEA,MAAM9M,EAAMxK,EAAQ,EACdyK,EAAMxK,EAAS,EACfyK,EAAKohB,EAAazyB,EAClBsR,GAAMD,EACNE,GAAO3M,EAAO,GAAKqZ,EACnBzM,GAAO5M,EAAO,GACpB,OAAO4P,GACL5pB,KAAK6lC,cACLtf,EACAC,EACAC,EACAC,GACCzM,EACD0M,EACAC,EAEJ,CAKAjlB,eAAAA,UACS3B,KAAK49B,WACZn4B,MAAM9D,iBACR,EAGF,UC/TA,IACEk+B,KAAM,EACNC,QAAS,EACTC,OAAQ,EAKRv4B,MAAO,EACPw4B,MAAO,GC4DT,MAAM8H,WAAa5+B,EAMjBlI,WAAAA,CAAY0/B,EAAWpwB,EAAOpB,GAC5BzJ,QAEAyJ,EAAUA,GAAoB,CAAC,EAK/BlP,KAAK0gC,UAAYA,EAMjB1gC,KAAKsQ,MAAQA,EAQbtQ,KAAK+nC,YAAc,KAQnB/nC,KAAKgJ,IAAM,GAMXhJ,KAAKgoC,iBACoB/gC,IAAvBiI,EAAQ+4B,WAA2B,IAAM/4B,EAAQ+4B,WAOnDjoC,KAAKkoC,kBAAoB,CAAC,EAK1BloC,KAAKmoC,cAAgBj5B,EAAQi5B,WAC/B,CAKA3+B,OAAAA,GACExJ,KAAKoG,cAAcqD,EAAUlC,OAC/B,CAKA6gC,OAAAA,GACMpoC,KAAKsQ,QAAU+3B,GAAU7gC,OAE3BxH,KAAKsoC,SAASD,GAAUrI,MAE5B,CAKAuI,MAAAA,GACE,OAAOvoC,KAAKgJ,IAAM,IAAMhJ,KAAK0gC,SAC/B,CAQA8H,cAAAA,GACE,IAAKxoC,KAAK+nC,YAER,OAAO/nC,KAET,IAAIygC,EAAOzgC,KAAK+nC,YAMhB,EAAG,CACD,GAAItH,EAAK1I,YAAcsQ,GAAUtI,OAI/B,OADA//B,KAAKgoC,YAAc,EACZvH,EAETA,EAAOA,EAAKsH,WACd,OAAStH,GAGT,OAAOzgC,IACT,CAMAyoC,mBAAAA,GACE,IAAKzoC,KAAK+nC,YACR,OAGF,IAAItH,EAAOzgC,KAAK+nC,YAKZW,EAAO1oC,KAEX,EAAG,CACD,GAAIygC,EAAK1I,YAAcsQ,GAAUtI,OAAQ,CAIvCU,EAAKsH,YAAc,KACnB,KACF,CAAWtH,EAAK1I,YAAcsQ,GAAUvI,QAGtC4I,EAAOjI,EACEA,EAAK1I,YAAcsQ,GAAUxI,KAGtC6I,EAAKX,YAActH,EAAKsH,YAExBW,EAAOjI,EAETA,EAAOiI,EAAKX,WACd,OAAStH,EACX,CAOAkI,YAAAA,GACE,OAAO3oC,KAAK0gC,SACd,CAKA3I,QAAAA,GACE,OAAO/3B,KAAKsQ,KACd,CAUAg4B,QAAAA,CAASh4B,GACP,GAAItQ,KAAKsQ,QAAU+3B,GAAU7gC,OAASxH,KAAKsQ,MAAQA,EACjD,MAAM,IAAIvG,MAAM,gCAElB/J,KAAKsQ,MAAQA,EACbtQ,KAAKwJ,SACP,CASAg4B,IAAAA,GACE13B,GACF,CAQA8+B,QAAAA,CAASC,EAAIC,GACX,IAAK9oC,KAAKgoC,YACR,OAAO,EAGT,IAAI3sB,EAAQrb,KAAKkoC,kBAAkBW,GACnC,GAAKxtB,GAGE,IAAe,IAAXA,EACT,OAAO,OAHPA,EAAQytB,EACR9oC,KAAKkoC,kBAAkBW,GAAMxtB,EAK/B,MAAMkB,EAAQusB,EAAOztB,EAAQ,IAAO,GACpC,OAAIkB,GAASvc,KAAKgoC,YACT,EAEFxkB,GAAOjH,EAAQvc,KAAKgoC,YAC7B,CASAe,YAAAA,CAAaF,GACX,QAAK7oC,KAAKgoC,cAG6B,IAAhChoC,KAAKkoC,kBAAkBW,EAChC,CAMAG,aAAAA,CAAcH,GACR7oC,KAAKgoC,cACPhoC,KAAKkoC,kBAAkBW,IAAO,EAElC,EAGF,UCxGO,SAASI,GAAY9H,EAAO+H,EAAaC,GAC9C,MAAMC,EAAuCjI,EAC7C,IAAIkI,GAAY,EACZC,GAAW,EACXC,GAAS,EAEb,MAAMC,EAAe,CACnB1gC,EAAWsgC,EAAK3/B,EAAUrB,MAAM,WAC9BmhC,GAAS,EACJD,GACHJ,GAEJ,KAyBF,OAtBIE,EAAIK,KAAO9kB,IACb2kB,GAAW,EACXF,EACGvkB,SACA6kB,MAAK,WACAL,GACFH,GAEJ,IACCS,OAAM,SAAU5rB,GACXsrB,IACEE,EACFL,IAEAC,IAGN,KAEFK,EAAarjC,KAAK2C,EAAWsgC,EAAK3/B,EAAUjC,MAAO2hC,IAG9C,WACLE,GAAY,EACZG,EAAazqB,QAAQhW,EACvB,CACF,CASO,SAASy4B,GAAKL,EAAOsI,GAC1B,OAAO,IAAIlM,SAAQ,CAACC,EAASoM,KAC3B,SAASC,IACPC,IACAtM,EAAQ2D,EACV,CACA,SAAS4I,IACPD,IACAF,EAAO,IAAI7/B,MAAM,oBACnB,CACA,SAAS+/B,IACP3I,EAAMp6B,oBAAoB,OAAQ8iC,GAClC1I,EAAMp6B,oBAAoB,QAASgjC,EACrC,CACA5I,EAAMr7B,iBAAiB,OAAQ+jC,GAC/B1I,EAAMr7B,iBAAiB,QAASikC,GAC5BN,IACFtI,EAAMsI,IAAMA,EACd,GAEJ,CAOO,SAASO,GAAe7I,EAAOsI,GAIpC,OAHIA,IACFtI,EAAMsI,IAAMA,GAEP9kB,GACH,IAAI4Y,SAAQ,CAACC,EAASoM,IACpBzI,EAAMtc,SAAS6kB,MAAK,IAAMlM,EAAQ2D,IAAQyI,KAE5CpI,GAAKL,EACX,CCvSA,MAAM8I,WAAkBnC,GAStB9mC,WAAAA,CAAY0/B,EAAWpwB,EAAOm5B,EAAKS,EAAaC,EAAkBj7B,GAChEzJ,MAAMi7B,EAAWpwB,EAAOpB,GAMxBlP,KAAKoqC,aAAeF,EAQpBlqC,KAAKqqC,KAAOZ,EAEZzpC,KAAKgJ,IAAMygC,EAMXzpC,KAAKsqC,OAAS,IAAI1lB,MACE,OAAhBslB,IACFlqC,KAAKsqC,OAAOJ,YAAcA,GAO5BlqC,KAAKuqC,UAAY,KAMjBvqC,KAAKwqC,kBAAoBL,CAC3B,CAOAM,QAAAA,GACE,OAAOzqC,KAAKsqC,MACd,CAMAI,QAAAA,CAAS3G,GACP/jC,KAAKsqC,OAASvG,EACd/jC,KAAKsQ,MAAQ+3B,GAAUtI,OACvB//B,KAAK2qC,iBACL3qC,KAAKwJ,SACP,CAOAohC,iBAAAA,GACE5qC,KAAKsQ,MAAQ+3B,GAAU7gC,MACvBxH,KAAK2qC,iBACL3qC,KAAKsqC,OAASO,KACd7qC,KAAKwJ,SACP,CAOAshC,gBAAAA,GACE,MAAM3J,EAAyCnhC,KAAKsqC,OAChDnJ,EAAM4J,cAAgB5J,EAAM6J,cAC9BhrC,KAAKsQ,MAAQ+3B,GAAUtI,OAEvB//B,KAAKsQ,MAAQ+3B,GAAUrI,MAEzBhgC,KAAK2qC,iBACL3qC,KAAKwJ,SACP,CAuCAg4B,IAAAA,GACMxhC,KAAKsQ,OAAS+3B,GAAU7gC,QAC1BxH,KAAKsQ,MAAQ+3B,GAAUxI,KACvB7/B,KAAKsqC,OAAS,IAAI1lB,MACQ,OAAtB5kB,KAAKoqC,eACPpqC,KAAKsqC,OAAOJ,YAAclqC,KAAKoqC,eAG/BpqC,KAAKsQ,OAAS+3B,GAAUxI,OAC1B7/B,KAAKsQ,MAAQ+3B,GAAUvI,QACvB9/B,KAAKwJ,UACLxJ,KAAKwqC,kBAAkBxqC,KAAMA,KAAKqqC,MAClCrqC,KAAKuqC,UAAYtB,GACfjpC,KAAKsqC,OACLtqC,KAAK8qC,iBAAiBniC,KAAK3I,MAC3BA,KAAK4qC,kBAAkBjiC,KAAK3I,OAGlC,CAOA2qC,cAAAA,GACM3qC,KAAKuqC,YACPvqC,KAAKuqC,YACLvqC,KAAKuqC,UAAY,KAErB,EAOF,SAASM,KACP,MAAMI,EAAM3H,GAAsB,EAAG,GAGrC,OAFA2H,EAAIC,UAAY,gBAChBD,EAAIE,SAAS,EAAG,EAAG,EAAG,GACfF,EAAIxH,MACb,CAEA,UClLO,MAAM2H,GAAkB,GCuBzBC,GAAkB,GAUlBC,GAAqB,IAO3B,MAAMC,GASJvqC,WAAAA,CACEsoB,EACAkiB,EACAC,EACAC,EACAC,EACAC,GAMA5rC,KAAK6rC,YAAcviB,EAMnBtpB,KAAK8rC,YAAcN,EAGnB,IAAIO,EAAoB,CAAC,EACzB,MAAMC,EAAezrB,GAAavgB,KAAK8rC,YAAa9rC,KAAK6rC,aAOzD7rC,KAAKisC,cAAgB,SAAUjmB,GAC7B,MAAMhd,EAAMgd,EAAE,GAAK,IAAMA,EAAE,GAI3B,OAHK+lB,EAAkB/iC,KACrB+iC,EAAkB/iC,GAAOgjC,EAAahmB,IAEjC+lB,EAAkB/iC,EAC3B,EAMAhJ,KAAKksC,iBAAmBR,EAMxB1rC,KAAKmsC,uBAAyBR,EAAiBA,EAM/C3rC,KAAKosC,WAAa,GAOlBpsC,KAAKqsC,iBAAkB,EAMvBrsC,KAAKssC,kBACHtsC,KAAK6rC,YAAY93B,cACf23B,KACA1rC,KAAK6rC,YAAYj7B,aACnB8I,GAASgyB,IAAoBhyB,GAAS1Z,KAAK6rC,YAAYj7B,aAMzD5Q,KAAKusC,kBAAoBvsC,KAAK6rC,YAAYj7B,YACtC8I,GAAS1Z,KAAK6rC,YAAYj7B,aAC1B,KAMJ5Q,KAAKwsC,kBAAoBxsC,KAAK8rC,YAAYl7B,YACtC8I,GAAS1Z,KAAK8rC,YAAYl7B,aAC1B,KAEJ,MAAM67B,EAAqBlzB,GAAWkyB,GAChCiB,EAAsBpzB,GAAYmyB,GAClCkB,EAAyBtzB,GAAeoyB,GACxCmB,EAAwBxzB,GAAcqyB,GACtCoB,EAAgB7sC,KAAKisC,cAAcQ,GACnCK,EAAiB9sC,KAAKisC,cAAcS,GACpCK,EAAoB/sC,KAAKisC,cAAcU,GACvCK,EAAmBhtC,KAAKisC,cAAcW,GAYtCK,EACJ5B,IACCO,EACG/+B,KAAKD,IACH,EACAC,KAAKmC,KACHnC,KAAKqgC,KACH1zB,GAAQiyB,IACLG,EAAwBA,EAAwB,IAAM,QAI/D,GAcN,GAZA5rC,KAAKmtC,SACHV,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAGEjtC,KAAKqsC,gBAAiB,CACxB,IAAIe,EAAYz9B,IAChB3P,KAAKosC,WAAWrtB,SAAQ,SAAUsuB,EAAUxqC,EAAGH,GAC7C0qC,EAAYvgC,KAAKF,IACfygC,EACAC,EAAS1hC,OAAO,GAAG,GACnB0hC,EAAS1hC,OAAO,GAAG,GACnB0hC,EAAS1hC,OAAO,GAAG,GAEvB,IAIA3L,KAAKosC,WAAWrtB,SAASsuB,IACvB,GACExgC,KAAKD,IACHygC,EAAS1hC,OAAO,GAAG,GACnB0hC,EAAS1hC,OAAO,GAAG,GACnB0hC,EAAS1hC,OAAO,GAAG,IAEnByhC,EACFptC,KAAKusC,kBAAoB,EACzB,CACA,MAAMe,EAAc,CAClB,CAACD,EAAS1hC,OAAO,GAAG,GAAI0hC,EAAS1hC,OAAO,GAAG,IAC3C,CAAC0hC,EAAS1hC,OAAO,GAAG,GAAI0hC,EAAS1hC,OAAO,GAAG,IAC3C,CAAC0hC,EAAS1hC,OAAO,GAAG,GAAI0hC,EAAS1hC,OAAO,GAAG,KAEzC2hC,EAAY,GAAG,GAAKF,EAAYptC,KAAKusC,kBAAoB,IAC3De,EAAY,GAAG,IAAMttC,KAAKusC,mBAExBe,EAAY,GAAG,GAAKF,EAAYptC,KAAKusC,kBAAoB,IAC3De,EAAY,GAAG,IAAMttC,KAAKusC,mBAExBe,EAAY,GAAG,GAAKF,EAAYptC,KAAKusC,kBAAoB,IAC3De,EAAY,GAAG,IAAMttC,KAAKusC,mBAM5B,MAAM/0B,EAAO3K,KAAKF,IAChB2gC,EAAY,GAAG,GACfA,EAAY,GAAG,GACfA,EAAY,GAAG,IAEX51B,EAAO7K,KAAKD,IAChB0gC,EAAY,GAAG,GACfA,EAAY,GAAG,GACfA,EAAY,GAAG,IAEb51B,EAAOF,EAAOxX,KAAKusC,kBAAoB,IACzCc,EAAS1hC,OAAS2hC,EAEtB,IAEJ,CAEAvB,EAAoB,CAAC,CACvB,CAYAwB,YAAAA,CAAahrC,EAAGC,EAAGwjB,EAAGwnB,EAAMC,EAAMC,GAChC1tC,KAAKosC,WAAWjmC,KAAK,CACnBwF,OAAQ,CAAC6hC,EAAMC,EAAMC,GACrBtsC,OAAQ,CAACmB,EAAGC,EAAGwjB,IAEnB,CAkBAmnB,QAAAA,CAAS5qC,EAAGC,EAAGwjB,EAAGC,EAAGunB,EAAMC,EAAMC,EAAMC,EAAMV,GAC3C,MAAMW,EAAmB52B,GAAe,CAACw2B,EAAMC,EAAMC,EAAMC,IACrDE,EAAkB7tC,KAAKusC,kBACzB7yB,GAASk0B,GAAoB5tC,KAAKusC,kBAClC,KACEuB,EAA0C9tC,KAAKusC,kBAI/CwB,EACJ/tC,KAAK6rC,YAAY93B,YACjB85B,EAAkB,IAClBA,EAAkB,EAEpB,IAAIG,GAAmB,EAEvB,GAAIf,EAAiB,EAAG,CACtB,GAAIjtC,KAAK8rC,YAAYz3B,YAAcrU,KAAKwsC,kBAAmB,CACzD,MAAMyB,EAAmBj3B,GAAe,CAACzU,EAAGC,EAAGwjB,EAAGC,IAC5CioB,EACJx0B,GAASu0B,GAAoBjuC,KAAKwsC,kBACpCwB,EACEE,EAAkB5C,IAAsB0C,CAC5C,EACKD,GAAU/tC,KAAK6rC,YAAYx3B,YAAcw5B,IAC5CG,EACEH,EAAkBvC,IAAsB0C,EAE9C,CAEA,IAAKA,GAAoBhuC,KAAKksC,kBAE1B5vB,SAASsxB,EAAiB,KAC1BtxB,SAASsxB,EAAiB,KAC1BtxB,SAASsxB,EAAiB,KAC1BtxB,SAASsxB,EAAiB,MAErB1yB,GAAW0yB,EAAkB5tC,KAAKksC,kBAErC,OAKN,IAAIiC,EAAc,EAElB,IAAKH,KAEA1xB,SAASkxB,EAAK,MACdlxB,SAASkxB,EAAK,MACdlxB,SAASmxB,EAAK,MACdnxB,SAASmxB,EAAK,MACdnxB,SAASoxB,EAAK,MACdpxB,SAASoxB,EAAK,MACdpxB,SAASqxB,EAAK,MACdrxB,SAASqxB,EAAK,KAEf,GAAIV,EAAiB,EACnBe,GAAmB,OASnB,GALAG,GACI7xB,SAASkxB,EAAK,KAAQlxB,SAASkxB,EAAK,IAAU,EAAJ,IAC1ClxB,SAASmxB,EAAK,KAAQnxB,SAASmxB,EAAK,IAAU,EAAJ,IAC1CnxB,SAASoxB,EAAK,KAAQpxB,SAASoxB,EAAK,IAAU,EAAJ,IAC1CpxB,SAASqxB,EAAK,KAAQrxB,SAASqxB,EAAK,IAAU,EAAJ,GAE7B,GAAfQ,GACe,GAAfA,GACe,GAAfA,GACe,GAAfA,EAEA,OAMR,GAAIlB,EAAiB,EAAG,CACtB,IAAKe,EAAkB,CACrB,MAAMh0B,EAAS,EAAEzX,EAAE,GAAKyjB,EAAE,IAAM,GAAIzjB,EAAE,GAAKyjB,EAAE,IAAM,GAC7CooB,EAAYpuC,KAAKisC,cAAcjyB,GAErC,IAAI3M,EACJ,GAAI0gC,EAAQ,CACV,MAAMM,GACH7/B,EAAOg/B,EAAK,GAAIM,GACft/B,EAAOk/B,EAAK,GAAII,IAClB,EACFzgC,EAAKghC,EAAkB7/B,EAAO4/B,EAAU,GAAIN,EAC9C,MACEzgC,GAAMmgC,EAAK,GAAKE,EAAK,IAAM,EAAIU,EAAU,GAE3C,MAAM9gC,GAAMkgC,EAAK,GAAKE,EAAK,IAAM,EAAIU,EAAU,GACzCE,EAAwBjhC,EAAKA,EAAKC,EAAKA,EAC7C0gC,EAAmBM,EAAwBtuC,KAAKmsC,sBAClD,CACA,GAAI6B,EAAkB,CACpB,GAAInhC,KAAKgB,IAAItL,EAAE,GAAKyjB,EAAE,KAAOnZ,KAAKgB,IAAItL,EAAE,GAAKyjB,EAAE,IAAK,CAElD,MAAMuoB,EAAK,EAAE/rC,EAAE,GAAKwjB,EAAE,IAAM,GAAIxjB,EAAE,GAAKwjB,EAAE,IAAM,GACzCwoB,EAAQxuC,KAAKisC,cAAcsC,GAC3BE,EAAK,EAAExoB,EAAE,GAAK1jB,EAAE,IAAM,GAAI0jB,EAAE,GAAK1jB,EAAE,IAAM,GACzCmsC,EAAQ1uC,KAAKisC,cAAcwC,GAEjCzuC,KAAKmtC,SACH5qC,EACAC,EACA+rC,EACAE,EACAjB,EACAC,EACAe,EACAE,EACAzB,EAAiB,GAEnBjtC,KAAKmtC,SACHsB,EACAF,EACAvoB,EACAC,EACAyoB,EACAF,EACAd,EACAC,EACAV,EAAiB,EAErB,KAAO,CAEL,MAAM0B,EAAK,EAAEpsC,EAAE,GAAKC,EAAE,IAAM,GAAID,EAAE,GAAKC,EAAE,IAAM,GACzCosC,EAAQ5uC,KAAKisC,cAAc0C,GAC3BE,EAAK,EAAE7oB,EAAE,GAAKC,EAAE,IAAM,GAAID,EAAE,GAAKC,EAAE,IAAM,GACzC6oB,EAAQ9uC,KAAKisC,cAAc4C,GAEjC7uC,KAAKmtC,SACH5qC,EACAosC,EACAE,EACA5oB,EACAunB,EACAoB,EACAE,EACAnB,EACAV,EAAiB,GAEnBjtC,KAAKmtC,SACHwB,EACAnsC,EACAwjB,EACA6oB,EACAD,EACAnB,EACAC,EACAoB,EACA7B,EAAiB,EAErB,CACA,MACF,CACF,CAEA,GAAIc,EAAQ,CACV,IAAK/tC,KAAKssC,kBACR,OAEFtsC,KAAKqsC,iBAAkB,CACzB,CAM2B,IAAR,GAAd8B,IACHnuC,KAAKutC,aAAahrC,EAAGyjB,EAAGC,EAAGunB,EAAME,EAAMC,GAEd,IAAR,GAAdQ,IACHnuC,KAAKutC,aAAahrC,EAAGyjB,EAAGxjB,EAAGgrC,EAAME,EAAMD,GAErCU,IAEyB,IAAR,GAAdA,IACHnuC,KAAKutC,aAAa/qC,EAAGyjB,EAAG1jB,EAAGkrC,EAAME,EAAMH,GAEd,IAAR,EAAdW,IACHnuC,KAAKutC,aAAa/qC,EAAGyjB,EAAGD,EAAGynB,EAAME,EAAMD,GAG7C,CAOAqB,qBAAAA,GACE,MAAMp+B,EAASuG,KASf,OAPAlX,KAAKosC,WAAWrtB,SAAQ,SAAUsuB,EAAUxqC,EAAGH,GAC7C,MAAM+mC,EAAM4D,EAAS1hC,OACrBwL,GAAiBxG,EAAQ84B,EAAI,IAC7BtyB,GAAiBxG,EAAQ84B,EAAI,IAC7BtyB,GAAiBxG,EAAQ84B,EAAI,GAC/B,IAEO94B,CACT,CAKAq+B,YAAAA,GACE,OAAOhvC,KAAKosC,UACd,EAGF,UCpeA,IAAI6C,GAKG,MAAM1L,GAAa,GAY1B,SAAS2L,GAAiBjE,EAAKkE,EAAIC,EAAIC,EAAIC,GACzCrE,EAAI5D,YACJ4D,EAAI3D,OAAO,EAAG,GACd2D,EAAI1D,OAAO4H,EAAIC,GACfnE,EAAI1D,OAAO8H,EAAIC,GACfrE,EAAIsE,YACJtE,EAAI7D,OACJ6D,EAAIzD,OACJyD,EAAIE,SAAS,EAAG,EAAGt+B,KAAKD,IAAIuiC,EAAIE,GAAM,EAAGxiC,KAAKD,IAAIwiC,EAAIE,IACtDrE,EAAIuE,SACN,CAUA,SAASC,GAA8BrsC,EAAMyV,GAE3C,OACEhM,KAAKgB,IAAIzK,EAAc,EAATyV,GAAc,KAAO,GACnChM,KAAKgB,IAAIzK,EAAc,EAATyV,EAAa,GAAK,QAAc,CAElD,CAYA,SAAS62B,KACP,QAAiCzoC,IAA7BgoC,GAAwC,CAC1C,MAAMhE,EAAM3H,GAAsB,EAAG,EAAGC,IACxC0H,EAAI0E,yBAA2B,UAC/B1E,EAAIC,UAAY,wBAChBgE,GAAiBjE,EAAK,EAAG,EAAG,EAAG,GAC/BiE,GAAiBjE,EAAK,EAAG,EAAG,EAAG,GAC/B,MAAM7nC,EAAO6nC,EAAIhF,aAAa,EAAG,EAAG,EAAG,GAAG7iC,KAC1C6rC,GACEQ,GAA8BrsC,EAAM,IACpCqsC,GAA8BrsC,EAAM,IACpCqsC,GAA8BrsC,EAAM,GACtCwgC,GAAcqH,GACd1H,GAAWp9B,KAAK8kC,EAAIxH,OACtB,CAEA,OAAOwL,EACT,CAcO,SAASW,GACdtmB,EACAkiB,EACA7W,EACAE,GAEA,MAAMH,EAAeje,GAAUke,EAAc6W,EAAYliB,GAGzD,IAAIsL,EAAmBjhB,GACrB63B,EACA3W,EACAF,GAGF,MAAMkb,EAAsBrE,EAAWt3B,wBACXjN,IAAxB4oC,IACFjb,GAAoBib,GAEtB,MAAMC,EAAsBxmB,EAAWpV,wBACXjN,IAAxB6oC,IACFlb,GAAoBkb,GAOtB,MAAMC,EAAezmB,EAAW1Y,YAChC,IAAKm/B,GAAgB/3B,GAAmB+3B,EAAcrb,GAAe,CACnE,MAAMsb,EACJr8B,GAAmB2V,EAAYsL,EAAkBF,GACjDE,EACEtY,SAAS0zB,IAAuBA,EAAqB,IACvDpb,GAAoBob,EAExB,CAEA,OAAOpb,CACT,CAcO,SAASqb,GACd3mB,EACAkiB,EACAC,EACA5W,GAEA,MAAMF,EAAe/a,GAAU6xB,GAC/B,IAAI7W,EAAmBgb,GACrBtmB,EACAkiB,EACA7W,EACAE,GAeF,QAZKvY,SAASsY,IAAqBA,GAAoB,IACrD3b,GAAcwyB,GAAc,SAAU3xB,GAOpC,OANA8a,EAAmBgb,GACjBtmB,EACAkiB,EACA1xB,EACA+a,GAEKvY,SAASsY,IAAqBA,EAAmB,CAC1D,IAGKA,CACT,CAyBO,SAAS90B,GACdic,EACAC,EACA6rB,EACAjT,EACAmb,EACAlb,EACA4W,EACAyE,EACAC,EACAC,EACAC,EACAlI,GAEA,MAAMxG,EAAU2B,GACdz2B,KAAKiC,MAAM+4B,EAAa9rB,GACxBlP,KAAKiC,MAAM+4B,EAAa7rB,GACxBunB,IAOF,GAJK4E,IACHxG,EAAQ2O,uBAAwB,GAGX,IAAnBH,EAAQ9tC,OACV,OAAOs/B,EAAQ8B,OAKjB,SAAS8M,EAAW3lC,GAClB,OAAOiC,KAAKiC,MAAMlE,EAAQi9B,GAAcA,CAC1C,CAJAlG,EAAQ7kB,MAAM+qB,EAAYA,GAM1BlG,EAAQgO,yBAA2B,UAEnC,MAAMa,EAAmBt5B,KACzBi5B,EAAQpxB,SAAQ,SAAU0qB,EAAK5mC,EAAGH,GAChCS,GAAOqtC,EAAkB/G,EAAI94B,OAC/B,IAEA,MAAM8/B,EAAqB/2B,GAAS82B,GAC9BE,EAAsB/2B,GAAU62B,GAChCG,EAAgBrN,GACpBz2B,KAAKiC,MAAO+4B,EAAa4I,EAAsB7b,GAC/C/nB,KAAKiC,MAAO+4B,EAAa6I,EAAuB9b,GAChD2O,IAGG4E,IACHwI,EAAcL,uBAAwB,GAGxC,MAAMM,EAAc/I,EAAajT,EAEjCub,EAAQpxB,SAAQ,SAAU0qB,EAAK5mC,EAAGH,GAChC,MAAMmuC,EAAOpH,EAAI94B,OAAO,GAAK6/B,EAAiB,GACxCM,IAASrH,EAAI94B,OAAO,GAAK6/B,EAAiB,IAC1CO,EAAWr3B,GAAS+vB,EAAI94B,QACxBqgC,EAAYr3B,GAAU8vB,EAAI94B,QAG5B84B,EAAItI,MAAMplB,MAAQ,GAAK0tB,EAAItI,MAAMnlB,OAAS,GAC5C20B,EAAcvK,UACZqD,EAAItI,MACJiP,EACAA,EACA3G,EAAItI,MAAMplB,MAAQ,EAAIq0B,EACtB3G,EAAItI,MAAMnlB,OAAS,EAAIo0B,EACvBS,EAAOD,EACPE,EAAOF,EACPG,EAAWH,EACXI,EAAYJ,EAGlB,IAEA,MAAMK,EAAgB13B,GAAWkyB,GA0JjC,OAxJAyE,EAAclB,eAAejwB,SAAQ,SAAUsuB,EAAUxqC,EAAGH,GAqB1D,MAAMiJ,EAAS0hC,EAAS1hC,OAClBvK,EAASisC,EAASjsC,OACxB,IAAI+Y,EAAKxO,EAAO,GAAG,GACjByO,EAAKzO,EAAO,GAAG,GACbsB,EAAKtB,EAAO,GAAG,GACjBuB,EAAKvB,EAAO,GAAG,GACbwB,EAAKxB,EAAO,GAAG,GACjByB,EAAKzB,EAAO,GAAG,GAEjB,MAAMulC,EAAKX,GAAYnvC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,GACpDsc,EAAKZ,IACPnvC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,GAEjCsa,EAAKoB,GAAYnvC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,GACpDua,EAAKmB,IACPnvC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,GAEjCwa,EAAKkB,GAAYnvC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,GACpDya,EAAKiB,IACPnvC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,GAMjCuc,EAAwBj3B,EACxBk3B,EAAwBj3B,EAC9BD,EAAK,EACLC,EAAK,EACLnN,GAAMmkC,EACNlkC,GAAMmkC,EACNlkC,GAAMikC,EACNhkC,GAAMikC,EAEN,MAAMC,EAAkB,CACtB,CAACrkC,EAAIC,EAAI,EAAG,EAAGiiC,EAAK+B,GACpB,CAAC/jC,EAAIC,EAAI,EAAG,EAAGiiC,EAAK6B,GACpB,CAAC,EAAG,EAAGjkC,EAAIC,EAAIkiC,EAAK+B,GACpB,CAAC,EAAG,EAAGhkC,EAAIC,EAAIkiC,EAAK6B,IAEhBI,EAAc9jC,EAAkB6jC,GACtC,GAAKC,EAAL,CAOA,GAHA5P,EAAQyF,OACRzF,EAAQ0F,YAEJqI,OAAgCvH,EAAa,CAE/CxG,EAAQ2F,OAAO6H,EAAIC,GAEnB,MAAMoC,EAAQ,EACRC,EAAKP,EAAK/B,EACVuC,EAAKP,EAAK/B,EAChB,IAAK,IAAIuC,EAAO,EAAGA,EAAOH,EAAOG,IAE/BhQ,EAAQ4F,OACN4H,EAAKoB,GAAaoB,EAAO,GAAKF,EAAMD,GACpCpC,EAAKmB,EAAYoB,EAAOD,GAAOF,EAAQ,KAGrCG,GAAQH,EAAQ,GAClB7P,EAAQ4F,OACN4H,EAAKoB,GAAaoB,EAAO,GAAKF,EAAMD,GACpCpC,EAAKmB,GAAaoB,EAAO,GAAKD,GAAOF,EAAQ,KAKnD7P,EAAQ4F,OAAO8H,EAAIC,EACrB,MACE3N,EAAQ2F,OAAO6H,EAAIC,GACnBzN,EAAQ4F,OAAO2J,EAAIC,GACnBxP,EAAQ4F,OAAO8H,EAAIC,GAGrB3N,EAAQ6F,OAER7F,EAAQlrB,UACN86B,EAAY,GACZA,EAAY,GACZA,EAAY,GACZA,EAAY,GACZL,EACAC,GAGFxP,EAAQ7Z,UACN0oB,EAAiB,GAAKY,EACtBZ,EAAiB,GAAKa,GAGxB1P,EAAQ7kB,MACN8X,EAAmBiT,GAClBjT,EAAmBiT,GAGtBlG,EAAQyE,UAAUuK,EAAclN,OAAQ,EAAG,GAC3C9B,EAAQ6N,SAxDR,CAyDF,IAEA5L,GAAc+M,GACdpN,GAAWp9B,KAAKwqC,EAAclN,QAE1B4M,IACF1O,EAAQyF,OAERzF,EAAQgO,yBAA2B,cACnChO,EAAQiQ,YAAc,QACtBjQ,EAAQkQ,UAAY,EAEpB3B,EAAclB,eAAejwB,SAAQ,SAAUsuB,EAAUxqC,EAAGH,GAC1D,MAAMtB,EAASisC,EAASjsC,OAClB8vC,GAAM9vC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,EACzCsc,IAAO/vC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,EAC1Csa,GAAM/tC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,EACzCua,IAAOhuC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,EAC1Cwa,GAAMjuC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,EACzCya,IAAOluC,EAAO,GAAG,GAAK6vC,EAAc,IAAMpc,EAEhD8M,EAAQ0F,YACR1F,EAAQ2F,OAAO6H,EAAIC,GACnBzN,EAAQ4F,OAAO2J,EAAIC,GACnBxP,EAAQ4F,OAAO8H,EAAIC,GACnB3N,EAAQ4N,YACR5N,EAAQmQ,QACV,IAEAnQ,EAAQ6N,WAEH7N,EAAQ8B,MACjB,CC3ZA,MAAMsO,WAAmBjK,GAgBvB9mC,WAAAA,CACEsoB,EACA0oB,EACAxG,EACAyG,EACAvR,EACAwR,EACArK,EACAuI,EACA+B,EACAxG,EACA0E,EACAlI,GAEA1iC,MAAMi7B,EAAW2H,GAAUxI,KAAM,CAACsI,cAAeA,IAMjDnoC,KAAKoyC,kBAA+BnrC,IAAhBopC,GAA4BA,EAMhDrwC,KAAKqyC,YAAcxK,EAMnB7nC,KAAKsyC,QAAUlC,EAMfpwC,KAAKuyC,QAAU,KAMfvyC,KAAKwyC,gBAAkBR,EAMvBhyC,KAAKyyC,gBAAkBR,EAMvBjyC,KAAK0yC,kBAAoBR,GAAsCxR,EAM/D1gC,KAAK2yC,aAAe,GAMpB3yC,KAAK4yC,qBAAuB,KAM5B5yC,KAAK6yC,SAAW,EAEhB,MAAMpH,EAAewG,EAAea,mBAClC9yC,KAAK0yC,mBAEDK,EAAkB/yC,KAAKyyC,gBAAgB7hC,YAC7C,IAAI86B,EAAkB1rC,KAAKwyC,gBAAgB5hC,YAE3C,MAAMoiC,EAAsBD,EACxB/3B,GAAgBywB,EAAcsH,GAC9BtH,EAEJ,GAAqC,IAAjCjyB,GAAQw5B,GAIV,YADAhzC,KAAKsQ,MAAQ+3B,GAAUrI,OAIzB,MAAMiT,EAAmB3pB,EAAW1Y,YAChCqiC,IAIAvH,EAHGA,EAGe1wB,GAAgB0wB,EAAiBuH,GAFjCA,GAMtB,MAAMpe,EAAmBod,EAAe7e,cACtCpzB,KAAK0yC,kBAAkB,IAGnB9d,EAAmBqb,GACvB3mB,EACAkiB,EACAwH,EACAne,GAGF,IAAKvY,SAASsY,IAAqBA,GAAoB,EAIrD,YADA50B,KAAKsQ,MAAQ+3B,GAAUrI,OAIzB,MAAMkT,OACejsC,IAAnB0kC,EAA+BA,EAAiBP,GAelD,GATAprC,KAAKmzC,eAAiB,IAAI5H,GACxBjiB,EACAkiB,EACAwH,EACAtH,EACA9W,EAAmBse,EACnBre,GAGgD,IAA9C70B,KAAKmzC,eAAenE,eAAe3sC,OAGrC,YADArC,KAAKsQ,MAAQ+3B,GAAUrI,OAIzBhgC,KAAK6yC,SAAWb,EAAeoB,kBAAkBxe,GACjD,IAAImb,EAAe/vC,KAAKmzC,eAAepE,wBAmBvC,GAjBIrD,IACEpiB,EAAWvV,YACbg8B,EAAa,GAAKrjC,EAChBqjC,EAAa,GACbrE,EAAgB,GAChBA,EAAgB,IAElBqE,EAAa,GAAKrjC,EAChBqjC,EAAa,GACbrE,EAAgB,GAChBA,EAAgB,KAGlBqE,EAAe/0B,GAAgB+0B,EAAcrE,IAI5ClyB,GAAQu2B,GAEN,CACL,MAAMsD,EAAcrB,EAAesB,0BACjCvD,EACA/vC,KAAK6yC,UAGP,IAAK,IAAIU,EAAOF,EAAY77B,KAAM+7B,GAAQF,EAAY37B,KAAM67B,IAC1D,IAAK,IAAIC,EAAOH,EAAY57B,KAAM+7B,GAAQH,EAAY17B,KAAM67B,IAAQ,CAClE,MAAM/S,EAAO0R,EAAgBnyC,KAAK6yC,SAAUU,EAAMC,EAAM3L,GACpDpH,GACFzgC,KAAK2yC,aAAaxsC,KAAKs6B,EAE3B,CAG+B,IAA7BzgC,KAAK2yC,aAAatwC,SACpBrC,KAAKsQ,MAAQ+3B,GAAUrI,MAE3B,MAnBEhgC,KAAKsQ,MAAQ+3B,GAAUrI,KAoB3B,CAMAyK,QAAAA,GACE,OAAOzqC,KAAKuyC,OACd,CAKAkB,UAAAA,GACE,MAAMtD,EAAU,GAWhB,GAVAnwC,KAAK2yC,aAAa5zB,SAAS0hB,IACrBA,GAAQA,EAAK1I,YAAcsQ,GAAUtI,QACvCoQ,EAAQhqC,KAAK,CACXwK,OAAQ3Q,KAAKwyC,gBAAgBM,mBAAmBrS,EAAKC,WACrDS,MAAOV,EAAKgK,YAEhB,IAEFzqC,KAAK2yC,aAAatwC,OAAS,EAEJ,IAAnB8tC,EAAQ9tC,OACVrC,KAAKsQ,MAAQ+3B,GAAU7gC,UAClB,CACL,MAAMob,EAAI5iB,KAAK0yC,kBAAkB,GAC3Bx4B,EAAOla,KAAKyyC,gBAAgBiB,YAAY9wB,GACxC7G,EAAwB,kBAAT7B,EAAoBA,EAAOA,EAAK,GAC/C8B,EAAyB,kBAAT9B,EAAoBA,EAAOA,EAAK,GAChD2a,EAAmB70B,KAAKyyC,gBAAgBrf,cAAcxQ,GACtDgS,EAAmB50B,KAAKwyC,gBAAgBpf,cAC5CpzB,KAAK6yC,UAGDpH,EAAezrC,KAAKyyC,gBAAgBK,mBACxC9yC,KAAK0yC,mBAGP1yC,KAAKuyC,QAAUoB,GACb53B,EACAC,EACAhc,KAAKqyC,YACLzd,EACA50B,KAAKwyC,gBAAgB5hC,YACrBikB,EACA4W,EACAzrC,KAAKmzC,eACLhD,EACAnwC,KAAKsyC,QACLtyC,KAAKoyC,aACLpyC,KAAKmoC,aAGPnoC,KAAKsQ,MAAQ+3B,GAAUtI,MACzB,CACA//B,KAAKwJ,SACP,CAKAg4B,IAAAA,GACE,GAAIxhC,KAAKsQ,OAAS+3B,GAAUxI,KAAM,CAChC7/B,KAAKsQ,MAAQ+3B,GAAUvI,QACvB9/B,KAAKwJ,UAEL,IAAIoqC,EAAa,EAEjB5zC,KAAK4yC,qBAAuB,GAC5B5yC,KAAK2yC,aAAa5zB,SAAS0hB,IACzB,MAAMnwB,EAAQmwB,EAAK1I,WACnB,GAAIznB,GAAS+3B,GAAUxI,MAAQvvB,GAAS+3B,GAAUvI,QAAS,CACzD8T,IAEA,MAAMC,EAAkBrrC,EACtBi4B,EACAh3B,EAAUlC,QACV,SAAU2e,GACR,MAAM5V,EAAQmwB,EAAK1I,WAEjBznB,GAAS+3B,GAAUtI,QACnBzvB,GAAS+3B,GAAU7gC,OACnB8I,GAAS+3B,GAAUrI,QAEnBj3B,EAAc8qC,GACdD,IACmB,IAAfA,IACF5zC,KAAK8zC,mBACL9zC,KAAKyzC,cAGX,GACAzzC,MAEFA,KAAK4yC,qBAAqBzsC,KAAK0tC,EACjC,KAGiB,IAAfD,EACFtY,WAAWt7B,KAAKyzC,WAAW9qC,KAAK3I,MAAO,GAEvCA,KAAK2yC,aAAa5zB,SAAQ,SAAU0hB,EAAM59B,EAAGH,GAC3C,MAAM4N,EAAQmwB,EAAK1I,WACfznB,GAAS+3B,GAAUxI,MACrBY,EAAKe,MAET,GAEJ,CACF,CAKAsS,gBAAAA,GACE9zC,KAAK4yC,qBAAqB7zB,QAAQhW,GAClC/I,KAAK4yC,qBAAuB,IAC9B,CAKAxK,OAAAA,GACMpoC,KAAKuyC,UACP3O,GAAc5jC,KAAKuyC,QAAQ5O,WAAW,OACtCJ,GAAWp9B,KAAKnG,KAAKuyC,SACrBvyC,KAAKuyC,QAAU,MAEjB9sC,MAAM2iC,SACR,EAGF,UCnWA,MAAM2L,GAOJ/yC,WAAAA,CAAYwW,EAAME,EAAMD,EAAME,GAI5B3X,KAAKwX,KAAOA,EAKZxX,KAAK0X,KAAOA,EAKZ1X,KAAKyX,KAAOA,EAKZzX,KAAK2X,KAAOA,CACd,CAMAq8B,QAAAA,CAAStT,GACP,OAAO1gC,KAAKkY,WAAWwoB,EAAU,GAAIA,EAAU,GACjD,CAMAuT,iBAAAA,CAAkBrT,GAChB,OACE5gC,KAAKwX,MAAQopB,EAAUppB,MACvBopB,EAAUlpB,MAAQ1X,KAAK0X,MACvB1X,KAAKyX,MAAQmpB,EAAUnpB,MACvBmpB,EAAUjpB,MAAQ3X,KAAK2X,IAE3B,CAOAO,UAAAA,CAAWnL,EAAGC,GACZ,OAAOhN,KAAKwX,MAAQzK,GAAKA,GAAK/M,KAAK0X,MAAQ1X,KAAKyX,MAAQzK,GAAKA,GAAKhN,KAAK2X,IACzE,CAMAnU,MAAAA,CAAOo9B,GACL,OACE5gC,KAAKwX,MAAQopB,EAAUppB,MACvBxX,KAAKyX,MAAQmpB,EAAUnpB,MACvBzX,KAAK0X,MAAQkpB,EAAUlpB,MACvB1X,KAAK2X,MAAQipB,EAAUjpB,IAE3B,CAKAxU,MAAAA,CAAOy9B,GACDA,EAAUppB,KAAOxX,KAAKwX,OACxBxX,KAAKwX,KAAOopB,EAAUppB,MAEpBopB,EAAUlpB,KAAO1X,KAAK0X,OACxB1X,KAAK0X,KAAOkpB,EAAUlpB,MAEpBkpB,EAAUnpB,KAAOzX,KAAKyX,OACxBzX,KAAKyX,KAAOmpB,EAAUnpB,MAEpBmpB,EAAUjpB,KAAO3X,KAAK2X,OACxB3X,KAAK2X,KAAOipB,EAAUjpB,KAE1B,CAKAgC,SAAAA,GACE,OAAO3Z,KAAK2X,KAAO3X,KAAKyX,KAAO,CACjC,CAKAy8B,OAAAA,GACE,MAAO,CAACl0C,KAAK0Z,WAAY1Z,KAAK2Z,YAChC,CAKAD,QAAAA,GACE,OAAO1Z,KAAK0X,KAAO1X,KAAKwX,KAAO,CACjC,CAMA0D,UAAAA,CAAW0lB,GACT,OACE5gC,KAAKwX,MAAQopB,EAAUlpB,MACvB1X,KAAK0X,MAAQkpB,EAAUppB,MACvBxX,KAAKyX,MAAQmpB,EAAUjpB,MACvB3X,KAAK2X,MAAQipB,EAAUnpB,IAE3B,EAWK,SAASG,GAAeJ,EAAME,EAAMD,EAAME,EAAMipB,GACrD,YAAkB35B,IAAd25B,GACFA,EAAUppB,KAAOA,EACjBopB,EAAUlpB,KAAOA,EACjBkpB,EAAUnpB,KAAOA,EACjBmpB,EAAUjpB,KAAOA,EACVipB,GAEF,IAAImT,GAAUv8B,EAAME,EAAMD,EAAME,EACzC,CAEA,UCzHO,SAASw8B,GAAQj6B,GACtB,OAAOA,EAAK,GAAK,GAAKA,EAAK,GAAK,CAClC,CASO,SAAS4C,GAAM5C,EAAM6H,EAAOxK,GAMjC,YALatQ,IAATsQ,IACFA,EAAO,CAAC,EAAG,IAEbA,EAAK,GAAM2C,EAAK,GAAK6H,EAAQ,GAAO,EACpCxK,EAAK,GAAM2C,EAAK,GAAK6H,EAAQ,GAAO,EAC7BxK,CACT,CAWO,SAAS68B,GAAOl6B,EAAM3C,GAC3B,OAAIjU,MAAMC,QAAQ2W,GACTA,QAEIjT,IAATsQ,EACFA,EAAO,CAAC2C,EAAMA,IAEd3C,EAAK,GAAK2C,EACV3C,EAAK,GAAK2C,GAEL3C,EACT,CClCA,MAAM88B,WAAgC3O,GAIpC1kC,WAAAA,CAAYszC,GACV7uC,MAAM6uC,GAMNt0C,KAAKu0C,eAAgB,EAMrBv0C,KAAKw0C,gBAAkB,KAMvBx0C,KAAKy0C,mBAMLz0C,KAAK00C,mBAAqB,KAM1B10C,KAAK20C,iBAML30C,KAAK40C,cAAgB,GAMrB50C,KAAK60C,WAAY,EAMjB70C,KAAK80C,UAAY59B,KAMjBlX,KAAK+0C,cAAgB,IAAIhB,GAAU,EAAG,EAAG,EAAG,EAC9C,CAOAiB,cAAAA,CAAevU,GACb,MAAM6T,EAAYt0C,KAAKihC,WACjBgU,EAAYxU,EAAK1I,WACjBwH,EAAyB+U,EAAU1U,4BACzC,OACEqV,GAAa5M,GAAUtI,QACvBkV,GAAa5M,GAAUrI,OACtBiV,GAAa5M,GAAU7gC,QAAU+3B,CAEtC,CASA2V,OAAAA,CAAQtyB,EAAG7V,EAAGC,EAAG4wB,GACf,MAAMiK,EAAajK,EAAWiK,WACxB1xB,EAAaynB,EAAWtF,UAAUniB,WAClCm+B,EAAYt0C,KAAKihC,WACjBkU,EAAab,EAAUpX,YAC7B,IAAIuD,EAAO0U,EAAWD,QAAQtyB,EAAG7V,EAAGC,EAAG66B,EAAY1xB,GAUnD,OATIsqB,EAAK1I,YAAcsQ,GAAU7gC,OAC3B8sC,EAAU1U,6BAA+B0U,EAAU5U,aAAe,IAEpE1/B,KAAK60C,WAAY,GAGhB70C,KAAKg1C,eAAevU,KACvBA,EAAOA,EAAK+H,kBAEP/H,CACT,CAMAhD,OAAAA,CAAQH,GACN,MAAMM,EAAa59B,KAAK49B,WACxB,IAAKA,EACH,OAAO,KAGT,MAAMrtB,EAAQvQ,KAAKihC,WACbhpB,EAAa4D,GACjB+hB,EAAWwX,2BACX9X,EAAMv4B,SAGFo5B,EAAc5tB,EAAMK,YAC1B,GAAIutB,IACGnmB,GAAmBmmB,EAAalmB,GACnC,OAAO,KAIX,MAAM4vB,EAAajK,EAAWiK,WACxB1xB,EAAaynB,EAAWtF,UAAUniB,WAClCmiB,EAAYsF,EAAWtF,UACvB3sB,EAAS4E,EAAM4sB,kBACf1oB,EAAW9I,EAAO0pC,yBAAyB/c,EAAUniB,YACrDm/B,EAAiB3pC,EAAO4pC,kBAAkB3X,EAAWiK,YAE3D,IACE,IAAIjlB,EAAInO,EAAS2+B,kBAAkB9a,EAAUljB,YAC7CwN,GAAKnO,EAAS1D,eACZ6R,EACF,CACA,MAAM8d,EAAYjsB,EAAS+gC,yBAAyBv9B,EAAY2K,GAC1D6d,EAAO90B,EAAOupC,QAClBtyB,EACA8d,EAAU,GACVA,EAAU,GACVmH,EACA1xB,GAEF,KACIsqB,aAAgBwJ,IAAaxJ,aAAgBsR,KAC9CtR,aAAgBsR,IAActR,EAAK1I,aAAesQ,GAAUrI,MAE7D,OAAO,KAGT,GAAIS,EAAK1I,aAAesQ,GAAUtI,OAChC,SAGF,MAAM0V,EAAahhC,EAASihC,UAAU9yB,GAChC+yB,EAAWvB,GAAO3/B,EAASi/B,YAAY9wB,IACvCgzB,EAAiBnhC,EAAS2e,cAAcxQ,GAExCsjB,EAAMr5B,KAAKkC,MACfumC,IACIr9B,EAAW,GAAKw9B,EAAW,IAAMG,EACjClV,EAAU,GAAKiV,EAAS,KAGxBxP,EAAMt5B,KAAKkC,MACfumC,IACIG,EAAW,GAAKx9B,EAAW,IAAM29B,EACjClV,EAAU,GAAKiV,EAAS,KAGxBvF,EAASvjC,KAAKiC,MAClBwmC,EAAiB3pC,EAAOkqC,uBAAuBvd,EAAUniB,aAG3D,OAAOnW,KAAKimC,aAAaxF,EAAKgK,WAAYvE,EAAMkK,EAAQjK,EAAMiK,EAChE,CAEA,OAAO,IACT,CAQA7P,kBAAAA,CAAmBC,EAAOzN,EAAM0N,GAC9B,QAAIzgC,KAAKg1C,eAAevU,IACfh7B,MAAM86B,mBAAmBC,EAAOzN,EAAM0N,EAGjD,CAOAhC,YAAAA,CAAab,GACX,QAAS59B,KAAKihC,WAAW/D,WAC3B,CAQAwB,WAAAA,CAAYd,EAAYx8B,GACtB,MAAM08B,EAAaF,EAAWI,iBAAiBJ,EAAWkY,YACpDxd,EAAYsF,EAAWtF,UACvBniB,EAAamiB,EAAUniB,WACvB4/B,EAAiBzd,EAAUljB,WAC3B4gC,EAAa1d,EAAUte,OACvBC,EAAWqe,EAAUre,SACrB4tB,EAAajK,EAAWiK,WAExByM,EAAYt0C,KAAKihC,WACjBkU,EAAab,EAAUpX,YACvB+Y,EAAiBd,EAAWzrC,cAC5B+K,EAAW0gC,EAAWE,yBAAyBl/B,GAC/CyM,EAAInO,EAAS2+B,kBAAkB2C,EAAgBZ,EAAWe,YAC1DN,EAAiBnhC,EAAS2e,cAAcxQ,GAE9C,IAAIjS,EAASitB,EAAWjtB,OACxB,MAAMyE,EAAawoB,EAAWtF,UAAUljB,WAClCkgC,EAAiBH,EAAWI,kBAAkB1N,GAE9C9rB,EAAQlP,KAAKiC,MAAO4K,GAAS/I,GAAUyE,EAAcyyB,GACrD7rB,EAASnP,KAAKiC,MAAO6K,GAAUhJ,GAAUyE,EAAcyyB,GAEvD1J,EACJL,EAAWntB,QAAUoQ,GAAe+c,EAAWntB,OAAQwF,GACrDgoB,IACFxtB,EAASqK,GACPrK,EACAoQ,GAAe+c,EAAWntB,OAAQwF,KAItC,MAAM9I,EAAMuoC,EAAiB75B,EAAS,EAAIu5B,EACpChoC,EAAMsoC,EAAiB55B,EAAU,EAAIs5B,EACrCa,EAAe,CACnBH,EAAW,GAAK3oC,EAChB2oC,EAAW,GAAK1oC,EAChB0oC,EAAW,GAAK3oC,EAChB2oC,EAAW,GAAK1oC,GAGZszB,EAAYnsB,EAAS6+B,0BAA0B3iC,EAAQiS,GAKvDwzB,EAAiB,CAAC,EACxBA,EAAexzB,GAAK,CAAC,EAErB,MAAMyzB,EAAkBr2C,KAAK2gC,uBAC3BwU,EACAh/B,EACAigC,GAGItB,EAAY90C,KAAK80C,UACjBwB,EAAet2C,KAAK+0C,cAC1B/0C,KAAK60C,WAAY,EACjB,MAAM0B,EAAWt8B,EACbM,GACE+d,EAAUte,OACV5E,EACA6E,EACA2jB,EAAW1jB,WAEbjT,EACJ,IAAK,IAAI8F,EAAI6zB,EAAUppB,KAAMzK,GAAK6zB,EAAUlpB,OAAQ3K,EAClD,IAAK,IAAIC,EAAI4zB,EAAUnpB,KAAMzK,GAAK4zB,EAAUjpB,OAAQ3K,EAAG,CACrD,GACEiN,IACCxF,EAAS+hC,4BAA4B,CAAC5zB,EAAG7V,EAAGC,GAAIupC,GAEjD,SAEF,MAAM9V,EAAOzgC,KAAKk1C,QAAQtyB,EAAG7V,EAAGC,EAAG4wB,GACnC,GAAI59B,KAAKg1C,eAAevU,GAAO,CAC7B,MAAMgW,EAAMxsC,EAAOjK,MACnB,GAAIygC,EAAK1I,YAAcsQ,GAAUtI,OAAQ,CACvCqW,EAAexzB,GAAG6d,EAAKC,UAAUzZ,YAAcwZ,EAC/C,IAAIsI,EAAetI,EAAKsI,aAAa0N,GACjC1N,GAAuC,IAAvBjL,EAAWvuB,UAE7BkxB,EAAKuI,cAAcyN,GACnB1N,GAAe,GAGd/oC,KAAK60C,YACL9L,GAAiB/oC,KAAK40C,cAAc1uC,SAASu6B,KAE9CzgC,KAAK60C,WAAY,EAErB,CACA,GAA4C,IAAxCpU,EAAKmI,SAAS6N,EAAK7Y,EAAWkL,MAEhC,QAEJ,CAEA,MAAM4N,EAAiBjiC,EAASkiC,2BAC9BlW,EAAKC,UACL4V,EACAxB,GAGF,IAAI8B,GAAU,EACVF,IACFE,EAAUP,EAAgBzzB,EAAI,EAAG8zB,IAE9BE,GACHniC,EAASoiC,gCACPpW,EAAKC,UACL2V,EACAC,EACAxB,EAGN,CAGF,MAAMgC,EACFlB,EAAiBG,EAAkBlO,EAAcyN,EAGrD1rB,GACE5pB,KAAK8lC,eACLlI,EAAW1jB,KAAK,GAAK,EACrB0jB,EAAW1jB,KAAK,GAAK,EACrB,EAAI2tB,EACJ,EAAIA,EACJ5tB,GACC8B,EAAQ,GACRC,EAAS,GAGZ,MAAM+6B,EAAkBC,GAAkBh3C,KAAK8lC,gBAE/C9lC,KAAKsmC,aAAallC,EAAQ21C,EAAiB/2C,KAAKkQ,cAAc0tB,IAC9D,MAAM+D,EAAU3hC,KAAK2hC,QACf8B,EAAS9B,EAAQ8B,OAEvB5c,GAAY7mB,KAAK0hC,sBAAuB1hC,KAAK8lC,gBAG7Clc,GACE5pB,KAAK6lC,cACL9pB,EAAQ,EACRC,EAAS,EACT86B,EACAA,EACA,GACC/6B,EAAQ,GACRC,EAAS,GAGRynB,EAAO1nB,OAASA,GAAS0nB,EAAOznB,QAAUA,GAC5CynB,EAAO1nB,MAAQA,EACf0nB,EAAOznB,OAASA,GACNhc,KAAK+lC,iBACfpE,EAAQkC,UAAU,EAAG,EAAG9nB,EAAOC,GAG7BmiB,GACFn+B,KAAK6mC,cAAclF,EAAS/D,EAAYO,GAGrCgX,EAAW8B,mBACdtV,EAAQ2O,uBAAwB,GAGlCtwC,KAAK0nC,UAAU/F,EAAS/D,GAExB59B,KAAK40C,cAAcvyC,OAAS,EAE5B,IAGI60C,EAAOC,EAAQC,EAHfC,EAAKlwC,OAAOC,KAAKgvC,GAAgBtZ,IAAIsG,QACzCiU,EAAG9oB,KAAKrsB,GAIiB,IAAvB47B,EAAWvuB,SACTvP,KAAK+lC,kBACLoP,EAAWmC,UAAU1Z,EAAWtF,UAAUniB,aAI5C+gC,EAAQ,GACRC,EAAS,IAHTE,EAAKA,EAAG9nB,UAKV,IAAK,IAAI1sB,EAAIw0C,EAAGh1C,OAAS,EAAGQ,GAAK,IAAKA,EAAG,CACvC,MAAM00C,EAAWF,EAAGx0C,GACd20C,EAAuBrC,EAAWsC,iBACtCF,EACA1P,EACA1xB,GAEIsgB,EAAoBhiB,EAAS2e,cAAcmkB,GAC3CG,EAAejhB,EAAoBmf,EACnCvoC,EAAKmqC,EAAqB,GAAKE,EAAeZ,EAC9CxpC,EAAKkqC,EAAqB,GAAKE,EAAeZ,EAC9Ca,EAAkBljC,EAAS+gC,yBAC/Bj8B,GAAW48B,GACXoB,GAEIK,EAAmBnjC,EAASq+B,mBAAmB6E,GAC/CE,EAASh8B,GAAe7b,KAAK6lC,cAAe,CAC/CyP,GAAkBsC,EAAiB,GAAKzB,EAAa,IACpDP,EACDN,GAAkBa,EAAa,GAAKyB,EAAiB,IACpDhC,IAEEkC,EACJxC,EAAiBH,EAAWU,uBAAuB1/B,GAC/C4hC,EAAc3B,EAAemB,GACnC,IAAK,MAAMS,KAAgBD,EAAa,CACtC,MAAMtX,EACJsX,EAAYC,GAERtX,EAAYD,EAAKC,UAGjBuX,EAASN,EAAgB,GAAKjX,EAAU,GACxCwX,EAAQrrC,KAAKiC,MAAM+oC,EAAO,IAAMI,EAAS,GAAK5qC,GAC9C8qC,EAASR,EAAgB,GAAKjX,EAAU,GACxC0X,EAAQvrC,KAAKiC,MAAM+oC,EAAO,IAAMM,EAAS,GAAK7qC,GAC9CP,EAAIF,KAAKiC,MAAM+oC,EAAO,GAAKI,EAAS5qC,GACpCL,EAAIH,KAAKiC,MAAM+oC,EAAO,GAAKM,EAAS7qC,GACpCopB,EAAIwhB,EAAQnrC,EACZ4pB,EAAIyhB,EAAQprC,EACZi7B,EAAarlB,IAAM20B,EAEnBxO,EACJd,GAA+D,IAAjDxH,EAAKmI,SAAS3+B,EAAOjK,MAAO49B,EAAWkL,MACvD,IAAIuP,GAAe,EACnB,IAAKtP,EACH,GAAImO,EAAO,CAETE,EAAc,CAACrqC,EAAGC,EAAGD,EAAI2pB,EAAG1pB,EAAGD,EAAI2pB,EAAG1pB,EAAI2pB,EAAG5pB,EAAGC,EAAI2pB,GACpD,IAAK,IAAI9zB,EAAI,EAAG+D,EAAKswC,EAAM70C,OAAQQ,EAAI+D,IAAM/D,EAC3C,GAAI+f,IAAM20B,GAAYA,EAAWJ,EAAOt0C,GAAI,CAC1C,MAAM2kC,EAAO0P,EAAMr0C,GAEjBqY,GACE,CAACnO,EAAGC,EAAGD,EAAI2pB,EAAG1pB,EAAI2pB,GAClB,CAAC6Q,EAAK,GAAIA,EAAK,GAAIA,EAAK,GAAIA,EAAK,OAG9B6Q,IACH1W,EAAQyF,OACRiR,GAAe,GAEjB1W,EAAQ0F,YAER1F,EAAQ2F,OAAO8P,EAAY,GAAIA,EAAY,IAC3CzV,EAAQ4F,OAAO6P,EAAY,GAAIA,EAAY,IAC3CzV,EAAQ4F,OAAO6P,EAAY,GAAIA,EAAY,IAC3CzV,EAAQ4F,OAAO6P,EAAY,GAAIA,EAAY,IAE3CzV,EAAQ2F,OAAOE,EAAK,GAAIA,EAAK,IAC7B7F,EAAQ4F,OAAOC,EAAK,GAAIA,EAAK,IAC7B7F,EAAQ4F,OAAOC,EAAK,GAAIA,EAAK,IAC7B7F,EAAQ4F,OAAOC,EAAK,GAAIA,EAAK,IAC7B7F,EAAQ6F,OAEZ,CAEF0P,EAAM/wC,KAAKixC,GACXD,EAAOhxC,KAAKoxC,EACd,MACE5V,EAAQkC,UAAU92B,EAAGC,EAAG0pB,EAAGC,GAG/B32B,KAAKs4C,cACH7X,EACA7C,EACA7wB,EACAC,EACA0pB,EACAC,EACAmhB,EACA7P,GAEEiP,IAAUnO,GACRsP,GACF1W,EAAQ6N,UAEVxvC,KAAK40C,cAAc2D,QAAQ9X,IAE3BzgC,KAAK40C,cAAczuC,KAAKs6B,GAE1BzgC,KAAKw4C,gBAAgB5a,EAAW6a,UAAWtD,EAAY1U,EACzD,CACF,CAiCA,OA/BAzgC,KAAK20C,iBAAmBsB,EACxBj2C,KAAK4lC,mBAAqBgQ,EAC1B51C,KAAKu0C,eACFv0C,KAAKw0C,kBAAoBhxC,GAAOxD,KAAKw0C,gBAAiB2B,GACzDn2C,KAAKw0C,gBAAkB2B,EACvBn2C,KAAKy0C,mBAAqB5M,EAC1B7nC,KAAK00C,mBAAqBv+B,EAE1BnW,KAAK04C,kBACH9a,EACAuX,EACA1gC,EACAozB,EACA1xB,EACAxF,EACAiS,EACA0xB,EAAU5U,cAEZ1/B,KAAK24C,oBAAoB/a,EAAYuX,GAErCn1C,KAAK2nC,WAAWhG,EAAS/D,GAErBE,EAAWntB,QACbgxB,EAAQ6N,UAEV7N,EAAQ2O,uBAAwB,EAE5ByG,IAAoBtT,EAAOlc,MAAM9Q,YACnCgtB,EAAOlc,MAAM9Q,UAAYsgC,GAGpB/2C,KAAK2lC,SACd,CAYA2S,aAAAA,CAAc7X,EAAM7C,EAAY7wB,EAAGC,EAAG0pB,EAAGC,EAAGyZ,EAAQnI,GAClD,MAAM9G,EAAQnhC,KAAK44C,aAAanY,GAChC,IAAKU,EACH,OAEF,MAAMsV,EAAMxsC,EAAOjK,MACb89B,EAAaF,EAAWI,iBAAiBJ,EAAWkY,YACpD+C,EACJ/a,EAAWvuB,SACV04B,EAAaxH,EAAKmI,SAAS6N,EAAK7Y,EAAWkL,MAAQ,GAChDgQ,EAAeD,IAAU74C,KAAK2hC,QAAQoX,YACxCD,IACF94C,KAAK2hC,QAAQyF,OACbpnC,KAAK2hC,QAAQoX,YAAcF,GAE7B74C,KAAK2hC,QAAQyE,UACXjF,EACAiP,EACAA,EACAjP,EAAMplB,MAAQ,EAAIq0B,EAClBjP,EAAMnlB,OAAS,EAAIo0B,EACnBrjC,EACAC,EACA0pB,EACAC,GAGEmiB,GACF94C,KAAK2hC,QAAQ6N,UAEXqJ,IAAU/a,EAAWvuB,QACvBquB,EAAWjK,SAAU,EACZsU,GACTxH,EAAKuI,cAAcyN,EAEvB,CAKAhM,QAAAA,GACE,MAAM9I,EAAU3hC,KAAK2hC,QACrB,OAAOA,EAAUA,EAAQ8B,OAAS,IACpC,CAQAmV,YAAAA,CAAanY,GACX,OAAOA,EAAKgK,UACd,CAOAkO,mBAAAA,CAAoB/a,EAAYuX,GAC9B,GAAIA,EAAW6D,iBAAkB,CAM/B,MAAMC,EAAqB,SAAU9D,EAAYrY,EAAKc,GACpD,MAAMsb,EAAgBjvC,EAAOkrC,GACzB+D,KAAiBtb,EAAW6a,WAC9BtD,EAAWgE,YACTvb,EAAWtF,UAAUniB,WACrBynB,EAAW6a,UAAUS,GAG3B,EAAEvwC,KAAK,KAAMwsC,GAEbvX,EAAWwb,oBAAoBjzC,KAE3B8yC,EAGN,CACF,CAQAT,eAAAA,CAAgBC,EAAWtD,EAAY1U,GAErC,MAAMyY,EAAgBjvC,EAAOkrC,GACvB+D,KAAiBT,IACrBA,EAAUS,GAAiB,CAAC,GAE9BT,EAAUS,GAAezY,EAAK8H,WAAY,CAC5C,CAoBAmQ,iBAAAA,CACE9a,EACAuX,EACA1gC,EACAozB,EACA1xB,EACAxF,EACA4mC,EACAjY,EACA+Z,GAEA,MAAMH,EAAgBjvC,EAAOkrC,GACvB+D,KAAiBtb,EAAW0b,cAChC1b,EAAW0b,YAAYJ,GAAiB,CAAC,GAE3C,MAAMI,EAAc1b,EAAW0b,YAAYJ,GACrCK,EAAY3b,EAAW2b,UACvB1pC,EAAU4E,EAAS1D,aACnBkJ,EAAW2jB,EAAWtF,UAAUre,SAChCs8B,EAAWt8B,EACbM,GACEqjB,EAAWtF,UAAUte,OACrB4jB,EAAWtF,UAAUljB,WACrB6E,EACA2jB,EAAW1jB,WAEbjT,EACJ,IACIw5B,EAAMG,EAAWgV,EAAgB7oC,EAAGC,EAAG4V,EADvC42B,EAAY,EAEhB,IAAK52B,EAAI/S,EAAS+S,GAAK20B,IAAY30B,EAGjC,IAFAge,EAAYnsB,EAAS6+B,0BAA0B3iC,EAAQiS,EAAGge,GAC1DgV,EAAiBnhC,EAAS2e,cAAcxQ,GACnC7V,EAAI6zB,EAAUppB,KAAMzK,GAAK6zB,EAAUlpB,OAAQ3K,EAC9C,IAAKC,EAAI4zB,EAAUnpB,KAAMzK,GAAK4zB,EAAUjpB,OAAQ3K,EAE5CiN,IACCxF,EAAS+hC,4BAA4B,CAAC5zB,EAAG7V,EAAGC,GAAIupC,KAI/CgB,EAAW30B,GAAK0c,KAChBka,EACF/Y,EAAO0U,EAAWD,QAAQtyB,EAAG7V,EAAGC,EAAG66B,EAAY1xB,GAC3CsqB,EAAK1I,YAAcsQ,GAAUxI,OAC/ByZ,EAAY7Y,EAAK8H,WAAY,EACxBgR,EAAUE,YAAYhZ,EAAK8H,WAC9BgR,EAAUG,QAAQ,CAChBjZ,EACAyY,EACAzkC,EAASklC,mBAAmBlZ,EAAKC,WACjCkV,UAIe3uC,IAAjBoyC,GACFA,EAAa5Y,IAGf0U,EAAWyE,QAAQh3B,EAAG7V,EAAGC,EAAGmJ,IAKpCg/B,EAAW0E,gBAAgBL,EAAWrjC,EACxC,EAGF,UC/uBA,MAAM2jC,WAAkBza,GAItBr+B,WAAAA,CAAYkO,GACVzJ,MAAMyJ,EACR,CAEA+vB,cAAAA,GACE,OAAO,IAAIoV,GAAwBr0C,KACrC,EAGF,U,WCRA,MAAM+5C,GAIJ/4C,WAAAA,CAAYkO,GAKVlP,KAAKg6C,SAAW9qC,EAAQK,QAMxBvP,KAAKi6C,gBAAkB/qC,EAAQgrC,eAM/Bl6C,KAAKm6C,UAAYjrC,EAAQ+K,SAMzBja,KAAKo6C,OAASlrC,EAAQ4N,MAMtB9c,KAAKq6C,YAAcjG,GAAOllC,EAAQ4N,OAMlC9c,KAAKs6C,cAAgBprC,EAAQqrC,aAM7Bv6C,KAAKw6C,eAAiBtrC,EAAQurC,aAChC,CAOA3iC,KAAAA,GACE,MAAMgF,EAAQ9c,KAAK06C,WACnB,OAAO,IAAIX,GAAW,CACpBxqC,QAASvP,KAAKyQ,aACdqM,MAAOxZ,MAAMC,QAAQuZ,GAASA,EAAM/X,QAAU+X,EAC9C7C,SAAUja,KAAK0zB,cACfwmB,eAAgBl6C,KAAK26C,oBACrBJ,aAAcv6C,KAAK46C,kBAAkB71C,QACrC01C,cAAez6C,KAAK66C,oBAExB,CAOApqC,UAAAA,GACE,OAAOzQ,KAAKg6C,QACd,CAOAW,iBAAAA,GACE,OAAO36C,KAAKi6C,eACd,CAOAvmB,WAAAA,GACE,OAAO1zB,KAAKm6C,SACd,CAOAO,QAAAA,GACE,OAAO16C,KAAKo6C,MACd,CAMAU,aAAAA,GACE,OAAO96C,KAAKq6C,WACd,CAOAO,eAAAA,GACE,OAAO56C,KAAKs6C,aACd,CAOAO,gBAAAA,GACE,OAAO76C,KAAKw6C,cACd,CAQAO,SAAAA,GACE,OAAOjxC,GACT,CAQA2gC,QAAAA,CAAS5C,GACP,OAAO/9B,GACT,CAMAkxC,oBAAAA,GACE,OAAOlxC,GACT,CAOAmxC,aAAAA,CAAcpT,GACZ,OAAO,CACT,CAMAqT,aAAAA,GACE,OAAOpxC,GACT,CAMAqxC,YAAAA,GACE,OAAOrxC,GACT,CAOA4rC,SAAAA,GACE,OAAO5rC,GACT,CAOAoqC,OAAAA,GACE,OAAOpqC,GACT,CAQAsxC,eAAAA,CAAgBb,GACdv6C,KAAKs6C,cAAgBC,CACvB,CAQA3oC,UAAAA,CAAWrC,GACTvP,KAAKg6C,SAAWzqC,CAClB,CAQA8rC,iBAAAA,CAAkBnB,GAChBl6C,KAAKi6C,gBAAkBC,CACzB,CAQAtnB,WAAAA,CAAY3Y,GACVja,KAAKm6C,UAAYlgC,CACnB,CAQAqhC,QAAAA,CAASx+B,GACP9c,KAAKo6C,OAASt9B,EACd9c,KAAKq6C,YAAcjG,GAAOt3B,EAC5B,CAMAy+B,iBAAAA,CAAkBx1C,GAChB+D,GACF,CAMA03B,IAAAA,GACE13B,GACF,CAMA0xC,mBAAAA,CAAoBz1C,GAClB+D,GACF,EAGF,UCnRO,SAAS2xC,GAAY1Z,GAC1B,OAAIz+B,MAAMC,QAAQw+B,GACT9a,GAAS8a,GAEXA,CACT,CCNO,MAAM2Z,GAAe,YAQfC,GAAmB,gBAQnBC,GAAqB,kBAgBrBC,GAAgB,aAShBC,GAAkB,eAMzBC,GAAY,IAAIC,OACpB,CACE,qDACA,4CACA,8DACA,gDACA,8EACA,gEACA,mCACA70B,KAAK,IACP,KAEI80B,GAAsB,CAC1B,QACA,UACA,SACA,OACA,aACA,UASWC,GAAoB,SAAUC,GACzC,MAAMC,EAAQD,EAASC,MAAML,IAC7B,IAAKK,EACH,OAAO,KAET,MAAM70B,EAAuC,CAC3C80B,WAAY,SACZniC,KAAM,QACNqN,MAAO,SACP+0B,OAAQ,SACRC,QAAS,UAEX,IAAK,IAAI15C,EAAI,EAAG+D,EAAKq1C,GAAoB55C,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC5D,MAAM+H,EAAQwxC,EAAMv5C,EAAI,QACVoE,IAAV2D,IACF2c,EAAM00B,GAAoBp5C,IAAM+H,EAEpC,CAEA,OADA2c,EAAMi1B,SAAWj1B,EAAMk1B,OAAOtZ,MAAM,QAC7B5b,CACT,ECxBam1B,GAAc,kBAMdC,GAAmB,OAMnBC,GAAiB,QAMjBC,GAAkB,GAMlBC,GAAwB,EAMxBC,GAAkB,QAMlBC,GAAoB,GAMpBC,GAAqB,OAMrBC,GAAmB,SAMnBC,GAAsB,SAMtBC,GAAiB,CAAC,EAAG,EAAG,EAAG,GAM3BC,GAAmB,EAKnBC,GAAe,IAAI/yC,EAKhC,IAKIgzC,GALAC,GAAiB,KAUd,MAAMC,GAAc,CAAC,EAMfC,GAAgB,WAC3B,MAAMC,EAAU,IACVzjC,EAAO,QACP0jC,EAAiB,CAAC,YAAa,SAC/Bj0C,EAAMi0C,EAAev7C,OACrBw7C,EAAO,2BACb,IAAIC,EAAUC,EAQd,SAASC,EAAYC,EAAWC,EAAYC,GAC1C,IAAIC,GAAY,EAChB,IAAK,IAAIv7C,EAAI,EAAGA,EAAI8G,IAAO9G,EAAG,CAC5B,MAAMw7C,EAAgBT,EAAe/6C,GAKrC,GAJAk7C,EAAiBO,GACfL,EAAY,IAAMC,EAAa,IAAMhkC,EAAOmkC,EAC5CR,GAEEM,GAAcE,EAAe,CAC/B,MAAMtiC,EAAQuiC,GACZL,EACE,IACAC,EACA,IACAhkC,EACAikC,EACA,IACAE,EACFR,GAIFO,EAAYA,GAAariC,GAASgiC,CACpC,CACF,CACA,QAAIK,CAIN,CAEA,SAASG,IACP,IAAIC,GAAO,EACX,MAAMC,EAAQnB,GAAaxyC,UAC3B,IAAK,IAAIjI,EAAI,EAAG+D,EAAK63C,EAAMp8C,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC9C,MAAM67C,EAAOD,EAAM57C,GACfy6C,GAAa3yC,IAAI+zC,GAAQf,IACvBK,EAAY74C,MAAMnF,KAAM0+C,EAAKvb,MAAM,QACrC/9B,EAAMq4C,IAEND,GAAiB,KACjBD,QAAct2C,EACdq2C,GAAa9xC,IAAIkzC,EAAMf,KAEvBL,GAAa9xC,IAAIkzC,EAAMpB,GAAa3yC,IAAI+zC,GAAQ,GAAG,GACnDF,GAAO,GAGb,CACIA,IACFG,cAAcb,GACdA,OAAW72C,EAEf,CAEA,OAAO,SAAUk1C,GACf,MAAMuC,EAAOxC,GAAkBC,GAC/B,IAAKuC,EACH,OAEF,MAAMlC,EAAWkC,EAAKlC,SACtB,IAAK,IAAI35C,EAAI,EAAG+D,EAAK41C,EAASn6C,OAAQQ,EAAI+D,IAAM/D,EAAG,CACjD,MAAM45C,EAASD,EAAS35C,GAClBmG,EAAM01C,EAAKn3B,MAAQ,KAAOm3B,EAAKpC,OAAS,KAAOG,OACvBx1C,IAA1Bq2C,GAAa3yC,IAAI3B,KACnBs0C,GAAa9xC,IAAIxC,EAAK20C,GAAS,GAC1BK,EAAYU,EAAKn3B,MAAOm3B,EAAKpC,OAAQG,KACxCa,GAAa9xC,IAAIxC,EAAK,GAAG,QACR/B,IAAb62C,IACFA,EAAWc,YAAYL,EAAO,MAItC,CACF,CACF,CAzF6B,GA+FhBM,GAAqB,WAIhC,IAAIC,EACJ,OAAO,SAAU3C,GACf,IAAIngC,EAASyhC,GAAYtB,GACzB,QAAcl1C,GAAV+U,EAAqB,CACvB,GAAIuI,GAAyB,CAC3B,MAAMm6B,EAAOxC,GAAkBC,GACzB4C,EAAUC,GAAY7C,EAAU,MAChCE,EAAanzB,MAAMka,OAAOsb,EAAKrC,aACjC,IACAjZ,OAAOsb,EAAKrC,YAChBrgC,EACEqgC,GACC0C,EAAQE,wBAA0BF,EAAQG,yBAC/C,MACOJ,IACHA,EAAiBz3B,SAASC,cAAc,OACxCw3B,EAAeK,UAAY,IAC3BL,EAAev3B,MAAM63B,UAAY,IACjCN,EAAev3B,MAAM83B,UAAY,OACjCP,EAAev3B,MAAMvL,OAAS,OAC9B8iC,EAAev3B,MAAM4K,QAAU,IAC/B2sB,EAAev3B,MAAM+3B,OAAS,OAC9BR,EAAev3B,MAAMqS,SAAW,WAChCklB,EAAev3B,MAAMg4B,QAAU,QAC/BT,EAAev3B,MAAMof,KAAO,YAE9BmY,EAAev3B,MAAMm3B,KAAOvC,EAC5B90B,SAAS6a,KAAKC,YAAY2c,GAC1B9iC,EAAS8iC,EAAe1a,aACxB/c,SAAS6a,KAAKI,YAAYwc,GAE5BrB,GAAYtB,GAAYngC,CAC1B,CACA,OAAOA,CACT,CACF,CAvCkC,GA8ClC,SAASgjC,GAAYN,EAAMb,GAQzB,OAPKL,KACHA,GAAiBla,GAAsB,EAAG,IAExCob,GAAQnB,KACVC,GAAekB,KAAOA,EACtBnB,GAAcC,GAAekB,MAExBlB,GAAewB,YAAYnB,EACpC,CAOO,SAASS,GAAiBI,EAAMb,GACrC,OAAOmB,GAAYN,EAAMb,GAAM9hC,KACjC,CASO,SAASyjC,GAAyBd,EAAMb,EAAM7nC,GACnD,GAAI6nC,KAAQ7nC,EACV,OAAOA,EAAM6nC,GAEf,MAAM9hC,EAAQ8hC,EACX1a,MAAM,MACNsc,QAAO,CAAC/W,EAAMgX,IAAS7yC,KAAKD,IAAI87B,EAAM4V,GAAiBI,EAAMgB,KAAQ,GAExE,OADA1pC,EAAM6nC,GAAQ9hC,EACPA,CACT,CAOO,SAAS4jC,GAAkBC,EAAWC,GAC3C,MAAMC,EAAS,GACTC,EAAU,GACVC,EAAa,GACnB,IAAIjkC,EAAQ,EACR81B,EAAY,EACZ71B,EAAS,EACTqgC,EAAa,EACjB,IAAK,IAAIx5C,EAAI,EAAG+D,EAAKi5C,EAAOx9C,OAAQQ,GAAK+D,EAAI/D,GAAK,EAAG,CACnD,MAAMg7C,EAAOgC,EAAOh9C,GACpB,GAAa,OAATg7C,GAAiBh7C,IAAM+D,EAAI,CAC7BmV,EAAQlP,KAAKD,IAAImP,EAAO81B,GACxBmO,EAAW75C,KAAK0rC,GAChBA,EAAY,EACZ71B,GAAUqgC,EACV,QACF,CACA,MAAMqC,EAAOmB,EAAOh9C,EAAI,IAAM+8C,EAAUlB,KAClCuB,EAAe3B,GAAiBI,EAAMb,GAC5CiC,EAAO35C,KAAK85C,GACZpO,GAAaoO,EACb,MAAMC,EAAgBrB,GAAkBH,GACxCqB,EAAQ55C,KAAK+5C,GACb7D,EAAaxvC,KAAKD,IAAIyvC,EAAY6D,EACpC,CACA,MAAO,CAACnkC,QAAOC,SAAQ8jC,SAAQC,UAASC,aAC1C,CA6BO,SAASG,GACdxe,EACAlrB,EACAlH,EACA6wC,EACAC,EACAC,EACA5pB,EACAC,EACA5pB,EACAC,EACA8P,GAEA6kB,EAAQyF,OAEQ,IAAZ73B,IACFoyB,EAAQoX,aAAexpC,GAErBkH,GACFkrB,EAAQlrB,UAAUtR,MAAMw8B,EAASlrB,GAGb2pC,EAAcG,qBAElC5e,EAAQ7Z,UAAU/a,EAAGC,GACrB20B,EAAQ7kB,MAAMA,EAAM,GAAIA,EAAM,IAC9B0jC,GAA+CJ,EAAeze,IACrD7kB,EAAM,GAAK,GAAKA,EAAM,GAAK,GAEpC6kB,EAAQ7Z,UAAU/a,EAAGC,GACrB20B,EAAQ7kB,MAAMA,EAAM,GAAIA,EAAM,IAC9B6kB,EAAQyE,UAEJga,EAEFC,EACAC,EACA5pB,EACAC,EACA,EACA,EACAD,EACAC,IAIFgL,EAAQyE,UAEJga,EAEFC,EACAC,EACA5pB,EACAC,EACA5pB,EACAC,EACA0pB,EAAI5Z,EAAM,GACV6Z,EAAI7Z,EAAM,IAId6kB,EAAQ6N,SACV,CAMA,SAASgR,GAAyBC,EAAO9e,GACvC,MAAM4e,EAAsBE,EAAMF,oBAClC,IAAK,IAAI19C,EAAI,EAAG+D,EAAK25C,EAAoBl+C,OAAQQ,EAAI+D,EAAI/D,GAAK,EACxDS,MAAMC,QAAQg9C,EAAoB19C,EAAI,IACxC8+B,EAAQ4e,EAAoB19C,IAAIsC,MAC9Bw8B,EACA4e,EAAoB19C,EAAI,IAG1B8+B,EAAQ4e,EAAoB19C,IAAM09C,EAAoB19C,EAAI,EAGhE,CC7bA,MAAM69C,WAAqB3G,GAIzB/4C,WAAAA,CAAYkO,GAIV,MAAMgrC,OACuBjzC,IAA3BiI,EAAQgrC,gBAA+BhrC,EAAQgrC,eAEjDz0C,MAAM,CACJ8J,QAAS,EACT2qC,eAAgBA,EAChBjgC,cAA+BhT,IAArBiI,EAAQ+K,SAAyB/K,EAAQ+K,SAAW,EAC9D6C,WAAyB7V,IAAlBiI,EAAQ4N,MAAsB5N,EAAQ4N,MAAQ,EACrDy9B,kBAC2BtzC,IAAzBiI,EAAQqrC,aAA6BrrC,EAAQqrC,aAAe,CAAC,EAAG,GAClEE,cAAevrC,EAAQurC,gBAOzBz6C,KAAKuyC,aAAUtrC,EAMfjH,KAAK2gD,oBAAsB,KAM3B3gD,KAAK4gD,WAAyB35C,IAAjBiI,EAAQ2xC,KAAqB3xC,EAAQ2xC,KAAO,KAMzD7gD,KAAK8gD,QAAU,CAAC,EAAG,GAMnB9gD,KAAK+gD,QAAU7xC,EAAQ8xC,OAMvBhhD,KAAKihD,aACgBh6C,IAAnBiI,EAAQmO,OAAuBnO,EAAQmO,OAASnO,EAAQgyC,QAM1DlhD,KAAKmhD,SAAWjyC,EAAQkyC,QAMxBphD,KAAKqhD,YAA2Bp6C,IAAlBiI,EAAQyN,MAAsBzN,EAAQyN,MAAQ,EAM5D3c,KAAKshD,aAA6Br6C,IAAnBiI,EAAQ4iC,OAAuB5iC,EAAQ4iC,OAAS,KAM/D9xC,KAAKuhD,MAAQ,KAMbvhD,KAAKwhD,eAAiB,KAEtBxhD,KAAKF,QACP,CAOAgY,KAAAA,GACE,MAAMgF,EAAQ9c,KAAK06C,WACbnzB,EAAQ,IAAIm5B,GAAa,CAC7BG,KAAM7gD,KAAKyhD,UAAYzhD,KAAKyhD,UAAU3pC,aAAU7Q,EAChD+5C,OAAQhhD,KAAK0hD,YACbrkC,OAAQrd,KAAK2hD,YACbP,QAASphD,KAAK4hD,aACdjlC,MAAO3c,KAAK6hD,WACZ/P,OAAQ9xC,KAAK8hD,YAAc9hD,KAAK8hD,YAAYhqC,aAAU7Q,EACtDgT,SAAUja,KAAK0zB,cACfwmB,eAAgBl6C,KAAK26C,oBACrB79B,MAAOxZ,MAAMC,QAAQuZ,GAASA,EAAM/X,QAAU+X,EAC9Cy9B,aAAcv6C,KAAK46C,kBAAkB71C,QACrC01C,cAAez6C,KAAK66C,qBAGtB,OADAtzB,EAAM3V,WAAW5R,KAAKyQ,cACf8W,CACT,CAQAwzB,SAAAA,GACE,MAAM7gC,EAAOla,KAAKuhD,MAClB,IAAKrnC,EACH,OAAO,KAET,MAAMqgC,EAAev6C,KAAK46C,kBACpB99B,EAAQ9c,KAAK86C,gBAGnB,MAAO,CACL5gC,EAAK,GAAK,EAAIqgC,EAAa,GAAKz9B,EAAM,GACtC5C,EAAK,GAAK,EAAIqgC,EAAa,GAAKz9B,EAAM,GAE1C,CAOA+kC,QAAAA,GACE,OAAO7hD,KAAKqhD,MACd,CAOAI,OAAAA,GACE,OAAOzhD,KAAK4gD,KACd,CAOAmB,OAAAA,CAAQlB,GACN7gD,KAAK4gD,MAAQC,EACb7gD,KAAKF,QACP,CAKAk7C,oBAAAA,GAIE,OAHKh7C,KAAK2gD,qBACR3gD,KAAKgiD,0BAA0BhiD,KAAKwhD,gBAE/BxhD,KAAK2gD,mBACd,CAQAlW,QAAAA,CAAS5C,GACP,IAAI1G,EAAQnhC,KAAKuyC,QAAQ1K,GACzB,IAAK1G,EAAO,CACV,MAAM8gB,EAAgBjiD,KAAKwhD,eACrB7f,EAAU2B,GACd2e,EAAc/nC,KAAO2tB,EACrBoa,EAAc/nC,KAAO2tB,GAEvB7nC,KAAKkiD,MAAMD,EAAetgB,EAASkG,GAEnC1G,EAAQQ,EAAQ8B,OAChBzjC,KAAKuyC,QAAQ1K,GAAc1G,CAC7B,CACA,OAAOA,CACT,CAOA8Z,aAAAA,CAAcpT,GACZ,OAAOA,CACT,CAKAsT,YAAAA,GACE,OAAOn7C,KAAKuhD,KACd,CAKArG,aAAAA,GACE,OAAO9Z,GAAWrB,MACpB,CAOA2V,SAAAA,GACE,OAAO11C,KAAK8gD,OACd,CAOAY,SAAAA,GACE,OAAO1hD,KAAK+gD,OACd,CAOAY,SAAAA,GACE,OAAO3hD,KAAKihD,OACd,CAOAW,UAAAA,GACE,OAAO5hD,KAAKmhD,QACd,CAOAjN,OAAAA,GACE,OAAOl0C,KAAKuhD,KACd,CAOAO,SAAAA,GACE,OAAO9hD,KAAKshD,OACd,CAOAa,SAAAA,CAAUrQ,GACR9xC,KAAKshD,QAAUxP,EACf9xC,KAAKF,QACP,CAKAy7C,iBAAAA,CAAkBx1C,GAAW,CAK7By7B,IAAAA,GAAQ,CAKRga,mBAAAA,CAAoBz1C,GAAW,CAU/Bq8C,sBAAAA,CAAuBC,EAAUC,EAAaC,GAC5C,GACkB,IAAhBD,GACAtiD,KAAK+gD,UAAYpxC,KACH,UAAb0yC,GAAqC,UAAbA,EAEzB,OAAOC,EAwBT,IAAIE,EAAKxiD,KAAKihD,QACVwB,OAAuBx7C,IAAlBjH,KAAKmhD,SAAyBqB,EAAKxiD,KAAKmhD,SACjD,GAAIqB,EAAKC,EAAI,CACX,MAAMv/C,EAAMs/C,EACZA,EAAKC,EACLA,EAAKv/C,CACP,CACA,MAAM89C,OACc/5C,IAAlBjH,KAAKmhD,SAAyBnhD,KAAK+gD,QAAyB,EAAf/gD,KAAK+gD,QAC9ClI,EAAS,EAAIhsC,KAAK0B,GAAMyyC,EACxBz+C,EAAIkgD,EAAK51C,KAAK8N,IAAIk+B,GAClBr2C,EAAIqK,KAAK8Q,KAAK8kC,EAAKA,EAAKlgD,EAAIA,GAC5B0jB,EAAIu8B,EAAKhgD,EACT0jB,EAAIrZ,KAAK8Q,KAAKpb,EAAIA,EAAI0jB,EAAIA,GAC1By8B,EAAax8B,EAAI3jB,EACvB,GAAiB,UAAb8/C,GAAwBK,GAAcH,EACxC,OAAOG,EAAaJ,EAetB,MAAMp0C,EAAIo0C,EAAc,EAAII,EACtBv0C,EAAKm0C,EAAc,GAAMr8B,EAAIC,GAC7By8B,EAAO91C,KAAK8Q,MAAM6kC,EAAKt0C,IAAMs0C,EAAKt0C,GAAKC,EAAIA,GAC3Cy0C,EAAWD,EAAOH,EACxB,QAAsBv7C,IAAlBjH,KAAKmhD,UAAuC,UAAbkB,EACjC,OAAkB,EAAXO,EAIT,MAAMC,EAAKL,EAAK31C,KAAK8N,IAAIk+B,GACnBiK,EAAKj2C,KAAK8Q,KAAK6kC,EAAKA,EAAKK,EAAKA,GAC9BE,EAAKN,EAAKK,EACVE,EAAKn2C,KAAK8Q,KAAKklC,EAAKA,EAAKE,EAAKA,GAC9BE,EAAkBD,EAAKH,EAC7B,GAAII,GAAmBV,EAAY,CACjC,MAAMW,EAAeD,EAAkBX,EAAe,EAAIG,EAAKD,EAC/D,OAAO,EAAI31C,KAAKD,IAAIg2C,EAAUM,EAChC,CACA,OAAkB,EAAXN,CACT,CAMAO,mBAAAA,GACE,IAKIvR,EALAwR,EAAUxG,GACVyF,EAAWtF,GACXwF,EAAa,EACbc,EAAW,KACXC,EAAiB,EAEjBhB,EAAc,EAEdtiD,KAAKshD,UACP1P,EAAc5xC,KAAKshD,QAAQiC,WACP,OAAhB3R,IACFA,EAAcqL,IAEhBrL,EAAc6J,GAAY7J,GAC1B0Q,EAActiD,KAAKshD,QAAQ5nC,gBACPzS,IAAhBq7C,IACFA,EAAcjF,IAEhBgG,EAAWrjD,KAAKshD,QAAQkC,cACxBF,EAAiBtjD,KAAKshD,QAAQmC,oBAC9BpB,EAAWriD,KAAKshD,QAAQoC,mBACPz8C,IAAbo7C,IACFA,EAAWtF,IAEbqG,EAAUpjD,KAAKshD,QAAQqC,kBACP18C,IAAZm8C,IACFA,EAAUxG,IAEZ2F,EAAaviD,KAAKshD,QAAQsC,qBACP38C,IAAfs7C,IACFA,EAAavF,KAIjB,MAAM9mC,EAAMlW,KAAKoiD,uBAAuBC,EAAUC,EAAaC,GACzDsB,EAAYh3C,KAAKD,IAAI5M,KAAKihD,QAASjhD,KAAKmhD,UAAY,GACpDjnC,EAAOrN,KAAKmC,KAAK,EAAI60C,EAAY3tC,GAEvC,MAAO,CACL07B,YAAaA,EACb0Q,YAAaA,EACbpoC,KAAMA,EACNkpC,QAASA,EACTC,SAAUA,EACVC,eAAgBA,EAChBjB,SAAUA,EACVE,WAAYA,EAEhB,CAKAziD,MAAAA,GACEE,KAAKwhD,eAAiBxhD,KAAKmjD,sBAC3B,MAAMjpC,EAAOla,KAAKwhD,eAAetnC,KACjCla,KAAKuyC,QAAU,CAAC,EAChBvyC,KAAKuhD,MAAQ,CAACrnC,EAAMA,EACtB,CAQAgoC,KAAAA,CAAMD,EAAetgB,EAASkG,GAO5B,GANAlG,EAAQ7kB,MAAM+qB,EAAYA,GAE1BlG,EAAQ7Z,UAAUm6B,EAAc/nC,KAAO,EAAG+nC,EAAc/nC,KAAO,GAE/Dla,KAAK8jD,YAAYniB,GAEb3hC,KAAK4gD,MAAO,CACd,IAAI7e,EAAQ/hC,KAAK4gD,MAAM2C,WACT,OAAVxhB,IACFA,EAAQ4a,IAEVhb,EAAQuJ,UAAYuQ,GAAY1Z,GAChCJ,EAAQkf,MACV,CACI7gD,KAAKshD,UACP3f,EAAQiQ,YAAcqQ,EAAcrQ,YACpCjQ,EAAQkQ,UAAYoQ,EAAcK,YAC9BL,EAAcoB,WAChB1hB,EAAQoiB,YAAY9B,EAAcoB,UAClC1hB,EAAQ2hB,eAAiBrB,EAAcqB,gBAEzC3hB,EAAQyhB,QAAUnB,EAAcmB,QAChCzhB,EAAQ0gB,SAAWJ,EAAcI,SACjC1gB,EAAQ4gB,WAAaN,EAAcM,WACnC5gB,EAAQmQ,SAEZ,CAMAkQ,yBAAAA,CAA0BC,GACxB,GAAIjiD,KAAK4gD,MAAO,CACd,IAAI7e,EAAQ/hC,KAAK4gD,MAAM2C,WAGnBh0C,EAAU,EASd,GARqB,kBAAVwyB,IACTA,EAAQa,GAAQb,IAEJ,OAAVA,EACFxyB,EAAU,EACDjM,MAAMC,QAAQw+B,KACvBxyB,EAA2B,IAAjBwyB,EAAM1/B,OAAe0/B,EAAM,GAAK,GAE5B,IAAZxyB,EAAe,CAGjB,MAAMoyB,EAAU2B,GACd2e,EAAc/nC,KACd+nC,EAAc/nC,MAEhBla,KAAK2gD,oBAAsBhf,EAAQ8B,OAEnCzjC,KAAKgkD,wBAAwB/B,EAAetgB,EAC9C,CACF,CACK3hC,KAAK2gD,sBACR3gD,KAAK2gD,oBAAsB3gD,KAAKyqC,SAAS,GAE7C,CAMAqZ,WAAAA,CAAYniB,GACV,IAAIqf,EAAShhD,KAAK+gD,QAClB,MAAM1jC,EAASrd,KAAKihD,QACpB,GAAID,IAAWrxC,IACbgyB,EAAQsiB,IAAI,EAAG,EAAG5mC,EAAQ,EAAG,EAAIxQ,KAAK0B,QACjC,CACL,MAAM6yC,OAA4Bn6C,IAAlBjH,KAAKmhD,SAAyB9jC,EAASrd,KAAKmhD,cACtCl6C,IAAlBjH,KAAKmhD,WACPH,GAAU,GAEZ,MAAMkD,EAAalkD,KAAKqhD,OAASx0C,KAAK0B,GAAK,EACrCojC,EAAQ,EAAI9kC,KAAK0B,GAAMyyC,EAC7B,IAAK,IAAIn+C,EAAI,EAAGA,EAAIm+C,EAAQn+C,IAAK,CAC/B,MAAMshD,EAASD,EAAarhD,EAAI8uC,EAC1ByS,EAAUvhD,EAAI,IAAM,EAAIwa,EAAS+jC,EACvCzf,EAAQ4F,OAAO6c,EAAUv3C,KAAK4N,IAAI0pC,GAASC,EAAUv3C,KAAK8N,IAAIwpC,GAChE,CACAxiB,EAAQ4N,WACV,CACF,CAOAyU,uBAAAA,CAAwB/B,EAAetgB,GAErCA,EAAQ7Z,UAAUm6B,EAAc/nC,KAAO,EAAG+nC,EAAc/nC,KAAO,GAE/Dla,KAAK8jD,YAAYniB,GAEjBA,EAAQuJ,UAAYyR,GACpBhb,EAAQkf,OACJ7gD,KAAKshD,UACP3f,EAAQiQ,YAAcqQ,EAAcrQ,YACpCjQ,EAAQkQ,UAAYoQ,EAAcK,YAC9BL,EAAcoB,WAChB1hB,EAAQoiB,YAAY9B,EAAcoB,UAClC1hB,EAAQ2hB,eAAiBrB,EAAcqB,gBAEzC3hB,EAAQ0gB,SAAWJ,EAAcI,SACjC1gB,EAAQ4gB,WAAaN,EAAcM,WACnC5gB,EAAQmQ,SAEZ,EAGF,UC9lBA,MAAMuS,WAAoB3D,GAIxB1/C,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAACmO,OAAQ,GAEvC5X,MAAM,CACJu7C,OAAQrxC,IACRkxC,KAAM3xC,EAAQ2xC,KACdxjC,OAAQnO,EAAQmO,OAChBy0B,OAAQ5iC,EAAQ4iC,OAChBh1B,WAAyB7V,IAAlBiI,EAAQ4N,MAAsB5N,EAAQ4N,MAAQ,EACrD7C,cAA+BhT,IAArBiI,EAAQ+K,SAAyB/K,EAAQ+K,SAAW,EAC9DigC,oBAC6BjzC,IAA3BiI,EAAQgrC,gBAA+BhrC,EAAQgrC,eACjDK,kBAC2BtzC,IAAzBiI,EAAQqrC,aAA6BrrC,EAAQqrC,aAAe,CAAC,EAAG,GAClEE,cAAevrC,EAAQurC,eAE3B,CAOA3iC,KAAAA,GACE,MAAMgF,EAAQ9c,KAAK06C,WACbnzB,EAAQ,IAAI88B,GAAY,CAC5BxD,KAAM7gD,KAAKyhD,UAAYzhD,KAAKyhD,UAAU3pC,aAAU7Q,EAChD6qC,OAAQ9xC,KAAK8hD,YAAc9hD,KAAK8hD,YAAYhqC,aAAU7Q,EACtDoW,OAAQrd,KAAK2hD,YACb7kC,MAAOxZ,MAAMC,QAAQuZ,GAASA,EAAM/X,QAAU+X,EAC9C7C,SAAUja,KAAK0zB,cACfwmB,eAAgBl6C,KAAK26C,oBACrBJ,aAAcv6C,KAAK46C,kBAAkB71C,QACrC01C,cAAez6C,KAAK66C,qBAGtB,OADAtzB,EAAM3V,WAAW5R,KAAKyQ,cACf8W,CACT,CAQA+8B,SAAAA,CAAUjnC,GACRrd,KAAKihD,QAAU5jC,EACfrd,KAAKF,QACP,EAGF,UCjEA,MAAMykD,GAIJvjD,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EAMtBlP,KAAKwkD,YAA2Bv9C,IAAlBiI,EAAQ6yB,MAAsB7yB,EAAQ6yB,MAAQ,IAC9D,CAOAjqB,KAAAA,GACE,MAAMiqB,EAAQ/hC,KAAKujD,WACnB,OAAO,IAAIgB,GAAK,CACdxiB,MAAOz+B,MAAMC,QAAQw+B,GAASA,EAAMh9B,QAAUg9B,QAAS96B,GAE3D,CAOAs8C,QAAAA,GACE,OAAOvjD,KAAKwkD,MACd,CAQAC,QAAAA,CAAS1iB,GACP/hC,KAAKwkD,OAASziB,CAChB,EAGF,UCrCA,MAAM2iB,GAIJ1jD,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EAMtBlP,KAAKwkD,YAA2Bv9C,IAAlBiI,EAAQ6yB,MAAsB7yB,EAAQ6yB,MAAQ,KAM5D/hC,KAAK2kD,SAAWz1C,EAAQk0C,QAMxBpjD,KAAK4kD,eAAiC39C,IAArBiI,EAAQm0C,SAAyBn0C,EAAQm0C,SAAW,KAMrErjD,KAAK6kD,gBAAkB31C,EAAQo0C,eAM/BtjD,KAAK8kD,UAAY51C,EAAQmzC,SAMzBriD,KAAK+kD,YAAc71C,EAAQqzC,WAM3BviD,KAAKglD,OAAS91C,EAAQ6M,KACxB,CAOAjE,KAAAA,GACE,MAAMiqB,EAAQ/hC,KAAKujD,WACnB,OAAO,IAAImB,GAAO,CAChB3iB,MAAOz+B,MAAMC,QAAQw+B,GAASA,EAAMh9B,QAAUg9B,QAAS96B,EACvDm8C,QAASpjD,KAAK2jD,aACdN,SAAUrjD,KAAKwjD,cAAgBxjD,KAAKwjD,cAAcz+C,aAAUkC,EAC5Dq8C,eAAgBtjD,KAAKyjD,oBACrBpB,SAAUriD,KAAK0jD,cACfnB,WAAYviD,KAAK4jD,gBACjB7nC,MAAO/b,KAAK0Z,YAEhB,CAOA6pC,QAAAA,GACE,OAAOvjD,KAAKwkD,MACd,CAOAb,UAAAA,GACE,OAAO3jD,KAAK2kD,QACd,CAOAnB,WAAAA,GACE,OAAOxjD,KAAK4kD,SACd,CAOAnB,iBAAAA,GACE,OAAOzjD,KAAK6kD,eACd,CAOAnB,WAAAA,GACE,OAAO1jD,KAAK8kD,SACd,CAOAlB,aAAAA,GACE,OAAO5jD,KAAK+kD,WACd,CAOArrC,QAAAA,GACE,OAAO1Z,KAAKglD,MACd,CAQAP,QAAAA,CAAS1iB,GACP/hC,KAAKwkD,OAASziB,CAChB,CAQAkjB,UAAAA,CAAW7B,GACTpjD,KAAK2kD,SAAWvB,CAClB,CAQAW,WAAAA,CAAYV,GACVrjD,KAAK4kD,UAAYvB,CACnB,CAQA6B,iBAAAA,CAAkB5B,GAChBtjD,KAAK6kD,gBAAkBvB,CACzB,CAQA6B,WAAAA,CAAY9C,GACVriD,KAAK8kD,UAAYzC,CACnB,CAQA+C,aAAAA,CAAc7C,GACZviD,KAAK+kD,YAAcxC,CACrB,CAQA8C,QAAAA,CAAStpC,GACP/b,KAAKglD,OAASjpC,CAChB,EAGF,UC5EA,MAAMupC,GAIJtkD,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EAMtBlP,KAAKulD,UAAY,KAMjBvlD,KAAKwlD,kBAAoBC,QAEAx+C,IAArBiI,EAAQypB,UACV34B,KAAK0lD,YAAYx2C,EAAQypB,UAO3B34B,KAAK4gD,WAAyB35C,IAAjBiI,EAAQ2xC,KAAqB3xC,EAAQ2xC,KAAO,KAMzD7gD,KAAKsqC,YAA2BrjC,IAAlBiI,EAAQiyB,MAAsBjyB,EAAQiyB,MAAQ,KAM5DnhC,KAAK28B,eAAiC11B,IAArBiI,EAAQy2C,SAAyBz2C,EAAQy2C,SAAW,KAMrE3lD,KAAK4lD,2BAC8B3+C,IAAjCiI,EAAQ22C,qBACJ32C,EAAQ22C,qBACR,KAMN7lD,KAAKshD,aAA6Br6C,IAAnBiI,EAAQ4iC,OAAuB5iC,EAAQ4iC,OAAS,KAM/D9xC,KAAK8lD,WAAyB7+C,IAAjBiI,EAAQ2uC,KAAqB3uC,EAAQ2uC,KAAO,KAMzD79C,KAAK+lD,QAAU72C,EAAQO,MACzB,CAOAqI,KAAAA,GACE,IAAI6gB,EAAW34B,KAAKgmD,cAMpB,OALIrtB,GAAgC,kBAAbA,IACrBA,EACEA,EACA7gB,SAEG,IAAIwtC,GAAM,CACf3sB,SAAUA,EACVkoB,KAAM7gD,KAAKyhD,UAAYzhD,KAAKyhD,UAAU3pC,aAAU7Q,EAChDk6B,MAAOnhC,KAAKyqC,WAAazqC,KAAKyqC,WAAW3yB,aAAU7Q,EACnD0+C,SAAU3lD,KAAKw+B,cACfsT,OAAQ9xC,KAAK8hD,YAAc9hD,KAAK8hD,YAAYhqC,aAAU7Q,EACtD42C,KAAM79C,KAAKimD,UAAYjmD,KAAKimD,UAAUnuC,aAAU7Q,EAChDwI,OAAQzP,KAAKwQ,aAEjB,CAQAguB,WAAAA,GACE,OAAOx+B,KAAK28B,SACd,CAQAupB,WAAAA,CAAYP,GACV3lD,KAAK28B,UAAYgpB,CACnB,CAQAQ,uBAAAA,CAAwBR,GACtB3lD,KAAK4lD,sBAAwBD,CAC/B,CAQAS,uBAAAA,GACE,OAAOpmD,KAAK4lD,qBACd,CASAI,WAAAA,GACE,OAAOhmD,KAAKulD,SACd,CAQAc,mBAAAA,GACE,OAAOrmD,KAAKwlD,iBACd,CAOA/D,OAAAA,GACE,OAAOzhD,KAAK4gD,KACd,CAOAmB,OAAAA,CAAQlB,GACN7gD,KAAK4gD,MAAQC,CACf,CAOApW,QAAAA,GACE,OAAOzqC,KAAKsqC,MACd,CAOAI,QAAAA,CAASvJ,GACPnhC,KAAKsqC,OAASnJ,CAChB,CAOA2gB,SAAAA,GACE,OAAO9hD,KAAKshD,OACd,CAOAa,SAAAA,CAAUrQ,GACR9xC,KAAKshD,QAAUxP,CACjB,CAOAmU,OAAAA,GACE,OAAOjmD,KAAK8lD,KACd,CAOAQ,OAAAA,CAAQzI,GACN79C,KAAK8lD,MAAQjI,CACf,CAOArtC,SAAAA,GACE,OAAOxQ,KAAK+lD,OACd,CAUAL,WAAAA,CAAY/sB,GACc,oBAAbA,EACT34B,KAAKwlD,kBAAoB7sB,EACI,kBAAbA,EAChB34B,KAAKwlD,kBAAoB,SAAUe,GACjC,OACEA,EAAQ57C,IAAIguB,EAEhB,EACUA,OAEY1xB,IAAb0xB,IACT34B,KAAKwlD,kBAAoB,WACvB,OAAO,CACT,GAJAxlD,KAAKwlD,kBAAoBC,GAM3BzlD,KAAKulD,UAAY5sB,CACnB,CAQA7mB,SAAAA,CAAUrC,GACRzP,KAAK+lD,QAAUt2C,CACjB,EAWK,SAAS+2C,GAAWt8C,GACzB,IAAIu8C,EAEJ,GAAmB,oBAARv8C,EACTu8C,EAAgBv8C,MACX,CAIL,IAAIw8C,EACJ,GAAIpjD,MAAMC,QAAQ2G,GAChBw8C,EAASx8C,MACJ,CACLqC,EACgD,oBAApBrC,EAAKsG,UAC/B,8CAEF,MAAM+W,EAA8Brd,EACpCw8C,EAAS,CAACn/B,EACZ,CACAk/B,EAAgB,WACd,OAAOC,CACT,CACF,CACA,OAAOD,CACT,CAKA,IAAIE,GAAgB,KAOb,SAASC,GAAmBL,EAASnxC,GAM1C,IAAKuxC,GAAe,CAClB,MAAM9F,EAAO,IAAI0D,GAAK,CACpBxiB,MAAO,0BAEH+P,EAAS,IAAI4S,GAAO,CACxB3iB,MAAO,UACPhmB,MAAO,OAET4qC,GAAgB,CACd,IAAIrB,GAAM,CACRnkB,MAAO,IAAIkjB,GAAY,CACrBxD,KAAMA,EACN/O,OAAQA,EACRz0B,OAAQ,IAEVwjC,KAAMA,EACN/O,OAAQA,IAGd,CACA,OAAO6U,EACT,CAqEA,SAASlB,GAAwBc,GAC/B,OAAOA,EAAQP,aACjB,CAEA,UC/iBA,MAAMa,GACJ7lD,WAAAA,GAKEhB,KAAK8mD,OAAS,CAAC,EAMf9mD,KAAK+mD,WAAa,EAMlB/mD,KAAKgnD,cAAgB,EACvB,CAKA5hD,KAAAA,GACEpF,KAAK8mD,OAAS,CAAC,EACf9mD,KAAK+mD,WAAa,CACpB,CAKA/N,cAAAA,GACE,OAAOh5C,KAAK+mD,WAAa/mD,KAAKgnD,aAChC,CAKAC,MAAAA,GACE,GAAIjnD,KAAKg5C,iBAAkB,CACzB,IAAIn2C,EAAI,EACR,IAAK,MAAMmG,KAAOhJ,KAAK8mD,OAAQ,CAC7B,MAAMI,EAAYlnD,KAAK8mD,OAAO99C,GACZ,KAAP,EAANnG,MAAmBqkD,EAAUhgD,uBACzBlH,KAAK8mD,OAAO99C,KACjBhJ,KAAK+mD,WAEX,CACF,CACF,CAQAp8C,GAAAA,CAAI8+B,EAAKS,EAAanI,GACpB,MAAM/4B,EAAMu/B,GAAOkB,EAAKS,EAAanI,GACrC,OAAO/4B,KAAOhJ,KAAK8mD,OAAS9mD,KAAK8mD,OAAO99C,GAAO,IACjD,CAQAwC,GAAAA,CAAIi+B,EAAKS,EAAanI,EAAOmlB,GAC3B,MAAMl+C,EAAMu/B,GAAOkB,EAAKS,EAAanI,GACrC/hC,KAAK8mD,OAAO99C,GAAOk+C,IACjBlnD,KAAK+mD,UACT,CASAI,OAAAA,CAAQC,GACNpnD,KAAKgnD,cAAgBI,EACrBpnD,KAAKinD,QACP,EASF,SAAS1e,GAAOkB,EAAKS,EAAanI,GAChC,MAAMslB,EAActlB,EAAQD,GAASC,GAAS,OAC9C,OAAOmI,EAAc,IAAMT,EAAM,IAAM4d,CACzC,CASO,MAAMC,GAAS,IAAIT,GCpG1B,IAAIU,GAAqB,KAEzB,MAAMC,WAAkBt+C,EAQtBlI,WAAAA,CAAYmgC,EAAOsI,EAAKS,EAAa3I,EAAYQ,GAC/Ct8B,QAMAzF,KAAKynD,mBAAqB,KAM1BznD,KAAKsqC,OAASnJ,EAMdnhC,KAAKoqC,aAAeF,EAMpBlqC,KAAKuyC,QAAU,CAAC,EAMhBvyC,KAAKwkD,OAASziB,EAMd/hC,KAAK0nD,iBAA6BzgD,IAAfs6B,EAA2BH,GAAWvB,KAAO0B,EAMhEvhC,KAAKuhD,MACHpgB,GAASA,EAAMplB,OAASolB,EAAMnlB,OAAS,CAACmlB,EAAMplB,MAAOolB,EAAMnlB,QAAU,KAMvEhc,KAAKqqC,KAAOZ,EAKZzpC,KAAK2nD,QACP,CAKAC,gBAAAA,GACE5nD,KAAKsqC,OAAS,IAAI1lB,MACQ,OAAtB5kB,KAAKoqC,eACPpqC,KAAKsqC,OAAOJ,YAAclqC,KAAKoqC,aAEnC,CAMAyd,UAAAA,GACE,QAAsB5gD,IAAlBjH,KAAK2nD,UAA0B3nD,KAAK0nD,cAAgBtmB,GAAWrB,OAAQ,CACpEwnB,KACHA,GAAqBjkB,GAAsB,EAAG,OAAGr8B,EAAW,CAC1Dw+B,oBAAoB,KAGxB8hB,GAAmBnhB,UAAUpmC,KAAKsqC,OAAQ,EAAG,GAC7C,IACEid,GAAmBthB,aAAa,EAAG,EAAG,EAAG,GACzCjmC,KAAK2nD,UAAW,CAClB,CAAE,MAAOzhC,GACPqhC,GAAqB,KACrBvnD,KAAK2nD,UAAW,CAClB,CACF,CACA,OAAyB,IAAlB3nD,KAAK2nD,QACd,CAKAG,oBAAAA,GACE9nD,KAAKoG,cAAcqD,EAAUlC,OAC/B,CAKAqjC,iBAAAA,GACE5qC,KAAK0nD,YAActmB,GAAW55B,MAC9BxH,KAAK8nD,sBACP,CAKAhd,gBAAAA,GACE9qC,KAAK0nD,YAActmB,GAAWrB,OAC9B//B,KAAKuhD,MAAQ,CAACvhD,KAAKsqC,OAAOvuB,MAAO/b,KAAKsqC,OAAOtuB,QAC7Chc,KAAK8nD,sBACP,CAMArd,QAAAA,CAAS5C,GAKP,OAJK7nC,KAAKsqC,QACRtqC,KAAK4nD,mBAEP5nD,KAAK+nD,cAAclgB,GACZ7nC,KAAKuyC,QAAQ1K,GAAc7nC,KAAKuyC,QAAQ1K,GAAc7nC,KAAKsqC,MACpE,CAMA2Q,aAAAA,CAAcpT,GAEZ,OADA7nC,KAAK+nD,cAAclgB,GACZ7nC,KAAKuyC,QAAQ1K,GAAcA,EAAa,CACjD,CAKAqT,aAAAA,GACE,OAAOl7C,KAAK0nD,WACd,CAKA1M,oBAAAA,GAIE,GAHKh7C,KAAKsqC,QACRtqC,KAAK4nD,oBAEF5nD,KAAKynD,mBACR,GAAIznD,KAAK6nD,aAAc,CACrB,MAAM9rC,EAAQ/b,KAAKuhD,MAAM,GACnBvlC,EAAShc,KAAKuhD,MAAM,GACpB5f,EAAU2B,GAAsBvnB,EAAOC,GAC7C2lB,EAAQwJ,SAAS,EAAG,EAAGpvB,EAAOC,GAC9Bhc,KAAKynD,mBAAqB9lB,EAAQ8B,MACpC,MACEzjC,KAAKynD,mBAAqBznD,KAAKsqC,OAGnC,OAAOtqC,KAAKynD,kBACd,CAMAvT,OAAAA,GACE,OAAOl0C,KAAKuhD,KACd,CAKAyG,MAAAA,GACE,OAAOhoD,KAAKqqC,IACd,CAKA7I,IAAAA,GACE,GAAIxhC,KAAK0nD,cAAgBtmB,GAAWvB,KAApC,CAGK7/B,KAAKsqC,QACRtqC,KAAK4nD,mBAGP5nD,KAAK0nD,YAActmB,GAAWtB,QAC9B,SACoB74B,IAAdjH,KAAKqqC,OAC0BrqC,KAAKsqC,OAAQb,IAAMzpC,KAAKqqC,KAE7D,CAAE,MAAOnkB,GACPlmB,KAAK4qC,mBACP,CACI5qC,KAAKsqC,kBAAkB2d,kBACzBje,GAAehqC,KAAKsqC,OAAQtqC,KAAKqqC,MAC9BX,MAAMvI,IACLnhC,KAAKsqC,OAASnJ,EACdnhC,KAAK8qC,kBAAkB,IAExBnB,MAAM3pC,KAAK4qC,kBAAkBjiC,KAAK3I,MAnBvC,CAqBF,CAMA+nD,aAAAA,CAAclgB,GACZ,IACG7nC,KAAKwkD,QACNxkD,KAAKuyC,QAAQ1K,IACb7nC,KAAK0nD,cAAgBtmB,GAAWrB,OAEhC,OAGF,MAAMoB,EAAQnhC,KAAKsqC,OACb7G,EAASpc,SAASC,cAAc,UACtCmc,EAAO1nB,MAAQlP,KAAKmC,KAAKmyB,EAAMplB,MAAQ8rB,GACvCpE,EAAOznB,OAASnP,KAAKmC,KAAKmyB,EAAMnlB,OAAS6rB,GAEzC,MAAMoD,EAAMxH,EAAOE,WAAW,MAC9BsH,EAAInuB,MAAM+qB,EAAYA,GACtBoD,EAAI7E,UAAUjF,EAAO,EAAG,GAExB8J,EAAI0E,yBAA2B,WAC/B1E,EAAIC,UAAYpJ,GAAS9hC,KAAKwkD,QAC9BvZ,EAAIE,SAAS,EAAG,EAAG1H,EAAO1nB,MAAQ8rB,EAAYpE,EAAOznB,OAAS6rB,GAE9DoD,EAAI0E,yBAA2B,iBAC/B1E,EAAI7E,UAAUjF,EAAO,EAAG,GAExBnhC,KAAKuyC,QAAQ1K,GAAcpE,CAC7B,EAWK,SAAS94B,GAAIw2B,EAAO+mB,EAAUhe,EAAa3I,EAAYQ,GAC5D,IAAImlB,OACWjgD,IAAbihD,OACIjhD,EACAkhD,GAAex9C,IAAIu9C,EAAUhe,EAAanI,GAWhD,OAVKmlB,IACHA,EAAY,IAAIM,GACdrmB,EACAA,aAAiB8mB,iBAAmB9mB,EAAMsI,UAAOxiC,EAAYihD,EAC7Dhe,EACA3I,EACAQ,GAEFomB,GAAe38C,IAAI08C,EAAUhe,EAAanI,EAAOmlB,IAE5CA,CACT,CCnOA,SAASkB,GAAersC,EAAOC,EAAQqsC,EAAaC,GAClD,YAAoBrhD,IAAhBohD,QAA8CphD,IAAjBqhD,EACxB,CAACD,EAActsC,EAAOusC,EAAetsC,QAE1B/U,IAAhBohD,EACKA,EAActsC,OAEF9U,IAAjBqhD,EACKA,EAAetsC,EAEjB,CACT,CAOA,MAAMusC,WAAaxO,GAIjB/4C,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EAKtB,MAAMK,OAA8BtI,IAApBiI,EAAQK,QAAwBL,EAAQK,QAAU,EAK5D0K,OAAgChT,IAArBiI,EAAQ+K,SAAyB/K,EAAQ+K,SAAW,EAK/D6C,OAA0B7V,IAAlBiI,EAAQ4N,MAAsB5N,EAAQ4N,MAAQ,EAKtDo9B,OACuBjzC,IAA3BiI,EAAQgrC,gBAA+BhrC,EAAQgrC,eAEjDz0C,MAAM,CACJ8J,QAASA,EACT0K,SAAUA,EACV6C,MAAOA,EACPy9B,kBAC2BtzC,IAAzBiI,EAAQqrC,aAA6BrrC,EAAQqrC,aAAe,CAAC,EAAG,GAClEL,eAAgBA,EAChBO,cAAevrC,EAAQurC,gBAOzBz6C,KAAKwoD,aAA6BvhD,IAAnBiI,EAAQuY,OAAuBvY,EAAQuY,OAAS,CAAC,GAAK,IAMrEznB,KAAKyoD,kBAAoB,KAMzBzoD,KAAK0oD,mBACsBzhD,IAAzBiI,EAAQy5C,aAA6Bz5C,EAAQy5C,aAAe,WAM9D3oD,KAAK4oD,mBACsB3hD,IAAzBiI,EAAQ25C,aAA6B35C,EAAQ25C,aAAe,WAM9D7oD,KAAK8oD,mBACsB7hD,IAAzBiI,EAAQ65C,aAA6B75C,EAAQ65C,aAAe,WAM9D/oD,KAAKoqC,kBACqBnjC,IAAxBiI,EAAQg7B,YAA4Bh7B,EAAQg7B,YAAc,KAE5D,MAAM/I,OAAwBl6B,IAAhBiI,EAAQk6B,IAAoBl6B,EAAQk6B,IAAM,KAExD,IAuBI7H,EAvBA2mB,EAAWh5C,EAAQu6B,IAmFvB,GAjFAl9B,SACiBtF,IAAbihD,GAA0B/mB,GAC5B,8DAGgBl6B,IAAbihD,GAA8C,IAApBA,EAAS7lD,SAAiB8+B,IACvD+mB,EAA4C/mB,EAAOsI,KAAOx/B,EAAOk3B,IAEnE50B,OACetF,IAAbihD,GAA0BA,EAAS7lD,OAAS,EAC5C,6DAGFkK,UAEuBtF,IAAlBiI,EAAQ6M,YAA0C9U,IAAnBiI,EAAQ8M,cACtB/U,IAAlBiI,EAAQ4N,OAEV,qEAIkB7V,IAAhBiI,EAAQu6B,IACVlI,EAAaH,GAAWvB,UACL54B,IAAVk6B,IAGLI,EAFAJ,aAAiB8mB,iBACf9mB,EAAM5M,SACK4M,EAAMsI,IAAMrI,GAAWrB,OAASqB,GAAWvB,KAE3CuB,GAAWtB,QAGbsB,GAAWrB,QAQ5B//B,KAAKwkD,YAA2Bv9C,IAAlBiI,EAAQ6yB,MAAsBa,GAAQ1zB,EAAQ6yB,OAAS,KAMrE/hC,KAAKgpD,WAAaC,GAChB9nB,EACuB+mB,EACvBloD,KAAKoqC,aACL7I,EACAvhC,KAAKwkD,QAOPxkD,KAAKkpD,aAA6BjiD,IAAnBiI,EAAQ2J,OAAuB3J,EAAQ2J,OAAS,CAAC,EAAG,GAKnE7Y,KAAKmpD,mBACsBliD,IAAzBiI,EAAQk6C,aAA6Bl6C,EAAQk6C,aAAe,WAM9DppD,KAAK8gD,QAAU,KAMf9gD,KAAKuhD,WAAyBt6C,IAAjBiI,EAAQgL,KAAqBhL,EAAQgL,KAAO,UAKnCjT,IAAlBiI,EAAQ6M,YAA0C9U,IAAnBiI,EAAQ8M,OAAsB,CAC/D,IAAID,EAAOC,EACX,GAAI9M,EAAQgL,MACT6B,EAAOC,GAAU9M,EAAQgL,SACrB,CACL,MAAMinB,EAAQnhC,KAAKyqC,SAAS,GAC5B,GAAItJ,EAAMplB,OAASolB,EAAMnlB,OACvBD,EAAQolB,EAAMplB,MACdC,EAASmlB,EAAMnlB,YACV,GAAImlB,aAAiB8mB,iBAAkB,CAC5CjoD,KAAKqpD,gBAAkBn6C,EACvB,MAAMo6C,EAASA,KAEb,GADAtpD,KAAKw7C,oBAAoB8N,IACpBtpD,KAAKqpD,gBACR,OAEF,MAAME,EAAYvpD,KAAKgpD,WAAW9U,UAClCl0C,KAAKs7C,SACH8M,GACEmB,EAAU,GACVA,EAAU,GACVr6C,EAAQ6M,MACR7M,EAAQ8M,QAEX,EAGH,YADAhc,KAAKu7C,kBAAkB+N,EAEzB,CACF,MACcriD,IAAV8U,GACF/b,KAAKs7C,SACH8M,GAAersC,EAAOC,EAAQ9M,EAAQ6M,MAAO7M,EAAQ8M,QAG3D,CACF,CAOAlE,KAAAA,GACE,IAAIgF,EAAOf,EAAOC,EAQlB,OAPIhc,KAAKqpD,iBACPttC,EAAQ/b,KAAKqpD,gBAAgBttC,MAC7BC,EAAShc,KAAKqpD,gBAAgBrtC,SAE9Bc,EAAQ9c,KAAK06C,WACb59B,EAAQxZ,MAAMC,QAAQuZ,GAASA,EAAM/X,QAAU+X,GAE1C,IAAIyrC,GAAK,CACd9gC,OAAQznB,KAAKwoD,QAAQzjD,QACrB4jD,aAAc3oD,KAAK0oD,cACnBG,aAAc7oD,KAAK4oD,cACnBG,aAAc/oD,KAAK8oD,cACnB/mB,MACE/hC,KAAKwkD,QAAUxkD,KAAKwkD,OAAOz/C,MACvB/E,KAAKwkD,OAAOz/C,QACZ/E,KAAKwkD,aAAUv9C,EACrBijC,YAAalqC,KAAKoqC,aAClBvxB,OAAQ7Y,KAAKkpD,QAAQnkD,QACrBqkD,aAAcppD,KAAKmpD,cACnB55C,QAASvP,KAAKyQ,aACdypC,eAAgBl6C,KAAK26C,oBACrB1gC,SAAUja,KAAK0zB,cACf5W,QACAf,QACAC,SACA9B,KAAqB,OAAfla,KAAKuhD,MAAiBvhD,KAAKuhD,MAAMx8C,aAAUkC,EACjDwiC,IAAKzpC,KAAKgoD,SACVzN,aAAcv6C,KAAK46C,kBAAkB71C,QACrC01C,cAAez6C,KAAK66C,oBAExB,CAQAE,SAAAA,GACE,IAAItzB,EAASznB,KAAKyoD,kBAClB,IAAKhhC,EAAQ,CACXA,EAASznB,KAAKwoD,QACd,MAAMtuC,EAAOla,KAAKk0C,UAClB,GACwB,YAAtBl0C,KAAK4oD,eACiB,YAAtB5oD,KAAK8oD,cACL,CACA,IAAK5uC,EACH,OAAO,KAETuN,EAASznB,KAAKwoD,QAAQzjD,QACI,YAAtB/E,KAAK4oD,gBACPnhC,EAAO,IAAMvN,EAAK,IAEM,YAAtBla,KAAK8oD,gBACPrhC,EAAO,IAAMvN,EAAK,GAEtB,CAEA,GAA0B,YAAtBla,KAAK0oD,cAA6B,CACpC,IAAKxuC,EACH,OAAO,KAELuN,IAAWznB,KAAKwoD,UAClB/gC,EAASznB,KAAKwoD,QAAQzjD,SAGA,aAAtB/E,KAAK0oD,eACiB,gBAAtB1oD,KAAK0oD,gBAELjhC,EAAO,IAAMA,EAAO,GAAKvN,EAAK,IAGR,eAAtBla,KAAK0oD,eACiB,gBAAtB1oD,KAAK0oD,gBAELjhC,EAAO,IAAMA,EAAO,GAAKvN,EAAK,GAElC,CACAla,KAAKyoD,kBAAoBhhC,CAC3B,CACA,MAAM8yB,EAAev6C,KAAK46C,kBACpB99B,EAAQ9c,KAAK86C,gBAGnB,MAAO,CACLrzB,EAAO,GAAK8yB,EAAa,GAAKz9B,EAAM,GACpC2K,EAAO,GAAK8yB,EAAa,GAAKz9B,EAAM,GAExC,CASA0sC,SAAAA,CAAU/hC,GACRznB,KAAKwoD,QAAU/gC,EACfznB,KAAKyoD,kBAAoB,IAC3B,CAOAlF,QAAAA,GACE,OAAOvjD,KAAKwkD,MACd,CASA/Z,QAAAA,CAAS5C,GACP,OAAO7nC,KAAKgpD,WAAWve,SAAS5C,EAClC,CAQAoT,aAAAA,CAAcpT,GACZ,OAAO7nC,KAAKgpD,WAAW/N,cAAcpT,EACvC,CAKAsT,YAAAA,GACE,OAAOn7C,KAAKgpD,WAAW9U,SACzB,CAKAgH,aAAAA,GACE,OAAOl7C,KAAKgpD,WAAW9N,eACzB,CAKAF,oBAAAA,GACE,OAAOh7C,KAAKgpD,WAAWhO,sBACzB,CAOAtF,SAAAA,GACE,GAAI11C,KAAK8gD,QACP,OAAO9gD,KAAK8gD,QAEd,IAAIjoC,EAAS7Y,KAAKkpD,QAElB,GAA0B,YAAtBlpD,KAAKmpD,cAA6B,CACpC,MAAMjvC,EAAOla,KAAKk0C,UACZuV,EAAgBzpD,KAAKgpD,WAAW9U,UACtC,IAAKh6B,IAASuvC,EACZ,OAAO,KAET5wC,EAASA,EAAO9T,QAEQ,aAAtB/E,KAAKmpD,eACiB,gBAAtBnpD,KAAKmpD,gBAELtwC,EAAO,GAAK4wC,EAAc,GAAKvvC,EAAK,GAAKrB,EAAO,IAG1B,eAAtB7Y,KAAKmpD,eACiB,gBAAtBnpD,KAAKmpD,gBAELtwC,EAAO,GAAK4wC,EAAc,GAAKvvC,EAAK,GAAKrB,EAAO,GAEpD,CAEA,OADA7Y,KAAK8gD,QAAUjoC,EACR7Y,KAAK8gD,OACd,CAOAkH,MAAAA,GACE,OAAOhoD,KAAKgpD,WAAWhB,QACzB,CAOA9T,OAAAA,GACE,OAAQl0C,KAAKuhD,MAAoCvhD,KAAKuhD,MAAjCvhD,KAAKgpD,WAAW9U,SACvC,CAOAx6B,QAAAA,GACE,MAAMoD,EAAQ9c,KAAK86C,gBACnB,OAAI96C,KAAKuhD,MACAvhD,KAAKuhD,MAAM,GAAKzkC,EAAM,GAE3B9c,KAAKgpD,WAAW9N,iBAAmB9Z,GAAWrB,OACzC//B,KAAKgpD,WAAW9U,UAAU,GAAKp3B,EAAM,QAD9C,CAIF,CAOAnD,SAAAA,GACE,MAAMmD,EAAQ9c,KAAK86C,gBACnB,OAAI96C,KAAKuhD,MACAvhD,KAAKuhD,MAAM,GAAKzkC,EAAM,GAE3B9c,KAAKgpD,WAAW9N,iBAAmB9Z,GAAWrB,OACzC//B,KAAKgpD,WAAW9U,UAAU,GAAKp3B,EAAM,QAD9C,CAIF,CAQAw+B,QAAAA,CAASx+B,UACA9c,KAAKqpD,gBACZ5jD,MAAM61C,SAASx+B,EACjB,CAKAy+B,iBAAAA,CAAkBx1C,GAChB/F,KAAKgpD,WAAWljD,iBAAiB2D,EAAUlC,OAAQxB,EACrD,CASAy7B,IAAAA,GACExhC,KAAKgpD,WAAWxnB,MAClB,CAKAga,mBAAAA,CAAoBz1C,GAClB/F,KAAKgpD,WAAWjiD,oBAAoB0C,EAAUlC,OAAQxB,EACxD,EAGF,UC7hBA,MAAM2jD,GAAqB,OA+C3B,MAAMC,GAIJ3oD,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EAMtBlP,KAAK4pD,MAAQ16C,EAAQwvC,KAMrB1+C,KAAKm6C,UAAYjrC,EAAQ+K,SAMzBja,KAAKi6C,gBAAkB/qC,EAAQgrC,eAM/Bl6C,KAAKo6C,OAASlrC,EAAQ4N,MAMtB9c,KAAKq6C,YAAcjG,QAAyBntC,IAAlBiI,EAAQ4N,MAAsB5N,EAAQ4N,MAAQ,GAMxE9c,KAAK8lD,MAAQ52C,EAAQ2uC,KAMrB79C,KAAK6pD,WAAa36C,EAAQ46C,UAM1B9pD,KAAK+pD,SAAW76C,EAAQ86C,QAMxBhqD,KAAKiqD,QAAU/6C,EAAQg7C,OAMvBlqD,KAAKmqD,cAAgBj7C,EAAQk7C,aAM7BpqD,KAAK4gD,WACc35C,IAAjBiI,EAAQ2xC,KACJ3xC,EAAQ2xC,KACR,IAAI0D,GAAK,CAACxiB,MAAO2nB,KAMvB1pD,KAAKqqD,eACkBpjD,IAArBiI,EAAQo7C,SAAyBp7C,EAAQo7C,SAAWz9C,KAAK0B,GAAK,EAMhEvO,KAAKuqD,gBACmBtjD,IAAtBiI,EAAQs7C,UAA0Bt7C,EAAQs7C,UAAY,QAMxDxqD,KAAKyqD,YAAcv7C,EAAQw7C,SAM3B1qD,KAAKshD,aAA6Br6C,IAAnBiI,EAAQ4iC,OAAuB5iC,EAAQ4iC,OAAS,KAM/D9xC,KAAK2qD,cAA+B1jD,IAApBiI,EAAQmkB,QAAwBnkB,EAAQmkB,QAAU,EAMlErzB,KAAK4qD,cAA+B3jD,IAApBiI,EAAQokB,QAAwBpkB,EAAQokB,QAAU,EAMlEtzB,KAAK6qD,gBAAkB37C,EAAQ47C,eAC3B57C,EAAQ47C,eACR,KAMJ9qD,KAAK+qD,kBAAoB77C,EAAQ87C,iBAC7B97C,EAAQ87C,iBACR,KAMJhrD,KAAKkyB,cAA+BjrB,IAApBiI,EAAQijB,QAAwB,KAAOjjB,EAAQijB,OACjE,CAOAra,KAAAA,GACE,MAAMgF,EAAQ9c,KAAK06C,WACnB,OAAO,IAAIiP,GAAK,CACdjL,KAAM1+C,KAAKirD,UACXT,UAAWxqD,KAAKkrD,eAChBhB,OAAQlqD,KAAKmrD,YACbb,SAAUtqD,KAAKorD,cACfV,SAAU1qD,KAAKqrD,cACfpxC,SAAUja,KAAK0zB,cACfwmB,eAAgBl6C,KAAK26C,oBACrB79B,MAAOxZ,MAAMC,QAAQuZ,GAASA,EAAM/X,QAAU+X,EAC9C+gC,KAAM79C,KAAKimD,UACX6D,UAAW9pD,KAAKsrD,eAChBtB,QAAShqD,KAAKurD,aACdnB,aAAcpqD,KAAKwrD,kBACnB3K,KAAM7gD,KAAKyhD,UAAYzhD,KAAKyhD,UAAU3pC,aAAU7Q,EAChD6qC,OAAQ9xC,KAAK8hD,YAAc9hD,KAAK8hD,YAAYhqC,aAAU7Q,EACtDosB,QAASrzB,KAAKyrD,aACdn4B,QAAStzB,KAAK0rD,aACdZ,eAAgB9qD,KAAK2rD,oBACjB3rD,KAAK2rD,oBAAoB7zC,aACzB7Q,EACJ+jD,iBAAkBhrD,KAAK4rD,sBACnB5rD,KAAK4rD,sBAAsB9zC,aAC3B7Q,EACJkrB,QAASnyB,KAAK6rD,mBAAgB5kD,GAElC,CAOAokD,WAAAA,GACE,OAAOrrD,KAAKyqD,SACd,CAOAQ,OAAAA,GACE,OAAOjrD,KAAK4pD,KACd,CAOAwB,WAAAA,GACE,OAAOprD,KAAKqqD,SACd,CAOAa,YAAAA,GACE,OAAOlrD,KAAKuqD,UACd,CAOAY,SAAAA,GACE,OAAOnrD,KAAKiqD,OACd,CAOAwB,UAAAA,GACE,OAAOzrD,KAAK2qD,QACd,CAOAe,UAAAA,GACE,OAAO1rD,KAAK4qD,QACd,CAOAnJ,OAAAA,GACE,OAAOzhD,KAAK4gD,KACd,CAOAjG,iBAAAA,GACE,OAAO36C,KAAKi6C,eACd,CAOAvmB,WAAAA,GACE,OAAO1zB,KAAKm6C,SACd,CAOAO,QAAAA,GACE,OAAO16C,KAAKo6C,MACd,CAMAU,aAAAA,GACE,OAAO96C,KAAKq6C,WACd,CAOAyH,SAAAA,GACE,OAAO9hD,KAAKshD,OACd,CAOA2E,OAAAA,GACE,OAAOjmD,KAAK8lD,KACd,CAOAwF,YAAAA,GACE,OAAOtrD,KAAK6pD,UACd,CAOA0B,UAAAA,GACE,OAAOvrD,KAAK+pD,QACd,CAOAyB,eAAAA,GACE,OAAOxrD,KAAKmqD,aACd,CAOAwB,iBAAAA,GACE,OAAO3rD,KAAK6qD,eACd,CAOAe,mBAAAA,GACE,OAAO5rD,KAAK+qD,iBACd,CAOAc,UAAAA,GACE,OAAO7rD,KAAKkyB,QACd,CAQA45B,WAAAA,CAAYpB,GACV1qD,KAAKyqD,UAAYC,CACnB,CAQAqB,OAAAA,CAAQrN,GACN1+C,KAAK4pD,MAAQlL,CACf,CAQAsN,WAAAA,CAAY1B,GACVtqD,KAAKqqD,UAAYC,CACnB,CAQA2B,UAAAA,CAAW54B,GACTrzB,KAAK2qD,SAAWt3B,CAClB,CAQA64B,UAAAA,CAAW54B,GACTtzB,KAAK4qD,SAAWt3B,CAClB,CAQA64B,YAAAA,CAAa3B,GACXxqD,KAAKuqD,WAAaC,CACpB,CAOA4B,SAAAA,CAAUlC,GACRlqD,KAAKiqD,QAAUC,CACjB,CAQA7O,iBAAAA,CAAkBnB,GAChBl6C,KAAKi6C,gBAAkBC,CACzB,CAQA6H,OAAAA,CAAQlB,GACN7gD,KAAK4gD,MAAQC,CACf,CAQAjuB,WAAAA,CAAY3Y,GACVja,KAAKm6C,UAAYlgC,CACnB,CAQAqhC,QAAAA,CAASx+B,GACP9c,KAAKo6C,OAASt9B,EACd9c,KAAKq6C,YAAcjG,QAAiBntC,IAAV6V,EAAsBA,EAAQ,EAC1D,CAQAqlC,SAAAA,CAAUrQ,GACR9xC,KAAKshD,QAAUxP,CACjB,CAQAwU,OAAAA,CAAQzI,GACN79C,KAAK8lD,MAAQjI,CACf,CAQAwO,YAAAA,CAAavC,GACX9pD,KAAK6pD,WAAaC,CACpB,CAQAwC,UAAAA,CAAWtC,GACThqD,KAAK+pD,SAAWC,CAClB,CAQAuC,eAAAA,CAAgBnC,GACdpqD,KAAKmqD,cAAgBC,CACvB,CAQAoC,iBAAAA,CAAkB3L,GAChB7gD,KAAK6qD,gBAAkBhK,CACzB,CAQA4L,mBAAAA,CAAoB3a,GAClB9xC,KAAK+qD,kBAAoBjZ,CAC3B,CAQA4a,UAAAA,CAAWv6B,GACTnyB,KAAKkyB,SAAWC,CAClB,EAGF,UCvlBA,IAAIw6B,GAAW,EACR,MACMC,GAAc,GAAKD,KACnBE,GAAa,GAAKF,KAClBG,GAAa,GAAKH,KAClBI,GAAY,GAAKJ,KACjBK,GAAkB,GAAKL,KACvBM,GAAUpgD,KAAKgC,IAAI,EAAG89C,IAAY,EAEzCO,GAAY,CAChB,CAACN,IAAc,UACf,CAACC,IAAa,SACd,CAACC,IAAa,SACd,CAACC,IAAY,QACb,CAACC,IAAkB,YAGfG,GAAahmD,OAAOC,KAAK8lD,IAAWpwB,IAAIsG,QAAQ7U,KAAKrsB,GAOpD,SAASkrD,GAASnsD,GACvB,MAAMosD,EAAQ,GACd,IAAK,MAAMC,KAAaH,GAClBI,GAAatsD,EAAMqsD,IACrBD,EAAMlnD,KAAK+mD,GAAUI,IAGzB,OAAqB,IAAjBD,EAAMhrD,OACD,UAELgrD,EAAMhrD,OAAS,EACVgrD,EAAMlmC,KAAK,QAEbkmC,EAAMtoD,MAAM,GAAI,GAAGoiB,KAAK,MAAQ,QAAUkmC,EAAMA,EAAMhrD,OAAS,EACxE,CAOO,SAASkrD,GAAaC,EAAOC,GAClC,OAAQD,EAAQC,KAAcA,CAChC,CAOO,SAASC,GAAaC,EAASC,GACpC,SAAUD,EAAUC,EACtB,CAeO,MAAMC,GAKX7sD,WAAAA,CAAYC,EAAM2J,GAChB5K,KAAKiB,KAAOA,EACZjB,KAAK4K,MAAQA,CACf,EAGK,MAAMkjD,GAMX9sD,WAAAA,CAAYC,EAAM8sD,KAAa7vC,GAC7Ble,KAAKiB,KAAOA,EACZjB,KAAK+tD,SAAWA,EAChB/tD,KAAKke,KAAOA,CACd,EAgBK,SAAS8vC,KACd,MAAO,CACLC,UAAW,IAAIC,IACf7+C,WAAY,IAAI6+C,IAEpB,CAWO,SAASC,GAAMC,EAASzsB,GAC7B,cAAeysB,GACb,IAAK,UACH,OAAO,IAAIP,GAAkBjB,GAAawB,GAE5C,IAAK,SACH,OAAO,IAAIP,GAAkBhB,GAAYuB,GAE3C,IAAK,SACH,OAAO,IAAIP,GAAkBf,GAAYsB,GAE3C,SAKF,IAAK9qD,MAAMC,QAAQ6qD,GACjB,MAAM,IAAIrkD,MAAM,oDAGlB,GAAuB,IAAnBqkD,EAAQ/rD,OACV,MAAM,IAAI0H,MAAM,oBAGlB,GAA0B,kBAAfqkD,EAAQ,GACjB,OAAOC,GAAoBD,EAASzsB,GAGtC,IAAK,MAAM2sB,KAAQF,EACjB,GAAoB,kBAATE,EACT,MAAM,IAAIvkD,MAAM,gCAIpB,IAAI9I,EAAO+rD,GAKX,OAJuB,IAAnBoB,EAAQ/rD,QAAmC,IAAnB+rD,EAAQ/rD,SAClCpB,GAAQ8rD,IAGH,IAAIc,GAAkB5sD,EAAMmtD,EACrC,CAKO,MAAMG,GAAM,CACjBnrB,OAAQ,SACRh5B,OAAQ,SACRokD,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,IAAK,IACLC,WAAY,aACZC,MAAO,KACPC,SAAU,KACVC,YAAa,IACbC,qBAAsB,KACtBC,SAAU,IACVC,kBAAmB,KACnBC,SAAU,IACVC,OAAQ,IACRC,IAAK,IACLC,SAAU,IACVC,MAAO,QACPC,IAAK,IACLC,IAAK,IACLC,IAAK,MACLC,MAAO,QACPC,KAAM,OACNC,MAAO,QACPC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,KAAM,OACNC,MAAO,SAUHC,GAAU,CACd,CAAC7B,GAAInrB,QAASitB,GAAaC,GAAS,EAAG3gD,IAAUs9C,IAAUJ,IAC3D,CAAC0B,GAAInkD,QAASimD,GAAaC,GAAS,EAAG3gD,IAAUs9C,IAAUH,IAC3D,CAACyB,GAAIC,KAAM6B,GAAaE,GAAatD,IACrC,CAACsB,GAAIE,KAAM4B,GAAaG,GAAavD,IACrC,CAACsB,GAAIM,YAAawB,GAAaI,GAAY5D,IAC3C,CAAC0B,GAAIG,KAAM2B,GAAaC,GAAS,EAAG3gD,IAAUi9C,IAAcA,IAC5D,CAAC2B,GAAII,KAAM0B,GAAaC,GAAS,EAAG3gD,IAAUi9C,IAAcA,IAC5D,CAAC2B,GAAIK,KAAMyB,GAAaC,GAAS,EAAG,EAAG1D,IAAcA,IACrD,CAAC2B,GAAIO,OAAQuB,GAAaC,GAAS,EAAG,EAAGrD,IAAUL,IACnD,CAAC2B,GAAIQ,UAAWsB,GAAaC,GAAS,EAAG,EAAGrD,IAAUL,IACtD,CAAC2B,GAAIS,aAAcqB,GAAaC,GAAS,EAAG,EAAGrD,IAAUL,IACzD,CAAC2B,GAAIU,sBAAuBoB,GAC1BC,GAAS,EAAG,EAAGrD,IACfL,IAEF,CAAC2B,GAAIW,UAAWmB,GAAaC,GAAS,EAAG,EAAGrD,IAAUL,IACtD,CAAC2B,GAAIY,mBAAoBkB,GAAaC,GAAS,EAAG,EAAGrD,IAAUL,IAC/D,CAAC2B,GAAIa,UAAWiB,GAAaC,GAAS,EAAG3gD,IAAUk9C,IAAaA,IAChE,CAAC0B,GAAIc,QAASgB,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACvD,CAAC0B,GAAIe,KAAMe,GAAaC,GAAS,EAAG3gD,IAAUk9C,IAAaA,IAC3D,CAAC0B,GAAIgB,UAAWc,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACzD,CAAC0B,GAAIiB,OAAQa,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACtD,CAAC0B,GAAIkB,KAAMY,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACpD,CAAC0B,GAAImB,KAAMW,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACpD,CAAC0B,GAAIoB,KAAMU,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACpD,CAAC0B,GAAIqB,OAAQS,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACtD,CAAC0B,GAAIsB,MAAOQ,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACrD,CAAC0B,GAAIuB,OAAQO,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACtD,CAAC0B,GAAIwB,KAAMM,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACpD,CAAC0B,GAAIyB,KAAMK,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACpD,CAAC0B,GAAI0B,MAAOI,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACrD,CAAC0B,GAAI2B,MAAOG,GAAaC,GAAS,EAAG,EAAGzD,IAAaA,IACrD,CAAC0B,GAAI4B,OAAQE,GACXC,GAAS,EAAG3gD,IAAUm9C,GAAaD,IACnCI,KAWJ,SAASsD,GAAYnC,EAASzsB,GAC5B,GAAuB,IAAnBysB,EAAQ/rD,OACV,MAAM,IAAI0H,MAAM,yCAElB,MAAM2mD,EAAMvC,GAAMC,EAAQ,GAAIzsB,GAC9B,KAAM+uB,aAAe7C,IACnB,MAAM,IAAI9jD,MAAM,iDAElB,GAAyB,kBAAd2mD,EAAI9lD,MACb,MAAM,IAAIb,MAAM,gDAGlB,OADA43B,EAAQtyB,WAAW6G,IAAIw6C,EAAI9lD,OACpB,CAAC8lD,EACV,CAKA,SAASF,GAAYpC,EAASzsB,GAC5B,GAAuB,IAAnBysB,EAAQ/rD,OACV,MAAM,IAAI0H,MAAM,yCAElB,MAAM2mD,EAAMvC,GAAMC,EAAQ,GAAIzsB,GAC9B,KAAM+uB,aAAe7C,IACnB,MAAM,IAAI9jD,MAAM,iDAElB,GAAyB,kBAAd2mD,EAAI9lD,MACb,MAAM,IAAIb,MAAM,gDAGlB,OADA43B,EAAQssB,UAAU/3C,IAAIw6C,EAAI9lD,OACnB,CAAC8lD,EACV,CAKA,SAASD,GAAWrC,EAASzsB,GAC3B,MAAMgvB,EAAYvC,EAAQ,GAC1B,GAAuB,IAAnBA,EAAQ/rD,OACV,MAAM,IAAI0H,MAAO,6BAA4B4mD,eAE/C,MAAO,EACT,CAQA,SAASL,GAASM,EAASC,EAASC,GAClC,OAAO,SAAU1C,EAASzsB,GACxB,MAAMgvB,EAAYvC,EAAQ,GACpB2C,EAAW3C,EAAQ/rD,OAAS,EAClC,GAAIuuD,IAAYC,GACd,GAAIE,IAAaH,EAAS,CACxB,MAAMI,EAAqB,IAAZJ,EAAgB,GAAK,IACpC,MAAM,IAAI7mD,MACP,YAAW6mD,aAAmBI,mBAAwBL,UAAkBI,IAE7E,OACK,GAAIA,EAAWH,GAAWG,EAAWF,EAC1C,MAAM,IAAI9mD,MACP,YAAW6mD,QAAcC,6BAAmCF,UAAkBI,KAOnF,MAAM7yC,EAAO,IAAI5a,MAAMytD,GACvB,IAAK,IAAIluD,EAAI,EAAGA,EAAIkuD,IAAYluD,EAAG,CACjC,MAAMouD,EAAa9C,GAAMC,EAAQvrD,EAAI,GAAI8+B,GACzC,IAAK+rB,GAAaoD,EAASG,EAAWhwD,MAAO,CAC3C,MAAMiwD,EAAU9D,GAAS0D,GACnBK,EAAe/D,GAAS6D,EAAWhwD,MACzC,MAAM,IAAI8I,MACP,gCAA+BlH,QAAQ8tD,qBAC5BO,kBAAwBC,IAExC,CACAjzC,EAAKrb,GAAKouD,CACZ,CAEA,OAAO/yC,CACT,CACF,CAOA,SAASmyC,GAAae,EAAcC,GAClC,OAAO,SAAUjD,EAASzsB,GACxB,MAAMosB,EAAWK,EAAQ,GACnBlwC,EAAOkzC,EAAahD,EAASzsB,GACnC,OAAO,IAAImsB,GAAeuD,EAAYtD,KAAa7vC,EACrD,CACF,CAOA,SAASmwC,GAAoBD,EAASzsB,GACpC,MAAMosB,EAAWK,EAAQ,GAEnBkD,EAASlB,GAAQrC,GACvB,IAAKuD,EACH,MAAM,IAAIvnD,MAAO,qBAAoBgkD,KAEvC,OAAOuD,EAAOlD,EAASzsB,EACzB,CChWO,SAAS4vB,KACd,MAAO,CACLtD,UAAW,CAAC,EACZ5+C,WAAY,CAAC,EACb+F,WAAY2T,IAEhB,CAwCO,SAASyoC,GAAgBpD,EAASntD,EAAM0gC,GAC7C,MAAMsvB,EAAa9C,GAAMC,EAASzsB,GAClC,IAAK+rB,GAAazsD,EAAMgwD,EAAWhwD,MAAO,CACxC,MAAMwwD,EAAWrE,GAASnsD,GACpBywD,EAAStE,GAAS6D,EAAWhwD,MACnC,MAAM,IAAI8I,MACP,qCAAoC0nD,UAAiBC,IAE1D,CACA,OAAOC,GAAkBV,EAAYtvB,EACvC,CAOA,SAASgwB,GAAkBV,EAAYtvB,GACrC,GAAIsvB,aAAsBpD,GACxB,OAAO,WACL,OAAOoD,EAAWrmD,KACpB,EAEF,MAAMmjD,EAAWkD,EAAWlD,SAC5B,OAAQA,GACN,KAAKQ,GAAInrB,OACT,KAAKmrB,GAAInkD,OACP,OAAOwnD,GAA2BX,EAAYtvB,GAEhD,KAAK4sB,GAAIC,IACT,KAAKD,GAAIE,IACP,OAAOoD,GAA0BZ,EAAYtvB,GAE/C,KAAK4sB,GAAIM,WACP,OAAQltB,GAAYA,EAAQvsB,WAE9B,KAAKm5C,GAAIG,IACT,KAAKH,GAAII,IACT,KAAKJ,GAAIK,IACP,OAAOkD,GAAyBb,EAAYtvB,GAE9C,KAAK4sB,GAAIO,MACT,KAAKP,GAAIQ,SACT,KAAKR,GAAIW,SACT,KAAKX,GAAIY,kBACT,KAAKZ,GAAIS,YACT,KAAKT,GAAIU,qBACP,OAAO8C,GAA4Bd,EAAYtvB,GAEjD,KAAK4sB,GAAIa,SACT,KAAKb,GAAIc,OACT,KAAKd,GAAIe,IACT,KAAKf,GAAIgB,SACT,KAAKhB,GAAIiB,MACT,KAAKjB,GAAIkB,IACT,KAAKlB,GAAImB,IACT,KAAKnB,GAAIoB,IACT,KAAKpB,GAAIqB,MACT,KAAKrB,GAAIsB,KACT,KAAKtB,GAAIuB,MACT,KAAKvB,GAAIwB,IACT,KAAKxB,GAAIyB,IACT,KAAKzB,GAAI0B,KACT,KAAK1B,GAAI2B,KACP,OAAO8B,GAAyBf,EAAYtvB,GAE9C,KAAK4sB,GAAI4B,MACP,OAAO8B,GAAuBhB,EAAYtvB,GAE5C,QACE,MAAM,IAAI53B,MAAO,wBAAuBgkD,KAG9C,CAOA,SAAS6D,GAA2BX,EAAYtvB,GAC9C,MAAM1gC,EAAOgwD,EAAWlD,SAClB1rD,EAAS4uD,EAAW/yC,KAAK7b,OAEzB6b,EAAO,IAAI5a,MAAMjB,GACvB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAC5Bqb,EAAKrb,GAAK8uD,GAAkBV,EAAW/yC,KAAKrb,GAAI8+B,GAElD,OAAQ1gC,GACN,KAAKstD,GAAInrB,OACT,KAAKmrB,GAAInkD,OACP,OAAQu3B,IACN,IAAK,IAAI9+B,EAAI,EAAGA,EAAIR,IAAUQ,EAAG,CAC/B,MAAM+H,EAAQsT,EAAKrb,GAAG8+B,GACtB,UAAW/2B,IAAU3J,EACnB,OAAO2J,CAEX,CACA,MAAM,IAAIb,MAAO,sCAAqC9I,IAAO,EAGjE,QACE,MAAM,IAAI8I,MAAO,kCAAiC9I,KAGxD,CAOA,SAAS4wD,GAA0BZ,EAAYtvB,GAC7C,MAAMuwB,EAAiBjB,EAAW/yC,KAAK,GACvC,KAAMg0C,aAA0BrE,IAC9B,MAAM,IAAI9jD,MAAM,yBAElB,MAAMooD,EAAOD,EAAetnD,MAC5B,GAAoB,kBAATunD,EACT,MAAM,IAAIpoD,MAAM,wBAElB,OAAQknD,EAAWlD,UACjB,KAAKQ,GAAIC,IACP,OAAQ7sB,GAAYA,EAAQtyB,WAAW8iD,GAEzC,KAAK5D,GAAIE,IACP,OAAQ9sB,GAAYA,EAAQssB,UAAUkE,GAExC,QACE,MAAM,IAAIpoD,MAAO,iCAAgCknD,EAAWlD,YAGlE,CAOA,SAASgE,GAA4Bd,EAAYtvB,GAC/C,MAAMywB,EAAKnB,EAAWlD,SAChBpnB,EAAOgrB,GAAkBV,EAAW/yC,KAAK,GAAIyjB,GAC7CvS,EAAQuiC,GAAkBV,EAAW/yC,KAAK,GAAIyjB,GACpD,OAAQywB,GACN,KAAK7D,GAAIO,MACP,OAAQntB,GAAYgF,EAAKhF,KAAavS,EAAMuS,GAE9C,KAAK4sB,GAAIQ,SACP,OAAQptB,GAAYgF,EAAKhF,KAAavS,EAAMuS,GAE9C,KAAK4sB,GAAIW,SACP,OAAQvtB,GAAYgF,EAAKhF,GAAWvS,EAAMuS,GAE5C,KAAK4sB,GAAIY,kBACP,OAAQxtB,GAAYgF,EAAKhF,IAAYvS,EAAMuS,GAE7C,KAAK4sB,GAAIS,YACP,OAAQrtB,GAAYgF,EAAKhF,GAAWvS,EAAMuS,GAE5C,KAAK4sB,GAAIU,qBACP,OAAQttB,GAAYgF,EAAKhF,IAAYvS,EAAMuS,GAE7C,QACE,MAAM,IAAI53B,MAAO,mCAAkCqoD,KAGzD,CAOA,SAASN,GAAyBb,EAAYtvB,GAC5C,MAAMywB,EAAKnB,EAAWlD,SAChB1rD,EAAS4uD,EAAW/yC,KAAK7b,OAEzB6b,EAAO,IAAI5a,MAAMjB,GACvB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAC5Bqb,EAAKrb,GAAK8uD,GAAkBV,EAAW/yC,KAAKrb,GAAI8+B,GAElD,OAAQywB,GACN,KAAK7D,GAAIG,IACP,OAAQ/sB,IACN,IAAK,IAAI9+B,EAAI,EAAGA,EAAIR,IAAUQ,EAC5B,GAAIqb,EAAKrb,GAAG8+B,GACV,OAAO,EAGX,OAAO,CAAK,EAGhB,KAAK4sB,GAAII,IACP,OAAQhtB,IACN,IAAK,IAAI9+B,EAAI,EAAGA,EAAIR,IAAUQ,EAC5B,IAAKqb,EAAKrb,GAAG8+B,GACX,OAAO,EAGX,OAAO,CAAI,EAGf,KAAK4sB,GAAIK,IACP,OAAQjtB,IAAazjB,EAAK,GAAGyjB,GAE/B,QACE,MAAM,IAAI53B,MAAO,gCAA+BqoD,KAGtD,CAOA,SAASJ,GAAyBf,EAAYtvB,GAC5C,MAAMywB,EAAKnB,EAAWlD,SAChB1rD,EAAS4uD,EAAW/yC,KAAK7b,OAEzB6b,EAAO,IAAI5a,MAAMjB,GACvB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAC5Bqb,EAAKrb,GAAK8uD,GAAkBV,EAAW/yC,KAAKrb,GAAI8+B,GAElD,OAAQywB,GACN,KAAK7D,GAAIa,SACP,OAAQztB,IACN,IAAI/2B,EAAQ,EACZ,IAAK,IAAI/H,EAAI,EAAGA,EAAIR,IAAUQ,EAC5B+H,GAASsT,EAAKrb,GAAG8+B,GAEnB,OAAO/2B,CAAK,EAGhB,KAAK2jD,GAAIc,OACP,OAAQ1tB,GAAYzjB,EAAK,GAAGyjB,GAAWzjB,EAAK,GAAGyjB,GAEjD,KAAK4sB,GAAIe,IACP,OAAQ3tB,IACN,IAAI/2B,EAAQ,EACZ,IAAK,IAAI/H,EAAI,EAAGA,EAAIR,IAAUQ,EAC5B+H,GAASsT,EAAKrb,GAAG8+B,GAEnB,OAAO/2B,CAAK,EAGhB,KAAK2jD,GAAIgB,SACP,OAAQ5tB,GAAYzjB,EAAK,GAAGyjB,GAAWzjB,EAAK,GAAGyjB,GAEjD,KAAK4sB,GAAIiB,MACP,OAAQ7tB,IACN,MAAM/2B,EAAQsT,EAAK,GAAGyjB,GAChBh1B,EAAMuR,EAAK,GAAGyjB,GACpB,GAAI/2B,EAAQ+B,EACV,OAAOA,EAET,MAAMC,EAAMsR,EAAK,GAAGyjB,GACpB,OAAI/2B,EAAQgC,EACHA,EAEFhC,CAAK,EAGhB,KAAK2jD,GAAIkB,IACP,OAAQ9tB,GAAYzjB,EAAK,GAAGyjB,GAAWzjB,EAAK,GAAGyjB,GAEjD,KAAK4sB,GAAImB,IACP,OAAQ/tB,GAAY90B,KAAKgC,IAAIqP,EAAK,GAAGyjB,GAAUzjB,EAAK,GAAGyjB,IAEzD,KAAK4sB,GAAIoB,IACP,OAAQhuB,GAAY90B,KAAKgB,IAAIqQ,EAAK,GAAGyjB,IAEvC,KAAK4sB,GAAIqB,MACP,OAAQjuB,GAAY90B,KAAKkC,MAAMmP,EAAK,GAAGyjB,IAEzC,KAAK4sB,GAAIsB,KACP,OAAQluB,GAAY90B,KAAKmC,KAAKkP,EAAK,GAAGyjB,IAExC,KAAK4sB,GAAIuB,MACP,OAAQnuB,GAAY90B,KAAKiC,MAAMoP,EAAK,GAAGyjB,IAEzC,KAAK4sB,GAAIwB,IACP,OAAQpuB,GAAY90B,KAAK8N,IAAIuD,EAAK,GAAGyjB,IAEvC,KAAK4sB,GAAIyB,IACP,OAAQruB,GAAY90B,KAAK4N,IAAIyD,EAAK,GAAGyjB,IAEvC,KAAK4sB,GAAI0B,KACP,OAAe,IAAX5tD,EACMs/B,GAAY90B,KAAK6Q,MAAMQ,EAAK,GAAGyjB,GAAUzjB,EAAK,GAAGyjB,IAEnDA,GAAY90B,KAAKgJ,KAAKqI,EAAK,GAAGyjB,IAExC,KAAK4sB,GAAI2B,KACP,OAAQvuB,GAAY90B,KAAK8Q,KAAKO,EAAK,GAAGyjB,IAExC,QACE,MAAM,IAAI53B,MAAO,gCAA+BqoD,KAGtD,CAOA,SAASH,GAAuBhB,EAAYtvB,GAC1C,MAAMt/B,EAAS4uD,EAAW/yC,KAAK7b,OACzB6b,EAAO,IAAI5a,MAAMjB,GACvB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAC5Bqb,EAAKrb,GAAK8uD,GAAkBV,EAAW/yC,KAAKrb,GAAI8+B,GAElD,OAAQA,IACN,MAAM/2B,EAAQsT,EAAK,GAAGyjB,GACtB,IAAK,IAAI9+B,EAAI,EAAGA,EAAIR,EAAQQ,GAAK,EAC/B,GAAI+H,IAAUsT,EAAKrb,GAAG8+B,GACpB,OAAOzjB,EAAKrb,EAAI,GAAG8+B,GAGvB,OAAOzjB,EAAK7b,EAAS,GAAGs/B,EAAQ,CAEpC,CCpVA,SAAS0wB,GAAO1wB,GACd,OAAO,CACT,CAUO,SAAS2wB,GAAqBC,GACnC,MAAMC,EAAiBxE,KACjByE,EAAYC,GAAaH,EAAOC,GAChCG,EAAoBpB,KAC1B,OAAO,SAAUhL,EAASnxC,GAGxB,OAFAu9C,EAAkBtjD,WAAak3C,EAAQt7C,wBACvC0nD,EAAkBv9C,WAAaA,EACxBq9C,EAAUE,EACnB,CACF,CAUO,SAASC,GAA0BC,GACxC,MAAML,EAAiBxE,KACjB3rD,EAASwwD,EAAWxwD,OAKpBywD,EAAa,IAAIxvD,MAAMjB,GAC7B,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAC5BiwD,EAAWjwD,GAAKkwD,GAAWF,EAAWhwD,GAAI2vD,GAE5C,MAAMG,EAAoBpB,KAKpB7K,EAAS,IAAIpjD,MAAMjB,GAEzB,OAAO,SAAUkkD,EAASnxC,GACxBu9C,EAAkBtjD,WAAak3C,EAAQt7C,wBACvC0nD,EAAkBv9C,WAAaA,EAC/B,IAAK,IAAIvS,EAAI,EAAGA,EAAIR,IAAUQ,EAC5B6jD,EAAO7jD,GAAKiwD,EAAWjwD,GAAG8vD,GAE5B,OAAOjM,CACT,CACF,CAiBO,SAASgM,GAAaH,EAAO5wB,GAClC,MAAMt/B,EAASkwD,EAAMlwD,OAKf2wD,EAAgB,IAAI1vD,MAAMjB,GAEhC,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAAG,CAC/B,MAAMowD,EAAOV,EAAM1vD,GACbszB,EACJ,WAAY88B,EACRzB,GAAgByB,EAAK98B,OAAQy2B,GAAajrB,GAC1C0wB,GAKN,IAAI3L,EACJ,GAAIpjD,MAAMC,QAAQ0vD,EAAK1rC,OAAQ,CAC7B,MAAM2rC,EAAcD,EAAK1rC,MAAMllB,OAC/BqkD,EAAS,IAAIpjD,MAAM4vD,GACnB,IAAK,IAAIllD,EAAI,EAAGA,EAAIklD,IAAellD,EACjC04C,EAAO14C,GAAK+kD,GAAWE,EAAK1rC,MAAMvZ,GAAI2zB,EAE1C,MACE+kB,EAAS,CAACqM,GAAWE,EAAK1rC,MAAOoa,IAGnCqxB,EAAcnwD,GAAK,CAACszB,SAAQuwB,SAC9B,CAEA,OAAO,SAAU/kB,GAIf,MAAM+kB,EAAS,GAEf,IAAIyM,GAAc,EAClB,IAAK,IAAItwD,EAAI,EAAGA,EAAIR,IAAUQ,EAAG,CAC/B,MAAMuwD,EAAkBJ,EAAcnwD,GAAGszB,OACzC,GAAKi9B,EAAgBzxB,MAGjB4wB,EAAM1vD,GAAGwwD,OAAQF,GAArB,CAGAA,GAAc,EACd,IAAK,MAAMG,KAAkBN,EAAcnwD,GAAG6jD,OAAQ,CACpD,MAAMn/B,EAAQ+rC,EAAe3xB,GACxBpa,GAGLm/B,EAAOvgD,KAAKohB,EACd,CARA,CASF,CAEA,OAAOm/B,CACT,CACF,CAYO,SAASqM,GAAWQ,EAAW5xB,GACpC,MAAM6xB,EAAeC,GAAUF,EAAW,GAAI5xB,GACxC+xB,EAAiBC,GAAYJ,EAAW,GAAI5xB,GAC5CiyB,EAAeC,GAAUN,EAAW5xB,GACpCmyB,EAAgBC,GAAWR,EAAW5xB,GACtCqyB,EAAiBC,GAAgBV,EAAW,UAAW5xB,GAEvDpa,EAAQ,IAAI+9B,GAClB,OAAO,SAAU3jB,GACf,IAAIuyB,GAAQ,EACZ,GAAIV,EAAc,CAChB,MAAM3S,EAAO2S,EAAa7xB,GACtBkf,IACFqT,GAAQ,GAEV3sC,EAAMw6B,QAAQlB,EAChB,CACA,GAAI6S,EAAgB,CAClB,MAAM5hB,EAAS4hB,EAAe/xB,GAC1BmQ,IACFoiB,GAAQ,GAEV3sC,EAAM46B,UAAUrQ,EAClB,CACA,GAAI8hB,EAAc,CAChB,MAAM/V,EAAO+V,EAAajyB,GACtBkc,IACFqW,GAAQ,GAEV3sC,EAAM++B,QAAQzI,EAChB,CACA,GAAIiW,EAAe,CACjB,MAAM3yB,EAAQ2yB,EAAcnyB,GACxBR,IACF+yB,GAAQ,GAEV3sC,EAAMmjB,SAASvJ,EACjB,CAIA,OAHI6yB,GACFzsC,EAAMzV,UAAUkiD,EAAeryB,IAE7BuyB,EACK,KAEF3sC,CACT,CACF,CAYA,SAASksC,GAAUF,EAAWY,EAAQxyB,GACpC,MAAMyyB,EAAgBC,GACpBd,EACAY,EAAS,aACTxyB,GAEF,IAAKyyB,EACH,OAAO,KAGT,MAAMvT,EAAO,IAAI0D,GACjB,OAAO,SAAU5iB,GACf,MAAMI,EAAQqyB,EAAczyB,GAC5B,MAAc,SAAVI,EACK,MAET8e,EAAK4D,SAAS1iB,GACP8e,EACT,CACF,CAYA,SAAS8S,GAAYJ,EAAWY,EAAQxyB,GACtC,MAAM2yB,EAAgBL,GACpBV,EACAY,EAAS,eACTxyB,GAGIyyB,EAAgBC,GACpBd,EACAY,EAAS,eACTxyB,GAGF,IAAK2yB,IAAkBF,EACrB,OAAO,KAGT,MAAMG,EAAkBC,GACtBjB,EACAY,EAAS,kBACTxyB,GAGI8yB,EAAmBD,GACvBjB,EACAY,EAAS,mBACTxyB,GAGI+yB,EAAmBC,GACvBpB,EACAY,EAAS,mBACTxyB,GAGIizB,EAAyBX,GAC7BV,EACAY,EAAS,0BACTxyB,GAGIkzB,EAAqBZ,GACzBV,EACAY,EAAS,qBACTxyB,GAGImQ,EAAS,IAAI4S,GACnB,OAAO,SAAU/iB,GACf,GAAIyyB,EAAe,CACjB,MAAMryB,EAAQqyB,EAAczyB,GAC5B,GAAc,SAAVI,EACF,OAAO,KAET+P,EAAO2S,SAAS1iB,EAClB,CAMA,GAJIuyB,GACFxiB,EAAOuT,SAASiP,EAAc3yB,IAG5B4yB,EAAiB,CACnB,MAAMnR,EAAUmR,EAAgB5yB,GAChC,GAAgB,SAAZyhB,GAAkC,UAAZA,GAAmC,WAAZA,EAC/C,MAAM,IAAIr5C,MAAM,4CAElB+nC,EAAOmT,WAAW7B,EACpB,CAEA,GAAIqR,EAAkB,CACpB,MAAMpS,EAAWoS,EAAiB9yB,GAClC,GACe,UAAb0gB,GACa,UAAbA,GACa,UAAbA,EAEA,MAAM,IAAIt4C,MAAM,6CAElB+nC,EAAOqT,YAAY9C,EACrB,CAcA,OAZIqS,GACF5iB,EAAOiS,YAAY2Q,EAAiB/yB,IAGlCizB,GACF9iB,EAAOoT,kBAAkB0P,EAAuBjzB,IAG9CkzB,GACF/iB,EAAOsT,cAAcyP,EAAmBlzB,IAGnCmQ,CACT,CACF,CAWA,SAAS+hB,GAAUN,EAAW5xB,GAC5B,MAAMwyB,EAAS,QAMTW,EAAgBN,GAAgBjB,EAAWY,EAAS,QAASxyB,GACnE,IAAKmzB,EACH,OAAO,KAGT,MAAMtB,EAAeC,GAAUF,EAAWY,EAAQxyB,GAE5CozB,EAAyBtB,GAC7BF,EACAY,EAAS,cACTxyB,GAGI+xB,EAAiBC,GAAYJ,EAAWY,EAAQxyB,GAEhDqzB,EAA2BrB,GAC/BJ,EACAY,EAAS,cACTxyB,GAGIszB,EAAeT,GAAgBjB,EAAWY,EAAS,OAAQxyB,GAE3DuzB,EAAmBjB,GACvBV,EACAY,EAAS,YACTxyB,GAGIwzB,EAAkBlB,GACtBV,EACAY,EAAS,WACTxyB,GAGIyzB,EAAkBnB,GACtBV,EACAY,EAAS,WACTxyB,GAGI0zB,EAAmBC,GACvB/B,EACAY,EAAS,WACTxyB,GAGI4zB,EAAoBf,GACxBjB,EACAY,EAAS,YACTxyB,GAGI6zB,EAAiBvB,GAAgBV,EAAWY,EAAS,SAAUxyB,GAE/D8zB,EAAgBC,GAAkBnC,EAAWY,EAAS,QAASxyB,GAE/Dg0B,EAAyBL,GAC7B/B,EACAY,EAAS,mBACTxyB,GAGIi0B,EAAmB3B,GACvBV,EACAY,EAAS,WACTxyB,GAGIk0B,EAAgBrB,GAAgBjB,EAAWY,EAAS,QAASxyB,GAE7Dm0B,EAAkBtB,GACtBjB,EACAY,EAAS,UACTxyB,GAGIo0B,EAAmBvB,GACvBjB,EACAY,EAAS,WACTxyB,GAGIq0B,EAAkBrB,GACtBpB,EACAY,EAAS,UACTxyB,GAGIkc,EAAO,IAAI8L,GAAK,CAAC,GACvB,OAAO,SAAUhoB,GAuCf,GAtCAkc,EAAKyI,QAAQwO,EAAcnzB,IAEvB6xB,GACF3V,EAAKkE,QAAQyR,EAAa7xB,IAGxBozB,GACFlX,EAAK2O,kBAAkBuI,EAAuBpzB,IAG5C+xB,GACF7V,EAAKsE,UAAUuR,EAAe/xB,IAG5BqzB,GACFnX,EAAK4O,oBAAoBuI,EAAyBrzB,IAGhDszB,GACFpX,EAAKkO,QAAQkJ,EAAatzB,IAGxBuzB,GACFrX,EAAKmO,YAAYkJ,EAAiBvzB,IAGhCwzB,GACFtX,EAAKoO,WAAWkJ,EAAgBxzB,IAG9ByzB,GACFvX,EAAKqO,WAAWkJ,EAAgBzzB,IAG9B0zB,GACFxX,EAAKiO,YAAYuJ,EAAiB1zB,IAGhC4zB,EAAmB,CACrB,MAAM/K,EAAY+K,EAAkB5zB,GACpC,GAAkB,UAAd6oB,GAAuC,SAAdA,EAC3B,MAAM,IAAIzgD,MAAM,6CAElB8zC,EAAKsO,aAAa3B,EACpB,CAkBA,GAhBIgL,GACF3X,EAAKuO,UAAUoJ,EAAe7zB,IAG5B8zB,GACF5X,EAAKvC,SAASma,EAAc9zB,IAG1Bg0B,GACF9X,EAAKxC,kBAAkBsa,EAAuBh0B,IAG5Ci0B,GACF/X,EAAKjrB,YAAYgjC,EAAiBj0B,IAGhCk0B,EAAe,CACjB,MAAM/L,EAAY+L,EAAcl0B,GAChC,GACgB,SAAdmoB,GACc,WAAdA,GACc,UAAdA,GACc,QAAdA,GACc,UAAdA,EAEA,MAAM,IAAI//C,MACR,8DAGJ8zC,EAAKwO,aAAavC,EACpB,CAEA,GAAIgM,EAAiB,CACnB,MAAM9L,EAAU8L,EAAgBn0B,GAChC,GAAgB,SAAZqoB,GAAkC,UAAZA,GAAmC,WAAZA,EAC/C,MAAM,IAAIjgD,MAAM,oDAElB8zC,EAAKyO,WAAWtC,EAClB,CAEA,GAAI+L,EAAkB,CACpB,MAAM3L,EAAe2L,EAAiBp0B,GACtC,GACmB,WAAjByoB,GACiB,QAAjBA,GACiB,WAAjBA,GACiB,eAAjBA,GACiB,YAAjBA,EAEA,MAAM,IAAIrgD,MACR,0EAGJ8zC,EAAK0O,gBAAgBnC,EACvB,CAMA,OAJI4L,GACFnY,EAAK6O,WAAWsJ,EAAgBr0B,IAG3Bkc,CACT,CACF,CAWA,SAASkW,GAAWR,EAAW5xB,GAC7B,MAAI,aAAc4xB,EACT0C,GAAU1C,EAAW5xB,GAG1B,iBAAkB4xB,EACb2C,GAAW3C,EAAW5xB,GAG3B,kBAAmB4xB,EACd4C,GAAY5C,EAAW5xB,GAGzB,IACT,CAOA,SAASs0B,GAAU1C,EAAW5xB,GAC5B,MAAMwyB,EAAS,QAGTiC,EAAUjC,EAAS,MACnB1qB,EAAM4sB,GAAc9C,EAAU6C,GAAUA,GAGxCE,EAAiBC,GACrBhD,EACAY,EAAS,SACTxyB,GAGI8zB,EAAgBC,GAAkBnC,EAAWY,EAAS,QAASxyB,GAE/D60B,EAAkBvC,GACtBV,EACAY,EAAS,UACTxyB,GAGI80B,EAAuBF,GAC3BhD,EACAY,EAAS,eACTxyB,GAGIi0B,EAAmB3B,GACvBV,EACAY,EAAS,WACTxyB,GAGIg0B,EAAyBL,GAC7B/B,EACAY,EAAS,mBACTxyB,GAIIgnB,EAAe+N,GAAmBnD,EAAWY,EAAS,iBACtDtL,EAAe8N,GACnBpD,EACAY,EAAS,kBAELpL,EAAe4N,GACnBpD,EACAY,EAAS,kBAELpyB,EAAQ60B,GAAkBrD,EAAWY,EAAS,SAC9CjqB,EAAc2sB,GAAetD,EAAWY,EAAS,gBACjDt7C,EAASi+C,GAAoBvD,EAAWY,EAAS,UACjD/K,EAAesN,GAAmBnD,EAAWY,EAAS,iBACtDp4C,EAAQg7C,GAAexD,EAAWY,EAAS,SAC3Cn4C,EAAS+6C,GAAexD,EAAWY,EAAS,UAC5Cj6C,EAAO88C,GAAazD,EAAWY,EAAS,QACxC1Z,EAAgBwc,GAAsB1D,EAAWY,EAAS,aAE1D+C,EAAO,IAAI3O,GAAK,CACpB9e,MACAkf,eACAE,eACAE,eACAhnB,QACAmI,cACArxB,SACAuwC,eACAptC,SACAD,QACA7B,OACAugC,kBAGF,OAAO,SAAU9Y,GAwBf,OAvBI60B,GACFU,EAAKtlD,WAAW4kD,EAAgB70B,IAG9B80B,GACFS,EAAK9b,gBAAgBqb,EAAqB90B,IAGxCi0B,GACFsB,EAAKtkC,YAAYgjC,EAAiBj0B,IAGhCg0B,GACFuB,EAAK7b,kBAAkBsa,EAAuBh0B,IAG5C8zB,GACFyB,EAAK5b,SAASma,EAAc9zB,IAG1B20B,GACFY,EAAK1N,UAAU8M,EAAe30B,IAEzBu1B,CACT,CACF,CAOA,SAAShB,GAAW3C,EAAW5xB,GAC7B,MAAMwyB,EAAS,SAGTgD,EAAahD,EAAS,SACtBnT,EAASoW,GAAc7D,EAAU4D,GAAaA,GAG9C3D,EAAeC,GAAUF,EAAWY,EAAQxyB,GAC5C+xB,EAAiBC,GAAYJ,EAAWY,EAAQxyB,GAChD8zB,EAAgBC,GAAkBnC,EAAWY,EAAS,QAASxyB,GAC/D80B,EAAuBF,GAC3BhD,EACAY,EAAS,eACTxyB,GAEIi0B,EAAmB3B,GACvBV,EACAY,EAAS,WACTxyB,GAEIg0B,EAAyBL,GAC7B/B,EACAY,EAAS,mBACTxyB,GAIItkB,EAAS05C,GAAexD,EAAWY,EAAS,UAC5CjT,EAAU6V,GAAexD,EAAWY,EAAS,WAC7C/S,EAAU2V,GAAexD,EAAWY,EAAS,WAC7Cx3C,EAAQo6C,GAAexD,EAAWY,EAAS,SAC3C1Z,EAAgBwc,GACpB1D,EACAY,EAAS,kBAGLkD,EAAQ,IAAI3W,GAAa,CAC7BM,SACA3jC,SACA6jC,UACAE,UACAzkC,QACA89B,kBAGF,OAAO,SAAU9Y,GAoBf,OAnBI6xB,GACF6D,EAAMtV,QAAQyR,EAAa7xB,IAEzB+xB,GACF2D,EAAMlV,UAAUuR,EAAe/xB,IAE7B80B,GACFY,EAAMjc,gBAAgBqb,EAAqB90B,IAEzCi0B,GACFyB,EAAMzkC,YAAYgjC,EAAiBj0B,IAEjCg0B,GACF0B,EAAMhc,kBAAkBsa,EAAuBh0B,IAE7C8zB,GACF4B,EAAM/b,SAASma,EAAc9zB,IAGxB01B,CACT,CACF,CAOA,SAASlB,GAAY5C,EAAW5xB,GAC9B,MAAMwyB,EAAS,UAGTX,EAAeC,GAAUF,EAAWY,EAAQxyB,GAC5C+xB,EAAiBC,GAAYJ,EAAWY,EAAQxyB,GAChD21B,EAAiBrD,GAAgBV,EAAWY,EAAS,SAAUxyB,GAC/D8zB,EAAgBC,GAAkBnC,EAAWY,EAAS,QAASxyB,GAC/D80B,EAAuBF,GAC3BhD,EACAY,EAAS,eACTxyB,GAEIi0B,EAAmB3B,GACvBV,EACAY,EAAS,WACTxyB,GAEIg0B,EAAyBL,GAC7B/B,EACAY,EAAS,mBACTxyB,GAII8Y,EAAgBwc,GACpB1D,EACAY,EAAS,kBAGLoD,EAAS,IAAIC,GAAO,CACxBn6C,OAAQ,EACRo9B,kBAGF,OAAO,SAAU9Y,GAuBf,OAtBI21B,GACFC,EAAOjT,UAAUgT,EAAe31B,IAE9B6xB,GACF+D,EAAOxV,QAAQyR,EAAa7xB,IAE1B+xB,GACF6D,EAAOpV,UAAUuR,EAAe/xB,IAE9B80B,GACFc,EAAOnc,gBAAgBqb,EAAqB90B,IAE1Ci0B,GACF2B,EAAO3kC,YAAYgjC,EAAiBj0B,IAElCg0B,GACF4B,EAAOlc,kBAAkBsa,EAAuBh0B,IAE9C8zB,GACF8B,EAAOjc,SAASma,EAAc9zB,IAGzB41B,CACT,CACF,CAQA,SAAStD,GAAgBV,EAAWpB,EAAMxwB,GACxC,KAAMwwB,KAAQoB,GACZ,OAEF,MAAMd,EAAYjB,GAAgB+B,EAAUpB,GAAOtF,GAAYlrB,GAC/D,OAAO,SAAUA,GACf,OAAOy1B,GAAc3E,EAAU9wB,GAAUwwB,EAC3C,CACF,CAQA,SAASqC,GAAgBjB,EAAWpB,EAAMxwB,GACxC,KAAMwwB,KAAQoB,GACZ,OAAO,KAET,MAAMd,EAAYjB,GAAgB+B,EAAUpB,GAAOrF,GAAYnrB,GAC/D,OAAO,SAAUA,GACf,OAAO00B,GAAc5D,EAAU9wB,GAAUwwB,EAC3C,CACF,CAQA,SAASmD,GAAiB/B,EAAWpB,EAAMxwB,GACzC,KAAMwwB,KAAQoB,GACZ,OAAO,KAET,MAAMd,EAAYjB,GAAgB+B,EAAUpB,GAAOvF,GAAajrB,GAChE,OAAO,SAAUA,GACf,MAAM/2B,EAAQ6nD,EAAU9wB,GACxB,GAAqB,mBAAV/2B,EACT,MAAM,IAAIb,MAAO,0BAAyBooD,KAE5C,OAAOvnD,CACT,CACF,CAQA,SAASypD,GAAmBd,EAAWpB,EAAMxwB,GAC3C,KAAMwwB,KAAQoB,GACZ,OAAO,KAET,MAAMd,EAAYjB,GAChB+B,EAAUpB,GACVpF,GAAYD,GACZnrB,GAEF,OAAO,SAAUA,GACf,OAAO81B,GAAiBhF,EAAU9wB,GAAUwwB,EAC9C,CACF,CAQA,SAASwC,GAAqBpB,EAAWpB,EAAMxwB,GAC7C,KAAMwwB,KAAQoB,GACZ,OAAO,KAET,MAAMd,EAAYjB,GAAgB+B,EAAUpB,GAAOnF,GAAiBrrB,GACpE,OAAO,SAAUA,GACf,OAAO+1B,GAAmBjF,EAAU9wB,GAAUwwB,EAChD,CACF,CAQA,SAASoE,GAAoBhD,EAAWpB,EAAMxwB,GAC5C,KAAMwwB,KAAQoB,GACZ,OAAO,KAET,MAAMd,EAAYjB,GAAgB+B,EAAUpB,GAAOnF,GAAiBrrB,GACpE,OAAO,SAAUA,GACf,MAAMzwB,EAAQwmD,GAAmBjF,EAAU9wB,GAAUwwB,GACrD,GAAqB,IAAjBjhD,EAAM7O,OACR,MAAM,IAAI0H,MAAO,4BAA2BooD,KAE9C,OAAOjhD,CACT,CACF,CAQA,SAASwkD,GAAkBnC,EAAWpB,EAAMxwB,GAC1C,KAAMwwB,KAAQoB,GACZ,OAAO,KAET,MAAMd,EAAYjB,GAChB+B,EAAUpB,GACVnF,GAAkBH,GAClBlrB,GAEF,OAAO,SAAUA,GACf,OAAOg2B,GAAgBlF,EAAU9wB,GAAUwwB,EAC7C,CACF,CAOA,SAAS4E,GAAexD,EAAWjuD,GACjC,MAAMsF,EAAQ2oD,EAAUjuD,GACxB,QAAc2B,IAAV2D,EAAJ,CAGA,GAAqB,kBAAVA,EACT,MAAM,IAAIb,MAAO,yBAAwBzE,KAE3C,OAAOsF,CAJP,CAKF,CAOA,SAASosD,GAAazD,EAAWjuD,GAC/B,MAAM8oD,EAAUmF,EAAUjuD,GAC1B,QAAgB2B,IAAZmnD,EAAJ,CAGA,GAAuB,kBAAZA,EACT,OAAOha,GAAOga,GAEhB,IAAK9qD,MAAMC,QAAQ6qD,GACjB,MAAM,IAAIrkD,MAAO,uCAAsCzE,KAEzD,GACqB,IAAnB8oD,EAAQ/rD,QACc,kBAAf+rD,EAAQ,IACO,kBAAfA,EAAQ,GAEf,MAAM,IAAIrkD,MAAO,uCAAsCzE,KAEzD,OAAO8oD,CAdP,CAeF,CAOA,SAASyI,GAAetD,EAAWjuD,GACjC,MAAM8oD,EAAUmF,EAAUjuD,GAC1B,QAAgB2B,IAAZmnD,EAAJ,CAGA,GAAuB,kBAAZA,EACT,MAAM,IAAIrkD,MAAO,yBAAwBzE,KAE3C,OAAO8oD,CAJP,CAKF,CAOA,SAASsI,GAAmBnD,EAAWjuD,GACrC,MAAM8oD,EAAUmF,EAAUjuD,GAC1B,QAAgB2B,IAAZmnD,EAAJ,CAGA,GACc,gBAAZA,GACY,iBAAZA,GACY,aAAZA,GACY,cAAZA,EAEA,MAAM,IAAIrkD,MACP,kEAAiEzE,KAGtE,OAAO8oD,CAXP,CAYF,CAOA,SAASuI,GAAwBpD,EAAWjuD,GAC1C,MAAM8oD,EAAUmF,EAAUjuD,GAC1B,QAAgB2B,IAAZmnD,EAAJ,CAGA,GAAgB,WAAZA,GAAoC,aAAZA,EAC1B,MAAM,IAAIrkD,MAAO,mCAAkCzE,KAErD,OAAO8oD,CAJP,CAKF,CAOA,SAAS0I,GAAoBvD,EAAWjuD,GACtC,MAAM8oD,EAAUmF,EAAUjuD,GAC1B,QAAgB2B,IAAZmnD,EAGJ,OAAOsJ,GAAmBtJ,EAAS9oD,EACrC,CAOA,SAAS2xD,GAAsB1D,EAAWjuD,GACxC,MAAM8oD,EAAUmF,EAAUjuD,GAC1B,QAAgB2B,IAAZmnD,EAAJ,CAGA,GAAuB,kBAAZA,EACT,MAAM,IAAIrkD,MAAO,yBAAwBzE,KAE3C,GAAgB,cAAZ8oD,GAAuC,aAAZA,GAAsC,SAAZA,EACvD,MAAM,IAAIrkD,MAAO,6CAA4CzE,KAE/D,OAAO8oD,CAPP,CAQF,CAOA,SAASwI,GAAkBrD,EAAWjuD,GACpC,MAAM8oD,EAAUmF,EAAUjuD,GAC1B,QAAgB2B,IAAZmnD,EAGJ,OAAOqJ,GAAiBrJ,EAAS9oD,EACnC,CAOA,SAASoyD,GAAmB9sD,EAAOtF,GACjC,IAAKhC,MAAMC,QAAQqH,GACjB,MAAM,IAAIb,MAAO,yBAAwBzE,KAE3C,MAAMjD,EAASuI,EAAMvI,OACrB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAC5B,GAAwB,kBAAb+H,EAAM/H,GACf,MAAM,IAAIkH,MAAO,oCAAmCzE,KAGxD,OAAOsF,CACT,CAOA,SAASyrD,GAAczrD,EAAOtF,GAC5B,GAAqB,kBAAVsF,EACT,MAAM,IAAIb,MAAO,yBAAwBzE,KAE3C,OAAOsF,CACT,CAOA,SAASwsD,GAAcxsD,EAAOtF,GAC5B,GAAqB,kBAAVsF,EACT,MAAM,IAAIb,MAAO,yBAAwBzE,KAE3C,OAAOsF,CACT,CAOA,SAAS6sD,GAAiB7sD,EAAOtF,GAC/B,GAAqB,kBAAVsF,EACT,OAAOA,EAET,MAAMsG,EAAQwmD,GAAmB9sD,EAAOtF,GAClCjD,EAAS6O,EAAM7O,OACrB,GAAIA,EAAS,GAAKA,EAAS,EACzB,MAAM,IAAI0H,MAAO,2CAA0CzE,KAE7D,OAAO4L,CACT,CAOA,SAASymD,GAAgB/sD,EAAOtF,GAC9B,GAAqB,kBAAVsF,EACT,OAAOA,EAET,MAAMsP,EAAOw9C,GAAmB9sD,EAAOtF,GACvC,GAAoB,IAAhB4U,EAAK7X,OACP,MAAM,IAAI0H,MAAO,wCAAuCzE,KAE1D,OAAO4U,CACT,CC9nCA,MAAM09C,GAAW,CACfC,aAAc,eAehB,MAAMC,WAAwBx7B,GAI5Bt7B,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/B,MAAMqtB,EAAcp1B,OAAO6D,OAAO,CAAC,EAAGkE,UAE/BqtB,EAAYhV,aACZgV,EAAYw7B,oBACZx7B,EAAYy7B,4BACZz7B,EAAY07B,uBACnBxyD,MAAM82B,GAMNv8B,KAAKk4D,gBACmBjxD,IAAtBiI,EAAQipD,WAA0BjpD,EAAQipD,UAM5Cn4D,KAAKo4D,mBACsBnxD,IAAzBiI,EAAQ6oD,aAA6B7oD,EAAQ6oD,aAAe,IAO9D/3D,KAAKq4D,OAAS,KAOdr4D,KAAKs4D,oBAAiBrxD,EAEtBjH,KAAKu4D,SAASrpD,EAAQqY,OAMtBvnB,KAAKw4D,2BAC8BvxD,IAAjCiI,EAAQ8oD,sBACJ9oD,EAAQ8oD,qBAOdh4D,KAAKy4D,6BACgCxxD,IAAnCiI,EAAQ+oD,wBACJ/oD,EAAQ+oD,sBAEhB,CAKAS,YAAAA,GACE,OAAO14D,KAAKk4D,UACd,CAgBA76B,WAAAA,CAAYC,GACV,OAAO73B,MAAM43B,YAAYC,EAC3B,CAKAq7B,eAAAA,GACE,OAAO34D,KAAKo4D,aACd,CAMAQ,cAAAA,GACE,OACE54D,KAAK2K,IAAIitD,GAASC,aAEtB,CAQAgB,QAAAA,GACE,OAAO74D,KAAKq4D,MACd,CAOAS,gBAAAA,GACE,OAAO94D,KAAKs4D,cACd,CAMAS,uBAAAA,GACE,OAAO/4D,KAAKw4D,qBACd,CAMAQ,yBAAAA,GACE,OAAOh5D,KAAKy4D,uBACd,CAMAQ,eAAAA,CAAgBr7B,GACTA,EAAWs7B,gBACdt7B,EAAWs7B,cAAgB,IAAIC,GAAM,IAErBn5D,KAAKw+B,cAAey6B,gBAAgBr7B,EACxD,CAMAw7B,cAAAA,CAAeC,GACbr5D,KAAKwL,IAAIosD,GAASC,aAAcwB,EAClC,CAuBAd,QAAAA,CAAShxC,GACPvnB,KAAKq4D,OAASiB,GAAY/xC,GAC1BvnB,KAAKs4D,eACO,OAAV/wC,OAAiBtgB,EAAYsyD,GAAgBv5D,KAAKq4D,QACpDr4D,KAAKwJ,SACP,EAUF,SAAS8vD,GAAY/xC,GACnB,QAActgB,IAAVsgB,EACF,OAAOq/B,GAET,IAAKr/B,EACH,OAAO,KAET,GAAqB,oBAAVA,EACT,OAAOA,EAET,GAAIA,aAAiB+9B,GACnB,OAAO/9B,EAET,IAAKjkB,MAAMC,QAAQgkB,GACjB,OAAOqrC,GAA0B,CAACrrC,IAEpC,GAAqB,IAAjBA,EAAMllB,OACR,MAAO,GAGT,MAAMA,EAASklB,EAAMllB,OACfmqB,EAAQjF,EAAM,GAEpB,GAAIiF,aAAiB84B,GAAO,CAI1B,MAAMoB,EAAS,IAAIpjD,MAAMjB,GACzB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAAG,CAC/B,MAAMC,EAAYykB,EAAM1kB,GACxB,KAAMC,aAAqBwiD,IACzB,MAAM,IAAIv7C,MAAM,sCAElB28C,EAAO7jD,GAAKC,CACd,CACA,OAAO4jD,CACT,CAEA,GAAI,UAAWl6B,EAAO,CAIpB,MAAM+lC,EAAQ,IAAIjvD,MAAMjB,GACxB,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,IAAUQ,EAAG,CAC/B,MAAMC,EAAYykB,EAAM1kB,GACxB,KAAM,UAAWC,GACf,MAAM,IAAIiH,MAAM,kDAElBwoD,EAAM1vD,GAAKC,CACb,CACA,OAAOwvD,GAAqBC,EAC9B,CAEA,MAAMM,EACwDtrC,EAC9D,OAAOqrC,GAA0BC,EACnC,CAEA,UChVA,MAAM2G,GAAc,CAClBC,eAAgB,EAChBC,WAAY,EACZC,OAAQ,EACRC,WAAY,EACZC,OAAQ,EACRC,WAAY,EACZC,WAAY,EACZC,aAAc,EACdC,KAAM,EACNC,gBAAiB,EACjBC,eAAgB,GAChBC,iBAAkB,GAClBC,OAAQ,IAMGC,GAAkB,CAACd,GAAYS,MAK/BM,GAAoB,CAACf,GAAYa,QAKjCG,GAAuB,CAAChB,GAAYE,YAKpCe,GAAuB,CAACjB,GAAYI,YAEjD,UCjCA,MAAMc,GASJC,UAAAA,CAAWhiC,EAAU4tB,EAASZ,EAAUE,GAAuB,CAO/D+U,YAAAA,CAAajiC,GAAW,CAOxB4/B,QAAAA,CAAShxC,GAAQ,CAMjBszC,UAAAA,CAAWC,EAAgBvU,GAAU,CAMrCwU,WAAAA,CAAYxU,EAASh/B,GAAQ,CAM7ByzC,sBAAAA,CAAuBC,EAA4B1U,GAAU,CAM7D2U,cAAAA,CAAeC,EAAoB5U,GAAU,CAM7C6U,mBAAAA,CAAoBC,EAAyB9U,GAAU,CAMvD+U,cAAAA,CAAeC,EAAoBhV,GAAU,CAM7CiV,gBAAAA,CAAiBC,EAAsBlV,GAAU,CAMjDmV,SAAAA,CAAUC,EAAepV,GAAU,CAMnCqV,WAAAA,CAAYC,EAAiBtV,GAAU,CAMvCuV,QAAAA,CAASnjC,EAAU4tB,GAAU,CAM7BwV,kBAAAA,CAAmB7wB,EAAW0G,GAAc,CAM5CoqB,aAAAA,CAAcC,EAAYC,GAAyB,CAMnDC,YAAAA,CAAaC,EAAWF,GAAyB,EAGnD,UCpFA,MAAMG,WAAsB3B,GAO1B15D,WAAAA,CAAY+hB,EAAWd,EAAW7M,EAAYyyB,GAC5CpiC,QAMAzF,KAAK+iB,UAAYA,EAOjB/iB,KAAKiiB,UAAYA,EAMjBjiB,KAAK6nC,WAAaA,EAMlB7nC,KAAKs8D,aAAe,EAOpBt8D,KAAKoV,WAAaA,EAMlBpV,KAAKu8D,2BAA6B,KAMlCv8D,KAAKw8D,2BAA6B,KAMlCx8D,KAAKy8D,mBAAqB,KAM1Bz8D,KAAK08D,aAAe,GAMpB18D,KAAKiX,YAAc,GAMnBjX,KAAK28D,eAAiB,GAMtB38D,KAAK48D,yBAA2B,GAMhC58D,KAAKsQ,MAA+D,CAAC,CACvE,CAOAusD,eAAAA,CAAgBC,GACd,MAAMj1B,EAAa7nC,KAAK6nC,WACxB,OAAqB,GAAdA,EACHi1B,EACAA,EAAUhgC,KAAI,SAAUigC,GACtB,OAAOA,EAAOl1B,CAChB,GACN,CAQAm1B,0BAAAA,CAA2BpkD,EAAiBE,GAC1C,MAAMnI,EAAS3Q,KAAKi9D,uBACdC,EAAWl9D,KAAK28D,eAChB1lD,EAAcjX,KAAKiX,YACzB,IAAIkmD,EAAQlmD,EAAY5U,OACxB,IAAK,IAAIQ,EAAI,EAAG+D,EAAKgS,EAAgBvW,OAAQQ,EAAI+D,EAAI/D,GAAKiW,EACxDokD,EAAS,GAAKtkD,EAAgB/V,GAC9Bq6D,EAAS,GAAKtkD,EAAgB/V,EAAI,GAC9BmV,GAAmBrH,EAAQusD,KAC7BjmD,EAAYkmD,KAAWD,EAAS,GAChCjmD,EAAYkmD,KAAWD,EAAS,IAGpC,OAAOC,CACT,CAYAC,yBAAAA,CACExkD,EACAC,EACA5V,EACA6V,EACAukD,EACAC,GAEA,MAAMrmD,EAAcjX,KAAKiX,YACzB,IAAIkmD,EAAQlmD,EAAY5U,OACxB,MAAMsO,EAAS3Q,KAAKi9D,uBAChBK,IACFzkD,GAAUC,GAEZ,IAAIykD,EAAa3kD,EAAgBC,GAC7B2kD,EAAa5kD,EAAgBC,EAAS,GAC1C,MAAM4kD,EAAYz9D,KAAK28D,eACvB,IAEI95D,EAAG66D,EAASC,EAFZC,GAAU,EAGd,IAAK/6D,EAAIgW,EAASC,EAAQjW,EAAII,EAAKJ,GAAKiW,EACtC2kD,EAAU,GAAK7kD,EAAgB/V,GAC/B46D,EAAU,GAAK7kD,EAAgB/V,EAAI,GACnC86D,EAAUrlD,GAAuB3H,EAAQ8sD,GACrCE,IAAYD,GACVE,IACF3mD,EAAYkmD,KAAWI,EACvBtmD,EAAYkmD,KAAWK,EACvBI,GAAU,GAEZ3mD,EAAYkmD,KAAWM,EAAU,GACjCxmD,EAAYkmD,KAAWM,EAAU,IACxBE,IAAYnlD,GAAa7B,cAClCM,EAAYkmD,KAAWM,EAAU,GACjCxmD,EAAYkmD,KAAWM,EAAU,GACjCG,GAAU,GAEVA,GAAU,EAEZL,EAAaE,EAAU,GACvBD,EAAaC,EAAU,GACvBC,EAAUC,EAQZ,OAJKN,GAAUO,GAAY/6D,IAAMgW,EAASC,KACxC7B,EAAYkmD,KAAWI,EACvBtmD,EAAYkmD,KAAWK,GAElBL,CACT,CAUAU,sBAAAA,CAAuBjlD,EAAiBC,EAAQ0S,EAAMzS,EAAQglD,GAC5D,IAAK,IAAIj7D,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC7C,MAAMI,EAAMsoB,EAAK1oB,GACXk7D,EAAa/9D,KAAKo9D,0BACtBxkD,EACAC,EACA5V,EACA6V,GACA,GACA,GAEFglD,EAAY33D,KAAK43D,GACjBllD,EAAS5V,CACX,CACA,OAAO4V,CACT,CAQA8hD,UAAAA,CAAWhiC,EAAU4tB,EAASZ,EAAUE,GACtC7lD,KAAKg+D,cAAcrlC,EAAU4tB,GAE7B,MAAMtlD,EAAO03B,EAASvP,UAChBtQ,EAAS6f,EAASpO,YAClB0zC,EAAej+D,KAAKiX,YAAY5U,OAEtC,IAAIuW,EAAiBmlD,EAAYD,EAAaI,EAC1CrlD,EAEJ,OAAQ5X,GACN,IAAK,eACH2X,EAEI+f,EACA1I,6BACJiuC,EAAe,GACf,MAAMjxC,EAEF0L,EACAwlC,WACJtlD,EAAS,EACT,IAAK,IAAIhW,EAAI,EAAG+D,EAAKqmB,EAAM5qB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC9C,MAAMu7D,EAAS,GACfvlD,EAAS7Y,KAAK69D,uBACZjlD,EACAC,EACAoU,EAAMpqB,GACNiW,EACAslD,GAEFF,EAAa/3D,KAAKi4D,EACpB,CACAp+D,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBxE,OAClBoE,EACAC,EACAvlC,EACAgtB,EACA34B,KAEFhtB,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBxE,OAClBoE,EACAC,EACAvlC,EACAktB,GAAwBF,EACxB34B,KAEF,MACF,IAAK,UACL,IAAK,kBACH8wC,EAAc,GACdllD,EACU,WAAR3X,EAEM03B,EACA1I,6BACF0I,EAAS1O,qBACfpR,EAAS7Y,KAAK69D,uBACZjlD,EACA,EAEE+f,EACAxI,UACFrX,EACAglD,GAEF99D,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBxE,OAClBoE,EACAH,EACAnlC,EACAgtB,EACA54B,KAEF/sB,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBxE,OAClBoE,EACAH,EACAnlC,EACAktB,GAAwBF,EACxB54B,KAEF,MACF,IAAK,aACL,IAAK,SACHnU,EAAkB+f,EAAS1O,qBAC3B8zC,EAAa/9D,KAAKo9D,0BAChBxkD,EACA,EACAA,EAAgBvW,OAChByW,GACA,GACA,GAEF9Y,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBxE,OAClBoE,EACAF,EACAplC,EACAgtB,EACA74B,KAEF9sB,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBxE,OAClBoE,EACAF,EACAplC,EACAktB,GAAwBF,EACxB74B,KAEF,MACF,IAAK,aACHlU,EAAkB+f,EAAS1O,qBAC3B8zC,EAAa/9D,KAAKg9D,2BAA2BpkD,EAAiBE,GAE1DilD,EAAaE,IACfj+D,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBxE,OAClBoE,EACAF,EACAplC,EACAgtB,EACA74B,KAEF9sB,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBxE,OAClBoE,EACAF,EACAplC,EACAktB,GAAwBF,EACxB74B,MAGJ,MACF,IAAK,QACHlU,EAAkB+f,EAAS1O,qBAC3BjqB,KAAKiX,YAAY9Q,KAAKyS,EAAgB,GAAIA,EAAgB,IAC1DmlD,EAAa/9D,KAAKiX,YAAY5U,OAE9BrC,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBxE,OAClBoE,EACAF,EACAplC,EACAgtB,IAEF3lD,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBxE,OAClBoE,EACAF,EACAplC,EACAktB,GAAwBF,IAE1B,MACF,SAEF3lD,KAAKs+D,YAAY/X,EACnB,CAOAyX,aAAAA,CAAcrlC,EAAU4tB,GACtBvmD,KAAKu8D,2BAA6B,CAChC8B,GAAkB5E,eAClBlT,EACA,EACA5tB,GAEF34B,KAAK08D,aAAav2D,KAAKnG,KAAKu8D,4BAC5Bv8D,KAAKw8D,2BAA6B,CAChC6B,GAAkB5E,eAClBlT,EACA,EACA5tB,GAEF34B,KAAK48D,yBAAyBz2D,KAAKnG,KAAKw8D,2BAC1C,CAKA+B,MAAAA,GACE,MAAO,CACL7B,aAAc18D,KAAK08D,aACnBE,yBAA0B58D,KAAK48D,yBAC/B3lD,YAAajX,KAAKiX,YAEtB,CAKAunD,+BAAAA,GACE,MAAM5B,EAA2B58D,KAAK48D,yBAItC,IAAI/5D,EAFJ+5D,EAAyBrtC,UAGzB,MAAM3sB,EAAIg6D,EAAyBv6D,OACnC,IAAIo8D,EACAx9D,EACA+B,GAAS,EACb,IAAKH,EAAI,EAAGA,EAAID,IAAKC,EACnB47D,EAAc7B,EAAyB/5D,GACvC5B,EAA0Dw9D,EAAY,GAClEx9D,GAAQo9D,GAAkBrE,aAC5Bh3D,EAAQH,EACC5B,GAAQo9D,GAAkB5E,iBACnCgF,EAAY,GAAK57D,EACjBE,EAAgB/C,KAAK48D,yBAA0B55D,EAAOH,GACtDG,GAAS,EAGf,CAMA+4D,kBAAAA,CAAmB7wB,EAAW0G,GAC5B,MAAMthC,EAAQtQ,KAAKsQ,MACnB,GAAI46B,EAAW,CACb,MAAMwzB,EAAiBxzB,EAAUqY,WACjCjzC,EAAM46B,UAAYuQ,GAChBijB,GAAkC/hB,GAEtC,MACErsC,EAAM46B,eAAYjkC,EAEpB,GAAI2qC,EAAa,CACf,MAAM+sB,EAAmB/sB,EAAY2R,WACrCjzC,EAAMshC,YAAc6J,GAClBkjB,GAAsC1hB,IAExC,MAAM2hB,EAAqBhtB,EAAY+R,aACvCrzC,EAAM8yC,aACmBn8C,IAAvB23D,EAAmCA,EAAqBhiB,GAC1D,MAAMiiB,EAAsBjtB,EAAY4R,cACxClzC,EAAM+yC,SAAWwb,EACbA,EAAoB95D,QACpB83C,GACJ,MAAMiiB,EAA4BltB,EAAY6R,oBAC9CnzC,EAAMgzC,eAAiBwb,GAEnBhiB,GACJ,MAAMiiB,EAAsBntB,EAAY8R,cACxCpzC,EAAM+xC,cACoBp7C,IAAxB83D,EACIA,EACAhiB,GACN,MAAMiiB,EAAmBptB,EAAYl4B,WACrCpJ,EAAMuhC,eACiB5qC,IAArB+3D,EAAiCA,EAAmB3hB,GACtD,MAAM4hB,EAAwBrtB,EAAYgS,gBAC1CtzC,EAAMiyC,gBACsBt7C,IAA1Bg4D,EACIA,EACAjiB,GAEF1sC,EAAMuhC,UAAY7xC,KAAKs8D,eACzBt8D,KAAKs8D,aAAehsD,EAAMuhC,UAE1B7xC,KAAKy8D,mBAAqB,KAE9B,MACEnsD,EAAMshC,iBAAc3qC,EACpBqJ,EAAM8yC,aAAUn8C,EAChBqJ,EAAM+yC,SAAW,KACjB/yC,EAAMgzC,oBAAiBr8C,EACvBqJ,EAAM+xC,cAAWp7C,EACjBqJ,EAAMuhC,eAAY5qC,EAClBqJ,EAAMiyC,gBAAat7C,CAEvB,CAMAi4D,UAAAA,CAAW5uD,GACT,MAAM46B,EAAY56B,EAAM46B,UAElBovB,EAAkB,CAAC+D,GAAkBlE,eAAgBjvB,GAK3D,MAJyB,kBAAdA,GAETovB,EAAgBn0D,MAAK,GAEhBm0D,CACT,CAKA6E,WAAAA,CAAY7uD,GACVtQ,KAAK08D,aAAav2D,KAAKnG,KAAKo/D,aAAa9uD,GAC3C,CAMA8uD,YAAAA,CAAa9uD,GACX,MAAO,CACL+tD,GAAkBjE,iBAClB9pD,EAAMshC,YACNthC,EAAMuhC,UAAY7xC,KAAK6nC,WACvBv3B,EAAM8yC,QACN9yC,EAAM+xC,SACN/xC,EAAMiyC,WACNviD,KAAK68D,gBAAgBvsD,EAAM+yC,UAC3B/yC,EAAMgzC,eAAiBtjD,KAAK6nC,WAEhC,CAMAw3B,eAAAA,CAAgB/uD,EAAO4uD,GACrB,MAAMh0B,EAAY56B,EAAM46B,UACC,kBAAdA,GAA0B56B,EAAMgvD,kBAAoBp0B,SAC3CjkC,IAAdikC,GACFlrC,KAAK08D,aAAav2D,KAAK+4D,EAAWl6D,KAAKhF,KAAMsQ,IAE/CA,EAAMgvD,iBAAmBp0B,EAE7B,CAMAq0B,iBAAAA,CAAkBjvD,EAAO6uD,GACvB,MAAMvtB,EAActhC,EAAMshC,YACpBwR,EAAU9yC,EAAM8yC,QAChBC,EAAW/yC,EAAM+yC,SACjBC,EAAiBhzC,EAAMgzC,eACvBjB,EAAW/xC,EAAM+xC,SACjBxQ,EAAYvhC,EAAMuhC,UAClB0Q,EAAajyC,EAAMiyC,YAEvBjyC,EAAMkvD,oBAAsB5tB,GAC5BthC,EAAMmvD,gBAAkBrc,GACvBC,GAAY/yC,EAAMovD,kBAChBl8D,EAAO8M,EAAMovD,gBAAiBrc,IACjC/yC,EAAMqvD,uBAAyBrc,GAC/BhzC,EAAMsvD,iBAAmBvd,GACzB/xC,EAAMuvD,kBAAoBhuB,GAC1BvhC,EAAMwvD,mBAAqBvd,UAEPt7C,IAAhB2qC,GACFutB,EAAYn6D,KAAKhF,KAAMsQ,GAEzBA,EAAMkvD,mBAAqB5tB,EAC3BthC,EAAMmvD,eAAiBrc,EACvB9yC,EAAMovD,gBAAkBrc,EACxB/yC,EAAMqvD,sBAAwBrc,EAC9BhzC,EAAMsvD,gBAAkBvd,EACxB/xC,EAAMuvD,iBAAmBhuB,EACzBvhC,EAAMwvD,kBAAoBvd,EAE9B,CAKA+b,WAAAA,CAAY/X,GACVvmD,KAAKu8D,2BAA2B,GAAKv8D,KAAK08D,aAAar6D,OACvDrC,KAAKu8D,2BAA6B,KAClCv8D,KAAKw8D,2BAA2B,GAAKx8D,KAAK48D,yBAAyBv6D,OACnErC,KAAKw8D,2BAA6B,KAClC,MAAMuD,EAAyB,CAAC1B,GAAkBrE,aAAczT,GAChEvmD,KAAK08D,aAAav2D,KAAK45D,GACvB//D,KAAK48D,yBAAyBz2D,KAAK45D,EACrC,CASA9C,oBAAAA,GACE,IAAKj9D,KAAKy8D,qBACRz8D,KAAKy8D,mBAAqB3kD,GAAM9X,KAAKiiB,WACjCjiB,KAAKs8D,aAAe,GAAG,CACzB,MAAMvgD,EAAS/b,KAAKoV,YAAcpV,KAAKs8D,aAAe,GAAM,EAC5DzkD,GAAO7X,KAAKy8D,mBAAoB1gD,EAAO/b,KAAKy8D,mBAC9C,CAEF,OAAOz8D,KAAKy8D,kBACd,EAGF,UCpoBA,MAAMuD,WAA2B3D,GAO/Br7D,WAAAA,CAAY+hB,EAAWd,EAAW7M,EAAYyyB,GAC5CpiC,MAAMsd,EAAWd,EAAW7M,EAAYyyB,GAMxC7nC,KAAKynD,mBAAqB,KAM1BznD,KAAKsqC,OAAS,KAMdtqC,KAAKigE,sBAAmBh5D,EAMxBjH,KAAKkgE,cAAWj5D,EAMhBjH,KAAKmgE,cAAWl5D,EAMhBjH,KAAKogE,aAAUn5D,EAMfjH,KAAKg6C,cAAW/yC,EAMhBjH,KAAKqgE,cAAWp5D,EAMhBjH,KAAKsgE,cAAWr5D,EAMhBjH,KAAKi6C,qBAAkBhzC,EAMvBjH,KAAKm6C,eAAYlzC,EAMjBjH,KAAKo6C,YAASnzC,EAMdjH,KAAKglD,YAAS/9C,EAMdjH,KAAKw6C,oBAAiBvzC,EAOtBjH,KAAKugE,6BAA0Bt5D,CACjC,CAMAy0D,SAAAA,CAAUC,EAAepV,GACvB,IAAKvmD,KAAKsqC,OACR,OAEFtqC,KAAKg+D,cAAcrC,EAAepV,GAClC,MAAM3tC,EAAkB+iD,EAAc1xC,qBAChCnR,EAAS6iD,EAAcpxC,YACvBi2C,EAAUxgE,KAAKiX,YAAY5U,OAC3B86D,EAAQn9D,KAAKg9D,2BAA2BpkD,EAAiBE,GAC/D9Y,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBtE,WAClByG,EACArD,EACAn9D,KAAKsqC,OAELtqC,KAAKkgE,SAAWlgE,KAAKigE,iBACrBjgE,KAAKmgE,SAAWngE,KAAKigE,iBACrBpzD,KAAKmC,KAAKhP,KAAKogE,QAAUpgE,KAAKigE,kBAC9BjgE,KAAKg6C,SACLh6C,KAAKqgE,SAAWrgE,KAAKigE,iBACrBjgE,KAAKsgE,SAAWtgE,KAAKigE,iBACrBjgE,KAAKi6C,gBACLj6C,KAAKm6C,UACL,CACGn6C,KAAKo6C,OAAO,GAAKp6C,KAAK6nC,WAAc7nC,KAAKigE,iBACzCjgE,KAAKo6C,OAAO,GAAKp6C,KAAK6nC,WAAc7nC,KAAKigE,kBAE5CpzD,KAAKmC,KAAKhP,KAAKglD,OAAShlD,KAAKigE,kBAC7BjgE,KAAKw6C,eACLx6C,KAAKugE,0BAEPvgE,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBtE,WAClByG,EACArD,EACAn9D,KAAKynD,mBAELznD,KAAKkgE,SACLlgE,KAAKmgE,SACLngE,KAAKogE,QACL,EACApgE,KAAKqgE,SACLrgE,KAAKsgE,SACLtgE,KAAKi6C,gBACLj6C,KAAKm6C,UACLn6C,KAAKo6C,OACLp6C,KAAKglD,OACLhlD,KAAKw6C,eACLx6C,KAAKugE,0BAEPvgE,KAAKs+D,YAAY/X,EACnB,CAMA+U,cAAAA,CAAeC,EAAoBhV,GACjC,IAAKvmD,KAAKsqC,OACR,OAEFtqC,KAAKg+D,cAAczC,EAAoBhV,GACvC,MAAM3tC,EAAkB2iD,EAAmBtxC,qBACrCnR,EAASyiD,EAAmBhxC,YAC5Bi2C,EAAUxgE,KAAKiX,YAAY5U,OAC3B86D,EAAQn9D,KAAKg9D,2BAA2BpkD,EAAiBE,GAC/D9Y,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBtE,WAClByG,EACArD,EACAn9D,KAAKsqC,OAELtqC,KAAKkgE,SAAWlgE,KAAKigE,iBACrBjgE,KAAKmgE,SAAWngE,KAAKigE,iBACrBpzD,KAAKmC,KAAKhP,KAAKogE,QAAUpgE,KAAKigE,kBAC9BjgE,KAAKg6C,SACLh6C,KAAKqgE,SAAWrgE,KAAKigE,iBACrBjgE,KAAKsgE,SAAWtgE,KAAKigE,iBACrBjgE,KAAKi6C,gBACLj6C,KAAKm6C,UACL,CACGn6C,KAAKo6C,OAAO,GAAKp6C,KAAK6nC,WAAc7nC,KAAKigE,iBACzCjgE,KAAKo6C,OAAO,GAAKp6C,KAAK6nC,WAAc7nC,KAAKigE,kBAE5CpzD,KAAKmC,KAAKhP,KAAKglD,OAAShlD,KAAKigE,kBAC7BjgE,KAAKw6C,eACLx6C,KAAKugE,0BAEPvgE,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBtE,WAClByG,EACArD,EACAn9D,KAAKynD,mBAELznD,KAAKkgE,SACLlgE,KAAKmgE,SACLngE,KAAKogE,QACL,EACApgE,KAAKqgE,SACLrgE,KAAKsgE,SACLtgE,KAAKi6C,gBACLj6C,KAAKm6C,UACLn6C,KAAKo6C,OACLp6C,KAAKglD,OACLhlD,KAAKw6C,eACLx6C,KAAKugE,0BAEPvgE,KAAKs+D,YAAY/X,EACnB,CAKAgY,MAAAA,GAgBE,OAfAv+D,KAAKw+D,kCAELx+D,KAAKkgE,cAAWj5D,EAChBjH,KAAKmgE,cAAWl5D,EAChBjH,KAAKynD,mBAAqB,KAC1BznD,KAAKsqC,OAAS,KACdtqC,KAAKigE,sBAAmBh5D,EACxBjH,KAAKogE,aAAUn5D,EACfjH,KAAKo6C,YAASnzC,EACdjH,KAAKg6C,cAAW/yC,EAChBjH,KAAKqgE,cAAWp5D,EAChBjH,KAAKsgE,cAAWr5D,EAChBjH,KAAKi6C,qBAAkBhzC,EACvBjH,KAAKm6C,eAAYlzC,EACjBjH,KAAKglD,YAAS/9C,EACPxB,MAAM84D,QACf,CAMAvC,aAAAA,CAAcC,EAAYwE,GACxB,MAAMh5C,EAASw0C,EAAWlhB,YACpB7gC,EAAO+hD,EAAW/nB,UAClB2D,EAASokB,EAAWvmB,YAC1B11C,KAAKigE,iBAAmBhE,EAAWhhB,cAAcj7C,KAAK6nC,YACtD7nC,KAAKkgE,SAAWz4C,EAAO,GACvBznB,KAAKmgE,SAAW14C,EAAO,GACvBznB,KAAKynD,mBAAqBwU,EAAWjhB,uBACrCh7C,KAAKsqC,OAAS2xB,EAAWxxB,SAASzqC,KAAK6nC,YACvC7nC,KAAKogE,QAAUlmD,EAAK,GACpBla,KAAKg6C,SAAWiiB,EAAWxrD,aAC3BzQ,KAAKqgE,SAAWxoB,EAAO,GACvB73C,KAAKsgE,SAAWzoB,EAAO,GACvB73C,KAAKi6C,gBAAkBgiB,EAAWthB,oBAClC36C,KAAKm6C,UAAY8hB,EAAWvoC,cAC5B1zB,KAAKo6C,OAAS6hB,EAAWnhB,gBACzB96C,KAAKglD,OAAS9qC,EAAK,GACnBla,KAAKw6C,eAAiByhB,EAAWphB,mBACjC76C,KAAKugE,wBAA0BE,CACjC,EAGF,UCpQA,MAAMC,WAAgCrE,GAOpCr7D,WAAAA,CAAY+hB,EAAWd,EAAW7M,EAAYyyB,GAC5CpiC,MAAMsd,EAAWd,EAAW7M,EAAYyyB,EAC1C,CAUA84B,oBAAAA,CAAqB/nD,EAAiBC,EAAQ5V,EAAK6V,GACjD,MAAM0nD,EAAUxgE,KAAKiX,YAAY5U,OAC3B86D,EAAQn9D,KAAKo9D,0BACjBxkD,EACAC,EACA5V,EACA6V,GACA,GACA,GAEI8nD,EAA0B,CAC9BvC,GAAkBnE,gBAClBsG,EACArD,GAIF,OAFAn9D,KAAK08D,aAAav2D,KAAKy6D,GACvB5gE,KAAK48D,yBAAyBz2D,KAAKy6D,GAC5B39D,CACT,CAMAi4D,cAAAA,CAAeC,EAAoB5U,GACjC,MAAMj2C,EAAQtQ,KAAKsQ,MACbshC,EAActhC,EAAMshC,YACpBC,EAAYvhC,EAAMuhC,UACxB,QAAoB5qC,IAAhB2qC,QAA2C3qC,IAAd4qC,EAC/B,OAEF7xC,KAAKu/D,kBAAkBjvD,EAAOtQ,KAAKm/D,aACnCn/D,KAAKg+D,cAAc7C,EAAoB5U,GACvCvmD,KAAK48D,yBAAyBz2D,KAC5B,CACEk4D,GAAkBjE,iBAClB9pD,EAAMshC,YACNthC,EAAMuhC,UACNvhC,EAAM8yC,QACN9yC,EAAM+xC,SACN/xC,EAAMiyC,WACN1F,GACAC,IAEF0d,IAEF,MAAM5hD,EAAkBuiD,EAAmBlxC,qBACrCnR,EAASqiD,EAAmB5wC,YAClCvqB,KAAK2gE,qBACH/nD,EACA,EACAA,EAAgBvW,OAChByW,GAEF9Y,KAAK48D,yBAAyBz2D,KAAKo0D,IACnCv6D,KAAKs+D,YAAY/X,EACnB,CAMA6U,mBAAAA,CAAoBC,EAAyB9U,GAC3C,MAAMj2C,EAAQtQ,KAAKsQ,MACbshC,EAActhC,EAAMshC,YACpBC,EAAYvhC,EAAMuhC,UACxB,QAAoB5qC,IAAhB2qC,QAA2C3qC,IAAd4qC,EAC/B,OAEF7xC,KAAKu/D,kBAAkBjvD,EAAOtQ,KAAKm/D,aACnCn/D,KAAKg+D,cAAc3C,EAAyB9U,GAC5CvmD,KAAK48D,yBAAyBz2D,KAC5B,CACEk4D,GAAkBjE,iBAClB9pD,EAAMshC,YACNthC,EAAMuhC,UACNvhC,EAAM8yC,QACN9yC,EAAM+xC,SACN/xC,EAAMiyC,WACN1F,GACAC,IAEF0d,IAEF,MAAMjvC,EAAO8vC,EAAwBlrC,UAC/BvX,EAAkByiD,EAAwBpxC,qBAC1CnR,EAASuiD,EAAwB9wC,YACvC,IAAI1R,EAAS,EACb,IAAK,IAAIhW,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAC1CgW,EAAS7Y,KAAK2gE,qBACZ/nD,EACAC,EACuB0S,EAAK1oB,GAC5BiW,GAGJ9Y,KAAK48D,yBAAyBz2D,KAAKo0D,IACnCv6D,KAAKs+D,YAAY/X,EACnB,CAKAgY,MAAAA,GACE,MAAMjuD,EAAQtQ,KAAKsQ,MASnB,YAPsBrJ,GAApBqJ,EAAMuwD,YACNvwD,EAAMuwD,YAAc7gE,KAAKiX,YAAY5U,QAErCrC,KAAK08D,aAAav2D,KAAKo0D,IAEzBv6D,KAAKw+D,kCACLx+D,KAAKsQ,MAAQ,KACN7K,MAAM84D,QACf,CAKAY,WAAAA,CAAY7uD,QAEYrJ,GAApBqJ,EAAMuwD,YACNvwD,EAAMuwD,YAAc7gE,KAAKiX,YAAY5U,SAErCrC,KAAK08D,aAAav2D,KAAKo0D,IACvBjqD,EAAMuwD,WAAa7gE,KAAKiX,YAAY5U,QAEtCiO,EAAMuwD,WAAa,EACnBp7D,MAAM05D,YAAY7uD,GAClBtQ,KAAK08D,aAAav2D,KAAKq0D,GACzB,EAGF,UCjJA,MAAMsG,WAA6BzE,GAOjCr7D,WAAAA,CAAY+hB,EAAWd,EAAW7M,EAAYyyB,GAC5CpiC,MAAMsd,EAAWd,EAAW7M,EAAYyyB,EAC1C,CAUAk5B,qBAAAA,CAAsBnoD,EAAiBC,EAAQ0S,EAAMzS,GACnD,MAAMxI,EAAQtQ,KAAKsQ,MACbuwC,OAA2B55C,IAApBqJ,EAAM46B,UACb4G,OAA+B7qC,IAAtBqJ,EAAMshC,YACfovB,EAAUz1C,EAAKlpB,OACrBrC,KAAK08D,aAAav2D,KAAKq0D,IACvBx6D,KAAK48D,yBAAyBz2D,KAAKq0D,IACnC,IAAK,IAAI33D,EAAI,EAAGA,EAAIm+D,IAAWn+D,EAAG,CAChC,MAAMI,EAAMsoB,EAAK1oB,GACX29D,EAAUxgE,KAAKiX,YAAY5U,OAC3B86D,EAAQn9D,KAAKo9D,0BACjBxkD,EACAC,EACA5V,EACA6V,GACA,GACCg5B,GAEG8uB,EAA0B,CAC9BvC,GAAkBnE,gBAClBsG,EACArD,GAEFn9D,KAAK08D,aAAav2D,KAAKy6D,GACvB5gE,KAAK48D,yBAAyBz2D,KAAKy6D,GAC/B9uB,IAGF9xC,KAAK08D,aAAav2D,KAAKs0D,IACvBz6D,KAAK48D,yBAAyBz2D,KAAKs0D,KAErC5hD,EAAS5V,CACX,CASA,OARI49C,IACF7gD,KAAK08D,aAAav2D,KAAKm0D,IACvBt6D,KAAK48D,yBAAyBz2D,KAAKm0D,KAEjCxoB,IACF9xC,KAAK08D,aAAav2D,KAAKo0D,IACvBv6D,KAAK48D,yBAAyBz2D,KAAKo0D,KAE9B1hD,CACT,CAMAgiD,UAAAA,CAAWC,EAAgBvU,GACzB,MAAMj2C,EAAQtQ,KAAKsQ,MACb46B,EAAY56B,EAAM46B,UAClB0G,EAActhC,EAAMshC,YAC1B,QAAkB3qC,IAAdikC,QAA2CjkC,IAAhB2qC,EAC7B,OAEF5xC,KAAKihE,uBACLjhE,KAAKg+D,cAAclD,EAAgBvU,QACXt/C,IAApBqJ,EAAM46B,WACRlrC,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBlE,eAClBxd,UAGsB11C,IAAtBqJ,EAAMshC,aACR5xC,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBjE,iBAClB9pD,EAAMshC,YACNthC,EAAMuhC,UACNvhC,EAAM8yC,QACN9yC,EAAM+xC,SACN/xC,EAAMiyC,WACN1F,GACAC,KAGJ,MAAMlkC,EAAkBkiD,EAAe7wC,qBACjCnR,EAASgiD,EAAevwC,YACxBi2C,EAAUxgE,KAAKiX,YAAY5U,OACjCrC,KAAKo9D,0BACHxkD,EACA,EACAA,EAAgBvW,OAChByW,GACA,GACA,GAEF,MAAMooD,EAAoB,CAAC7C,GAAkB1E,OAAQ6G,GACrDxgE,KAAK08D,aAAav2D,KAAKq0D,GAAsB0G,GAC7ClhE,KAAK48D,yBAAyBz2D,KAAKq0D,GAAsB0G,QACjCj6D,IAApBqJ,EAAM46B,YACRlrC,KAAK08D,aAAav2D,KAAKm0D,IACvBt6D,KAAK48D,yBAAyBz2D,KAAKm0D,UAEXrzD,IAAtBqJ,EAAMshC,cACR5xC,KAAK08D,aAAav2D,KAAKo0D,IACvBv6D,KAAK48D,yBAAyBz2D,KAAKo0D,KAErCv6D,KAAKs+D,YAAY/X,EACnB,CAMAqV,WAAAA,CAAYC,EAAiBtV,GAC3B,MAAMj2C,EAAQtQ,KAAKsQ,MACb46B,EAAY56B,EAAM46B,UAClB0G,EAActhC,EAAMshC,YAC1B,QAAkB3qC,IAAdikC,QAA2CjkC,IAAhB2qC,EAC7B,OAEF5xC,KAAKihE,uBACLjhE,KAAKg+D,cAAcnC,EAAiBtV,QACZt/C,IAApBqJ,EAAM46B,WACRlrC,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBlE,eAClBxd,UAGsB11C,IAAtBqJ,EAAMshC,aACR5xC,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBjE,iBAClB9pD,EAAMshC,YACNthC,EAAMuhC,UACNvhC,EAAM8yC,QACN9yC,EAAM+xC,SACN/xC,EAAMiyC,WACN1F,GACAC,KAGJ,MAAMvxB,EAAOswC,EAAgB1rC,UACvBvX,EAAkBijD,EAAgB5rC,6BAClCnX,EAAS+iD,EAAgBtxC,YAC/BvqB,KAAK+gE,sBACHnoD,EACA,EAC8B2S,EAC9BzS,GAEF9Y,KAAKs+D,YAAY/X,EACnB,CAMAiV,gBAAAA,CAAiBC,EAAsBlV,GACrC,MAAMj2C,EAAQtQ,KAAKsQ,MACb46B,EAAY56B,EAAM46B,UAClB0G,EAActhC,EAAMshC,YAC1B,QAAkB3qC,IAAdikC,QAA2CjkC,IAAhB2qC,EAC7B,OAEF5xC,KAAKihE,uBACLjhE,KAAKg+D,cAAcvC,EAAsBlV,QACjBt/C,IAApBqJ,EAAM46B,WACRlrC,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBlE,eAClBxd,UAGsB11C,IAAtBqJ,EAAMshC,aACR5xC,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBjE,iBAClB9pD,EAAMshC,YACNthC,EAAMuhC,UACNvhC,EAAM8yC,QACN9yC,EAAM+xC,SACN/xC,EAAMiyC,WACN1F,GACAC,KAGJ,MAAM7vB,EAAQwuC,EAAqB0C,WAC7BvlD,EAAkB6iD,EAAqBxrC,6BACvCnX,EAAS2iD,EAAqBlxC,YACpC,IAAI1R,EAAS,EACb,IAAK,IAAIhW,EAAI,EAAG+D,EAAKqmB,EAAM5qB,OAAQQ,EAAI+D,IAAM/D,EAC3CgW,EAAS7Y,KAAK+gE,sBACZnoD,EACAC,EACAoU,EAAMpqB,GACNiW,GAGJ9Y,KAAKs+D,YAAY/X,EACnB,CAKAgY,MAAAA,GACEv+D,KAAKw+D,kCACLx+D,KAAKsQ,MAAQ,KAKb,MAAMyS,EAAY/iB,KAAK+iB,UACvB,GAAkB,IAAdA,EAAiB,CACnB,MAAM9L,EAAcjX,KAAKiX,YACzB,IAAK,IAAIpU,EAAI,EAAG+D,EAAKqQ,EAAY5U,OAAQQ,EAAI+D,IAAM/D,EACjDoU,EAAYpU,GAAK6pB,GAAKzV,EAAYpU,GAAIkgB,EAE1C,CACA,OAAOtd,MAAM84D,QACf,CAKA0C,oBAAAA,GACE,MAAM3wD,EAAQtQ,KAAKsQ,MACb46B,EAAY56B,EAAM46B,eACNjkC,IAAdikC,GACFlrC,KAAKq/D,gBAAgB/uD,EAAOtQ,KAAKk/D,iBAETj4D,IAAtBqJ,EAAMshC,aACR5xC,KAAKu/D,kBAAkBjvD,EAAOtQ,KAAKm/D,YAEvC,EAGF,UCzPO,SAASgC,GAAUC,EAAaxoD,EAAiBC,EAAQ5V,EAAK6V,GACnE,MAAM+mC,EAAS,GACf,IAAIwhB,EAASxoD,EACTyoD,EAAS,EACTC,EAAe3oD,EAAgB7T,MAAM8T,EAAQ,GACjD,MAAOyoD,EAASF,GAAeC,EAASvoD,EAAS7V,EAAK,CACpD,MAAOgK,EAAIC,GAAMq0D,EAAax8D,OAAO,GAC/BoI,EAAKyL,EAAgByoD,EAASvoD,GAC9B1L,EAAKwL,EAAgByoD,EAASvoD,EAAS,GACvC0V,EAAgB3hB,KAAK8Q,MACxBxQ,EAAKF,IAAOE,EAAKF,IAAOG,EAAKF,IAAOE,EAAKF,IAG5C,GADAo0D,GAAU9yC,EACN8yC,GAAUF,EAAa,CACzB,MAAMhzD,GAAKgzD,EAAcE,EAAS9yC,GAAiBA,EAC7CzhB,EAAI0B,EAAKxB,EAAIE,EAAIiB,GACjBpB,EAAIyB,EAAKvB,EAAIE,EAAIgB,GACvBmzD,EAAap7D,KAAK4G,EAAGC,GACrB6yC,EAAO15C,KAAKo7D,GACZA,EAAe,CAACx0D,EAAGC,GACfs0D,GAAUF,IACZC,GAAUvoD,GAEZwoD,EAAS,CACX,MAAO,GAAIA,EAASF,EAClBG,EAAap7D,KACXyS,EAAgByoD,EAASvoD,GACzBF,EAAgByoD,EAASvoD,EAAS,IAEpCuoD,GAAUvoD,MACL,CACL,MAAM0oD,EAAUhzC,EAAgB8yC,EAC1Bv0D,EAAI0B,EAAKxB,EAAIE,EAAIq0D,EAAUhzC,GAC3BxhB,EAAIyB,EAAKvB,EAAIE,EAAIo0D,EAAUhzC,GACjC+yC,EAAap7D,KAAK4G,EAAGC,GACrB6yC,EAAO15C,KAAKo7D,GACZA,EAAe,CAACx0D,EAAGC,GACnBs0D,EAAS,EACTD,GAAUvoD,CACZ,CACF,CAIA,OAHIwoD,EAAS,GACXzhB,EAAO15C,KAAKo7D,GAEP1hB,CACT,CC3CO,SAAS4hB,GAAcnX,EAAU1xC,EAAiBC,EAAQ5V,EAAK6V,GACpE,IAKI4oD,EAAM7+D,EAAG8+D,EAAKC,EAAK30D,EAAIC,EAAI20D,EAAKC,EAAKC,EAAKC,EAL1CC,EAAappD,EACbqpD,EAAWrpD,EACXyoD,EAAS,EACTlzD,EAAI,EACJiN,EAAQxC,EAEZ,IAAKhW,EAAIgW,EAAQhW,EAAII,EAAKJ,GAAKiW,EAAQ,CACrC,MAAM3L,EAAKyL,EAAgB/V,GACrBuK,EAAKwL,EAAgB/V,EAAI,QACpBoE,IAAPgG,IACF80D,EAAM50D,EAAKF,EACX+0D,EAAM50D,EAAKF,EACX00D,EAAM/0D,KAAK8Q,KAAKokD,EAAMA,EAAMC,EAAMA,QACtB/6D,IAAR46D,IACFzzD,GAAKuzD,EACLD,EAAO70D,KAAK60D,MAAMG,EAAME,EAAMD,EAAME,IAAQL,EAAMC,IAC9CF,EAAOpX,IACLl8C,EAAIkzD,IACNA,EAASlzD,EACT6zD,EAAa5mD,EACb6mD,EAAWr/D,GAEbuL,EAAI,EACJiN,EAAQxY,EAAIiW,IAGhB6oD,EAAMC,EACNC,EAAME,EACND,EAAME,GAER/0D,EAAKE,EACLD,EAAKE,CACP,CAEA,OADAgB,GAAKwzD,EACExzD,EAAIkzD,EAAS,CAACjmD,EAAOxY,GAAK,CAACo/D,EAAYC,EAChD,CCpBO,MAAMC,GAAa,CACxB,KAAQ,EACR,OAAU,GACV,MAAS,EACT,IAAO,EACP,OAAU,GACV,QAAW,GACX,WAAc,GACd,YAAe,GACf,OAAU,GAGZ,MAAMC,WAA0B/F,GAO9Br7D,WAAAA,CAAY+hB,EAAWd,EAAW7M,EAAYyyB,GAC5CpiC,MAAMsd,EAAWd,EAAW7M,EAAYyyB,GAMxC7nC,KAAKqiE,QAAU,KAMfriE,KAAK8lD,MAAQ,GAMb9lD,KAAKsiE,aAAe,EAMpBtiE,KAAKuiE,aAAe,EAMpBviE,KAAKwiE,yBAAsBv7D,EAM3BjH,KAAKyiE,cAAgB,EAMrBziE,KAAK0iE,eAAiB,KAKtB1iE,KAAK2iE,WAAa,CAAC,EACnB3iE,KAAK2iE,WAAWhmB,IAAoB,CAACzR,UAAWyR,IAMhD38C,KAAK4iE,iBAAmB,KAKxB5iE,KAAK6iE,aAAe,CAAC,EAMrB7iE,KAAK8iE,WAA8D,CAAC,EAKpE9iE,KAAK+iE,WAAa,CAAC,EAMnB/iE,KAAKgjE,SAAW,GAMhBhjE,KAAKijE,SAAW,GAMhBjjE,KAAKkjE,WAAa,GAOlBljE,KAAKugE,6BAA0Bt5D,CACjC,CAKAs3D,MAAAA,GACE,MAAM7B,EAAej3D,MAAM84D,SAI3B,OAHA7B,EAAaqG,WAAa/iE,KAAK+iE,WAC/BrG,EAAaiG,WAAa3iE,KAAK2iE,WAC/BjG,EAAamG,aAAe7iE,KAAK6iE,aAC1BnG,CACT,CAMAZ,QAAAA,CAASnjC,EAAU4tB,GACjB,MAAM4c,EAAYnjE,KAAK0iE,eACjBU,EAAcpjE,KAAK4iE,iBACnBS,EAAYrjE,KAAK8iE,WACvB,GAAmB,KAAf9iE,KAAK8lD,QAAiBud,IAAeF,IAAcC,EACrD,OAGF,MAAMnsD,EAAcjX,KAAKiX,YACzB,IAAIjU,EAAQiU,EAAY5U,OAExB,MAAMihE,EAAe3qC,EAASvP,UAC9B,IAAIxQ,EAAkB,KAClBE,EAAS6f,EAASpO,YAEtB,GAC0B,SAAxB84C,EAAU7Y,WACO,cAAhB8Y,GACiB,mBAAhBA,GACgB,WAAhBA,GACgB,gBAAhBA,EAsEG,CACL,IAAIC,EAAiBF,EAAU3Y,SAAW,KAAO,GACjD,OAAQ4Y,GACN,IAAK,QACL,IAAK,aACH1qD,EAEI+f,EACA1O,qBACJ,MACF,IAAK,aACHrR,EAEI+f,EACA6qC,kBACJ,MACF,IAAK,SACH5qD,EAEI+f,EACA/e,YACJ,MACF,IAAK,kBACHhB,EAEI+f,EACA8qC,mBACJ3qD,EAAS,EACT,MACF,IAAK,UACHF,EAEI+f,EACAvI,uBACCizC,EAAU3Y,UACb6Y,EAAep9D,KAAKyS,EAAgB,GAAK5Y,KAAKoV,YAEhD0D,EAAS,EACT,MACF,IAAK,eACH,MAAM4qD,EAEF/qC,EACAgrC,wBACJ/qD,EAAkB,GAClB,IAAK,IAAI/V,EAAI,EAAG+D,EAAK88D,EAAerhE,OAAQQ,EAAI+D,EAAI/D,GAAK,EAClDwgE,EAAU3Y,UACb6Y,EAAep9D,KAAKu9D,EAAe7gE,EAAI,GAAK7C,KAAKoV,YAEnDwD,EAAgBzS,KAAKu9D,EAAe7gE,GAAI6gE,EAAe7gE,EAAI,IAE7D,GAA+B,IAA3B+V,EAAgBvW,OAClB,OAEFyW,EAAS,EACT,MACF,SAEF,MAAM7V,EAAMjD,KAAKg9D,2BAA2BpkD,EAAiBE,GAC7D,GAAI7V,IAAQD,EACV,OAEF,GACEugE,IACCtgE,EAAMD,GAAS,IAAM4V,EAAgBvW,OAASyW,EAC/C,CACA,IAAI8qD,EAAM5gE,EAAQ,EAClBugE,EAAiBA,EAAeptC,QAAO,CAACO,EAAG7zB,KACzC,MAAMghE,EACJ5sD,EAAwB,GAAX2sD,EAAM/gE,MAAY+V,EAAgB/V,EAAIiW,IACnD7B,EAAwB,GAAX2sD,EAAM/gE,GAAS,KAAO+V,EAAgB/V,EAAIiW,EAAS,GAIlE,OAHK+qD,KACDD,EAEGC,CAAI,GAEf,CAEA7jE,KAAK8jE,mBAEDT,EAAUvY,gBAAkBuY,EAAUrY,oBACxChrD,KAAK+7D,mBACHsH,EAAUvY,eACVuY,EAAUrY,kBAERqY,EAAUvY,gBACZ9qD,KAAKq/D,gBAAgBr/D,KAAKsQ,MAAOtQ,KAAKk/D,YAEpCmE,EAAUrY,mBACZhrD,KAAKu/D,kBAAkBv/D,KAAKsQ,MAAOtQ,KAAKm/D,aACxCn/D,KAAK48D,yBAAyBz2D,KAAKnG,KAAKo/D,aAAap/D,KAAKsQ,UAI9DtQ,KAAKg+D,cAAcrlC,EAAU4tB,GAG7B,IAAIp0B,EAAUkxC,EAAUlxC,QACxB,GACEA,GAAWirB,KACVimB,EAAUvmD,MAAM,GAAK,GAAKumD,EAAUvmD,MAAM,GAAK,GAChD,CACA,IAAIinD,EAAKV,EAAUlxC,QAAQ,GACvB6xC,EAAKX,EAAUlxC,QAAQ,GACvB8xC,EAAKZ,EAAUlxC,QAAQ,GACvB+xC,EAAKb,EAAUlxC,QAAQ,GACvBkxC,EAAUvmD,MAAM,GAAK,IACvBknD,GAAMA,EACNE,GAAMA,GAEJb,EAAUvmD,MAAM,GAAK,IACvBinD,GAAMA,EACNE,GAAMA,GAER9xC,EAAU,CAAC4xC,EAAIC,EAAIC,EAAIC,EACzB,CAKA,MAAMr8B,EAAa7nC,KAAK6nC,WACxB7nC,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBtE,WAClB/2D,EACAC,EACA,KACA8lB,IACAA,IACAA,IACA,EACA,EACA,EACA/oB,KAAKwiE,oBACLxiE,KAAKyiE,cACL,CAAC,EAAG,GACJ15C,SACA9hB,EACAjH,KAAKugE,wBACLpuC,GAAWirB,GACPA,GACAjrB,EAAQ2K,KAAI,SAAUqnC,GACpB,OAAOA,EAAIt8B,CACb,MACFw7B,EAAUvY,iBACVuY,EAAUrY,iBACZhrD,KAAK8lD,MACL9lD,KAAKgjE,SACLhjE,KAAKkjE,WACLljE,KAAKijE,SACLjjE,KAAKsiE,aACLtiE,KAAKuiE,aACLgB,IAEF,MAAMzmD,EAAQ,EAAI+qB,EAEZy3B,EAAmBt/D,KAAKsQ,MAAM46B,UAChCm4B,EAAUvY,iBACZ9qD,KAAKsQ,MAAM46B,UAAYyR,GACvB38C,KAAK48D,yBAAyBz2D,KAAKnG,KAAKk/D,WAAWl/D,KAAKsQ,SAE1DtQ,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBtE,WAClB/2D,EACAC,EACA,KACA8lB,IACAA,IACAA,IACA,EACA,EACA,EACA/oB,KAAKwiE,oBACLxiE,KAAKyiE,cACL,CAAC3lD,EAAOA,GACRiM,SACA9hB,EACAjH,KAAKugE,wBACLpuC,IACEkxC,EAAUvY,iBACVuY,EAAUrY,iBACZhrD,KAAK8lD,MACL9lD,KAAKgjE,SACLhjE,KAAKkjE,WACLljE,KAAKijE,SAAWtmB,GAAmB38C,KAAKijE,SACxCjjE,KAAKsiE,aACLtiE,KAAKuiE,aACLgB,IAGEF,EAAUvY,iBACZ9qD,KAAKsQ,MAAM46B,UAAYo0B,EACvBt/D,KAAK48D,yBAAyBz2D,KAAKnG,KAAKk/D,WAAWl/D,KAAKsQ,SAG1DtQ,KAAKs+D,YAAY/X,EACnB,KAxQE,CACA,IAAKrrC,GAAWlb,KAAKi9D,uBAAwBtkC,EAAS/nB,aACpD,OAEF,IAAI2a,EAEJ,GADA3S,EAAkB+f,EAAS1O,qBACP,cAAhBq5C,EACF/3C,EAAO,CAAC3S,EAAgBvW,aACnB,GAAoB,mBAAhBihE,EACT/3C,EACEoN,EACAxI,eACG,GAAoB,WAAhBmzC,EACT/3C,EAA+DoN,EAC5DxI,UACAprB,MAAM,EAAG,QACP,GAAoB,gBAAhBu+D,EAAgC,CACzC,MAAMr2C,EAEF0L,EACAwlC,WACJ5yC,EAAO,GACP,IAAK,IAAI1oB,EAAI,EAAG+D,EAAKqmB,EAAM5qB,OAAQQ,EAAI+D,IAAM/D,EAC3C0oB,EAAKplB,KAAK8mB,EAAMpqB,GAAG,GAEvB,CACA7C,KAAKg+D,cAAcrlC,EAAU4tB,GAC7B,MAAM2D,EAASmZ,EAAUnZ,OACnBJ,EAAYI,OAASjjD,EAAYo8D,EAAUvZ,UAEjD,IAAIsa,EAAa,EACjB,IAAK,IAAIC,EAAI,EAAGC,EAAK/4C,EAAKlpB,OAAQgiE,EAAIC,IAAMD,EAAG,CAC7C,IAAIxkB,EAEFA,EADEqK,EACOiX,GACPjX,EAASlqD,KAAKoV,WACdwD,EACAwrD,EACA74C,EAAK84C,GACLvrD,GAGO,CAACF,EAAgB7T,MAAMq/D,EAAY74C,EAAK84C,KAEnD,IAAK,IAAIr+C,EAAI,EAAGu+C,EAAK1kB,EAAOx9C,OAAQ2jB,EAAIu+C,IAAMv+C,EAAG,CAC/C,MAAMw+C,EAAQ3kB,EAAO75B,GACrB,IAAIy+C,EAAa,EACbvC,EAAWsC,EAAMniE,OACrB,QAAiB4E,GAAb6iD,EAAwB,CAC1B,MAAM4a,EAAQjD,GACZ4B,EAAU/Y,SACVka,EACA,EACAA,EAAMniE,OACN,GAEFoiE,EAAaC,EAAM,GACnBxC,EAAWwC,EAAM,EACnB,CACA,IAAK,IAAI7hE,EAAI4hE,EAAY5hE,EAAIq/D,EAAUr/D,GAAKiW,EAC1C7B,EAAY9Q,KAAKq+D,EAAM3hE,GAAI2hE,EAAM3hE,EAAI,IAEvC,MAAMI,EAAMgU,EAAY5U,OACxB+hE,EAAa74C,EAAK84C,GAClBrkE,KAAK2kE,WAAW3hE,EAAOC,GACvBD,EAAQC,CACV,CACF,CACAjD,KAAKs+D,YAAY/X,EACnB,CAoMF,CAKAud,eAAAA,GACE,MAAMV,EAAcpjE,KAAK4iE,iBACnBS,EAAYrjE,KAAK8iE,WACjBK,EAAYnjE,KAAK0iE,eAEjBkC,EAAY5kE,KAAKkjE,WACnBE,IACIwB,KAAa5kE,KAAK6iE,eACtB7iE,KAAK6iE,aAAa+B,GAAa,CAC7BhzB,YAAawxB,EAAYxxB,YACzBwR,QAASggB,EAAYhgB,QACrBE,eAAgB8f,EAAY9f,eAC5BzR,UAAWuxB,EAAYvxB,UACvBwQ,SAAU+gB,EAAY/gB,SACtBE,WAAY6gB,EAAY7gB,WACxBc,SAAU+f,EAAY/f,YAI5B,MAAMwhB,EAAU7kE,KAAKgjE,SACf6B,KAAW7kE,KAAK+iE,aACpB/iE,KAAK+iE,WAAW8B,GAAW,CACzBnmB,KAAM2kB,EAAU3kB,KAChBoL,UAAWuZ,EAAUvZ,WAAa5M,GAClC8M,QAASqZ,EAAUrZ,QACnBI,aAAciZ,EAAUjZ,cAAgBjN,GACxCrgC,MAAOumD,EAAUvmD,QAGrB,MAAMgoD,EAAU9kE,KAAKijE,SACjBE,IACI2B,KAAW9kE,KAAK2iE,aACpB3iE,KAAK2iE,WAAWmC,GAAW,CACzB55B,UAAWi4B,EAAUj4B,YAI7B,CAOAy5B,UAAAA,CAAW3hE,EAAOC,GAChB,MAAMmgE,EAAcpjE,KAAK4iE,iBACnBS,EAAYrjE,KAAK8iE,WAEjB8B,EAAY5kE,KAAKkjE,WACjB2B,EAAU7kE,KAAKgjE,SACf8B,EAAU9kE,KAAKijE,SACrBjjE,KAAK8jE,kBAEL,MAAMj8B,EAAa7nC,KAAK6nC,WAClBk9B,EAAW5C,GAAWkB,EAAUjZ,cAEhC92B,EAAUtzB,KAAKuiE,aAAe16B,EAC9BgW,EAAO79C,KAAK8lD,MACZxD,EAAc8gB,EACfA,EAAYvxB,UAAYhlC,KAAKgB,IAAIw1D,EAAUvmD,MAAM,IAAO,EACzD,EAEJ9c,KAAK08D,aAAav2D,KAAK,CACrBk4D,GAAkBvE,WAClB92D,EACAC,EACA8hE,EACA1B,EAAU3Y,SACVoa,EACAzB,EAAU/Y,SACVziB,EACAvU,EACAsxC,EACAtiB,EAAcza,EACdgW,EACAgnB,EACA,IAEF7kE,KAAK48D,yBAAyBz2D,KAAK,CACjCk4D,GAAkBvE,WAClB92D,EACAC,EACA8hE,EACA1B,EAAU3Y,SACVoa,EAAUnoB,GAAmBmoB,EAC7BzB,EAAU/Y,SACVziB,EACAvU,EACAsxC,EACAtiB,EAAcza,EACdgW,EACAgnB,EACA,EAAIh9B,GAER,CAMAs0B,YAAAA,CAAaC,EAAWqE,GACtB,IAAI4C,EAAWF,EAAWC,EAC1B,GAAKhH,EAEE,CACL,MAAM4I,EAAgB5I,EAAU3a,UAC3BujB,GAIH7B,EAAYnjE,KAAK0iE,eACZS,IACHA,EAA6D,CAAC,EAC9DnjE,KAAK0iE,eAAiBS,GAExBA,EAAUj4B,UAAYuQ,GACpBupB,EAAczhB,YAAc5G,MAT9BwmB,EAAY,KACZnjE,KAAK0iE,eAAiBS,GAYxB,MAAM8B,EAAkB7I,EAAUta,YAClC,GAAKmjB,EAGE,CACL7B,EAAcpjE,KAAK4iE,iBACdQ,IACHA,EAAiE,CAAC,EAClEpjE,KAAK4iE,iBAAmBQ,GAE1B,MAAM/f,EAAW4hB,EAAgBzhB,cAC3BF,EAAiB2hB,EAAgBxhB,oBACjC5R,EAAYozB,EAAgBvrD,WAC5B6oC,EAAa0iB,EAAgBrhB,gBACnCwf,EAAYhgB,QAAU6hB,EAAgBthB,cAAgB/G,GACtDwmB,EAAY/f,SAAWA,EAAWA,EAASt+C,QAAU83C,GACrDumB,EAAY9f,oBACSr8C,IAAnBq8C,EAA+BxG,GAAwBwG,EACzD8f,EAAY/gB,SAAW4iB,EAAgBvhB,eAAiB3G,GACxDqmB,EAAYvxB,eACI5qC,IAAd4qC,EAA0BwL,GAAmBxL,EAC/CuxB,EAAY7gB,gBACKt7C,IAAfs7C,EAA2BvF,GAAoBuF,EACjD6gB,EAAYxxB,YAAc6J,GACxBwpB,EAAgB1hB,YAActG,GAElC,MAxBEmmB,EAAc,KACdpjE,KAAK4iE,iBAAmBQ,EAyB1BC,EAAYrjE,KAAK8iE,WACjB,MAAMpkB,EAAO0d,EAAUnR,WAAavO,GACpCgB,GAAagB,GACb,MAAMwmB,EAAY9I,EAAUthB,gBAC5BuoB,EAAU3Y,SAAW0R,EAAU/Q,cAC/BgY,EAAU3kB,KAAOA,EACjB2kB,EAAU/Y,SAAW8R,EAAUhR,cAC/BiY,EAAU7Y,UAAY4R,EAAUlR,eAChCmY,EAAUvZ,UAAYsS,EAAU9Q,eAChC+X,EAAUnZ,OAASkS,EAAUjR,YAC7BkY,EAAUrZ,QAAUoS,EAAU7Q,aAC9B8X,EAAUjZ,aACRgS,EAAU5Q,mBAAqBrO,GACjCkmB,EAAUvY,eAAiBsR,EAAUzQ,oBACrC0X,EAAUrY,iBAAmBoR,EAAUxQ,sBACvCyX,EAAUlxC,QAAUiqC,EAAUvQ,cAAgBzO,GAC9CimB,EAAUvmD,WAAsB7V,IAAdi+D,EAA0B,CAAC,EAAG,GAAKA,EAErD,MAAMC,EAAc/I,EAAU3Q,aACxB2Z,EAAchJ,EAAU1Q,aACxB2Z,EAAqBjJ,EAAUzhB,oBAC/B2qB,EAAelJ,EAAU1oC,cAC/B1zB,KAAK8lD,MAAQsW,EAAUnW,WAAa,GACpCjmD,KAAKsiE,kBAA+Br7D,IAAhBk+D,EAA4B,EAAIA,EACpDnlE,KAAKuiE,kBAA+Bt7D,IAAhBm+D,EAA4B,EAAIA,EACpDplE,KAAKwiE,yBACoBv7D,IAAvBo+D,GAA2CA,EAC7CrlE,KAAKyiE,mBAAiCx7D,IAAjBq+D,EAA6B,EAAIA,EAEtDtlE,KAAKkjE,WAAaE,GACqB,iBAA3BA,EAAYxxB,YAChBwxB,EAAYxxB,YACZ3nC,EAAOm5D,EAAYxxB,cACvBwxB,EAAYhgB,QACZggB,EAAY9f,eACZ,IACA8f,EAAYvxB,UACZuxB,EAAY/gB,SACZ+gB,EAAY7gB,WACZ,IACA6gB,EAAY/f,SAASl8B,OACrB,IACA,GACJnnB,KAAKgjE,SACHK,EAAU3kB,KACV2kB,EAAUvmD,OACTumD,EAAUvZ,WAAa,MACvBuZ,EAAUnZ,QAAU,MACpBmZ,EAAUrZ,SAAW,MACrBqZ,EAAUjZ,cAAgB,KAC7BpqD,KAAKijE,SAAWE,EACkB,iBAAvBA,EAAUj4B,UACfi4B,EAAUj4B,UACV,IAAMjhC,EAAOk5D,EAAUj4B,WACzB,EACN,MApGElrC,KAAK8lD,MAAQ,GAqGf9lD,KAAKugE,wBAA0BE,CACjC,EAGF,UCxoBA,MAAM8E,GAAqB,CACzB,OAAUC,GACV,QAAWC,GACX,MAASC,GACT,WAAcC,GACd,QAAWH,GACX,KAAQI,IAGV,MAAMC,GAOJ7kE,WAAAA,CAAY+hB,EAAWd,EAAW7M,EAAYyyB,GAK5C7nC,KAAK8lE,WAAa/iD,EAMlB/iB,KAAK+lE,WAAa9jD,EAMlBjiB,KAAKqyC,YAAcxK,EAMnB7nC,KAAKgmE,YAAc5wD,EAMnBpV,KAAKimE,kBAAoB,CAAC,CAC5B,CAKA1H,MAAAA,GACE,MAAM2H,EAAsB,CAAC,EAC7B,IAAK,MAAMC,KAAQnmE,KAAKimE,kBAAmB,CACzCC,EAAoBC,GAAQD,EAAoBC,IAAS,CAAC,EAC1D,MAAMC,EAAWpmE,KAAKimE,kBAAkBE,GACxC,IAAK,MAAME,KAAcD,EAAU,CACjC,MAAME,EAAqBF,EAASC,GAAY9H,SAChD2H,EAAoBC,GAAME,GAAcC,CAC1C,CACF,CACA,OAAOJ,CACT,CAOAK,UAAAA,CAAW92D,EAAQ+2D,GACjB,MAAMC,OAAuBx/D,IAAXwI,EAAuBA,EAAOwX,WAAa,IAC7D,IAAIy/C,EAAU1mE,KAAKimE,kBAAkBQ,QACrBx/D,IAAZy/D,IACFA,EAAU,CAAC,EACX1mE,KAAKimE,kBAAkBQ,GAAaC,GAEtC,IAAIC,EAASD,EAAQF,GACrB,QAAev/D,IAAX0/D,EAAsB,CACxB,MAAMC,EAAcrB,GAAmBiB,GACvCG,EAAS,IAAIC,EACX5mE,KAAK8lE,WACL9lE,KAAK+lE,WACL/lE,KAAKgmE,YACLhmE,KAAKqyC,aAEPq0B,EAAQF,GAAeG,CACzB,CACA,OAAOA,CACT,EAGF,UClFO,SAASE,GACdjuD,EACAC,EACA5V,EACA6V,EACA+kC,EACAipB,EACAxc,EACAxtC,EACA0iC,EACAd,EACA1oC,EACAiE,GAEA,IAAI9M,EAAKyL,EAAgBC,GACrBzL,EAAKwL,EAAgBC,EAAS,GAC9B5L,EAAK,EACLC,EAAK,EACLshB,EAAgB,EAChBu4C,EAAW,EAEf,SAASC,IACP/5D,EAAKE,EACLD,EAAKE,EACLyL,GAAUC,EACV3L,EAAKyL,EAAgBC,GACrBzL,EAAKwL,EAAgBC,EAAS,GAC9BkuD,GAAYv4C,EACZA,EAAgB3hB,KAAK8Q,MAAMxQ,EAAKF,IAAOE,EAAKF,IAAOG,EAAKF,IAAOE,EAAKF,GACtE,CACA,GACE85D,UACOnuD,EAAS5V,EAAM6V,GAAUiuD,EAAWv4C,EAAgBs4C,GAE7D,IAAI3+B,EACgB,IAAlB3Z,EAAsB,GAAKs4C,EAASC,GAAYv4C,EAClD,MAAMy4C,EAASx4D,EAAKxB,EAAIE,EAAIg7B,GACtB++B,EAASz4D,EAAKvB,EAAIE,EAAI+6B,GAEtBg/B,EAActuD,EAASC,EACvBsuD,EAAcL,EACdM,EAAOP,EAAShqD,EAAQ0iC,EAAyBd,EAAMb,EAAM7nC,GACnE,MAAO6C,EAAS5V,EAAM6V,GAAUiuD,EAAWv4C,EAAgB64C,EACzDL,IAEF7+B,EAAgC,IAAlB3Z,EAAsB,GAAK64C,EAAON,GAAYv4C,EAC5D,MAAM9S,EAAOjN,EAAKxB,EAAIE,EAAIg7B,GACpBxsB,EAAOlN,EAAKvB,EAAIE,EAAI+6B,GAG1B,IAAI5Y,EACJ,GAAItV,EAAU,CACZ,MAAMqtD,EAAO,CAACL,EAAQC,EAAQxrD,EAAMC,GACpCe,GAAO4qD,EAAM,EAAG,EAAG,EAAGrtD,EAAUqtD,EAAMA,GACtC/3C,EAAU+3C,EAAK,GAAKA,EAAK,EAC3B,MACE/3C,EAAU03C,EAASvrD,EAGrB,MAAMnN,EAAK1B,KAAK0B,GACVgU,EAAS,GACTglD,EAAgBJ,EAAcruD,IAAWD,EAQ/C,IAAI2uD,EAEJ,GARA3uD,EAASsuD,EACT34C,EAAgB,EAChBu4C,EAAWK,EACXj6D,EAAKyL,EAAgBC,GACrBzL,EAAKwL,EAAgBC,EAAS,GAI1B0uD,EAAe,CACjBP,IAEAQ,EAAgB36D,KAAK6Q,MAAMtQ,EAAKF,EAAIC,EAAKF,GACrCsiB,IACFi4C,GAAiBA,EAAgB,GAAKj5D,EAAKA,GAE7C,MAAMxB,GAAK2O,EAAOurD,GAAU,EACtBj6D,GAAK2O,EAAOurD,GAAU,EAE5B,OADA3kD,EAAO,GAAK,CAACxV,EAAGC,GAAIq6D,EAAOP,GAAU,EAAGU,EAAe3pB,GAChDt7B,CACT,CAGAs7B,EAAOA,EAAK5nC,QAAQ,MAAO,KAE3B,IAAK,IAAIpT,EAAI,EAAG+D,EAAKi3C,EAAKx7C,OAAQQ,EAAI+D,GAAM,CAC1CogE,IACA,IAAIrqD,EAAQ9P,KAAK6Q,MAAMtQ,EAAKF,EAAIC,EAAKF,GAIrC,GAHIsiB,IACF5S,GAASA,EAAQ,GAAKpO,EAAKA,QAEPtH,IAAlBugE,EAA6B,CAC/B,IAAIjrD,EAAQI,EAAQ6qD,EAEpB,GADAjrD,GAASA,EAAQhO,GAAM,EAAIA,EAAKgO,GAAShO,EAAK,EAAIA,EAAK,EACnD1B,KAAKgB,IAAI0O,GAAS+tC,EACpB,OAAO,IAEX,CACAkd,EAAgB7qD,EAEhB,MAAM8qD,EAAS5kE,EACf,IAAI6kE,EAAa,EACjB,KAAO7kE,EAAI+D,IAAM/D,EAAG,CAClB,MAAMqB,EAAQqrB,EAAU3oB,EAAK/D,EAAI,EAAIA,EAC/B8G,EAAMmT,EAAQ0iC,EAAyBd,EAAMb,EAAK35C,GAAQ8R,GAChE,GACE6C,EAASC,EAAS7V,GAClB8jE,EAAWv4C,EAAgBs4C,EAASY,EAAa/9D,EAAM,EAEvD,MAEF+9D,GAAc/9D,CAChB,CACA,GAAI9G,IAAM4kE,EACR,SAEF,MAAME,EAAQp4C,EACVsuB,EAAK+pB,UAAUhhE,EAAK6gE,EAAQ7gE,EAAK/D,GACjCg7C,EAAK+pB,UAAUH,EAAQ5kE,GAC3BslC,EACoB,IAAlB3Z,EACI,GACCs4C,EAASY,EAAa,EAAIX,GAAYv4C,EAC7C,MAAMzhB,EAAI0B,EAAKxB,EAAIE,EAAIg7B,GACjBn7B,EAAIyB,EAAKvB,EAAIE,EAAI+6B,GACvB5lB,EAAOpc,KAAK,CAAC4G,EAAGC,EAAG06D,EAAa,EAAG/qD,EAAOgrD,IAC1Cb,GAAUY,CACZ,CACA,OAAOnlD,CACT,CC9IO,SAASslD,GAAiBjvD,EAAiBC,EAAQ5V,EAAK6V,GAC7D,IAAI7L,EAAK2L,EAAgBC,GACrB3L,EAAK0L,EAAgBC,EAAS,GAC9BxW,EAAS,EACb,IAAK,IAAIQ,EAAIgW,EAASC,EAAQjW,EAAII,EAAKJ,GAAKiW,EAAQ,CAClD,MAAM3L,EAAKyL,EAAgB/V,GACrBuK,EAAKwL,EAAgB/V,EAAI,GAC/BR,GAAUwK,KAAK8Q,MAAMxQ,EAAKF,IAAOE,EAAKF,IAAOG,EAAKF,IAAOE,EAAKF,IAC9DD,EAAKE,EACLD,EAAKE,CACP,CACA,OAAO/K,CACT,CCoCA,MAAMyyC,GAAY59B,KAGZ8sD,GAAK,GAELC,GAAK,GAELC,GAAK,GAEL4D,GAAK,GAMX,SAASC,GAAgBC,GACvB,OAAOA,EAAuB,GAAGC,YACnC,CAEA,MAAMC,GAAW,IAAIlsB,OAEnB,IACE5xC,OAAO+9D,aAAa,MAAW,IAAM/9D,OAAO+9D,aAAa,MACzD/9D,OAAO+9D,aAAa,OAAW,IAAM/9D,OAAO+9D,aAAa,OACzD/9D,OAAO+9D,aAAa,OAAW,IAAM/9D,OAAO+9D,aAAa,OACzD/9D,OAAO+9D,aAAa,OAAW,IAAM/9D,OAAO+9D,aAAa,OACzD/9D,OAAO+9D,aAAa,QAAW,IAAM/9D,OAAO+9D,aAAa,QAC3D,KASF,SAASC,GAAoBvqB,EAAMwqB,GAMjC,MALc,UAAVA,EACFA,EAAQH,GAAS/jD,KAAK05B,GAAQ,QAAU,OACrB,QAAVwqB,IACTA,EAAQH,GAAS/jD,KAAK05B,GAAQ,OAAS,SAElCskB,GAAWkG,EACpB,CAQA,SAASC,GAAiBC,EAAKC,EAAM3lE,GAKnC,OAJIA,EAAI,GACN0lE,EAAIpiE,KAAK,KAAM,IAEjBoiE,EAAIpiE,KAAKqiE,EAAM,IACRD,CACT,CAEA,MAAME,GAOJznE,WAAAA,CAAYoU,EAAYyyB,EAAY6gC,EAAUhM,GAK5C18D,KAAK0oE,SAAWA,EAMhB1oE,KAAK6nC,WAAaA,EAOlB7nC,KAAKoV,WAAaA,EAMlBpV,KAAK2oE,WAML3oE,KAAK08D,aAAeA,EAAaA,aAMjC18D,KAAKiX,YAAcylD,EAAazlD,YAMhCjX,KAAK4oE,iBAAmB,CAAC,EAMzB5oE,KAAK6oE,mBAAqB7gD,KAM1BhoB,KAAK48D,yBAA2BF,EAAaE,yBAM7C58D,KAAK8oE,kBAAoB,KAMzB9oE,KAAK+oE,cAAgB,EAKrB/oE,KAAK2iE,WAAajG,EAAaiG,YAAc,CAAC,EAK9C3iE,KAAK6iE,aAAenG,EAAamG,cAAgB,CAAC,EAKlD7iE,KAAK+iE,WAAarG,EAAaqG,YAAc,CAAC,EAM9C/iE,KAAKgpE,QAAU,CAAC,EAMhBhpE,KAAKqiE,QAAU,CAAC,CAClB,CASA4G,WAAAA,CAAYprB,EAAMgnB,EAASC,EAASF,GAClC,MAAM57D,EAAM60C,EAAOgnB,EAAUC,EAAUF,EACvC,GAAI5kE,KAAKqiE,QAAQr5D,GACf,OAAOhJ,KAAKqiE,QAAQr5D,GAEtB,MAAMo6D,EAAcwB,EAAY5kE,KAAK6iE,aAAa+B,GAAa,KACzDzB,EAAY2B,EAAU9kE,KAAK2iE,WAAWmC,GAAW,KACjDzB,EAAYrjE,KAAK+iE,WAAW8B,GAC5Bh9B,EAAa7nC,KAAK6nC,WAClB/qB,EAAQ,CACZumD,EAAUvmD,MAAM,GAAK+qB,EACrBw7B,EAAUvmD,MAAM,GAAK+qB,GAEjBqhC,EAAc5lE,MAAMC,QAAQs6C,GAC5BwqB,EAAQhF,EAAUrZ,QACpBmY,GAAWkB,EAAUrZ,SACrBoe,GACE9kE,MAAMC,QAAQs6C,GAAQA,EAAK,GAAKA,EAChCwlB,EAAUvZ,WAAa5M,IAEvBoF,EACJsiB,GAAaxB,EAAYvxB,UAAYuxB,EAAYvxB,UAAY,EAEzDgO,EAASqpB,EACXrrB,EACAA,EAAK1a,MAAM,MAAMsc,OAAO6oB,GAAkB,KAExC,MAACvsD,EAAK,OAAEC,EAAM,OAAE8jC,EAAM,QAAEC,EAAO,WAAEC,GAAcL,GACnD0jB,EACAxjB,GAEIspB,EAAcptD,EAAQumC,EACtB/B,EAAsB,GAEtB7pB,GAAKyyC,EAAc,GAAKrsD,EAAM,GAC9B6Z,GAAK3a,EAASsmC,GAAexlC,EAAM,GAEnC2jC,EAAQ,CACZ1kC,MAAO2a,EAAI,EAAI7pB,KAAKkC,MAAM2nB,GAAK7pB,KAAKmC,KAAK0nB,GACzC1a,OAAQ2a,EAAI,EAAI9pB,KAAKkC,MAAM4nB,GAAK9pB,KAAKmC,KAAK2nB,GAC1C4pB,oBAAqBA,GAEP,GAAZzjC,EAAM,IAAuB,GAAZA,EAAM,IACzByjC,EAAoBp6C,KAAK,QAAS2W,GAEhC8nD,IACFrkB,EAAoBp6C,KAAK,cAAei9D,EAAYxxB,aACpD2O,EAAoBp6C,KAAK,YAAam8C,GACtC/B,EAAoBp6C,KAAK,UAAWi9D,EAAYhgB,SAChD7C,EAAoBp6C,KAAK,WAAYi9D,EAAY/gB,UACjD9B,EAAoBp6C,KAAK,aAAci9D,EAAY7gB,YACnDhC,EAAoBp6C,KAAK,cAAe,CAACi9D,EAAY/f,WACrD9C,EAAoBp6C,KAAK,iBAAkBi9D,EAAY9f,iBAErDwhB,GACFvkB,EAAoBp6C,KAAK,YAAag9D,EAAUj4B,WAElDqV,EAAoBp6C,KAAK,eAAgB,UACzCo6C,EAAoBp6C,KAAK,YAAa,UACtC,MAAMijE,EAAY,GAAMf,EACxB,IAAIt7D,EAAIs7D,EAAQc,EAAcC,EAAY9mB,EAC1C,MAAM+mB,EAAqB,GACrBC,EAAmB,GACzB,IAIIC,EAJAltB,EAAa,EACbmtB,EAAa,EACbC,EAAmB,EACnBC,EAAiB,EAErB,IAAK,IAAI7mE,EAAI,EAAG+D,EAAKi5C,EAAOx9C,OAAQQ,EAAI+D,EAAI/D,GAAK,EAAG,CAClD,MAAMg7C,EAAOgC,EAAOh9C,GACpB,GAAa,OAATg7C,EAAe,CACjB2rB,GAAcntB,EACdA,EAAa,EACbtvC,EAAIs7D,EAAQc,EAAcC,EAAY9mB,IACpConB,EACF,QACF,CACA,MAAMhrB,EAAOmB,EAAOh9C,EAAI,IAAMwgE,EAAU3kB,KACpCA,IAAS6qB,IACP3E,GACFyE,EAAmBljE,KAAK,OAAQu4C,GAE9BomB,GACFwE,EAAiBnjE,KAAK,OAAQu4C,GAEhC6qB,EAAe7qB,GAEjBrC,EAAaxvC,KAAKD,IAAIyvC,EAAY0D,EAAQ0pB,IAC1C,MAAME,EAAiB,CACrB9rB,EACA9wC,EACEq8D,EAAYtpB,EAAO2pB,GACnBpB,GAASvoB,EAAO2pB,GAAoBzpB,EAAW0pB,IACjD,IAAOpnB,EAAcjG,GAAcmtB,GAErCz8D,GAAK+yC,EAAO2pB,GACR7E,GACFyE,EAAmBljE,KAAK,aAAcwjE,GAEpC7E,GACFwE,EAAiBnjE,KAAK,WAAYwjE,KAElCF,CACJ,CAIA,OAHAnmE,MAAMwB,UAAUqB,KAAKhB,MAAMo7C,EAAqB8oB,GAChD/lE,MAAMwB,UAAUqB,KAAKhB,MAAMo7C,EAAqB+oB,GAChDtpE,KAAKqiE,QAAQr5D,GAAOy3C,EACbA,CACT,CAWAmpB,qBAAAA,CACEjoC,EACAqiC,EACAC,EACAC,EACA4D,EACAxN,EACAC,GAEA54B,EAAQ0F,YACR1F,EAAQ2F,OAAOniC,MAAMw8B,EAASqiC,GAC9BriC,EAAQ4F,OAAOpiC,MAAMw8B,EAASsiC,GAC9BtiC,EAAQ4F,OAAOpiC,MAAMw8B,EAASuiC,GAC9BviC,EAAQ4F,OAAOpiC,MAAMw8B,EAASmmC,GAC9BnmC,EAAQ4F,OAAOpiC,MAAMw8B,EAASqiC,GAC1B1J,IACFt6D,KAAK2oE,WAAqCrO,EAAgB,GAC1Dt6D,KAAK4gD,MAAMjf,IAET44B,IACFv6D,KAAK6pE,gBACHloC,EACyB44B,GAE3B54B,EAAQmQ,SAEZ,CAsBAg4B,gCAAAA,CACEC,EACAC,EACAxwC,EACAC,EACA1d,EACAC,EACA0L,EACAC,EACA04B,EACAC,EACArmC,EACA6C,EACAmtD,EACA93C,EACA+3C,EACA3jB,GAEA7+B,GAAW5K,EAAM,GACjB6K,GAAW7K,EAAM,GACjB,IAAI/P,EAAIysB,EAAU9R,EACd1a,EAAIysB,EAAU9R,EAElB,MAAM+O,EAAI3a,EAAQskC,EAAU0pB,EAAaA,EAAa1pB,EAAUtkC,EAC1D4a,EAAI3a,EAASskC,EAAU0pB,EAAcA,EAAc1pB,EAAUtkC,EAC7DmuD,EAAOh4C,EAAQ,GAAKuE,EAAI5Z,EAAM,GAAKqV,EAAQ,GAC3Ci4C,EAAOj4C,EAAQ,GAAKwE,EAAI7Z,EAAM,GAAKqV,EAAQ,GAC3Ck4C,EAAOt9D,EAAIolB,EAAQ,GACnBm4C,EAAOt9D,EAAImlB,EAAQ,GAazB,IAAI1b,EAqCJ,OAhDIyzD,GAA2B,IAAbjwD,KAChB+pD,GAAG,GAAKqG,EACRvC,GAAG,GAAKuC,EACRrG,GAAG,GAAKsG,EACRrG,GAAG,GAAKqG,EACRrG,GAAG,GAAKoG,EAAOF,EACfjG,GAAG,GAAKD,GAAG,GACXC,GAAG,GAAKoG,EAAOF,EACftC,GAAG,GAAK5D,GAAG,IAII,IAAbjqD,GACFxD,EAAYmT,GACV5B,KACAwR,EACAC,EACA,EACA,EACAxf,GACCuf,GACAC,GAGH5d,GAAepF,EAAWutD,IAC1BnoD,GAAepF,EAAWwtD,IAC1BpoD,GAAepF,EAAWytD,IAC1BroD,GAAepF,EAAWqxD,IAC1BlwD,GACE/K,KAAKF,IAAIq3D,GAAG,GAAIC,GAAG,GAAIC,GAAG,GAAI4D,GAAG,IACjCj7D,KAAKF,IAAIq3D,GAAG,GAAIC,GAAG,GAAIC,GAAG,GAAI4D,GAAG,IACjCj7D,KAAKD,IAAIo3D,GAAG,GAAIC,GAAG,GAAIC,GAAG,GAAI4D,GAAG,IACjCj7D,KAAKD,IAAIo3D,GAAG,GAAIC,GAAG,GAAIC,GAAG,GAAI4D,GAAG,IACjChzB,KAGFl9B,GACE/K,KAAKF,IAAI09D,EAAMA,EAAOF,GACtBt9D,KAAKF,IAAI29D,EAAMA,EAAOF,GACtBv9D,KAAKD,IAAIy9D,EAAMA,EAAOF,GACtBt9D,KAAKD,IAAI09D,EAAMA,EAAOF,GACtBt1B,IAGAm1B,IACFl9D,EAAIF,KAAKiC,MAAM/B,GACfC,EAAIH,KAAKiC,MAAM9B,IAEV,CACLu9D,WAAYx9D,EACZy9D,WAAYx9D,EACZy9D,WAAY/zC,EACZg0C,WAAY/zC,EACZ0pB,QAASA,EACTC,QAASA,EACT2nB,aAAc,CACZzwD,KAAMs9B,GAAU,GAChBr9B,KAAMq9B,GAAU,GAChBp9B,KAAMo9B,GAAU,GAChBn9B,KAAMm9B,GAAU,GAChBlqC,MAAO27C,GAETxP,gBAAiBtgC,EACjBqG,MAAOA,EAEX,CAaA6tD,mBAAAA,CACEhpC,EACAipC,EACAC,EACAC,EACAv7D,EACA+qD,EACAC,GAEA,MAAM2P,KAAgB5P,IAAmBC,GAEnCwQ,EAAMD,EAAW7C,aACjBxkC,EAAS9B,EAAQ8B,OACjBunC,EAAgBzQ,EACjBA,EAAkB,GAAKuQ,EAAWhuD,MAAM,GAAM,EAC/C,EACE5B,EACJ6vD,EAAIvzD,KAAOwzD,GAAiBvnC,EAAO1nB,MAAQ6uD,GAC3CG,EAAIrzD,KAAOszD,GAAiB,GAC5BD,EAAItzD,KAAOuzD,GAAiBvnC,EAAOznB,OAAS4uD,GAC5CG,EAAIpzD,KAAOqzD,GAAiB,EA4B9B,OA1BI9vD,IACEgvD,GACFlqE,KAAK4pE,sBACHjoC,EACAqiC,GACAC,GACAC,GACA4D,GACyBxN,EACAC,GAG7Bpa,GACExe,EACAmpC,EAAW/zB,gBACXxnC,EACAs7D,EACAC,EAAWzqB,QACXyqB,EAAWxqB,QACXwqB,EAAWL,WACXK,EAAWJ,WACXI,EAAWP,WACXO,EAAWN,WACXM,EAAWhuD,SAGR,CACT,CAMA8jC,KAAAA,CAAMjf,GACJ,GAAI3hC,KAAK2oE,WAAY,CACnB,MAAM9wB,EAASh8B,GAAe7b,KAAK6oE,mBAAoB,CAAC,EAAG,IACrDoC,EAAa,IAAMjrE,KAAK6nC,WAC9BlG,EAAQyF,OACRzF,EAAQ7Z,UAAU+vB,EAAO,GAAKozB,EAAYpzB,EAAO,GAAKozB,GACtDtpC,EAAQjlB,OAAO1c,KAAK+oE,cACtB,CACApnC,EAAQkf,OACJ7gD,KAAK2oE,YACPhnC,EAAQ6N,SAEZ,CAOAq6B,eAAAA,CAAgBloC,EAAS88B,GACvB98B,EAAQ,eACiD88B,EAAY,GACrE98B,EAAQkQ,UAAmC4sB,EAAY,GACvD98B,EAAQyhB,QAAwCqb,EAAY,GAC5D98B,EAAQ0gB,SAA0Coc,EAAY,GAC9D98B,EAAQ4gB,WAAoCkc,EAAY,GACxD98B,EAAQ2hB,eAAwCmb,EAAY,GAC5D98B,EAAQoiB,YAA0C0a,EAAY,GAChE,CAUAyM,4BAAAA,CAA6BrtB,EAAMgnB,EAASD,EAAWE,GACrD,MAAMzB,EAAYrjE,KAAK+iE,WAAW8B,GAE5BpkB,EAAQzgD,KAAKipE,YAAYprB,EAAMgnB,EAASC,EAASF,GAEjDxB,EAAcpjE,KAAK6iE,aAAa+B,GAChC/8B,EAAa7nC,KAAK6nC,WAClBwgC,EAAQD,GACZ9kE,MAAMC,QAAQs6C,GAAQA,EAAK,GAAKA,EAChCwlB,EAAUvZ,WAAa5M,IAEnB6nB,EAAW5C,GAAWkB,EAAUjZ,cAAgBjN,IAChDmF,EACJ8gB,GAAeA,EAAYvxB,UAAYuxB,EAAYvxB,UAAY,EAG3D91B,EAAQ0kC,EAAM1kC,MAAQ8rB,EAAa,EAAIw7B,EAAUvmD,MAAM,GACvD4K,EAAU2gD,EAAQtsD,EAAQ,GAAK,GAAMssD,GAAS/lB,EAC9C36B,EACHo9C,EAAWtkB,EAAMzkC,OAAU6rB,EAC5B,GAAK,GAAMk9B,GAAYziB,EAEzB,MAAO,CACL7B,MAAOA,EACP/4B,QAASA,EACTC,QAASA,EAEb,CAgBAwjD,QAAAA,CACExpC,EACAipC,EACAn0D,EACAimD,EACAuN,EACAmB,EACAC,EACAnS,GAGA,IAAIoS,EACAtrE,KAAK8oE,mBAAqBtlE,EAAOiT,EAAWzW,KAAK6oE,oBACnDyC,EAAmBtrE,KAAK8oE,mBAEnB9oE,KAAK8oE,oBACR9oE,KAAK8oE,kBAAoB,IAE3BwC,EAAmB9jD,GACjBxnB,KAAKiX,YACL,EACAjX,KAAKiX,YAAY5U,OACjB,EACAoU,EACAzW,KAAK8oE,mBAEPyC,GAAsBvrE,KAAK6oE,mBAAoBpyD,IAEjD,IAAI5T,EAAI,EACR,MAAM+D,EAAK81D,EAAar6D,OACxB,IACI0gD,EACAr7B,EACFC,EACA6jD,EACAC,EACAC,EACAC,EACAxqC,EACA0c,EACAgnB,EACAD,EACAE,EAZE7+C,EAAI,EAaJ2lD,EAAc,EACdC,EAAgB,EAChBC,EAAsB,KACtBC,EAAwB,KAC5B,MAAMC,EAAkBhsE,KAAK4oE,iBACvBqD,EAAejsE,KAAK+oE,cACpBmD,EACJr/D,KAAKiC,MAAgD,KAA1CjC,KAAK6Q,OAAOjH,EAAU,GAAIA,EAAU,KAAc,KAEzDnG,EAAwD,CAC5DqxB,QAASA,EACTkG,WAAY7nC,KAAK6nC,WACjBzyB,WAAYpV,KAAKoV,WACjB6E,SAAUgyD,GAKNE,EACJnsE,KAAK08D,cAAgBA,GAAgB18D,KAAK0oE,SAAW,EAAI,IAC3D,IAA0DniB,EACtDx5C,EAAGC,EAAGo/D,EACV,MAAOvpE,EAAI+D,EAAI,CACb,MAAM63D,EAAc/B,EAAa75D,GAC3B5B,EACJw9D,EAAY,GAEd,OAAQx9D,GACN,KAAKo9D,GAAkB5E,eACrBlT,EACEkY,EAAY,GAEd2N,EAAkB3N,EAAY,GACzBlY,EAAQP,mBAGG/+C,IAAdokE,GACCnwD,GAAWmwD,EAAWe,EAAgBx7D,eAIrC/N,EAFFA,EAA2B47D,EAAY,GAAM,EAL7C57D,EAA2B47D,EAAY,GASzC,MACF,KAAKJ,GAAkB3E,WACjBkS,EAAcO,IAChBnsE,KAAK4gD,MAAMjf,GACXiqC,EAAc,GAEZC,EAAgBM,IAClBxqC,EAAQmQ,SACR+5B,EAAgB,GAEbD,GAAgBC,IACnBlqC,EAAQ0F,YACRmkC,EAAQziD,IACR0iD,EAAQ1iD,OAERlmB,EACF,MACF,KAAKw7D,GAAkB1E,OACrB1zC,EAA2Bw4C,EAAY,GACvC,MAAMxxD,EAAKq+D,EAAiBrlD,GACtB/Y,EAAKo+D,EAAiBrlD,EAAI,GAC1B9Y,EAAKm+D,EAAiBrlD,EAAI,GAC1B7Y,EAAKk+D,EAAiBrlD,EAAI,GAC1B5Y,EAAKF,EAAKF,EACVK,EAAKF,EAAKF,EACVY,EAAIjB,KAAK8Q,KAAKtQ,EAAKA,EAAKC,EAAKA,GACnCq0B,EAAQ2F,OAAOr6B,EAAKa,EAAGZ,GACvBy0B,EAAQsiB,IAAIh3C,EAAIC,EAAIY,EAAG,EAAG,EAAIjB,KAAK0B,IAAI,KACrC1L,EACF,MACF,KAAKw7D,GAAkBzE,WACrBj4B,EAAQ4N,cACN1sC,EACF,MACF,KAAKw7D,GAAkBxE,OACrB5zC,EAA2Bw4C,EAAY,GACvC1b,EAAK0b,EAAY,GACjB,MAAM9lC,EAEF8lC,EAAY,GAEV9Y,EAAW8Y,EAAY,GACvBj6D,EAA2B,GAAtBi6D,EAAYp8D,OAAco8D,EAAY,QAAKx3D,EACtDqJ,EAAMqoB,SAAWA,EACjBroB,EAAMi2C,QAAUA,EACV1jD,KAAKmpE,IACTA,EAAgBnpE,GAAK,IAEvB,MAAMk2B,EAASizC,EAAgBnpE,GAC3B2B,EACFA,EAAG8mE,EAAkBrlD,EAAG88B,EAAI,EAAGhqB,IAE/BA,EAAO,GAAKuyC,EAAiBrlD,GAC7B8S,EAAO,GAAKuyC,EAAiBrlD,EAAI,GACjC8S,EAAO12B,OAAS,GAElBsjD,EAAS5sB,EAAQzoB,KACfzN,EACF,MACF,KAAKw7D,GAAkBtE,WACrB9zC,EAA2Bw4C,EAAY,GACvC1b,EAA4B0b,EAAY,GACxCt9B,EAEIs9B,EAAY,GAIhB/2C,EAAiC+2C,EAAY,GAC7C92C,EAAiC82C,EAAY,GAC7C,IAAIziD,EAAgCyiD,EAAY,GAChD,MAAMlvD,EAAiCkvD,EAAY,GAC7Cpe,EAAiCoe,EAAY,GAC7Cne,EAAiCme,EAAY,GAC7CvkB,EAAyCukB,EAAY,IAC3D,IAAIxkD,EAAkCwkD,EAAY,IAClD,MAAM3hD,EACJ2hD,EAAY,IAEd,IAAI1iD,EAA+B0iD,EAAY,IAC/C,MAAMhkB,GAEFgkB,EAAY,IAEVvC,GAEFuC,EAAY,IAGhB,IAAKt9B,GAASs9B,EAAYp8D,QAAU,GAAI,CAEtCw7C,EAA8B4gB,EAAY,IAC1CoG,EAAiCpG,EAAY,IAC7CmG,EAAmCnG,EAAY,IAC/CqG,EAAiCrG,EAAY,IAC7C,MAAM4N,EAAkBrsE,KAAKkrE,6BAC3BrtB,EACAgnB,EACAD,EACAE,GAEF3jC,EAAQkrC,EAAgB5rB,MACxBge,EAAY,GAAKt9B,EACjB,MAAMgkC,EAAqC1G,EAAY,IACvD/2C,GAAW2kD,EAAgB3kD,QAAUy9C,GAAenlE,KAAK6nC,WACzD42B,EAAY,GAAK/2C,EACjB,MAAM09C,EAAqC3G,EAAY,IACvD92C,GAAW0kD,EAAgB1kD,QAAUy9C,GAAeplE,KAAK6nC,WACzD42B,EAAY,GAAK92C,EACjB3L,EAASmlB,EAAMnlB,OACfyiD,EAAY,GAAKziD,EACjBD,EAAQolB,EAAMplB,MACd0iD,EAAY,IAAM1iD,CACpB,CAEA,IAAIwnD,GAKApxC,GAAS24B,GAAgBE,GAJzByT,EAAYp8D,OAAS,KACvBkhE,GAAwC9E,EAAY,KAIlDA,EAAYp8D,OAAS,IACvB8vB,GAAwCssC,EAAY,IACpD3T,GAAyC2T,EAAY,IACrDzT,GAA2CyT,EAAY,MAEvDtsC,GAAUirB,GACV0N,IAAiB,EACjBE,IAAmB,GAGjB9Q,GAAkBgyB,EAEpBjyD,GAAYgyD,EACF/xB,GAAmBgyB,IAE7BjyD,GAAYgyD,GAEd,IAAIK,GAAa,EACjB,KAAOrmD,EAAI88B,EAAI98B,GAAK,EAAG,CACrB,GACEs9C,IACAA,GAAe+I,MAAgBvwD,EAAQ/b,KAAK6nC,WAE5C,SAEF,MAAMijC,EAAa9qE,KAAK8pE,iCACtB3oC,EAAMplB,MACNolB,EAAMnlB,OACNsvD,EAAiBrlD,GACjBqlD,EAAiBrlD,EAAI,GACrBlK,EACAC,EACA0L,EACAC,EACA04B,EACAC,EACArmC,EACA6C,EACAmtD,EACA93C,GACA24B,IAAkBE,GAClBzE,GAGIroC,EAAO,CACXyjB,EACAipC,EACAzpC,EACA2pC,EACAv7D,EACAu7C,GAC6BghB,EACzB,KACJ9gB,GAC6B+gB,EACzB,MAEN,GAAI7S,EAAe,CACjB,GAAsB,SAAlBze,GAEF,SACK,GAAsB,aAAlBA,GAA8B,CAEvCye,EAAcqT,OAAOzB,EAAW7C,cAChC,QACF,CAAO,CACL,IAAIuE,EACAC,EACJ,GAAIvQ,GAAwB,CAC1B,MAAMh4D,EAAQ6+C,EAAK98B,EACnB,IAAKi2C,GAAuBh4D,GAAQ,CAElCg4D,GAAuBh4D,GAASga,EAEhC,QACF,CAIA,GAHAsuD,EAAYtQ,GAAuBh4D,UAC5Bg4D,GAAuBh4D,GAC9BuoE,EAAoB1E,GAAgByE,GAChCtT,EAAcwT,SAASD,GACzB,QAEJ,CACA,GAAIvT,EAAcwT,SAAS5B,EAAW7C,cACpC,SAEEuE,IAEFtT,EAAcqT,OAAOE,GAErBzsE,KAAK2qE,oBAAoBxlE,MAAMnF,KAAMwsE,IAEvCtT,EAAcqT,OAAOzB,EAAW7C,aAClC,CACF,CACAjoE,KAAK2qE,oBAAoBxlE,MAAMnF,KAAMke,EACvC,GACErb,EACF,MACF,KAAKw7D,GAAkBvE,WACrB,MAAM92D,GAA+By7D,EAAY,GAC3Cx7D,GAA6Bw7D,EAAY,GACzCsG,GAAkCtG,EAAY,GAC9C/T,GAAkC+T,EAAY,GACpDqG,EAAiCrG,EAAY,GAC7C,MAAMnU,GAAkCmU,EAAY,GAC9CkO,GAA2ClO,EAAY,GACvDnrC,GAAiCmrC,EAAY,GACnDmG,EAAmCnG,EAAY,GAC/C,MAAMnc,GAAqCmc,EAAY,IACvD5gB,EAA8B4gB,EAAY,IAC1CoG,EAAiCpG,EAAY,IAC7C,MAAMmO,GAAkB,CACCnO,EAAY,IACZA,EAAY,KAG/B4E,GAAYrjE,KAAK+iE,WAAW8B,GAC5BnmB,GAAO2kB,GAAU3kB,KACjBwmB,GAAY,CAChB7B,GAAUvmD,MAAM,GAAK6vD,GACrBtJ,GAAUvmD,MAAM,GAAK6vD,IAGvB,IAAIE,GACAnuB,MAAQ1+C,KAAKgpE,QACf6D,GAAe7sE,KAAKgpE,QAAQtqB,KAE5BmuB,GAAe,CAAC,EAChB7sE,KAAKgpE,QAAQtqB,IAAQmuB,IAGvB,MAAMC,GAAajF,GAAiByD,EAAkBtoE,GAAOC,GAAK,GAC5D8pE,GACJlgE,KAAKgB,IAAIq3D,GAAU,IACnB1lB,GAAyBd,GAAMb,EAAMgvB,IACvC,GAAIniB,IAAYqiB,IAAcD,GAAY,CACxC,MAAMhjB,EAAY9pD,KAAK+iE,WAAW8B,GAAS/a,UACrCgd,GACHgG,GAAaC,IAAc3E,GAAoBvqB,EAAMiM,GAClDkjB,EAAQnG,GACZyE,EACAtoE,GACAC,GACA,EACA46C,EACAipB,EACAxc,GACAz9C,KAAKgB,IAAIq3D,GAAU,IACnB1lB,GACAd,GACAmuB,GACAX,EAA4B,EAAIlsE,KAAK+oE,eAEvCkE,EAAW,GAAID,EAAO,CAEpB,MAAMhF,EAAyB,GAC/B,IAAIhiD,EAAGu+C,EAAIoD,EAAOlnB,EAAOysB,EACzB,GAAItI,EACF,IAAK5+C,EAAI,EAAGu+C,EAAKyI,EAAM3qE,OAAQ2jB,EAAIu+C,IAAMv+C,EAAG,CAC1CknD,EAAOF,EAAMhnD,GACb2hD,EAA+BuF,EAAK,GACpCzsB,EAAQzgD,KAAKipE,YAAYtB,EAAO9C,EAAS,GAAID,GAC7Cl9C,EACyBwlD,EAAK,IAC3BhI,GAAU,GAAK,GAAK5iB,GAAcA,IACrC36B,EACEo9C,GAAWtkB,EAAMzkC,OACG,GAAlB,GAAM+oD,IAAgBziB,GAAc4iB,GAAU,GAC9CA,GAAU,GACZ5xC,GACF,MAAMw3C,EAAa9qE,KAAK8pE,iCACtBrpB,EAAM1kC,MACN0kC,EAAMzkC,OACNkxD,EAAK,GACLA,EAAK,GACLzsB,EAAM1kC,MACN0kC,EAAMzkC,OACN0L,EACAC,EACA,EACA,EACAulD,EAAK,GACLN,IACA,EACAxvB,IACA,EACAmJ,GAEF,GACE2S,GACAA,EAAcwT,SAAS5B,EAAW7C,cAElC,MAAMgF,EAERjF,EAAuB7hE,KAAK,CAC1Bw7B,EACAipC,EACAnqB,EACAqqB,EACA,EACA,KACA,MAEJ,CAEF,GAAIhG,EACF,IAAK9+C,EAAI,EAAGu+C,EAAKyI,EAAM3qE,OAAQ2jB,EAAIu+C,IAAMv+C,EAAG,CAC1CknD,EAAOF,EAAMhnD,GACb2hD,EAA+BuF,EAAK,GACpCzsB,EAAQzgD,KAAKipE,YAAYtB,EAAO9C,EAASC,EAAS,IAClDp9C,EAAiCwlD,EAAK,GACtCvlD,EAAUo9C,GAAWtkB,EAAMzkC,OAASsX,GACpC,MAAMw3C,EAAa9qE,KAAK8pE,iCACtBrpB,EAAM1kC,MACN0kC,EAAMzkC,OACNkxD,EAAK,GACLA,EAAK,GACLzsB,EAAM1kC,MACN0kC,EAAMzkC,OACN0L,EACAC,EACA,EACA,EACAulD,EAAK,GACLN,IACA,EACAxvB,IACA,EACAmJ,GAEF,GACE2S,GACAA,EAAcwT,SAAS5B,EAAW7C,cAElC,MAAMgF,EAERjF,EAAuB7hE,KAAK,CAC1Bw7B,EACAipC,EACAnqB,EACAqqB,EACA,EACA,KACA,MAEJ,CAEE5R,GACFA,EAAc13B,KAAKwmC,EAAuBlrC,IAAIirC,KAEhD,IAAK,IAAIllE,EAAI,EAAG+D,EAAKohE,EAAuB3lE,OAAQQ,EAAI+D,IAAM/D,EAC5D7C,KAAK2qE,oBAAoBxlE,MAAMnF,KAAMgoE,EAAuBnlE,GAEhE,CACF,GACEA,EACF,MACF,KAAKw7D,GAAkBrE,aACrB,QAAwB/yD,IAApBmkE,EAA+B,CACjC7kB,EACEkY,EAAY,GAEd,MAAMl8C,EAAS6oD,EAAgB7kB,EAAS6lB,GACxC,GAAI7pD,EACF,OAAOA,CAEX,GACE1f,EACF,MACF,KAAKw7D,GAAkBpE,KACjBkS,EACFP,IAEA5rE,KAAK4gD,MAAMjf,KAEX9+B,EACF,MACF,KAAKw7D,GAAkBnE,gBAYrB,IAXAj0C,EAA2Bw4C,EAAY,GACvC1b,EAA4B0b,EAAY,GACxC1xD,EAAIu+D,EAAiBrlD,GACrBjZ,EAAIs+D,EAAiBrlD,EAAI,GACzBylD,EAAU3+D,EAAI,GAAO,EACrB4+D,EAAU3+D,EAAI,GAAO,EACjB0+D,IAAWF,GAASG,IAAWF,IACjC9pC,EAAQ2F,OAAOv6B,EAAGC,GAClBw+D,EAAQE,EACRD,EAAQE,GAEL1lD,GAAK,EAAGA,EAAI88B,EAAI98B,GAAK,EACxBlZ,EAAIu+D,EAAiBrlD,GACrBjZ,EAAIs+D,EAAiBrlD,EAAI,GACzBylD,EAAU3+D,EAAI,GAAO,EACrB4+D,EAAU3+D,EAAI,GAAO,EACjBiZ,GAAK88B,EAAK,GAAK2oB,IAAWF,GAASG,IAAWF,IAChD9pC,EAAQ4F,OAAOx6B,EAAGC,GAClBw+D,EAAQE,EACRD,EAAQE,KAGV9oE,EACF,MACF,KAAKw7D,GAAkBlE,eACrB2R,EAAsBrN,EACtBz+D,KAAK2oE,WAAalK,EAAY,GAE1BmN,IACF5rE,KAAK4gD,MAAMjf,GACXiqC,EAAc,EACVC,IACFlqC,EAAQmQ,SACR+5B,EAAgB,IAIpBlqC,EAAQuJ,UAEJuzB,EAAY,KAEd57D,EACF,MACF,KAAKw7D,GAAkBjE,iBACrB2R,EAAwBtN,EACpBoN,IACFlqC,EAAQmQ,SACR+5B,EAAgB,GAElB7rE,KAAK6pE,gBAAgBloC,EAAkC88B,KACrD57D,EACF,MACF,KAAKw7D,GAAkBhE,OACjB8R,EACFN,IAEAlqC,EAAQmQ,WAERjvC,EACF,MACF,UACIA,EACF,MAEN,CACI+oE,GACF5rE,KAAK4gD,MAAMjf,GAETkqC,GACFlqC,EAAQmQ,QAGZ,CAUAq7B,OAAAA,CACExrC,EACAipC,EACAn0D,EACAw1D,EACAhC,EACA/Q,GAEAl5D,KAAK+oE,cAAgBkD,EACrBjsE,KAAKmrE,SACHxpC,EACAipC,EACAn0D,EACAzW,KAAK08D,aACLuN,OACAhjE,OACAA,EACAiyD,EAEJ,CAYAkU,mBAAAA,CACEzrC,EACAlrB,EACAw1D,EACAb,EACAC,GAGA,OADArrE,KAAK+oE,cAAgBkD,EACdjsE,KAAKmrE,SACVxpC,EACA,EACAlrB,EACAzW,KAAK48D,0BACL,EACAwO,EACAC,EAEJ,EAGF,UCvtCA,MAAMgC,GAAQ,CAAC,UAAW,SAAU,aAAc,QAAS,OAAQ,WAEnE,MAAMC,GAaJtsE,WAAAA,CACEihB,EACA7M,EACAyyB,EACA6gC,EACA6E,EACAxV,GAMA/3D,KAAK+lE,WAAa9jD,EAMlBjiB,KAAKwtE,UAAY9E,EAMjB1oE,KAAKqyC,YAAcxK,EAMnB7nC,KAAKgmE,YAAc5wD,EAMnBpV,KAAKo4D,cAAgBL,EAMrB/3D,KAAKytE,mBAAqB,CAAC,EAM3BztE,KAAK0tE,qBAAuB,KAM5B1tE,KAAK2tE,uBAAyB3lD,KAE9BhoB,KAAK4tE,iBAAiBL,EACxB,CAMA/lC,IAAAA,CAAK7F,EAASlrB,GACZ,MAAMo3D,EAAiB7tE,KAAK8tE,cAAcr3D,GAC1CkrB,EAAQ0F,YACR1F,EAAQ2F,OAAOumC,EAAe,GAAIA,EAAe,IACjDlsC,EAAQ4F,OAAOsmC,EAAe,GAAIA,EAAe,IACjDlsC,EAAQ4F,OAAOsmC,EAAe,GAAIA,EAAe,IACjDlsC,EAAQ4F,OAAOsmC,EAAe,GAAIA,EAAe,IACjDlsC,EAAQ6F,MACV,CAOAomC,gBAAAA,CAAiBL,GACf,IAAK,MAAM99D,KAAU89D,EAAiB,CACpC,IAAIQ,EAAY/tE,KAAKytE,mBAAmBh+D,QACtBxI,IAAd8mE,IACFA,EAAY,CAAC,EACb/tE,KAAKytE,mBAAmBh+D,GAAUs+D,GAEpC,MAAMC,EAAsBT,EAAgB99D,GAC5C,IAAK,MAAM+2D,KAAewH,EAAqB,CAC7C,MAAMtR,EAAesR,EAAoBxH,GACzCuH,EAAUvH,GAAe,IAAIiC,GAC3BzoE,KAAKgmE,YACLhmE,KAAKqyC,YACLryC,KAAKwtE,UACL9Q,EAEJ,CACF,CACF,CAMAuR,YAAAA,CAAaF,GACX,IAAK,MAAMt+D,KAAUzP,KAAKytE,mBAAoB,CAC5C,MAAMS,EAAaluE,KAAKytE,mBAAmBh+D,GAC3C,IAAK,IAAI5M,EAAI,EAAG+D,EAAKmnE,EAAU1rE,OAAQQ,EAAI+D,IAAM/D,EAC/C,GAAIkrE,EAAUlrE,KAAMqrE,EAClB,OAAO,CAGb,CACA,OAAO,CACT,CAYAptC,0BAAAA,CACE7oB,EACA7C,EACA6E,EACA8mB,EACA7nB,EACAi1D,GAEAptC,EAAel0B,KAAKiC,MAAMiyB,GAC1B,MAAMqtC,EAA6B,EAAfrtC,EAAmB,EACjCtqB,EAAYmT,GAChB5pB,KAAK2tE,uBACL5sC,EAAe,GACfA,EAAe,GACf,EAAI3rB,GACH,EAAIA,GACJ6E,GACAhC,EAAW,IACXA,EAAW,IAGRo2D,GAAcruE,KAAK0tE,qBACrBW,IACFruE,KAAK0tE,qBAAuBpqC,GAC1B8qC,EACAA,OACAnnE,EACA,CAACw+B,oBAAoB,KAGzB,MAAM9D,EAAU3hC,KAAK0tE,qBAerB,IAAIrC,EAZF1pC,EAAQ8B,OAAO1nB,QAAUqyD,GACzBzsC,EAAQ8B,OAAOznB,SAAWoyD,GAE1BzsC,EAAQ8B,OAAO1nB,MAAQqyD,EACvBzsC,EAAQ8B,OAAOznB,OAASoyD,GACdC,GACV1sC,EAAQkC,UAAU,EAAG,EAAGuqC,EAAaA,QAOZnnE,IAAvBjH,KAAKo4D,gBACPiT,EAAYn0D,KACZC,GAAiBk0D,EAAWpzD,GAC5BJ,GACEwzD,EACAj2D,GAAcpV,KAAKo4D,cAAgBr3B,GACnCsqC,IAIJ,MAAMiD,EAAUC,GAAmBxtC,GAEnC,IAAIylC,EAOJ,SAAS4E,EAAgB7kB,EAAS5tB,GAChC,MAAM61C,EAAY7sC,EAAQsE,aACxB,EACA,EACAmoC,EACAA,GACAhrE,KACF,IAAK,IAAIP,EAAI,EAAG+D,EAAK0nE,EAAQjsE,OAAQQ,EAAI+D,EAAI/D,IAC3C,GAAI2rE,EAAUF,EAAQzrE,IAAM,EAAG,CAC7B,IACGsrE,GACgB,UAAhB3H,GAA2C,SAAhBA,GAC5B2H,EAAoBjoE,SAASqgD,GAC7B,CACA,MAAMkoB,GAAOH,EAAQzrE,GAAK,GAAK,EACzBkK,EAAIg0B,EAAgB0tC,EAAML,EAC1BphE,EAAI+zB,GAAiB0tC,EAAML,EAAe,GAC1C7rD,EAASrJ,EAASqtC,EAAS5tB,EAAU5rB,EAAIA,EAAIC,EAAIA,GACvD,GAAIuV,EACF,OAAOA,CAEX,CACAof,EAAQkC,UAAU,EAAG,EAAGuqC,EAAaA,GACrC,KACF,CAGJ,CAGA,MAAM/2B,EAAKlwC,OAAOC,KAAKpH,KAAKytE,oBAAoB3wC,IAAIsG,QAGpD,IAAIvgC,EAAGmL,EAAG+/D,EAAWW,EAAUnsD,EAC/B,IAHA80B,EAAG9oB,KAAKrsB,GAGHW,EAAIw0C,EAAGh1C,OAAS,EAAGQ,GAAK,IAAKA,EAAG,CACnC,MAAM4jE,EAAYpvB,EAAGx0C,GAAGokB,WAExB,IADA8mD,EAAY/tE,KAAKytE,mBAAmBhH,GAC/Bz4D,EAAIq/D,GAAMhrE,OAAS,EAAG2L,GAAK,IAAKA,EAGnC,GAFAw4D,EAAc6G,GAAMr/D,GACpB0gE,EAAWX,EAAUvH,QACJv/D,IAAbynE,IACFnsD,EAASmsD,EAAStB,oBAChBzrC,EACAlrB,EACAwD,EACAmxD,EACAC,GAEE9oD,GACF,OAAOA,CAIf,CAEF,CAMAurD,aAAAA,CAAcr3D,GACZ,MAAMwL,EAAYjiB,KAAK+lE,WACvB,IAAK9jD,EACH,OAAO,KAET,MAAMzK,EAAOyK,EAAU,GACjBxK,EAAOwK,EAAU,GACjBvK,EAAOuK,EAAU,GACjBtK,EAAOsK,EAAU,GACjB4rD,EAAiB,CAACr2D,EAAMC,EAAMD,EAAMG,EAAMD,EAAMC,EAAMD,EAAMD,GAElE,OADA+P,GAAYqmD,EAAgB,EAAG,EAAG,EAAGp3D,EAAWo3D,GACzCA,CACT,CAKAtoE,OAAAA,GACE,OAAOA,EAAQvF,KAAKytE,mBACtB,CAYAN,OAAAA,CACExrC,EACAipC,EACAn0D,EACAw1D,EACAhC,EACA0E,EACAzV,GAGA,MAAM7hB,EAAKlwC,OAAOC,KAAKpH,KAAKytE,oBAAoB3wC,IAAIsG,QAWpD,IAAIvgC,EAAG+D,EAAIoH,EAAGie,EAAIy6C,EAASC,EAI3B,IAdAtvB,EAAG9oB,KAAKrsB,GAIJlC,KAAK+lE,aACPpkC,EAAQyF,OACRpnC,KAAKwnC,KAAK7F,EAASlrB,IAGrBk4D,EAAeA,GAA8BtB,GAEzCnU,GACF7hB,EAAG9nB,UAEA1sB,EAAI,EAAG+D,EAAKywC,EAAGh1C,OAAQQ,EAAI+D,IAAM/D,EAAG,CACvC,MAAM4jE,EAAYpvB,EAAGx0C,GAAGokB,WAExB,IADAy/C,EAAU1mE,KAAKytE,mBAAmBhH,GAC7Bz4D,EAAI,EAAGie,EAAK0iD,EAAatsE,OAAQ2L,EAAIie,IAAMje,EAAG,CACjD,MAAMw4D,EAAcmI,EAAa3gE,GACjC24D,EAASD,EAAQF,QACFv/D,IAAX0/D,GACFA,EAAOwG,QACLxrC,EACAipC,EACAn0D,EACAw1D,EACAhC,EACA/Q,EAGN,CACF,CAEIl5D,KAAK+lE,YACPpkC,EAAQ6N,SAEZ,EASF,MAAMo/B,GAA6B,CAAC,EAS7B,SAASL,GAAmBlxD,GACjC,QAA2CpW,IAAvC2nE,GAA2BvxD,GAC7B,OAAOuxD,GAA2BvxD,GAGpC,MAAMnD,EAAgB,EAATmD,EAAa,EACpBwxD,EAAgBxxD,EAASA,EACzByxD,EAAY,IAAIxrE,MAAMurE,EAAgB,GAC5C,IAAK,IAAIhsE,EAAI,EAAGA,GAAKwa,IAAUxa,EAC7B,IAAK,IAAImL,EAAI,EAAGA,GAAKqP,IAAUrP,EAAG,CAChC,MAAM+gE,EAAalsE,EAAIA,EAAImL,EAAIA,EAC/B,GAAI+gE,EAAaF,EACf,MAEF,IAAIG,EAAWF,EAAUC,GACpBC,IACHA,EAAW,GACXF,EAAUC,GAAcC,GAE1BA,EAAS7oE,KAA4C,IAArCkX,EAASxa,GAAKqX,GAAQmD,EAASrP,IAAU,GACrDnL,EAAI,GACNmsE,EAAS7oE,KAA4C,IAArCkX,EAASxa,GAAKqX,GAAQmD,EAASrP,IAAU,GAEvDA,EAAI,IACNghE,EAAS7oE,KAA4C,IAArCkX,EAASxa,GAAKqX,GAAQmD,EAASrP,IAAU,GACrDnL,EAAI,GACNmsE,EAAS7oE,KAA4C,IAArCkX,EAASxa,GAAKqX,GAAQmD,EAASrP,IAAU,GAG/D,CAGF,MAAMihE,EAAa,GACnB,IAAK,IAAIpsE,EAAI,EAAG+D,EAAKkoE,EAAUzsE,OAAQQ,EAAI+D,IAAM/D,EAC3CisE,EAAUjsE,IACZosE,EAAW9oE,QAAQ2oE,EAAUjsE,IAKjC,OADA+rE,GAA2BvxD,GAAU4xD,EAC9BA,CACT,CAEA,UC9XA,MAAMC,WAAgCxU,GAUpC15D,WAAAA,CACE2gC,EACAkG,EACAl3B,EACA8F,EACAw1D,EACA1jD,EACA4mD,GAEA1pE,QAMAzF,KAAKovE,SAAWztC,EAMhB3hC,KAAKqyC,YAAcxK,EAMnB7nC,KAAKkT,QAAUvC,EAMf3Q,KAAKqvE,WAAa54D,EAMlBzW,KAAKsvE,mBAAqB74D,EACtB/H,EAAQ7B,KAAK6Q,MAAMjH,EAAU,GAAIA,EAAU,IAAK,IAChD,EAMJzW,KAAK+oE,cAAgBkD,EAMrBjsE,KAAKuvE,kBAAoBhnD,EAMzBvoB,KAAKwvE,eAAiBL,EAMtBnvE,KAAKyvE,kBAAoB,KAMzBzvE,KAAK0vE,oBAAsB,KAM3B1vE,KAAK2vE,kBAAoB,KAMzB3vE,KAAK4vE,WAAa,KAMlB5vE,KAAK6vE,aAAe,KAMpB7vE,KAAKsqC,OAAS,KAMdtqC,KAAK8vE,cAAgB,EAMrB9vE,KAAK+vE,cAAgB,EAMrB/vE,KAAKgwE,aAAe,EAMpBhwE,KAAKiwE,cAAgB,EAMrBjwE,KAAKkwE,cAAgB,EAMrBlwE,KAAKmwE,cAAgB,EAMrBnwE,KAAKowE,sBAAuB,EAM5BpwE,KAAKqwE,eAAiB,EAMtBrwE,KAAKswE,YAAc,CAAC,EAAG,GAMvBtwE,KAAKuwE,YAAc,EAMnBvwE,KAAK8lD,MAAQ,GAMb9lD,KAAKsiE,aAAe,EAMpBtiE,KAAKuiE,aAAe,EAMpBviE,KAAKwiE,qBAAsB,EAM3BxiE,KAAKyiE,cAAgB,EAMrBziE,KAAKwwE,WAAa,CAAC,EAAG,GAMtBxwE,KAAK0iE,eAAiB,KAMtB1iE,KAAK4iE,iBAAmB,KAMxB5iE,KAAK8iE,WAAa,KAMlB9iE,KAAK8oE,kBAAoB,GAMzB9oE,KAAKywE,mBAAqBzoD,IAC5B,CASA0oD,WAAAA,CAAY93D,EAAiBC,EAAQ5V,EAAK6V,GACxC,IAAK9Y,KAAKsqC,OACR,OAEF,MAAMghC,EAAmB9jD,GACvB5O,EACAC,EACA5V,EACA6V,EACA9Y,KAAKqvE,WACLrvE,KAAK8oE,mBAEDnnC,EAAU3hC,KAAKovE,SACfuB,EAAiB3wE,KAAKywE,mBACtB53B,EAAQlX,EAAQoX,YACI,GAAtB/4C,KAAKiwE,gBACPtuC,EAAQoX,YAAcF,EAAQ74C,KAAKiwE,eAErC,IAAIh2D,EAAWja,KAAKqwE,eACY,IAA5BrwE,KAAKsvE,qBACPr1D,GAAYja,KAAK+oE,eAEf/oE,KAAKowE,uBACPn2D,GAAYja,KAAK+oE,eAEnB,IAAK,IAAIlmE,EAAI,EAAG+D,EAAK0kE,EAAiBjpE,OAAQQ,EAAI+D,EAAI/D,GAAK,EAAG,CAC5D,MAAMkK,EAAIu+D,EAAiBzoE,GAAK7C,KAAK8vE,cAC/B9iE,EAAIs+D,EAAiBzoE,EAAI,GAAK7C,KAAK+vE,cACzC,GACe,IAAb91D,GACuB,GAAvBja,KAAKswE,YAAY,IACM,GAAvBtwE,KAAKswE,YAAY,GACjB,CACA,MAAM92C,EAAUzsB,EAAI/M,KAAK8vE,cACnBr2C,EAAUzsB,EAAIhN,KAAK+vE,cACzBnmD,GACE+mD,EACAn3C,EACAC,EACA,EACA,EACAxf,GACCuf,GACAC,GAEHkI,EAAQyF,OACRzF,EAAQlrB,UAAUtR,MAAMw8B,EAASgvC,GACjChvC,EAAQ7Z,UAAU0R,EAASC,GAC3BkI,EAAQ7kB,MAAM9c,KAAKswE,YAAY,GAAItwE,KAAKswE,YAAY,IACpD3uC,EAAQyE,UACNpmC,KAAKsqC,OACLtqC,KAAKkwE,cACLlwE,KAAKmwE,cACLnwE,KAAKuwE,YACLvwE,KAAKgwE,cACJhwE,KAAK8vE,eACL9vE,KAAK+vE,cACN/vE,KAAKuwE,YACLvwE,KAAKgwE,cAEPruC,EAAQ6N,SACV,MACE7N,EAAQyE,UACNpmC,KAAKsqC,OACLtqC,KAAKkwE,cACLlwE,KAAKmwE,cACLnwE,KAAKuwE,YACLvwE,KAAKgwE,aACLjjE,EACAC,EACAhN,KAAKuwE,YACLvwE,KAAKgwE,aAGX,CAC0B,GAAtBhwE,KAAKiwE,gBACPtuC,EAAQoX,YAAcF,EAE1B,CASA+3B,SAAAA,CAAUh4D,EAAiBC,EAAQ5V,EAAK6V,GACtC,IAAK9Y,KAAK8iE,YAA6B,KAAf9iE,KAAK8lD,MAC3B,OAEE9lD,KAAK0iE,gBACP1iE,KAAK6wE,qBAAqB7wE,KAAK0iE,gBAE7B1iE,KAAK4iE,kBACP5iE,KAAK8wE,uBAAuB9wE,KAAK4iE,kBAEnC5iE,KAAK+wE,qBAAqB/wE,KAAK8iE,YAC/B,MAAMwI,EAAmB9jD,GACvB5O,EACAC,EACA5V,EACA6V,EACA9Y,KAAKqvE,WACLrvE,KAAK8oE,mBAEDnnC,EAAU3hC,KAAKovE,SACrB,IAAIn1D,EAAWja,KAAKyiE,cAOpB,IANgC,IAA5BziE,KAAKsvE,qBACPr1D,GAAYja,KAAK+oE,eAEf/oE,KAAKwiE,sBACPvoD,GAAYja,KAAK+oE,eAEZlwD,EAAS5V,EAAK4V,GAAUC,EAAQ,CACrC,MAAM/L,EAAIu+D,EAAiBzyD,GAAU7Y,KAAKsiE,aACpCt1D,EAAIs+D,EAAiBzyD,EAAS,GAAK7Y,KAAKuiE,aAE/B,IAAbtoD,GACsB,GAAtBja,KAAKwwE,WAAW,IACM,GAAtBxwE,KAAKwwE,WAAW,IAEhB7uC,EAAQyF,OACRzF,EAAQ7Z,UAAU/a,EAAI/M,KAAKsiE,aAAct1D,EAAIhN,KAAKuiE,cAClD5gC,EAAQjlB,OAAOzC,GACf0nB,EAAQ7Z,UAAU9nB,KAAKsiE,aAActiE,KAAKuiE,cAC1C5gC,EAAQ7kB,MAAM9c,KAAKwwE,WAAW,GAAIxwE,KAAKwwE,WAAW,IAC9CxwE,KAAK4iE,kBACPjhC,EAAQqvC,WAAWhxE,KAAK8lD,MAAO,EAAG,GAEhC9lD,KAAK0iE,gBACP/gC,EAAQsvC,SAASjxE,KAAK8lD,MAAO,EAAG,GAElCnkB,EAAQ6N,YAEJxvC,KAAK4iE,kBACPjhC,EAAQqvC,WAAWhxE,KAAK8lD,MAAO/4C,EAAGC,GAEhChN,KAAK0iE,gBACP/gC,EAAQsvC,SAASjxE,KAAK8lD,MAAO/4C,EAAGC,GAGtC,CACF,CAWAkkE,aAAAA,CAAct4D,EAAiBC,EAAQ5V,EAAK6V,EAAQq4D,GAClD,MAAMxvC,EAAU3hC,KAAKovE,SACf9D,EAAmB9jD,GACvB5O,EACAC,EACA5V,EACA6V,EACA9Y,KAAKqvE,WACLrvE,KAAK8oE,mBAEPnnC,EAAQ2F,OAAOgkC,EAAiB,GAAIA,EAAiB,IACrD,IAAIjpE,EAASipE,EAAiBjpE,OAC1B8uE,IACF9uE,GAAU,GAEZ,IAAK,IAAIQ,EAAI,EAAGA,EAAIR,EAAQQ,GAAK,EAC/B8+B,EAAQ4F,OAAO+jC,EAAiBzoE,GAAIyoE,EAAiBzoE,EAAI,IAK3D,OAHIsuE,GACFxvC,EAAQ4N,YAEHtsC,CACT,CAUAmuE,UAAAA,CAAWx4D,EAAiBC,EAAQ0S,EAAMzS,GACxC,IAAK,IAAIjW,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAC1CgW,EAAS7Y,KAAKkxE,cACZt4D,EACAC,EACA0S,EAAK1oB,GACLiW,GACA,GAGJ,OAAOD,CACT,CASAgiD,UAAAA,CAAWliC,GAST,GARI34B,KAAKuvE,oBACP52C,EACEA,EAASlQ,oBACPzoB,KAAKuvE,kBACLvvE,KAAKwvE,iBAINt0D,GAAWlb,KAAKkT,QAASylB,EAAS/nB,aAAvC,CAGA,GAAI5Q,KAAK4vE,YAAc5vE,KAAK6vE,aAAc,CACpC7vE,KAAK4vE,YACP5vE,KAAK6wE,qBAAqB7wE,KAAK4vE,YAE7B5vE,KAAK6vE,cACP7vE,KAAK8wE,uBAAuB9wE,KAAK6vE,cAEnC,MAAMvE,EAAmBxgD,GACvB6N,EACA34B,KAAKqvE,WACLrvE,KAAK8oE,mBAEDz7D,EAAKi+D,EAAiB,GAAKA,EAAiB,GAC5Ch+D,EAAKg+D,EAAiB,GAAKA,EAAiB,GAC5CjuD,EAASxQ,KAAK8Q,KAAKtQ,EAAKA,EAAKC,EAAKA,GAClCq0B,EAAU3hC,KAAKovE,SACrBztC,EAAQ0F,YACR1F,EAAQsiB,IACNqnB,EAAiB,GACjBA,EAAiB,GACjBjuD,EACA,EACA,EAAIxQ,KAAK0B,IAEPvO,KAAK4vE,YACPjuC,EAAQkf,OAEN7gD,KAAK6vE,cACPluC,EAAQmQ,QAEZ,CACmB,KAAf9xC,KAAK8lD,OACP9lD,KAAK4wE,UAAUj4C,EAAS/e,YAAa,EAAG,EAAG,EAjC7C,CAmCF,CASA2+C,QAAAA,CAAShxC,GACPvnB,KAAK+7D,mBAAmBx0C,EAAMk6B,UAAWl6B,EAAMu6B,aAC/C9hD,KAAKg8D,cAAcz0C,EAAMkjB,YACzBzqC,KAAKm8D,aAAa50C,EAAM0+B,UAC1B,CAKAorB,YAAAA,CAAa56D,GACXzW,KAAKqvE,WAAa54D,CACpB,CASAmkD,YAAAA,CAAajiC,GACX,MAAM13B,EAAO03B,EAASvP,UACtB,OAAQnoB,GACN,IAAK,QACHjB,KAAK07D,UACmD/iC,GAExD,MACF,IAAK,aACH34B,KAAKk7D,eACwDviC,GAE7D,MACF,IAAK,UACH34B,KAAK47D,YACqDjjC,GAE1D,MACF,IAAK,aACH34B,KAAKs7D,eACwD3iC,GAE7D,MACF,IAAK,kBACH34B,KAAKo7D,oBAEDziC,GAGJ,MACF,IAAK,eACH34B,KAAKw7D,iBAC0D7iC,GAE/D,MACF,IAAK,qBACH34B,KAAKg7D,uBAEDriC,GAGJ,MACF,IAAK,SACH34B,KAAK66D,WACoDliC,GAEzD,MACF,SAEJ,CAYAoiC,WAAAA,CAAYxU,EAASh/B,GACnB,MAAMoR,EAAWpR,EAAM8+B,qBAAN9+B,CAA4Bg/B,GACxC5tB,IAGL34B,KAAKu4D,SAAShxC,GACdvnB,KAAK46D,aAAajiC,GACpB,CAQAqiC,sBAAAA,CAAuBriC,GACrB,MAAM24C,EAAa34C,EAAS44C,qBAC5B,IAAK,IAAI1uE,EAAI,EAAG+D,EAAK0qE,EAAWjvE,OAAQQ,EAAI+D,IAAM/D,EAChD7C,KAAK46D,aAAa0W,EAAWzuE,GAEjC,CAQA64D,SAAAA,CAAU/iC,GACJ34B,KAAKuvE,oBACP52C,EACEA,EAASlQ,oBACPzoB,KAAKuvE,kBACLvvE,KAAKwvE,iBAIX,MAAM52D,EAAkB+f,EAAS1O,qBAC3BnR,EAAS6f,EAASpO,YACpBvqB,KAAKsqC,QACPtqC,KAAK0wE,YAAY93D,EAAiB,EAAGA,EAAgBvW,OAAQyW,GAE5C,KAAf9Y,KAAK8lD,OACP9lD,KAAK4wE,UAAUh4D,EAAiB,EAAGA,EAAgBvW,OAAQyW,EAE/D,CAQAwiD,cAAAA,CAAe3iC,GACT34B,KAAKuvE,oBACP52C,EACEA,EAASlQ,oBACPzoB,KAAKuvE,kBACLvvE,KAAKwvE,iBAIX,MAAM52D,EAAkB+f,EAAS1O,qBAC3BnR,EAAS6f,EAASpO,YACpBvqB,KAAKsqC,QACPtqC,KAAK0wE,YAAY93D,EAAiB,EAAGA,EAAgBvW,OAAQyW,GAE5C,KAAf9Y,KAAK8lD,OACP9lD,KAAK4wE,UAAUh4D,EAAiB,EAAGA,EAAgBvW,OAAQyW,EAE/D,CAQAoiD,cAAAA,CAAeviC,GASb,GARI34B,KAAKuvE,oBACP52C,EACEA,EAASlQ,oBACPzoB,KAAKuvE,kBACLvvE,KAAKwvE,iBAINt0D,GAAWlb,KAAKkT,QAASylB,EAAS/nB,aAAvC,CAGA,GAAI5Q,KAAK6vE,aAAc,CACrB7vE,KAAK8wE,uBAAuB9wE,KAAK6vE,cACjC,MAAMluC,EAAU3hC,KAAKovE,SACfx2D,EAAkB+f,EAAS1O,qBACjC0X,EAAQ0F,YACRrnC,KAAKkxE,cACHt4D,EACA,EACAA,EAAgBvW,OAChBs2B,EAASpO,aACT,GAEFoX,EAAQmQ,QACV,CACA,GAAmB,KAAf9xC,KAAK8lD,MAAc,CACrB,MAAM0rB,EAAe74C,EAAS6qC,kBAC9BxjE,KAAK4wE,UAAUY,EAAc,EAAG,EAAG,EACrC,CAlBA,CAmBF,CAQApW,mBAAAA,CAAoBziC,GACd34B,KAAKuvE,oBACP52C,EAEIA,EAASlQ,oBACPzoB,KAAKuvE,kBACLvvE,KAAKwvE,iBAIb,MAAMiC,EAAiB94C,EAAS/nB,YAChC,GAAKsK,GAAWlb,KAAKkT,QAASu+D,GAA9B,CAGA,GAAIzxE,KAAK6vE,aAAc,CACrB7vE,KAAK8wE,uBAAuB9wE,KAAK6vE,cACjC,MAAMluC,EAAU3hC,KAAKovE,SACfx2D,EAAkB+f,EAAS1O,qBACjC,IAAIpR,EAAS,EACb,MAAM0S,EAAqCoN,EAASxI,UAC9CrX,EAAS6f,EAASpO,YACxBoX,EAAQ0F,YACR,IAAK,IAAIxkC,EAAI,EAAG+D,EAAK2kB,EAAKlpB,OAAQQ,EAAI+D,IAAM/D,EAC1CgW,EAAS7Y,KAAKkxE,cACZt4D,EACAC,EACA0S,EAAK1oB,GACLiW,GACA,GAGJ6oB,EAAQmQ,QACV,CACA,GAAmB,KAAf9xC,KAAK8lD,MAAc,CACrB,MAAM4rB,EAAgB/4C,EAAS8qC,mBAC/BzjE,KAAK4wE,UAAUc,EAAe,EAAGA,EAAcrvE,OAAQ,EACzD,CAvBA,CAwBF,CAQAu5D,WAAAA,CAAYjjC,GASV,GARI34B,KAAKuvE,oBACP52C,EACEA,EAASlQ,oBACPzoB,KAAKuvE,kBACLvvE,KAAKwvE,iBAINt0D,GAAWlb,KAAKkT,QAASylB,EAAS/nB,aAAvC,CAGA,GAAI5Q,KAAK6vE,cAAgB7vE,KAAK4vE,WAAY,CACpC5vE,KAAK4vE,YACP5vE,KAAK6wE,qBAAqB7wE,KAAK4vE,YAE7B5vE,KAAK6vE,cACP7vE,KAAK8wE,uBAAuB9wE,KAAK6vE,cAEnC,MAAMluC,EAAU3hC,KAAKovE,SACrBztC,EAAQ0F,YACRrnC,KAAKoxE,WACHz4C,EAAS1I,6BACT,EAC8B0I,EAASxI,UACvCwI,EAASpO,aAEPvqB,KAAK4vE,YACPjuC,EAAQkf,OAEN7gD,KAAK6vE,cACPluC,EAAQmQ,QAEZ,CACA,GAAmB,KAAf9xC,KAAK8lD,MAAc,CACrB,MAAM6rB,EAAoBh5C,EAASvI,uBACnCpwB,KAAK4wE,UAAUe,EAAmB,EAAG,EAAG,EAC1C,CA1BA,CA2BF,CAOAnW,gBAAAA,CAAiB7iC,GASf,GARI34B,KAAKuvE,oBACP52C,EACEA,EAASlQ,oBACPzoB,KAAKuvE,kBACLvvE,KAAKwvE,iBAINt0D,GAAWlb,KAAKkT,QAASylB,EAAS/nB,aAAvC,CAGA,GAAI5Q,KAAK6vE,cAAgB7vE,KAAK4vE,WAAY,CACpC5vE,KAAK4vE,YACP5vE,KAAK6wE,qBAAqB7wE,KAAK4vE,YAE7B5vE,KAAK6vE,cACP7vE,KAAK8wE,uBAAuB9wE,KAAK6vE,cAEnC,MAAMluC,EAAU3hC,KAAKovE,SACfx2D,EAAkB+f,EAAS1I,6BACjC,IAAIpX,EAAS,EACb,MAAMoU,EAAQ0L,EAASwlC,WACjBrlD,EAAS6f,EAASpO,YACxBoX,EAAQ0F,YACR,IAAK,IAAIxkC,EAAI,EAAG+D,EAAKqmB,EAAM5qB,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC9C,MAAM0oB,EAAO0B,EAAMpqB,GACnBgW,EAAS7Y,KAAKoxE,WAAWx4D,EAAiBC,EAAQ0S,EAAMzS,EAC1D,CACI9Y,KAAK4vE,YACPjuC,EAAQkf,OAEN7gD,KAAK6vE,cACPluC,EAAQmQ,QAEZ,CACA,GAAmB,KAAf9xC,KAAK8lD,MAAc,CACrB,MAAM8rB,EAAqBj5C,EAASgrC,wBACpC3jE,KAAK4wE,UAAUgB,EAAoB,EAAGA,EAAmBvvE,OAAQ,EACnE,CA5BA,CA6BF,CAMAwuE,oBAAAA,CAAqB1N,GACnB,MAAMxhC,EAAU3hC,KAAKovE,SACfyC,EAAmB7xE,KAAKyvE,kBACzBoC,EAMCA,EAAiB3mC,WAAai4B,EAAUj4B,YAC1C2mC,EAAiB3mC,UAAYi4B,EAAUj4B,UACvCvJ,EAAQuJ,UAAYi4B,EAAUj4B,YAPhCvJ,EAAQuJ,UAAYi4B,EAAUj4B,UAC9BlrC,KAAKyvE,kBAAoB,CACvBvkC,UAAWi4B,EAAUj4B,WAQ3B,CAMA4lC,sBAAAA,CAAuB1N,GACrB,MAAMzhC,EAAU3hC,KAAKovE,SACf0C,EAAqB9xE,KAAK0vE,oBAC3BoC,GAkBCA,EAAmB1uB,SAAWggB,EAAYhgB,UAC5C0uB,EAAmB1uB,QAAUggB,EAAYhgB,QACzCzhB,EAAQyhB,QAAUggB,EAAYhgB,SAE3B5/C,EAAOsuE,EAAmBzuB,SAAU+f,EAAY/f,WACnD1hB,EAAQoiB,YACL+tB,EAAmBzuB,SAAW+f,EAAY/f,UAG3CyuB,EAAmBxuB,gBAAkB8f,EAAY9f,iBACnDwuB,EAAmBxuB,eAAiB8f,EAAY9f,eAChD3hB,EAAQ2hB,eAAiB8f,EAAY9f,gBAEnCwuB,EAAmBzvB,UAAY+gB,EAAY/gB,WAC7CyvB,EAAmBzvB,SAAW+gB,EAAY/gB,SAC1C1gB,EAAQ0gB,SAAW+gB,EAAY/gB,UAE7ByvB,EAAmBjgC,WAAauxB,EAAYvxB,YAC9CigC,EAAmBjgC,UAAYuxB,EAAYvxB,UAC3ClQ,EAAQkQ,UAAYuxB,EAAYvxB,WAE9BigC,EAAmBvvB,YAAc6gB,EAAY7gB,aAC/CuvB,EAAmBvvB,WAAa6gB,EAAY7gB,WAC5C5gB,EAAQ4gB,WAAa6gB,EAAY7gB,YAE/BuvB,EAAmBlgC,aAAewxB,EAAYxxB,cAChDkgC,EAAmBlgC,YAAcwxB,EAAYxxB,YAC7CjQ,EAAQiQ,YAAcwxB,EAAYxxB,eA5CpCjQ,EAAQyhB,QAAUggB,EAAYhgB,QAC9BzhB,EAAQoiB,YAAYqf,EAAY/f,UAChC1hB,EAAQ2hB,eAAiB8f,EAAY9f,eACrC3hB,EAAQ0gB,SAAW+gB,EAAY/gB,SAC/B1gB,EAAQkQ,UAAYuxB,EAAYvxB,UAChClQ,EAAQ4gB,WAAa6gB,EAAY7gB,WACjC5gB,EAAQiQ,YAAcwxB,EAAYxxB,YAClC5xC,KAAK0vE,oBAAsB,CACzBtsB,QAASggB,EAAYhgB,QACrBC,SAAU+f,EAAY/f,SACtBC,eAAgB8f,EAAY9f,eAC5BjB,SAAU+gB,EAAY/gB,SACtBxQ,UAAWuxB,EAAYvxB,UACvB0Q,WAAY6gB,EAAY7gB,WACxB3Q,YAAawxB,EAAYxxB,aAiC/B,CAMAm/B,oBAAAA,CAAqB1N,GACnB,MAAM1hC,EAAU3hC,KAAKovE,SACf2C,EAAmB/xE,KAAK2vE,kBACxB7lB,EAAYuZ,EAAUvZ,UACxBuZ,EAAUvZ,UACV5M,GACC60B,GAUCA,EAAiBrzB,MAAQ2kB,EAAU3kB,OACrCqzB,EAAiBrzB,KAAO2kB,EAAU3kB,KAClC/c,EAAQ+c,KAAO2kB,EAAU3kB,MAEvBqzB,EAAiBjoB,WAAaA,IAChCioB,EAAiBjoB,UAAYA,EAC7BnoB,EAAQmoB,UAAYA,GAElBioB,EAAiB3nB,cAAgBiZ,EAAUjZ,eAC7C2nB,EAAiB3nB,aAAeiZ,EAAUjZ,aAC1CzoB,EAAQyoB,aAAeiZ,EAAUjZ,gBAnBnCzoB,EAAQ+c,KAAO2kB,EAAU3kB,KACzB/c,EAAQmoB,UAAYA,EACpBnoB,EAAQyoB,aAAeiZ,EAAUjZ,aACjCpqD,KAAK2vE,kBAAoB,CACvBjxB,KAAM2kB,EAAU3kB,KAChBoL,UAAWA,EACXM,aAAciZ,EAAUjZ,cAgB9B,CASA2R,kBAAAA,CAAmB7wB,EAAW0G,GAC5B,GAAK1G,EAEE,CACL,MAAMwzB,EAAiBxzB,EAAUqY,WACjCvjD,KAAK4vE,WAAa,CAChB1kC,UAAWuQ,GACTijB,GAAkC/hB,IAGxC,MARE38C,KAAK4vE,WAAa,KASpB,GAAKh+B,EAEE,CACL,MAAM+sB,EAAmB/sB,EAAY2R,WAC/Bqb,EAAqBhtB,EAAY+R,aACjCkb,EAAsBjtB,EAAY4R,cAClCsb,EAA4BltB,EAAY6R,oBACxCsb,EAAsBntB,EAAY8R,cAClCsb,EAAmBptB,EAAYl4B,WAC/BulD,EAAwBrtB,EAAYgS,gBACpCP,EAAWwb,GAEbhiB,GACJ78C,KAAK6vE,aAAe,CAClBzsB,aACyBn8C,IAAvB23D,EACIA,EACAhiB,GACNyG,SACuB,IAArBrjD,KAAKqyC,YACDgR,EACAA,EAASvmB,KAAKl6B,GAAMA,EAAI5C,KAAKqyC,cACnCiR,gBACGwb,GAEGhiB,IAAyB98C,KAAKqyC,YACpCgQ,cAC0Bp7C,IAAxB83D,EACIA,EACAhiB,GACNlL,gBACwB5qC,IAArB+3D,EACGA,EACA3hB,IAAoBr9C,KAAKqyC,YAC/BkQ,gBAC4Bt7C,IAA1Bg4D,EACIA,EACAjiB,GACNpL,YAAa6J,GACXkjB,GAAsC1hB,IAG5C,MAzCEj9C,KAAK6vE,aAAe,IA0CxB,CAQA7T,aAAAA,CAAcC,GACZ,IAAI1S,EACJ,IAAK0S,KAAgB1S,EAAY0S,EAAW/nB,WAE1C,YADAl0C,KAAKsqC,OAAS,MAGhB,MAAM0nC,EAAkB/V,EAAWhhB,cAAcj7C,KAAKqyC,aAChD4/B,EAAchW,EAAWlhB,YACzBm3B,EAAcjW,EAAWvmB,YAC/B11C,KAAKsqC,OAAS2xB,EAAWxxB,SAASzqC,KAAKqyC,aACvCryC,KAAK8vE,cAAgBmC,EAAY,GAAKD,EACtChyE,KAAK+vE,cAAgBkC,EAAY,GAAKD,EACtChyE,KAAKgwE,aAAezmB,EAAU,GAAKyoB,EACnChyE,KAAKiwE,cAAgBhU,EAAWxrD,aAChCzQ,KAAKkwE,cAAgBgC,EAAY,GACjClyE,KAAKmwE,cAAgB+B,EAAY,GACjClyE,KAAKowE,qBAAuBnU,EAAWthB,oBACvC36C,KAAKqwE,eAAiBpU,EAAWvoC,cACjC,MAAMy+C,EAAalW,EAAWnhB,gBAC9B96C,KAAKswE,YAAc,CAChB6B,EAAW,GAAKnyE,KAAKqyC,YAAe2/B,EACpCG,EAAW,GAAKnyE,KAAKqyC,YAAe2/B,GAEvChyE,KAAKuwE,YAAchnB,EAAU,GAAKyoB,CACpC,CAQA7V,YAAAA,CAAaC,GACX,GAAKA,EAEE,CACL,MAAM4I,EAAgB5I,EAAU3a,UAChC,GAAKujB,EAEE,CACL,MAAMoN,EAAqBpN,EAAczhB,WACzCvjD,KAAK0iE,eAAiB,CACpBx3B,UAAWuQ,GACT22B,GAA0Cz1B,IAGhD,MARE38C,KAAK0iE,eAAiB,KASxB,MAAMuC,EAAkB7I,EAAUta,YAClC,GAAKmjB,EAEE,CACL,MAAMoN,EAAuBpN,EAAgB1hB,WACvC+uB,EAAyBrN,EAAgBthB,aACzC4uB,EAA0BtN,EAAgBzhB,cAC1CgvB,EACJvN,EAAgBxhB,oBACZgvB,EAA0BxN,EAAgBvhB,cAC1CgvB,EAAuBzN,EAAgBvrD,WACvCi5D,EAA4B1N,EAAgBrhB,gBAClD5jD,KAAK4iE,iBAAmB,CACtBxf,aAC6Bn8C,IAA3BqrE,EACIA,EACA11B,GACNyG,SAAUkvB,GAEN11B,GACJyG,eAAgBkvB,GAEZ11B,GACJuF,cAC8Bp7C,IAA5BwrE,EACIA,EACA11B,GACNlL,eAC2B5qC,IAAzByrE,EACIA,EACAr1B,GACNkF,gBACgCt7C,IAA9B0rE,EACIA,EACA31B,GACNpL,YAAa6J,GACX42B,GAA8Cp1B,IAGpD,MArCEj9C,KAAK4iE,iBAAmB,KAsC1B,MAAMgQ,EAAWxW,EAAUnR,UACrBka,EAAc/I,EAAU3Q,aACxB2Z,EAAchJ,EAAU1Q,aACxB2Z,EAAqBjJ,EAAUzhB,oBAC/B2qB,EAAelJ,EAAU1oC,cACzBwxC,EAAY9I,EAAUthB,gBACtB+3B,EAAWzW,EAAUnW,UACrB6sB,EAAgB1W,EAAU9Q,eAC1BynB,EAAmB3W,EAAU5Q,kBACnCxrD,KAAK8iE,WAAa,CAChBpkB,UAAmBz3C,IAAb2rE,EAAyBA,EAAWl2B,GAC1CoN,eACoB7iD,IAAlB6rE,EAA8BA,EAAgB51B,GAChDkN,kBACuBnjD,IAArB8rE,EACIA,EACA51B,IAERn9C,KAAK8lD,WACU7+C,IAAb4rE,EACIvvE,MAAMC,QAAQsvE,GACZA,EAASpzB,QAAO,CAAC8oB,EAAKh7D,EAAG1K,IAAO0lE,GAAO1lE,EAAI,EAAI,IAAM0K,IAAI,IACzDslE,EACF,GACN7yE,KAAKsiE,kBACar7D,IAAhBk+D,EAA4BnlE,KAAKqyC,YAAc8yB,EAAc,EAC/DnlE,KAAKuiE,kBACat7D,IAAhBm+D,EAA4BplE,KAAKqyC,YAAc+yB,EAAc,EAC/DplE,KAAKwiE,yBACoBv7D,IAAvBo+D,GAAmCA,EACrCrlE,KAAKyiE,mBAAiCx7D,IAAjBq+D,EAA6BA,EAAe,EACjEtlE,KAAKwwE,WAAa,CAChBxwE,KAAKqyC,YAAc6yB,EAAU,GAC7BllE,KAAKqyC,YAAc6yB,EAAU,GAEjC,MAxFEllE,KAAK8lD,MAAQ,EAyFjB,EAGF,UChpCO,MAAMktB,GAAwB,GAgB9B,SAASC,GACd/4D,EACA9D,EACA88D,EACAzsB,EACA91C,EACAyE,EACA6E,GAEA,MAAM8B,EAAQ7B,EAAK,GAAK84D,GAClBh3D,EAAS9B,EAAK,GAAK84D,GACnBrxC,EAAU2B,GAAsBvnB,EAAOC,GAC7C2lB,EAAQ2O,uBAAwB,EAChC,MAAM7M,EAAS9B,EAAQ8B,OACjBkiB,EAAW,IAAIupB,GACnBvtC,EACAqxC,GACAriE,EACA,KACAsJ,GAEIk5D,EAAeD,EAAS7wE,OAExB+wE,EAAcvmE,KAAKkC,MAAM,SAAwBokE,GACjDE,EAAmB,CAAC,EAC1B,IAAK,IAAIxwE,EAAI,EAAGA,GAAKswE,IAAgBtwE,EAAG,CACtC,MAAM0jD,EAAU2sB,EAASrwE,EAAI,GACvBywE,EAAuB/sB,EAAQuS,oBAAsBrS,EAC3D,IAAK6sB,EACH,SAEF,IAAI5sB,EAAS4sB,EAAqB/sB,EAASnxC,GAC3C,IAAKsxC,EACH,SAEGpjD,MAAMC,QAAQmjD,KACjBA,EAAS,CAACA,IAEZ,MAAMxiD,EAAQrB,EAAIuwE,EACZrxC,EAAQ79B,EAAM+iB,SAAS,IAAIssD,SAAS,EAAG,UAC7C,IAAK,IAAIvlE,EAAI,EAAGie,EAAKy6B,EAAOrkD,OAAQ2L,EAAIie,IAAMje,EAAG,CAC/C,MAAMwlE,EAAgB9sB,EAAO14C,GACvB2qB,EAAW66C,EAAcntB,qBAAdmtB,CAAoCjtB,GACrD,IAAK5tB,IAAazd,GAAWvK,EAAQgoB,EAAS/nB,aAC5C,SAEF,MAAM2W,EAAQisD,EAAc17D,QACtB+oC,EAAOt5B,EAAMk6B,UACfZ,GACFA,EAAK4D,SAAS1iB,GAEhB,MAAM+P,EAASvqB,EAAMu6B,YACjBhQ,IACFA,EAAO2S,SAAS1iB,GAChB+P,EAAOiS,YAAY,OAErBx8B,EAAM++B,aAAQr/C,GACd,MAAMk6B,EAAQqyC,EAAc/oC,WAC5B,GAAItJ,EAAO,CACT,MAAMsyC,EAAUtyC,EAAMga,eACtB,IAAKs4B,EACH,SAGF,MAAMC,EAAapwC,GACjBmwC,EAAQ,GACRA,EAAQ,QACRxsE,EACA,CAAC4xC,OAAO,IAEJzP,EAAMsqC,EAAWjwC,OACvBiwC,EAAWxoC,UAAYnJ,EACvB2xC,EAAWvoC,SAAS,EAAG,EAAG/B,EAAIrtB,MAAOqtB,EAAIptB,QACzCuL,EAAMmjB,SACJ,IAAI6d,GAAK,CACPnf,IAAKA,EACL3hB,OAAQ0Z,EAAM4Z,YACd8N,aAAc,SACdE,aAAc,SACdlwC,OAAQsoB,EAAMuU,YACdnmC,QAAS,EACT2K,KAAMinB,EAAM+S,UACZp3B,MAAOqkB,EAAMuZ,WACbzgC,SAAUknB,EAAMzN,cAChBwmB,eAAgB/Y,EAAMwZ,sBAG5B,CACA,MAAMlrC,EAAS8X,EAAM/W,aAAe,EACpC,IAAImjE,EAAiBN,EAAiB5jE,GACjCkkE,IACHA,EAAiB,CAAC,EAClBN,EAAiB5jE,GAAUkkE,EAC3BA,EAAe,WAAa,GAC5BA,EAAe,UAAY,GAC3BA,EAAe,cAAgB,GAC/BA,EAAe,SAAW,IAE5B,MAAM1yE,EAAO03B,EAASvP,UACtB,GAAa,uBAATnoB,EAA+B,CACjC,MAAMqwE,EAEF34C,EACAi7C,8BACJ,IAAK,IAAI/wE,EAAI,EAAG+D,EAAK0qE,EAAWjvE,OAAQQ,EAAI+D,IAAM/D,EAAG,CACnD,MAAM81B,EAAW24C,EAAWzuE,GAC5B8wE,EAAeh7C,EAASvP,UAAUnT,QAAQ,QAAS,KAAK9P,KACtDwyB,EACApR,EAEJ,CACF,MACEosD,EAAe1yE,EAAKgV,QAAQ,QAAS,KAAK9P,KAAKwyB,EAAUpR,EAE7D,CACF,CAEA,MAAMssD,EAAa1sE,OAAOC,KAAKisE,GAAkBv2C,IAAIsG,QAAQ7U,KAAKrsB,GAClE,IAAK,IAAIW,EAAI,EAAG+D,EAAKitE,EAAWxxE,OAAQQ,EAAI+D,IAAM/D,EAAG,CACnD,MAAM8wE,EAAiBN,EAAiBQ,EAAWhxE,IACnD,IAAK,MAAM5B,KAAQ0yE,EAAgB,CACjC,MAAMG,EAAeH,EAAe1yE,GACpC,IAAK,IAAI+M,EAAI,EAAGie,EAAK6nD,EAAazxE,OAAQ2L,EAAIie,EAAIje,GAAK,EAAG,CACxD23C,EAAS4S,SAASub,EAAa9lE,EAAI,IACnC,IAAK,IAAIE,EAAI,EAAG6lE,EAAK39D,EAAW/T,OAAQ6L,EAAI6lE,IAAM7lE,EAChDy3C,EAAS0rB,aAAaj7D,EAAWlI,IACjCy3C,EAASiV,aAAakZ,EAAa9lE,GAEvC,CACF,CACF,CACA,OAAO2zB,EAAQsE,aAAa,EAAG,EAAGxC,EAAO1nB,MAAO0nB,EAAOznB,OACzD,CAYO,SAASg4D,GAAU12C,EAAO41C,EAAU1E,GACzC,MAAMyF,EAAiB,GACvB,GAAIzF,EAAW,CACb,MAAMzhE,EAAIF,KAAKkC,MAAMlC,KAAKiC,MAAMwuB,EAAM,IAAM01C,IACtChmE,EAAIH,KAAKkC,MAAMlC,KAAKiC,MAAMwuB,EAAM,IAAM01C,IAItC9uE,EAGJ,GAFCwI,EAAMK,EAAG,EAAGyhE,EAAUzyD,MAAQ,GAC7BrP,EAAMM,EAAG,EAAGwhE,EAAUxyD,OAAS,GAAKwyD,EAAUzyD,OAE5CjO,EAAI0gE,EAAUprE,KAAKc,GACnB2+B,EAAI2rC,EAAUprE,KAAKc,EAAQ,GAC3B1B,EAAIgsE,EAAUprE,KAAKc,EAAQ,GAC3BrB,EAAIL,EAAI,KAAOqgC,EAAI,IAAM/0B,GACzBslE,EAAcvmE,KAAKkC,MAAM,SAAwBmkE,EAAS7wE,QAC5DQ,GAAKA,EAAIuwE,IAAgB,GAC3Ba,EAAe9tE,KAAK+sE,EAASrwE,EAAIuwE,EAAc,GAEnD,CAEA,OAAOa,CACT,CC9KA,MAAMC,GAAqB,GAQrBC,GAAqB,CACzB,MAASC,GACT,WAAcC,GACd,QAAWC,GACX,WAAcC,GACd,gBAAmBC,GACnB,aAAgBC,GAChB,mBAAsBC,GACtB,OAAUC,IAQL,SAASC,GAAaC,EAAUC,GACrC,OAAO9xC,SAAS/4B,EAAO4qE,GAAW,IAAM7xC,SAAS/4B,EAAO6qE,GAAW,GACrE,CAOO,SAASC,GAAoB3/D,EAAYyyB,GAC9C,MAAM9kB,EAAYiyD,GAAa5/D,EAAYyyB,GAC3C,OAAO9kB,EAAYA,CACrB,CAOO,SAASiyD,GAAa5/D,EAAYyyB,GACvC,OAAQqsC,GAAqB9+D,EAAcyyB,CAC7C,CASA,SAAS8sC,GACPM,EACAt8C,EACApR,EACAg/B,EACA2uB,GAEA,MAAMhqC,EAAY3jB,EAAMk6B,UAClB7P,EAAcrqB,EAAMu6B,YAC1B,GAAI5W,GAAa0G,EAAa,CAC5B,MAAMujC,EAAeF,EAAa1O,WAAWh/C,EAAM/W,YAAa,UAChE2kE,EAAapZ,mBAAmB7wB,EAAW0G,GAC3CujC,EAAata,WAAWliC,EAAU4tB,EACpC,CACA,MAAM6V,EAAY70C,EAAM0+B,UACxB,GAAImW,GAAaA,EAAUnW,UAAW,CACpC,MAAMmvB,GAAcF,GAAyBD,GAAc1O,WACzDh/C,EAAM/W,YACN,QAEF4kE,EAAWjZ,aAAaC,GACxBgZ,EAAWtZ,SAASnjC,EAAU4tB,EAChC,CACF,CAYO,SAAS8uB,GACdC,EACA/uB,EACAh/B,EACAgB,EACAxiB,EACA0Q,EACAy+D,GAEA,IAAIK,GAAU,EACd,MAAMtZ,EAAa10C,EAAMkjB,WACzB,GAAIwxB,EAAY,CACd,MAAM16B,EAAa06B,EAAW/gB,gBAC1B3Z,GAAcH,GAAWrB,QAAUwB,GAAcH,GAAW55B,MAC9Dy0D,EAAWzgB,oBAAoBz1C,IAE3Bw7B,GAAcH,GAAWvB,MAC3Bo8B,EAAWz6B,OAEby6B,EAAW1gB,kBAAkBx1C,GAC7BwvE,GAAU,EAEd,CAUA,OATAC,GACEF,EACA/uB,EACAh/B,EACAgB,EACA9R,EACAy+D,GAGKK,CACT,CAUA,SAASC,GACPF,EACA/uB,EACAh/B,EACAgB,EACA9R,EACAy+D,GAEA,MAAMv8C,EAAWpR,EAAM8+B,qBAAN9+B,CAA4Bg/B,GAC7C,IAAK5tB,EACH,OAEF,MAAMvO,EAAqBuO,EAASlQ,oBAClCF,EACA9R,GAEIkvC,EAAWp+B,EAAMiX,cACvB,GAAImnB,EACF8vB,GAAeH,EAAalrD,EAAoB7C,EAAOg/B,OAClD,CACL,MAAMmvB,EAAmBvB,GAAmB/pD,EAAmBhB,WAC/DssD,EACEJ,EACAlrD,EACA7C,EACAg/B,EACA2uB,EAEJ,CACF,CAQA,SAASO,GAAeH,EAAa38C,EAAUpR,EAAOg/B,GACpD,GAA0B,sBAAtB5tB,EAASvP,UAAmC,CAC9C,MAAMkoD,EAEF34C,EACAg9C,gBACJ,IAAK,IAAI9yE,EAAI,EAAG+D,EAAK0qE,EAAWjvE,OAAQQ,EAAI+D,IAAM/D,EAChD4yE,GAAeH,EAAahE,EAAWzuE,GAAI0kB,EAAOg/B,GAEpD,MACF,CACA,MAAMogB,EAAS2O,EAAY/O,WAAWh/C,EAAM/W,YAAa,WACzDm2D,EAAOhM,WACuDhiC,EAC5D4tB,EACAh/B,EAAMiX,cACNjX,EAAM6+B,0BAEV,CASA,SAASsuB,GACPY,EACA38C,EACApR,EACAg/B,EACA2uB,GAEA,MAAM5D,EAAa34C,EAAS44C,qBAC5B,IAAI1uE,EAAG+D,EACP,IAAK/D,EAAI,EAAG+D,EAAK0qE,EAAWjvE,OAAQQ,EAAI+D,IAAM/D,EAAG,CAC/C,MAAM6yE,EAAmBvB,GAAmB7C,EAAWzuE,GAAGumB,WAC1DssD,EACEJ,EACAhE,EAAWzuE,GACX0kB,EACAg/B,EACA2uB,EAEJ,CACF,CASA,SAASb,GACPY,EACAt8C,EACApR,EACAg/B,EACA2uB,GAEA,MAAMtjC,EAAcrqB,EAAMu6B,YAC1B,GAAIlQ,EAAa,CACf,MAAMgkC,EAAmBX,EAAa1O,WACpCh/C,EAAM/W,YACN,cAEFolE,EAAiB7Z,mBAAmB,KAAMnqB,GAC1CgkC,EAAiB1a,eAAeviC,EAAU4tB,EAC5C,CACA,MAAM6V,EAAY70C,EAAM0+B,UACxB,GAAImW,GAAaA,EAAUnW,UAAW,CACpC,MAAMmvB,GAAcF,GAAyBD,GAAc1O,WACzDh/C,EAAM/W,YACN,QAEF4kE,EAAWjZ,aAAaC,GACxBgZ,EAAWtZ,SAASnjC,EAAU4tB,EAChC,CACF,CASA,SAASiuB,GACPS,EACAt8C,EACApR,EACAg/B,EACA2uB,GAEA,MAAMtjC,EAAcrqB,EAAMu6B,YAC1B,GAAIlQ,EAAa,CACf,MAAMgkC,EAAmBX,EAAa1O,WACpCh/C,EAAM/W,YACN,cAEFolE,EAAiB7Z,mBAAmB,KAAMnqB,GAC1CgkC,EAAiBxa,oBAAoBziC,EAAU4tB,EACjD,CACA,MAAM6V,EAAY70C,EAAM0+B,UACxB,GAAImW,GAAaA,EAAUnW,UAAW,CACpC,MAAMmvB,GAAcF,GAAyBD,GAAc1O,WACzDh/C,EAAM/W,YACN,QAEF4kE,EAAWjZ,aAAaC,GACxBgZ,EAAWtZ,SAASnjC,EAAU4tB,EAChC,CACF,CASA,SAASkuB,GACPQ,EACAt8C,EACApR,EACAg/B,EACA2uB,GAEA,MAAMhqC,EAAY3jB,EAAMk6B,UAClB7P,EAAcrqB,EAAMu6B,YAC1B,GAAIlQ,GAAe1G,EAAW,CAC5B,MAAM2qC,EAAgBZ,EAAa1O,WAAWh/C,EAAM/W,YAAa,WACjEqlE,EAAc9Z,mBAAmB7wB,EAAW0G,GAC5CikC,EAAcra,iBAAiB7iC,EAAU4tB,EAC3C,CACA,MAAM6V,EAAY70C,EAAM0+B,UACxB,GAAImW,GAAaA,EAAUnW,UAAW,CACpC,MAAMmvB,GAAcF,GAAyBD,GAAc1O,WACzDh/C,EAAM/W,YACN,QAEF4kE,EAAWjZ,aAAaC,GACxBgZ,EAAWtZ,SAASnjC,EAAU4tB,EAChC,CACF,CASA,SAAS6tB,GACPa,EACAt8C,EACApR,EACAg/B,EACA2uB,GAEA,MAAMjZ,EAAa10C,EAAMkjB,WACnB2xB,EAAY70C,EAAM0+B,UAExB,IAAIiW,EACJ,GAAID,EAAY,CACd,GAAIA,EAAW/gB,iBAAmB9Z,GAAWrB,OAC3C,OAEF,IAAI+1C,EAAoBb,EACxB,GAAIC,EAAuB,CACzB,MAAMz6B,EAAgBwhB,EAAWphB,mBACjC,GAAsB,SAAlBJ,EAEF,GADAq7B,EAAoBZ,EACE,aAAlBz6B,EAA8B,CAEhC,MAAMs7B,EAAcd,EAAa1O,WAC/Bh/C,EAAM/W,YACN,SAEFulE,EAAY/Z,cAAcC,EAAYC,GACtC6Z,EAAYra,UAAU/iC,EAAU4tB,EAClC,MAAW6V,GAAaA,EAAUnW,YAChCiW,EAAyB,CAAC,EAGhC,CACA,MAAM6Z,EAAcD,EAAkBvP,WACpCh/C,EAAM/W,YACN,SAEFulE,EAAY/Z,cAAcC,EAAYC,GACtC6Z,EAAYra,UAAU/iC,EAAU4tB,EAClC,CACA,GAAI6V,GAAaA,EAAUnW,UAAW,CACpC,IAAI+vB,EAAmBf,EACnBC,IACFc,EAAmBd,GAErB,MAAME,EAAaY,EAAiBzP,WAAWh/C,EAAM/W,YAAa,QAClE4kE,EAAWjZ,aAAaC,EAAWF,GACnCkZ,EAAWtZ,SAASnjC,EAAU4tB,EAChC,CACF,CASA,SAASguB,GACPU,EACAt8C,EACApR,EACAg/B,EACA2uB,GAEA,MAAMjZ,EAAa10C,EAAMkjB,WACnB2xB,EAAY70C,EAAM0+B,UAExB,IAAIiW,EACJ,GAAID,EAAY,CACd,GAAIA,EAAW/gB,iBAAmB9Z,GAAWrB,OAC3C,OAEF,IAAI+1C,EAAoBb,EACxB,GAAIC,EAAuB,CACzB,MAAMz6B,EAAgBwhB,EAAWphB,mBACjC,GAAsB,SAAlBJ,EAEF,GADAq7B,EAAoBZ,EACE,aAAlBz6B,EAA8B,CAEhC,MAAMs7B,EAAcd,EAAa1O,WAC/Bh/C,EAAM/W,YACN,SAEFulE,EAAY/Z,cAAcC,EAAYC,GACtC6Z,EAAYza,eAAe3iC,EAAU4tB,EACvC,MAAW6V,GAAaA,EAAUnW,YAChCiW,EAAyB,CAAC,EAGhC,CACA,MAAM6Z,EAAcD,EAAkBvP,WACpCh/C,EAAM/W,YACN,SAEFulE,EAAY/Z,cAAcC,EAAYC,GACtC6Z,EAAYza,eAAe3iC,EAAU4tB,EACvC,CACA,GAAI6V,GAAaA,EAAUnW,UAAW,CACpC,IAAI+vB,EAAmBf,EACnBC,IACFc,EAAmBd,GAErB,MAAME,EAAaY,EAAiBzP,WAAWh/C,EAAM/W,YAAa,QAClE4kE,EAAWjZ,aAAaC,EAAWF,GACnCkZ,EAAWtZ,SAASnjC,EAAU4tB,EAChC,CACF,CASA,SAAS+tB,GACPW,EACAt8C,EACApR,EACAg/B,EACA2uB,GAEA,MAAMhqC,EAAY3jB,EAAMk6B,UAClB7P,EAAcrqB,EAAMu6B,YAC1B,GAAI5W,GAAa0G,EAAa,CAC5B,MAAMikC,EAAgBZ,EAAa1O,WAAWh/C,EAAM/W,YAAa,WACjEqlE,EAAc9Z,mBAAmB7wB,EAAW0G,GAC5CikC,EAAcja,YAAYjjC,EAAU4tB,EACtC,CACA,MAAM6V,EAAY70C,EAAM0+B,UACxB,GAAImW,GAAaA,EAAUnW,UAAW,CACpC,MAAMmvB,GAAcF,GAAyBD,GAAc1O,WACzDh/C,EAAM/W,YACN,QAEF4kE,EAAWjZ,aAAaC,GACxBgZ,EAAWtZ,SAASnjC,EAAU4tB,EAChC,CACF,CCjbA,MAAM0vB,WAAkCvwC,GAItC1kC,WAAAA,CAAYk1E,GACVzwE,MAAMywE,GAGNl2E,KAAKm2E,6BAA+Bn2E,KAAKo2E,wBAAwBztE,KAAK3I,MAKtEA,KAAKq2E,wBAKLr2E,KAAKs2E,uBAAyB,KAK9Bt2E,KAAKu2E,kBAAoB,KAMzBv2E,KAAKw2E,mBAAqB,EAM1Bx2E,KAAKy2E,oBAAsB1tD,IAM3B/oB,KAAKw0C,gBAAkBt9B,KAMvBlX,KAAK02E,uBAAyBx/D,KAM9BlX,KAAK22E,kBAML32E,KAAK42E,gBAAkB,KAMvB52E,KAAK62E,oBAAsB,KAM3B72E,KAAK82E,qBAAuB,KAM5B92E,KAAK+2E,aAAe,KAMpB/2E,KAAKg3E,oBAAqB,EAK1Bh3E,KAAKsgC,uBAAyB,KAM9BtgC,KAAKi3E,UAAW,EAMhBj3E,KAAKk3E,oBAAsB,KAM3Bl3E,KAAKg6C,SAAW,CAClB,CAOAm9B,YAAAA,CAAaC,EAAex5C,EAAYs7B,GACtC,MAAMvoD,EAASitB,EAAWjtB,OACpB2nB,EAAYsF,EAAWtF,UACvBte,EAASse,EAAUte,OACnB5E,EAAakjB,EAAUljB,WACvBe,EAAamiB,EAAUniB,WACvB8D,EAAWqe,EAAUre,SACrBiC,EAAmB/F,EAAWvF,YAC9BymE,EAAer3E,KAAKihC,WAAW/D,YAC/B2K,EAAajK,EAAWiK,WACxByvC,EAAY15C,EAAW05C,UACvBrN,IACJqN,EAAUniD,EAAS9iB,YAAcilE,EAAUniD,EAAS7iB,cAEhDqvB,EAAU3hC,KAAKk3E,oBACfn7D,EAAQlP,KAAKiC,MAAM8uB,EAAW1jB,KAAK,GAAK2tB,GACxC7rB,EAASnP,KAAKiC,MAAM8uB,EAAW1jB,KAAK,GAAK2tB,GAEzCpM,EAAa47C,EAAaE,YAAcphE,EAAWpC,WACnDoI,EAAasf,EAAa/hB,GAASwC,GAAoB,KACvDs7D,EAAW/7C,EACb5uB,KAAKmC,MAAM2B,EAAO,GAAKuL,EAAiB,IAAMC,GAAc,EAC5D,EACJ,IAAIs7D,EAAQh8C,EACR5uB,KAAKkC,OAAO4B,EAAO,GAAKuL,EAAiB,IAAMC,GAC/C,EACJ,EAAG,CACD,MAAM1F,EAAYzW,KAAK4nC,mBACrB5tB,EACA5E,EACA6E,EACA4tB,EACA9rB,EACAC,EACAy7D,EAAQt7D,GAEVi7D,EAAcjK,QACZxrC,EACA,EACAlrB,EACAwD,EACAgwD,OACAhjE,EACAiyD,EAEJ,SAAWue,EAAQD,EACrB,CAEAE,wBAAAA,GACE,GAAsB,IAAlB13E,KAAKg6C,SAAgB,CACvB,MAAM29B,EAAqBr0C,GACzBtjC,KAAK2hC,QAAQ8B,OAAO1nB,MACpB/b,KAAK2hC,QAAQ8B,OAAOznB,OACpBunB,IAEFvjC,KAAKk3E,oBAAsBS,CAC7B,MACE33E,KAAKk3E,oBAAsBl3E,KAAK2hC,OAEpC,CAEAi2C,0BAAAA,GACE,GAAsB,IAAlB53E,KAAKg6C,SAAgB,CACvB,MAAMnB,EAAQ74C,KAAK2hC,QAAQoX,YAC3B/4C,KAAK2hC,QAAQoX,YAAc/4C,KAAKg6C,SAChCh6C,KAAK2hC,QAAQyE,UAAUpmC,KAAKk3E,oBAAoBzzC,OAAQ,EAAG,GAC3DzjC,KAAK2hC,QAAQoX,YAAcF,EAC3BjV,GAAc5jC,KAAKk3E,qBACnB3zC,GAAWp9B,KAAKnG,KAAKk3E,oBAAoBzzC,QACzCzjC,KAAKk3E,oBAAsB,IAC7B,CACF,CAMAje,eAAAA,CAAgBr7B,GACV59B,KAAKsgC,yBACPtgC,KAAK03E,2BACL13E,KAAKm3E,aACHn3E,KAAKsgC,uBACL1C,EACAA,EAAWs7B,eAEbl5D,KAAK43E,6BAET,CAQAl5C,WAAAA,CAAYd,EAAYx8B,GACtB,MAAMymC,EAAajK,EAAWiK,WACxB/J,EAAaF,EAAWI,iBAAiBJ,EAAWkY,YAG1DzvB,GAAUrmB,KAAK8lC,eAAgB,EAAI+B,EAAY,EAAIA,GACnDhhB,GAAY7mB,KAAK0hC,sBAAuB1hC,KAAK8lC,gBAE7C,MAAMiR,EAAkB8gC,GAAkB73E,KAAK8lC,gBAE/C9lC,KAAKsmC,aAAallC,EAAQ21C,EAAiB/2C,KAAKkQ,cAAc0tB,IAC9D,MAAM+D,EAAU3hC,KAAK2hC,QACf8B,EAAS9B,EAAQ8B,OAEjB6xC,EAAct1E,KAAK+2E,aACnBz2C,EAAyBtgC,KAAKsgC,uBACpC,IAAIxgC,EACDw1E,IAAgBA,EAAY/vE,WAC5B+6B,IAA2BA,EAAuB/6B,UACrD,IAAKzF,EAAQ,CACX,MAAMg4E,EACJ93E,KAAKihC,WAAW/5B,YAAY23B,EAAgB7sB,YAC5ChS,KAAKihC,WAAW/5B,YAAY23B,EAAgB5sB,YAC9C,IAAK6lE,EACH,OAAO,IAEX,CAGA,MAAM/7D,EAAQlP,KAAKiC,MAAM8uB,EAAW1jB,KAAK,GAAK2tB,GACxC7rB,EAASnP,KAAKiC,MAAM8uB,EAAW1jB,KAAK,GAAK2tB,GAC3CpE,EAAO1nB,OAASA,GAAS0nB,EAAOznB,QAAUA,GAC5CynB,EAAO1nB,MAAQA,EACf0nB,EAAOznB,OAASA,EACZynB,EAAOlc,MAAM9Q,YAAcsgC,IAC7BtT,EAAOlc,MAAM9Q,UAAYsgC,IAEjB/2C,KAAK+lC,iBACfpE,EAAQkC,UAAU,EAAG,EAAG9nB,EAAOC,GAGjChc,KAAK0nC,UAAU/F,EAAS/D,GAExB,MAAMtF,EAAYsF,EAAWtF,UACvBniB,EAAamiB,EAAUniB,WAE7BnW,KAAKg6C,SAAWlc,EAAWvuB,QAC3BvP,KAAK03E,2BAGL,IAAIK,GAAU,EACd,GAAIj4E,GAAUg+B,EAAWntB,QAAU3Q,KAAKi3E,SAAU,CAChD,MAAM94C,EAAcpd,GAAe+c,EAAWntB,OAAQwF,GACtDrW,EAASupB,GAAiB8U,EAAaP,EAAWjtB,QAClDonE,EAAUj4E,IAAWqY,GAAegmB,EAAaP,EAAWjtB,QACxDonE,GACF/3E,KAAK6mC,cAAc7mC,KAAKk3E,oBAAqBt5C,EAAYO,EAE7D,CAkBA,OAhBIr+B,GACFE,KAAKm3E,aAAa7B,EAAa13C,GAG7Bm6C,GACF/3E,KAAKk3E,oBAAoB1nC,UAG3BxvC,KAAK43E,6BAEL53E,KAAK2nC,WAAWhG,EAAS/D,GAErB59B,KAAK22E,oBAAsBr+C,EAAUre,WACvCja,KAAK22E,kBAAoBr+C,EAAUre,SACnCja,KAAKs2E,uBAAyB,MAEzBt2E,KAAK2lC,SACd,CAQAtI,WAAAA,CAAYC,GACV,OAAO,IAAIC,SAASC,IAClB,IAAKx9B,KAAKs2E,yBAA2Bt2E,KAAKq2E,wBAAyB,CACjE,MAAMn8D,EAAO,CAACla,KAAK2hC,QAAQ8B,OAAO1nB,MAAO/b,KAAK2hC,QAAQ8B,OAAOznB,QAC7D7W,GAAMnF,KAAK8lC,eAAgB5rB,GAC3B,MAAMF,EAASha,KAAK42E,gBACdxhE,EAAapV,KAAKy2E,oBAClBx8D,EAAWja,KAAK22E,kBAChBxgE,EAAanW,KAAK62E,oBAClBlmE,EAAS3Q,KAAK02E,uBACdnmE,EAAQvQ,KAAKihC,WACb7qB,EAAa,GACb2F,EAAQ7B,EAAK,GAAK84D,GAClBh3D,EAAS9B,EAAK,GAAK84D,GACzB58D,EAAWjQ,KACTnG,KAAK4nC,mBACH5tB,EACA5E,EACA6E,EACA+4D,GACAj3D,EACAC,EACA,GACAjX,SAEJ,MAAM4G,EAAS4E,EAAM2sB,YACfhhB,EAAmB/F,EAAWvF,YACpC,GACEjF,EAAO4rE,YACPphE,EAAWpC,aACVoE,GAAe+D,EAAkBvL,GAClC,CACA,IAAI6K,EAAS7K,EAAO,GACpB,MAAMwL,EAAazC,GAASwC,GAC5B,IACImX,EADAokD,EAAQ,EAEZ,MAAOj8D,EAASU,EAAiB,KAC7Bu7D,EACFpkD,EAAUlX,EAAas7D,EACvBrhE,EAAWjQ,KACTnG,KAAK4nC,mBACH5tB,EACA5E,EACA6E,EACA+4D,GACAj3D,EACAC,EACAqX,GACAtuB,SAEJyW,GAAUW,EAEZs7D,EAAQ,EACRj8D,EAAS7K,EAAO,GAChB,MAAO6K,EAASU,EAAiB,KAC7Bu7D,EACFpkD,EAAUlX,EAAas7D,EACvBrhE,EAAWjQ,KACTnG,KAAK4nC,mBACH5tB,EACA5E,EACA6E,EACA+4D,GACAj3D,EACAC,EACAqX,GACAtuB,SAEJyW,GAAUW,CAEd,CAEAnc,KAAKs2E,uBAAyBrD,GAC5B/4D,EACA9D,EACApW,KAAKu2E,kBACLhmE,EAAMuoD,mBACNnoD,EACAyE,EACA6E,EAEJ,CACAujB,EACEw2C,GAAU12C,EAAOt9B,KAAKu2E,kBAAmBv2E,KAAKs2E,wBAC/C,GAEL,CAWAx1C,0BAAAA,CACE7oB,EACA2lB,EACAmD,EACA7nB,EACA8nB,GAEA,IAAKhhC,KAAK+2E,aACR,OAEF,MAAM3hE,EAAawoB,EAAWtF,UAAUljB,WAClC6E,EAAW2jB,EAAWtF,UAAUre,SAChC1J,EAAQvQ,KAAKihC,WAGbiyC,EAAW,CAAC,EAQZ9H,EAAkB,SAAU7kB,EAAS5tB,EAAUo2C,GACnD,MAAM/lE,EAAMiB,EAAOs8C,GACbnK,EAAQ82B,EAASlqE,GACvB,GAAKozC,GAcE,IAAc,IAAVA,GAAkB2yB,EAAa3yB,EAAM2yB,WAAY,CAC1D,GAAmB,IAAfA,EAGF,OAFAmE,EAASlqE,IAAO,EAChBg4B,EAAQ15B,OAAO05B,EAAQg3C,YAAY57B,GAAQ,GACpCljC,EAASqtC,EAASh2C,EAAOooB,GAElCyjB,EAAMzjB,SAAWA,EACjByjB,EAAM2yB,WAAaA,CACrB,MAtBY,CACV,GAAmB,IAAfA,EAEF,OADAmE,EAASlqE,IAAO,EACTkQ,EAASqtC,EAASh2C,EAAOooB,GAElCqI,EAAQ76B,KACL+sE,EAASlqE,GAAO,CACfu9C,QAASA,EACTh2C,MAAOA,EACPooB,SAAUA,EACVo2C,WAAYA,EACZ71D,SAAUA,GAGhB,CAUF,EAEA,IAAIqJ,EACJ,MAAM01D,EAAiB,CAACj4E,KAAK+2E,cAkB7B,OAjBI/2E,KAAKsgC,wBACP23C,EAAe9xE,KAAKnG,KAAKsgC,wBAE3B23C,EAAel5C,MAAMq4C,GACX70D,EAAS60D,EAAct2C,2BAC7B7oB,EACA7C,EACA6E,EACA8mB,EACAqqC,EACAgM,IAAkBp3E,KAAKsgC,wBACrB1C,EAAWs7B,cACTt7B,EAAWs7B,cAAcgf,MAAMp7C,KAAKwxB,GAASA,EAAK1jD,QAClD,QAID2X,CACT,CAKA2e,kBAAAA,GACE,MAAM3wB,EAAQvQ,KAAKihC,WACf1wB,EAAMG,cAAgB1Q,KAAK+2E,cAC7BxmE,EAAM/G,SAEV,CAOA4sE,uBAAAA,CAAwB/vE,GACtBrG,KAAKqhC,yBACP,CAOA5C,YAAAA,CAAab,GACX,MAAMs4C,EAAcl2E,KAAKihC,WACnBo2C,EAAenB,EAAYh5C,YACjC,IAAKm6C,EACH,OAAO,EAGT,MAAMc,EAAYv6C,EAAW05C,UAAUniD,EAAS9iB,WAC1C+lE,EAAcx6C,EAAW05C,UAAUniD,EAAS7iB,aAC5C0lD,EAAuBke,EAAYnd,0BACnCd,EAAyBie,EAAYld,4BAE3C,GACGh5D,KAAKkgC,QAAU83B,GAAwBmgB,IACtClgB,GAA0BmgB,EAG5B,OADAp4E,KAAKq2E,yBAA0B,GACxB,EAETr2E,KAAKq2E,yBAA0B,EAE/B,MAAMgC,EAAmBz6C,EAAWjtB,OAC9B2nB,EAAYsF,EAAWtF,UACvBniB,EAAamiB,EAAUniB,WACvBf,EAAakjB,EAAUljB,WACvByyB,EAAajK,EAAWiK,WACxBywC,EAAsBpC,EAAYxsE,cAClC6uE,EAA0BrC,EAAYvd,kBAC5C,IAAI6f,EAAyBtC,EAAYtd,sBAEV3xD,IAA3BuxE,IACFA,EAAyBC,IAG3B,MAAMz+D,EAASse,EAAUte,OAAOjV,QAC1B4L,EAASkH,GACbwgE,EACAE,EAA0BnjE,GAEtBsjE,EAAiB/nE,EAAO5L,QACxB4zE,EAAc,CAAChoE,EAAO5L,SACtBmX,EAAmB/F,EAAWvF,YAEpC,GACEymE,EAAaE,YACbphE,EAAWpC,aACVoE,GAAe+D,EAAkB0hB,EAAWjtB,QAC7C,CAMA,MAAMwL,EAAazC,GAASwC,GACtBk0B,EAASvjC,KAAKD,IAAI8M,GAAS/I,GAAU,EAAGwL,GAC9CxL,EAAO,GAAKuL,EAAiB,GAAKk0B,EAClCz/B,EAAO,GAAKuL,EAAiB,GAAKk0B,EAClCwoC,GAAgB5+D,EAAQ7D,GACxB,MAAM0iE,EAAaC,GAAYH,EAAY,GAAIxiE,GAG7C0iE,EAAW,GAAK38D,EAAiB,IACjC28D,EAAW,GAAK38D,EAAiB,GAEjCy8D,EAAYxyE,KAAK,CACf0yE,EAAW,GAAK18D,EAChB08D,EAAW,GACXA,EAAW,GAAK18D,EAChB08D,EAAW,KAGbA,EAAW,GAAK38D,EAAiB,IACjC28D,EAAW,GAAK38D,EAAiB,IAEjCy8D,EAAYxyE,KAAK,CACf0yE,EAAW,GAAK18D,EAChB08D,EAAW,GACXA,EAAW,GAAK18D,EAChB08D,EAAW,IAGjB,CAEA,GACE74E,KAAKkgC,OACLlgC,KAAKy2E,qBAAuBrhE,GAC5BpV,KAAKw2E,mBAAqB8B,GAC1Bt4E,KAAK82E,sBAAwB0B,GAC7BrgE,GAAenY,KAAK02E,uBAAwB/lE,GAQ5C,OANKnN,EAAOxD,KAAKw0C,gBAAiBkkC,KAChC14E,KAAKs2E,uBAAyB,KAC9Bt2E,KAAKw0C,gBAAkBkkC,GAEzB14E,KAAK42E,gBAAkB58D,EACvBha,KAAKg3E,oBAAqB,GACnB,EAGTh3E,KAAK+2E,aAAe,KAEpB,MAAMzB,EAAc,IAAIyD,GACtBC,GAAmB5jE,EAAYyyB,GAC/Bl3B,EACAyE,EACAyyB,GAGF,IAAIqtC,EACAl1E,KAAKihC,WAAWy3B,iBAClBwc,EAAwB,IAAI6D,GAC1BC,GAAmB5jE,EAAYyyB,GAC/Bl3B,EACAyE,EACAyyB,IAIJ,MAAMpnB,EAAiBC,KACvB,IAAIyuD,EACJ,GAAI1uD,EAAgB,CAClB,IAAK,IAAI5d,EAAI,EAAG+D,EAAK+xE,EAAYt2E,OAAQQ,EAAI+D,IAAM/D,EAAG,CACpD,MAAM8N,EAASgoE,EAAY91E,GACrBo2E,EAAan4D,GAAanQ,EAAQwF,GACxCkhE,EAAa6B,aACXD,EACAj4D,GAAiB5L,EAAYe,GAC7BsK,EAEJ,CACA0uD,EAAgB9vD,GAA4BoB,EAAgBtK,EAC9D,MACE,IAAK,IAAItT,EAAI,EAAG+D,EAAK+xE,EAAYt2E,OAAQQ,EAAI+D,IAAM/D,EACjDw0E,EAAa6B,aAAaP,EAAY91E,GAAIuS,EAAYe,GAI1D,MAAMoS,EAAmB4wD,GAA0B/jE,EAAYyyB,GAC/D,IAAI3H,GAAQ,EACZ,MAAMpgC,EAIHymD,IACC,IAAIG,EACJ,MAAMD,EACJF,EAAQuS,oBAAsBod,EAAYpd,mBAI5C,GAHIrS,IACFC,EAASD,EAAcF,EAASnxC,IAE9BsxC,EAAQ,CACV,MAAM0yB,EAAQp5E,KAAKq1E,cACjB9uB,EACAh+B,EACAm+B,EACA4uB,EACAnG,EACA+F,GAEFh1C,EAAQA,IAAUk5C,CACpB,GAGEH,EAAan4D,GAAanQ,EAAQwF,GAElC+8D,EAAWmE,EAAagC,oBAAoBJ,GAC9CT,GACFtF,EAAS3kD,KAAKiqD,GAEhB,IAAK,IAAI31E,EAAI,EAAG+D,EAAKssE,EAAS7wE,OAAQQ,EAAI+D,IAAM/D,EAC9C/C,EAAOozE,EAASrwE,IAElB7C,KAAKu2E,kBAAoBrD,EACzBlzE,KAAKkgC,MAAQA,EAEb,MAAMo5C,EAA0BhE,EAAY/W,SACtC6Y,EAAgB,IAAI9J,GACxB38D,EACAyE,EACAyyB,EACAwvC,EAAakC,cACbD,EACApD,EAAYvd,mBAyBd,OAtBIuc,IACFl1E,KAAKsgC,uBAAyB,IAAIgtC,GAChC38D,EACAyE,EACAyyB,EACAwvC,EAAakC,cACbrE,EAAsB3W,SACtB2X,EAAYvd,oBAIhB34D,KAAKy2E,oBAAsBrhE,EAC3BpV,KAAKw2E,kBAAoB8B,EACzBt4E,KAAK82E,qBAAuB0B,EAC5Bx4E,KAAKw0C,gBAAkBkkC,EACvB14E,KAAK02E,uBAAyB/lE,EAC9B3Q,KAAK42E,gBAAkB58D,EACvBha,KAAK62E,oBAAsB1gE,EAC3BnW,KAAK+2E,aAAeK,EACpBp3E,KAAKs2E,uBAAyB,KAE9Bt2E,KAAKg3E,oBAAqB,GACnB,CACT,CAWA3B,aAAAA,CACE9uB,EACAh+B,EACAm+B,EACAuuB,EACAx+D,EACAy+D,GAEA,IAAKxuB,EACH,OAAO,EAET,IAAI6uB,GAAU,EACd,GAAIjyE,MAAMC,QAAQmjD,GAChB,IAAK,IAAI7jD,EAAI,EAAG+D,EAAK8/C,EAAOrkD,OAAQQ,EAAI+D,IAAM/D,EAC5C0yE,EACEF,GACEJ,EACA1uB,EACAG,EAAO7jD,GACP0lB,EACAvoB,KAAKm2E,6BACL1/D,EACAy+D,IACGK,OAGTA,EAAUF,GACRJ,EACA1uB,EACAG,EACAn+B,EACAvoB,KAAKm2E,6BACL1/D,EACAy+D,GAGJ,OAAOK,CACT,EAGF,UCzwBA,MAAMiE,WAAoB1hB,GAIxB92D,WAAAA,CAAYkO,GACVzJ,MAAMyJ,EACR,CAEA+vB,cAAAA,GACE,OAAO,IAAIg3C,GAA0Bj2E,KACvC,EAGF,UC3BA,IAMEy5E,IAAK,MAMLC,OAAQ,UCRV,MAAM9hB,GAAW,CACf+hB,OAAQ,UASH,MAAMC,WAAwBpzE,EAMnCxF,WAAAA,CAAYC,EAAM8iC,EAAS7/B,GACzBuB,MAAMxE,GAONjB,KAAK+jC,QAAUA,EAOf/jC,KAAKkE,MAAQA,CACf,EAgCF,MAAM21E,WAAmBtvE,EAKvBvJ,WAAAA,CAAYkQ,EAAOhC,GAgCjB,GA/BAzJ,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAEL6F,EAAUA,GAAW,CAAC,EAMtBlP,KAAK85E,UAAY5qE,EAAQ6qE,OAMzB/5E,KAAKg6E,OAAS9oE,GAAgB,GAE1BlR,KAAK85E,QACP,IAAK,IAAIj3E,EAAI,EAAG+D,EAAK5G,KAAKg6E,OAAO33E,OAAQQ,EAAI+D,IAAM/D,EACjD7C,KAAKi6E,cAAcj6E,KAAKg6E,OAAOn3E,GAAIA,GAIvC7C,KAAKk6E,eACP,CAMA90E,KAAAA,GACE,MAAOpF,KAAKm6E,YAAc,EACxBn6E,KAAKusB,KAET,CASAppB,MAAAA,CAAOT,GACL,IAAK,IAAIG,EAAI,EAAG+D,EAAKlE,EAAIL,OAAQQ,EAAI+D,IAAM/D,EACzC7C,KAAKmG,KAAKzD,EAAIG,IAEhB,OAAO7C,IACT,CASA+e,OAAAA,CAAQoH,GACN,MAAMjV,EAAQlR,KAAKg6E,OACnB,IAAK,IAAIn3E,EAAI,EAAG+D,EAAKsK,EAAM7O,OAAQQ,EAAI+D,IAAM/D,EAC3CsjB,EAAEjV,EAAMrO,GAAIA,EAAGqO,EAEnB,CAUAkpE,QAAAA,GACE,OAAOp6E,KAAKg6E,MACd,CAQA1rB,IAAAA,CAAKpqD,GACH,OAAOlE,KAAKg6E,OAAO91E,EACrB,CAQAi2E,SAAAA,GACE,OAAOn6E,KAAK2K,IAAIitD,GAAS+hB,OAC3B,CAQAU,QAAAA,CAASn2E,EAAOo2E,GACd,GAAIp2E,EAAQ,GAAKA,EAAQlE,KAAKm6E,YAC5B,MAAM,IAAIpwE,MAAM,wBAA0B7F,GAExClE,KAAK85E,SACP95E,KAAKi6E,cAAcK,GAErBt6E,KAAKg6E,OAAO1yE,OAAOpD,EAAO,EAAGo2E,GAC7Bt6E,KAAKk6E,gBACLl6E,KAAKoG,cACH,IAAIwzE,GAAgBW,GAAoBd,IAAKa,EAAMp2E,GAEvD,CAQAqoB,GAAAA,GACE,OAAOvsB,KAAKw6E,SAASx6E,KAAKm6E,YAAc,EAC1C,CAQAh0E,IAAAA,CAAKm0E,GACCt6E,KAAK85E,SACP95E,KAAKi6E,cAAcK,GAErB,MAAM13E,EAAI5C,KAAKm6E,YAEf,OADAn6E,KAAKq6E,SAASz3E,EAAG03E,GACVt6E,KAAKm6E,WACd,CAQAM,MAAAA,CAAOH,GACL,MAAM53E,EAAM1C,KAAKg6E,OACjB,IAAK,IAAIn3E,EAAI,EAAG+D,EAAKlE,EAAIL,OAAQQ,EAAI+D,IAAM/D,EACzC,GAAIH,EAAIG,KAAOy3E,EACb,OAAOt6E,KAAKw6E,SAAS33E,EAI3B,CASA23E,QAAAA,CAASt2E,GACP,GAAIA,EAAQ,GAAKA,GAASlE,KAAKm6E,YAC7B,OAEF,MAAMzxC,EAAO1oC,KAAKg6E,OAAO91E,GAQzB,OAPAlE,KAAKg6E,OAAO1yE,OAAOpD,EAAO,GAC1BlE,KAAKk6E,gBACLl6E,KAAKoG,cAED,IAAIwzE,GAAgBW,GAAoBb,OAAQhxC,EAAMxkC,IAGnDwkC,CACT,CAQAgyC,KAAAA,CAAMx2E,EAAOo2E,GACX,MAAM13E,EAAI5C,KAAKm6E,YACf,GAAIj2E,GAAStB,EAEX,YADA5C,KAAKq6E,SAASn2E,EAAOo2E,GAGvB,GAAIp2E,EAAQ,EACV,MAAM,IAAI6F,MAAM,wBAA0B7F,GAExClE,KAAK85E,SACP95E,KAAKi6E,cAAcK,EAAMp2E,GAE3B,MAAMwkC,EAAO1oC,KAAKg6E,OAAO91E,GACzBlE,KAAKg6E,OAAO91E,GAASo2E,EACrBt6E,KAAKoG,cAED,IAAIwzE,GAAgBW,GAAoBb,OAAQhxC,EAAMxkC,IAG1DlE,KAAKoG,cAED,IAAIwzE,GAAgBW,GAAoBd,IAAKa,EAAMp2E,GAGzD,CAKAg2E,aAAAA,GACEl6E,KAAKwL,IAAIosD,GAAS+hB,OAAQ35E,KAAKg6E,OAAO33E,OACxC,CAOA43E,aAAAA,CAAcK,EAAMK,GAClB,IAAK,IAAI93E,EAAI,EAAG+D,EAAK5G,KAAKg6E,OAAO33E,OAAQQ,EAAI+D,IAAM/D,EACjD,GAAI7C,KAAKg6E,OAAOn3E,KAAOy3E,GAAQz3E,IAAM83E,EACnC,MAAM,IAAI5wE,MAAM,8CAGtB,EAGF,UC/SA,MAAMovD,GAIJn4D,WAAAA,CAAY45E,GAIV56E,KAAK66E,OAAS,IAAIC,GAAOF,GAQzB56E,KAAK+6E,OAAS,CAAC,CACjB,CAOAxO,MAAAA,CAAO57D,EAAQ/F,GAEb,MAAM0jD,EAAO,CACX92C,KAAM7G,EAAO,GACb8G,KAAM9G,EAAO,GACb+G,KAAM/G,EAAO,GACbgH,KAAMhH,EAAO,GACb/F,MAAOA,GAGT5K,KAAK66E,OAAOtO,OAAOje,GACnBtuD,KAAK+6E,OAAO9wE,EAAOW,IAAU0jD,CAC/B,CAOA9sB,IAAAA,CAAKw5C,EAASxwE,GACZ,MAAMywE,EAAQ,IAAI33E,MAAMkH,EAAOnI,QAC/B,IAAK,IAAIQ,EAAI,EAAGsL,EAAI3D,EAAOnI,OAAQQ,EAAIsL,EAAGtL,IAAK,CAC7C,MAAM8N,EAASqqE,EAAQn4E,GACjB+H,EAAQJ,EAAO3H,GAGfyrD,EAAO,CACX92C,KAAM7G,EAAO,GACb8G,KAAM9G,EAAO,GACb+G,KAAM/G,EAAO,GACbgH,KAAMhH,EAAO,GACb/F,MAAOA,GAETqwE,EAAMp4E,GAAKyrD,EACXtuD,KAAK+6E,OAAO9wE,EAAOW,IAAU0jD,CAC/B,CACAtuD,KAAK66E,OAAOr5C,KAAKy5C,EACnB,CAOAR,MAAAA,CAAO7vE,GACL,MAAM6rC,EAAMxsC,EAAOW,GAIb0jD,EAAOtuD,KAAK+6E,OAAOtkC,GAEzB,cADOz2C,KAAK+6E,OAAOtkC,GACiB,OAA7Bz2C,KAAK66E,OAAOJ,OAAOnsB,EAC5B,CAOA4sB,MAAAA,CAAOvqE,EAAQ/F,GACb,MAAM0jD,EAAOtuD,KAAK+6E,OAAO9wE,EAAOW,IAC1BuwE,EAAO,CAAC7sB,EAAK92C,KAAM82C,EAAK72C,KAAM62C,EAAK52C,KAAM42C,EAAK32C,MAC/CnU,GAAO23E,EAAMxqE,KAChB3Q,KAAKy6E,OAAO7vE,GACZ5K,KAAKusE,OAAO57D,EAAQ/F,GAExB,CAMAwwE,MAAAA,GACE,MAAMH,EAAQj7E,KAAK66E,OAAO3C,MAC1B,OAAO+C,EAAMn+C,KAAI,SAAUwxB,GACzB,OAAOA,EAAK1jD,KACd,GACF,CAOAywE,WAAAA,CAAY1qE,GAEV,MAAMwqE,EAAO,CACX3jE,KAAM7G,EAAO,GACb8G,KAAM9G,EAAO,GACb+G,KAAM/G,EAAO,GACbgH,KAAMhH,EAAO,IAETsqE,EAAQj7E,KAAK66E,OAAOS,OAAOH,GACjC,OAAOF,EAAMn+C,KAAI,SAAUwxB,GACzB,OAAOA,EAAK1jD,KACd,GACF,CASAmU,OAAAA,CAAQ7F,GACN,OAAOlZ,KAAKu7E,SAASv7E,KAAKo7E,SAAUliE,EACtC,CAQAsiE,eAAAA,CAAgB7qE,EAAQuI,GACtB,OAAOlZ,KAAKu7E,SAASv7E,KAAKq7E,YAAY1qE,GAASuI,EACjD,CAQAqiE,QAAAA,CAAS/wE,EAAQ0O,GACf,IAAIqJ,EACJ,IAAK,IAAI1f,EAAI,EAAGsL,EAAI3D,EAAOnI,OAAQQ,EAAIsL,EAAGtL,IAExC,GADA0f,EAASrJ,EAAS1O,EAAO3H,IACrB0f,EACF,OAAOA,EAGX,OAAOA,CACT,CAKAhd,OAAAA,GACE,OAAOA,EAAQvF,KAAK+6E,OACtB,CAKA31E,KAAAA,GACEpF,KAAK66E,OAAOz1E,QACZpF,KAAK+6E,OAAS,CAAC,CACjB,CAMAnqE,SAAAA,CAAUD,GACR,MAAMvN,EAAOpD,KAAK66E,OAAOY,SACzB,OAAO7jE,GAAexU,EAAKoU,KAAMpU,EAAKqU,KAAMrU,EAAKsU,KAAMtU,EAAKuU,KAAMhH,EACpE,CAKA+qE,MAAAA,CAAOC,GACL37E,KAAK66E,OAAOr5C,KAAKm6C,EAAMd,OAAO3C,OAC9B,IAAK,MAAMr1E,KAAK84E,EAAMZ,OACpB/6E,KAAK+6E,OAAOl4E,GAAK84E,EAAMZ,OAAOl4E,EAElC,EAGF,UCzKA,MAAM+4E,WAAerxE,EAInBvJ,WAAAA,CAAYkO,GACVzJ,QAMAzF,KAAKmW,WAAaoT,GAAcra,EAAQiH,YAMxCnW,KAAK67E,cAAgBC,GAAkB5sE,EAAQovB,cAM/Ct+B,KAAK+7E,8BACiC90E,IAApCiI,EAAQ8sE,yBACJ9sE,EAAQ8sE,wBAQdh8E,KAAKu1E,SAAU,EAMfv1E,KAAKiQ,YAA2BhJ,IAAlBiI,EAAQoB,MAAsBpB,EAAQoB,MAAQ,QAM5DtQ,KAAKi8E,YAA2Bh1E,IAAlBiI,EAAQ+M,OAAsB/M,EAAQ+M,MAMpDjc,KAAKk8E,eAAiBhtE,EAAQi5B,YAM9BnoC,KAAKm8E,aAAe,KAMpBn8E,KAAKo8E,aAAe,KAEpB,MAAM13D,EAAO1kB,KAKbA,KAAKq8E,aAAe,IAAI9+C,SAAQ,SAAUC,EAASoM,GACjDllB,EAAKy3D,aAAe3+C,EACpB9Y,EAAK03D,aAAexyC,CACtB,GACF,CAOAvL,eAAAA,GACE,OAAOr+B,KAAK67E,aACd,CAMAS,0BAAAA,GACE,OAAOt8E,KAAK+7E,wBACd,CAOAxyD,aAAAA,GACE,OAAOvpB,KAAKmW,UACd,CAMAqhB,cAAAA,CAAerhB,GACb,OAAO,IACT,CAKA4nB,OAAAA,GACE,OAAO/9B,KAAKq8E,YACd,CAOAtkD,QAAAA,GACE,OAAO/3B,KAAKiQ,MACd,CAKAsnE,QAAAA,GACE,OAAOv3E,KAAKi8E,MACd,CAKAhlC,cAAAA,GACE,OAAOj3C,KAAKk8E,YACd,CAMAK,OAAAA,GACEv8E,KAAKwJ,SACP,CASAgzE,eAAAA,CAAgBl+C,GACdt+B,KAAK67E,cAAgBC,GAAkBx9C,GACvCt+B,KAAKwJ,SACP,CAMA8+B,QAAAA,CAASh4B,GACPtQ,KAAKiQ,OAASK,EACdtQ,KAAKwJ,SACP,EAQF,SAASsyE,GAAkBW,GACzB,OAAKA,EAGDn5E,MAAMC,QAAQk5E,GACT,SAAU7+C,GACf,OAAO6+C,CACT,EAG6B,oBAApBA,EACFA,EAGF,SAAU7+C,GACf,MAAO,CAAC6+C,EACV,EAdS,IAeX,CAEA,UC7OA,IAMEC,WAAY,aAOZC,cAAe,gBAOfj1E,MAAO,QAQPk1E,cAAe,gBAOfC,kBAAmB,oBAOnBC,gBAAiB,kBAOjBC,kBAAmB,qBC3Cd,SAAS7E,GAAIvnE,EAAQyE,GAC1B,MAAO,CAAC,EAAEzF,KAAWA,IAAUA,IAAUA,KAC3C,CCLA,IAAIqtE,IAAkB,EAgDf,SAASC,GACdC,EACAC,EACAxsE,EACAyE,EACAe,EACAinE,EACAC,GAEA,MAAMC,EAAM,IAAIC,eAChBD,EAAIE,KACF,MACe,oBAARN,EAAqBA,EAAIvsE,EAAQyE,EAAYe,GAAc+mE,GAClE,GAEsB,eAApBC,EAAO/zD,YACTk0D,EAAIG,aAAe,eAErBH,EAAIN,gBAAkBA,GAKtBM,EAAIh0B,OAAS,SAAUjjD,GAErB,IAAKi3E,EAAII,QAAWJ,EAAII,QAAU,KAAOJ,EAAII,OAAS,IAAM,CAC1D,MAAMz8E,EAAOk8E,EAAO/zD,UAEpB,IAAIzd,EACQ,QAAR1K,GAA0B,QAARA,EACpB0K,EAAS2xE,EAAIK,aACI,OAAR18E,GACT0K,EAAS2xE,EAAIM,YACRjyE,IACHA,GAAS,IAAIkyE,WAAYC,gBACvBR,EAAIK,aACJ,qBAGa,eAAR18E,IACT0K,EAAqC2xE,EAAIS,UAEvCpyE,EACFyxE,EAGID,EAAOa,aAAaryE,EAAQ,CAC1BgF,OAAQA,EACRstE,kBAAmB9nE,IAGvBgnE,EAAOe,eAAevyE,IAGxB0xE,GAEJ,MACEA,GAEJ,EAIAC,EAAIa,QAAUd,EACdC,EAAIc,MACN,CAWO,SAASd,GAAIJ,EAAKC,GAUvB,OAAO,SAAUxsE,EAAQyE,EAAYe,EAAYinE,EAASC,GACxD,MAAM1xE,EAA2D3L,KACjEi9E,GACEC,EACAC,EACAxsE,EACAyE,EACAe,GAMA,SAAU+8D,EAAUmL,GAClB1yE,EAAO2yE,YAAYpL,QACHjsE,IAAZm2E,GACFA,EAAQlK,EAEZ,GACyBmK,GAAoB/4E,EAEjD,CACF,CCjIO,MAAMi6E,WAA0B/3E,EAMrCxF,WAAAA,CAAYC,EAAMslD,EAAS2sB,GACzBztE,MAAMxE,GAONjB,KAAKumD,QAAUA,EAOfvmD,KAAKkzE,SAAWA,CAClB,EAmHF,MAAMsL,WAAqB5C,GAIzB56E,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EAEtBzJ,MAAM,CACJ64B,aAAcpvB,EAAQovB,aACtB6J,aAAa,EACbhyB,gBAAYlP,EACZqJ,MAAO,QACP2L,WAAyBhV,IAAlBiI,EAAQ+M,OAAsB/M,EAAQ+M,QAM/Cjc,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLrJ,KAAKy+E,QAAUn6E,EAMftE,KAAK0+E,QAAUxvE,EAAQiuE,OAMvBn9E,KAAKwtE,eAAiCvmE,IAArBiI,EAAQw5D,UAAgCx5D,EAAQw5D,SAMjE1oE,KAAK2+E,KAAOzvE,EAAQguE,SAEGj2E,IAAnBiI,EAAQ0vE,OACV5+E,KAAKy+E,QAAUvvE,EAAQ0vE,YACA33E,IAAdjH,KAAK2+E,OACdpyE,EAAOvM,KAAK0+E,QAAS,0CAErB1+E,KAAKy+E,QAAUnB,GACbt9E,KAAK2+E,KACkD3+E,KAAK0+E,UAQhE1+E,KAAK6+E,eACkB53E,IAArBiI,EAAQ4vE,SAAyB5vE,EAAQ4vE,SAAWC,GAEtD,MAAMC,OACwB/3E,IAA5BiI,EAAQ8vE,iBAAgC9vE,EAAQ8vE,gBAqDlD,IAAIC,EAEA/L,EAjDJlzE,KAAKk/E,eAAiBF,EAAkB,IAAI7lB,GAAU,KAMtDn5D,KAAKm/E,oBAAsB,IAAIhmB,GAM/Bn5D,KAAKo/E,qBAAuB,EAM5Bp/E,KAAKq/E,sBAAwB,CAAC,EAO9Br/E,KAAKs/E,SAAW,CAAC,EAOjBt/E,KAAKu/E,UAAY,CAAC,EAMlBv/E,KAAKw/E,mBAAqB,CAAC,EAM3Bx/E,KAAKy/E,oBAAsB,KAMvBn8E,MAAMC,QAAQ2L,EAAQgkE,UACxBA,EAAWhkE,EAAQgkE,SACVhkE,EAAQgkE,WACjB+L,EAAa/vE,EAAQgkE,SACrBA,EAAW+L,EAAW7E,YAEnB4E,QAAkC/3E,IAAfg4E,IACtBA,EAAa,IAAIpF,GAAW3G,SAEbjsE,IAAbisE,GACFlzE,KAAK0/E,oBAAoBxM,QAERjsE,IAAfg4E,GACFj/E,KAAK2/E,wBAAwBV,EAEjC,CAcAW,UAAAA,CAAWr5B,GACTvmD,KAAK6/E,mBAAmBt5B,GACxBvmD,KAAKwJ,SACP,CAOAq2E,kBAAAA,CAAmBt5B,GACjB,MAAMu5B,EAAa71E,EAAOs8C,GAE1B,IAAKvmD,KAAK+/E,YAAYD,EAAYv5B,GAIhC,YAHIvmD,KAAKy/E,qBACPz/E,KAAKy/E,oBAAoBhF,OAAOl0B,IAKpCvmD,KAAKggF,mBAAmBF,EAAYv5B,GAEpC,MAAM5tB,EAAW4tB,EAAQP,cACzB,GAAIrtB,EAAU,CACZ,MAAMhoB,EAASgoB,EAAS/nB,YACpB5Q,KAAKk/E,gBACPl/E,KAAKk/E,eAAe3S,OAAO57D,EAAQ41C,EAEvC,MACEvmD,KAAKq/E,sBAAsBS,GAAcv5B,EAG3CvmD,KAAKoG,cACH,IAAIm4E,GAAkB0B,GAAgBvD,WAAYn2B,GAEtD,CAOAy5B,kBAAAA,CAAmBF,EAAYv5B,GAC7BvmD,KAAKw/E,mBAAmBM,GAAc,CACpCt3E,EAAO+9C,EAAS98C,EAAUlC,OAAQvH,KAAKkgF,qBAAsBlgF,MAC7DwI,EACE+9C,EACAl7C,EAAgB9J,eAChBvB,KAAKkgF,qBACLlgF,MAGN,CASA+/E,WAAAA,CAAYD,EAAYv5B,GACtB,IAAI45B,GAAQ,EACZ,MAAMt3C,EAAK0d,EAAQ65B,QAenB,YAdWn5E,IAAP4hC,IACIA,EAAG5hB,aAAcjnB,KAAKs/E,SAG1Ba,GAAQ,EAFRngF,KAAKs/E,SAASz2C,EAAG5hB,YAAcs/B,GAK/B45B,IACF5zE,IACIuzE,KAAc9/E,KAAKu/E,WACrB,wDAEFv/E,KAAKu/E,UAAUO,GAAcv5B,GAExB45B,CACT,CAOA7B,WAAAA,CAAYpL,GACVlzE,KAAK0/E,oBAAoBxM,GACzBlzE,KAAKwJ,SACP,CAOAk2E,mBAAAA,CAAoBxM,GAClB,MAAM8H,EAAU,GACVqF,EAAc,GACdC,EAAmB,GAEzB,IAAK,IAAIz9E,EAAI,EAAGR,EAAS6wE,EAAS7wE,OAAQQ,EAAIR,EAAQQ,IAAK,CACzD,MAAM0jD,EAAU2sB,EAASrwE,GACnBi9E,EAAa71E,EAAOs8C,GACtBvmD,KAAK+/E,YAAYD,EAAYv5B,IAC/B85B,EAAYl6E,KAAKogD,EAErB,CAEA,IAAK,IAAI1jD,EAAI,EAAGR,EAASg+E,EAAYh+E,OAAQQ,EAAIR,EAAQQ,IAAK,CAC5D,MAAM0jD,EAAU85B,EAAYx9E,GACtBi9E,EAAa71E,EAAOs8C,GAC1BvmD,KAAKggF,mBAAmBF,EAAYv5B,GAEpC,MAAM5tB,EAAW4tB,EAAQP,cACzB,GAAIrtB,EAAU,CACZ,MAAMhoB,EAASgoB,EAAS/nB,YACxBoqE,EAAQ70E,KAAKwK,GACb2vE,EAAiBn6E,KAAKogD,EACxB,MACEvmD,KAAKq/E,sBAAsBS,GAAcv5B,CAE7C,CAKA,GAJIvmD,KAAKk/E,gBACPl/E,KAAKk/E,eAAe19C,KAAKw5C,EAASsF,GAGhCtgF,KAAKkH,YAAY+4E,GAAgBvD,YACnC,IAAK,IAAI75E,EAAI,EAAGR,EAASg+E,EAAYh+E,OAAQQ,EAAIR,EAAQQ,IACvD7C,KAAKoG,cACH,IAAIm4E,GAAkB0B,GAAgBvD,WAAY2D,EAAYx9E,IAItE,CAMA88E,uBAAAA,CAAwBV,GACtB,IAAIsB,GAAsB,EAC1BvgF,KAAK8F,iBACHm6E,GAAgBvD,YAIhB,SAAUn2E,GACHg6E,IACHA,GAAsB,EACtBtB,EAAW94E,KAAKI,EAAIggD,SACpBg6B,GAAsB,EAE1B,IAEFvgF,KAAK8F,iBACHm6E,GAAgBrD,eAIhB,SAAUr2E,GACHg6E,IACHA,GAAsB,EACtBtB,EAAWxE,OAAOl0E,EAAIggD,SACtBg6B,GAAsB,EAE1B,IAEFtB,EAAWn5E,iBACTy0E,GAAoBd,KAInBlzE,IACMg6E,IACHA,GAAsB,EACtBvgF,KAAK4/E,WAAWr5E,EAAIw9B,SACpBw8C,GAAsB,EACxB,IAGJtB,EAAWn5E,iBACTy0E,GAAoBb,QAInBnzE,IACMg6E,IACHA,GAAsB,EACtBvgF,KAAKwgF,cAAcj6E,EAAIw9B,SACvBw8C,GAAsB,EACxB,IAGJvgF,KAAKy/E,oBAAsBR,CAC7B,CAOA75E,KAAAA,CAAMq7E,GACJ,GAAIA,EAAM,CACR,IAAK,MAAMC,KAAa1gF,KAAKw/E,mBAAoB,CAC/C,MAAMp4E,EAAOpH,KAAKw/E,mBAAmBkB,GACrCt5E,EAAK2X,QAAQhW,EACf,CACK/I,KAAKy/E,sBACRz/E,KAAKw/E,mBAAqB,CAAC,EAC3Bx/E,KAAKs/E,SAAW,CAAC,EACjBt/E,KAAKu/E,UAAY,CAAC,EAEtB,MACE,GAAIv/E,KAAKk/E,eAAgB,CACvB,MAAMyB,EAAyBp6B,IAC7BvmD,KAAK4gF,sBAAsBr6B,EAAQ,EAErCvmD,KAAKk/E,eAAengE,QAAQ4hE,GAC5B,IAAK,MAAM93C,KAAM7oC,KAAKq/E,sBACpBr/E,KAAK4gF,sBAAsB5gF,KAAKq/E,sBAAsBx2C,GAE1D,CAEE7oC,KAAKy/E,qBACPz/E,KAAKy/E,oBAAoBr6E,QAGvBpF,KAAKk/E,gBACPl/E,KAAKk/E,eAAe95E,QAEtBpF,KAAKq/E,sBAAwB,CAAC,EAE9B,MAAMwB,EAAa,IAAItC,GAAkB0B,GAAgBv4E,OACzD1H,KAAKoG,cAAcy6E,GACnB7gF,KAAKwJ,SACP,CAcAs3E,cAAAA,CAAe5nE,GACb,GAAIlZ,KAAKk/E,eACP,OAAOl/E,KAAKk/E,eAAengE,QAAQ7F,GAEjClZ,KAAKy/E,qBACPz/E,KAAKy/E,oBAAoB1gE,QAAQ7F,EAErC,CAcA6nE,gCAAAA,CAAiC9oE,EAAYiB,GAC3C,MAAMvI,EAAS,CAACsH,EAAW,GAAIA,EAAW,GAAIA,EAAW,GAAIA,EAAW,IACxE,OAAOjY,KAAKghF,uBAAuBrwE,GAAQ,SAAU41C,GACnD,MAAM5tB,EAAW4tB,EAAQP,cACzB,GAAIrtB,EAAS3P,qBAAqB/Q,GAChC,OAAOiB,EAASqtC,EAGpB,GACF,CAqBAy6B,sBAAAA,CAAuBrwE,EAAQuI,GAC7B,GAAIlZ,KAAKk/E,eACP,OAAOl/E,KAAKk/E,eAAe1D,gBAAgB7qE,EAAQuI,GAEjDlZ,KAAKy/E,qBACPz/E,KAAKy/E,oBAAoB1gE,QAAQ7F,EAErC,CAiBA+nE,gCAAAA,CAAiCtwE,EAAQuI,GACvC,OAAOlZ,KAAKghF,uBACVrwE,GAKA,SAAU41C,GACR,MAAM5tB,EAAW4tB,EAAQP,cACzB,GAAIrtB,EAAStP,iBAAiB1Y,GAAS,CACrC,MAAM4R,EAASrJ,EAASqtC,GACxB,GAAIhkC,EACF,OAAOA,CAEX,CACF,GAEJ,CASA2+D,qBAAAA,GACE,OAAOlhF,KAAKy/E,mBACd,CAQApiD,WAAAA,GACE,IAAI61C,EASJ,OARIlzE,KAAKy/E,oBACPvM,EAAWlzE,KAAKy/E,oBAAoBrF,WAAWr1E,MAAM,GAC5C/E,KAAKk/E,iBACdhM,EAAWlzE,KAAKk/E,eAAe9D,SAC1B71E,EAAQvF,KAAKq/E,wBAChBl8E,EAAO+vE,EAAU/rE,OAAOqD,OAAOxK,KAAKq/E,yBAGjC,CAGT,CAQA8B,uBAAAA,CAAwBlpE,GACtB,MAAMi7D,EAAW,GAIjB,OAHAlzE,KAAK+gF,iCAAiC9oE,GAAY,SAAUsuC,GAC1D2sB,EAAS/sE,KAAKogD,EAChB,IACO2sB,CACT,CAgBAmG,mBAAAA,CAAoB1oE,EAAQwF,GAC1B,GAAInW,KAAKk/E,eAAgB,CACvB,MAAMzjD,EAAatlB,GAAcA,EAAWpC,YAAc/T,KAAKu3E,WAE/D,IAAK97C,EACH,OAAOz7B,KAAKk/E,eAAe7D,YAAY1qE,GAGzC,MAAMqqE,EAAU3+D,GAAc1L,EAAQwF,GAEtC,MAAO,GAAGulE,UACLV,EAAQl+C,KAAKskD,GAAaphF,KAAKk/E,eAAe7D,YAAY+F,KAEjE,CACA,OAAIphF,KAAKy/E,oBACAz/E,KAAKy/E,oBAAoBrF,WAAWr1E,MAAM,GAE5C,EACT,CAcAs8E,6BAAAA,CAA8BppE,EAAYke,GAQxC,MAAMppB,EAAIkL,EAAW,GACfjL,EAAIiL,EAAW,GACrB,IAAIqpE,EAAiB,KACrB,MAAM34D,EAAe,CAACI,IAAKA,KAC3B,IAAIH,EAAqBjZ,IACzB,MAAMgB,EAAS,EAAEhB,KAAWA,IAAUA,IAAUA,KAgChD,OA/BAwmB,EAASA,GAAkB/xB,EAC3BpE,KAAKk/E,eAAe1D,gBAClB7qE,GAIA,SAAU41C,GACR,GAAIpwB,EAAOowB,GAAU,CACnB,MAAM5tB,EAAW4tB,EAAQP,cACnBu7B,EAA6B34D,EAOnC,GANAA,EAAqB+P,EAASjQ,eAC5B3b,EACAC,EACA2b,EACAC,GAEEA,EAAqB24D,EAA4B,CACnDD,EAAiB/6B,EAKjB,MAAMi7B,EAAc30E,KAAK8Q,KAAKiL,GAC9BjY,EAAO,GAAK5D,EAAIy0E,EAChB7wE,EAAO,GAAK3D,EAAIw0E,EAChB7wE,EAAO,GAAK5D,EAAIy0E,EAChB7wE,EAAO,GAAK3D,EAAIw0E,CAClB,CACF,CACF,IAEKF,CACT,CAYA1wE,SAAAA,CAAUD,GACR,OAAO3Q,KAAKk/E,eAAetuE,UAAUD,EACvC,CAWA8wE,cAAAA,CAAe54C,GACb,MAAM0d,EAAUvmD,KAAKs/E,SAASz2C,EAAG5hB,YACjC,YAAmBhgB,IAAZs/C,EAAwBA,EAAU,IAC3C,CAQAm7B,eAAAA,CAAgBjrC,GACd,MAAM8P,EAAUvmD,KAAKu/E,UAAU9oC,GAC/B,YAAmBxvC,IAAZs/C,EAAwBA,EAAU,IAC3C,CAQAo7B,SAAAA,GACE,OAAO3hF,KAAK0+E,OACd,CAKAnF,WAAAA,GACE,OAAOv5E,KAAKwtE,SACd,CAQAoU,MAAAA,GACE,OAAO5hF,KAAK2+E,IACd,CAMAuB,oBAAAA,CAAqB75E,GACnB,MAAMkgD,EACJlgD,EAAMjF,OAEF0+E,EAAa71E,EAAOs8C,GACpB5tB,EAAW4tB,EAAQP,cACzB,GAAKrtB,EAOE,CACL,MAAMhoB,EAASgoB,EAAS/nB,YACpBkvE,KAAc9/E,KAAKq/E,8BACdr/E,KAAKq/E,sBAAsBS,GAC9B9/E,KAAKk/E,gBACPl/E,KAAKk/E,eAAe3S,OAAO57D,EAAQ41C,IAGjCvmD,KAAKk/E,gBACPl/E,KAAKk/E,eAAehE,OAAOvqE,EAAQ41C,EAGzC,MAlBQu5B,KAAc9/E,KAAKq/E,wBACnBr/E,KAAKk/E,gBACPl/E,KAAKk/E,eAAezE,OAAOl0B,GAE7BvmD,KAAKq/E,sBAAsBS,GAAcv5B,GAe7C,MAAM1d,EAAK0d,EAAQ65B,QACnB,QAAWn5E,IAAP4hC,EAAkB,CACpB,MAAMg5C,EAAMh5C,EAAG5hB,WACXjnB,KAAKs/E,SAASuC,KAASt7B,IACzBvmD,KAAK8hF,mBAAmBv7B,GACxBvmD,KAAKs/E,SAASuC,GAAOt7B,EAEzB,MACEvmD,KAAK8hF,mBAAmBv7B,GACxBvmD,KAAKu/E,UAAUO,GAAcv5B,EAE/BvmD,KAAKwJ,UACLxJ,KAAKoG,cACH,IAAIm4E,GAAkB0B,GAAgBtD,cAAep2B,GAEzD,CAQAw7B,UAAAA,CAAWx7B,GACT,MAAM1d,EAAK0d,EAAQ65B,QACnB,YAAWn5E,IAAP4hC,EACKA,KAAM7oC,KAAKs/E,SAEbr1E,EAAOs8C,KAAYvmD,KAAKu/E,SACjC,CAKAh6E,OAAAA,GACE,OAAIvF,KAAKk/E,eAELl/E,KAAKk/E,eAAe35E,WAAaA,EAAQvF,KAAKq/E,wBAG9Cr/E,KAAKy/E,qBACyC,IAAzCz/E,KAAKy/E,oBAAoBtF,WAGpC,CAOAjB,YAAAA,CAAavoE,EAAQyE,EAAYe,GAC/B,MAAM6rE,EAAqBhiF,KAAKm/E,oBAC1B8C,EAAgBjiF,KAAK6+E,UAAUluE,EAAQyE,EAAYe,GACzD,IAAK,IAAItT,EAAI,EAAG+D,EAAKq7E,EAAc5/E,OAAQQ,EAAI+D,IAAM/D,EAAG,CACtD,MAAMq/E,EAAeD,EAAcp/E,GAC7Bs/E,EAAgBH,EAAmBxG,gBACvC0G,GAKA,SAAU78E,GACR,OAAO8S,GAAe9S,EAAOsL,OAAQuxE,EACvC,IAEGC,MACDniF,KAAKo/E,qBACPp/E,KAAKoG,cACH,IAAIm4E,GAAkB0B,GAAgBpD,oBAExC78E,KAAKy+E,QAAQz5E,KACXhF,KACAkiF,EACA9sE,EACAe,GACC+8D,MACGlzE,KAAKo/E,qBACPp/E,KAAKoG,cACH,IAAIm4E,GACF0B,GAAgBnD,qBAChB71E,EACAisE,GAEH,IAEH,OACIlzE,KAAKo/E,qBACPp/E,KAAKoG,cACH,IAAIm4E,GAAkB0B,GAAgBlD,mBACvC,IAGLiF,EAAmBzV,OAAO2V,EAAc,CAACvxE,OAAQuxE,EAAan9E,UAElE,CACA/E,KAAKu1E,UACHv1E,KAAKy+E,QAAQp8E,OAAS,IAAYrC,KAAKo/E,qBAAuB,CAClE,CAEA7C,OAAAA,GACEv8E,KAAKoF,OAAM,GACXpF,KAAKm/E,oBAAoB/5E,QACzBK,MAAM82E,SACR,CAOA6F,kBAAAA,CAAmBzxE,GACjB,MAAMqxE,EAAqBhiF,KAAKm/E,oBAChC,IAAIj1E,EACJ83E,EAAmBxG,gBAAgB7qE,GAAQ,SAAUtL,GACnD,GAAI7B,GAAO6B,EAAOsL,OAAQA,GAExB,OADAzG,EAAM7E,GACC,CAEX,IACI6E,GACF83E,EAAmBvH,OAAOvwE,EAE9B,CASAs2E,aAAAA,CAAcj6B,GACZ,IAAKA,EACH,OAEF,MAAMu5B,EAAa71E,EAAOs8C,GACtBu5B,KAAc9/E,KAAKq/E,6BACdr/E,KAAKq/E,sBAAsBS,GAE9B9/E,KAAKk/E,gBACPl/E,KAAKk/E,eAAezE,OAAOl0B,GAG/B,MAAMhkC,EAASviB,KAAK4gF,sBAAsBr6B,GACtChkC,GACFviB,KAAKwJ,SAET,CASAo3E,qBAAAA,CAAsBr6B,GACpB,MAAMu5B,EAAa71E,EAAOs8C,GACpB87B,EAAoBriF,KAAKw/E,mBAAmBM,GAClD,IAAKuC,EACH,OAEFA,EAAkBtjE,QAAQhW,UACnB/I,KAAKw/E,mBAAmBM,GAC/B,MAAMj3C,EAAK0d,EAAQ65B,QAQnB,YAPWn5E,IAAP4hC,UACK7oC,KAAKs/E,SAASz2C,EAAG5hB,mBAEnBjnB,KAAKu/E,UAAUO,GACtB9/E,KAAKoG,cACH,IAAIm4E,GAAkB0B,GAAgBrD,cAAer2B,IAEhDA,CACT,CASAu7B,kBAAAA,CAAmBv7B,GACjB,IAAI+7B,GAAU,EACd,IAAK,MAAMz5C,KAAM7oC,KAAKs/E,SACpB,GAAIt/E,KAAKs/E,SAASz2C,KAAQ0d,EAAS,QAC1BvmD,KAAKs/E,SAASz2C,GACrBy5C,GAAU,EACV,KACF,CAEF,OAAOA,CACT,CAQAC,SAAAA,CAAU3D,GACR5+E,KAAKy+E,QAAUG,CACjB,CAOA4D,MAAAA,CAAOtF,GACL3wE,EAAOvM,KAAK0+E,QAAS,0CACrB1+E,KAAK2+E,KAAOzB,EACZl9E,KAAKuiF,UAAUjF,GAAIJ,EAAKl9E,KAAK0+E,SAC/B,EAGF,UCllCA,MAAM+D,GAIJzhF,WAAAA,CAAY0hF,GAMV1iF,KAAK0iF,mBAAkCz7E,IAAlBy7E,EAA8BA,EAAgB,KAMnE1iF,KAAK2iF,OAAS,EAMd3iF,KAAK4iF,SAAW,CAAC,EAMjB5iF,KAAK6iF,QAAU,KAMf7iF,KAAK8iF,QAAU,IACjB,CAKA9pC,cAAAA,GACE,OAAOh5C,KAAK0iF,cAAgB,GAAK1iF,KAAK+iF,WAAa/iF,KAAK0iF,aAC1D,CAMAvpC,WAAAA,CAAY0qB,GACV,MAAO7jE,KAAKg5C,iBACVh5C,KAAKusB,KAET,CAKAnnB,KAAAA,GACEpF,KAAK2iF,OAAS,EACd3iF,KAAK4iF,SAAW,CAAC,EACjB5iF,KAAK6iF,QAAU,KACf7iF,KAAK8iF,QAAU,IACjB,CAMAE,WAAAA,CAAYh6E,GACV,OAAOhJ,KAAK4iF,SAAS/3E,eAAe7B,EACtC,CAQA+V,OAAAA,CAAQoH,GACN,IAAI88D,EAAQjjF,KAAK6iF,QACjB,MAAOI,EACL98D,EAAE88D,EAAMC,OAAQD,EAAME,KAAMnjF,MAC5BijF,EAAQA,EAAMG,KAElB,CAOAz4E,GAAAA,CAAI3B,EAAKkG,GACP,MAAM+zE,EAAQjjF,KAAK4iF,SAAS55E,GAK5B,OAJAuD,OACYtF,IAAVg8E,EACA,mEAEEA,IAAUjjF,KAAK8iF,UAGfG,IAAUjjF,KAAK6iF,SACjB7iF,KAAK6iF,QAAgC7iF,KAAK6iF,QAAQO,MAClDpjF,KAAK6iF,QAAQQ,MAAQ,OAErBJ,EAAMG,MAAMC,MAAQJ,EAAMI,MAC1BJ,EAAMI,MAAMD,MAAQH,EAAMG,OAE5BH,EAAMG,MAAQ,KACdH,EAAMI,MAAQrjF,KAAK8iF,QACnB9iF,KAAK8iF,QAAQM,MAAQH,EACrBjjF,KAAK8iF,QAAUG,GAZNA,EAAMC,MAcjB,CAOAzI,MAAAA,CAAOzxE,GACL,MAAMi6E,EAAQjjF,KAAK4iF,SAAS55E,GAqB5B,OApBAuD,OACYtF,IAAVg8E,EACA,mEAEEA,IAAUjjF,KAAK8iF,SACjB9iF,KAAK8iF,QAAgCG,EAAMI,MACvCrjF,KAAK8iF,UACP9iF,KAAK8iF,QAAQM,MAAQ,OAEdH,IAAUjjF,KAAK6iF,SACxB7iF,KAAK6iF,QAAgCI,EAAMG,MACvCpjF,KAAK6iF,UACP7iF,KAAK6iF,QAAQQ,MAAQ,QAGvBJ,EAAMG,MAAMC,MAAQJ,EAAMI,MAC1BJ,EAAMI,MAAMD,MAAQH,EAAMG,cAErBpjF,KAAK4iF,SAAS55E,KACnBhJ,KAAK2iF,OACAM,EAAMC,MACf,CAKAH,QAAAA,GACE,OAAO/iF,KAAK2iF,MACd,CAKA73E,OAAAA,GACE,MAAM1D,EAAO,IAAI9D,MAAMtD,KAAK2iF,QAC5B,IACIM,EADApgF,EAAI,EAER,IAAKogF,EAAQjjF,KAAK8iF,QAASG,EAAOA,EAAQA,EAAMI,MAC9Cj8E,EAAKvE,KAAOogF,EAAME,KAEpB,OAAO/7E,CACT,CAKAk8E,SAAAA,GACE,MAAM94E,EAAS,IAAIlH,MAAMtD,KAAK2iF,QAC9B,IACIM,EADApgF,EAAI,EAER,IAAKogF,EAAQjjF,KAAK8iF,QAASG,EAAOA,EAAQA,EAAMI,MAC9C74E,EAAO3H,KAAOogF,EAAMC,OAEtB,OAAO14E,CACT,CAKA+4E,QAAAA,GACE,OAAOvjF,KAAK6iF,QAAQK,MACtB,CAKAM,WAAAA,GACE,OAAOxjF,KAAK6iF,QAAQM,IACtB,CAMAM,YAAAA,GACE,OAAOzjF,KAAK8iF,QAAQK,IACtB,CAOAO,IAAAA,CAAK16E,GACH,GAAKhJ,KAAKgjF,YAAYh6E,GAGtB,OAAOhJ,KAAK4iF,SAAS55E,GAAKk6E,MAC5B,CAKA32D,GAAAA,GACE,MAAM02D,EAAQjjF,KAAK6iF,QAUnB,cATO7iF,KAAK4iF,SAASK,EAAME,MACvBF,EAAMG,QACRH,EAAMG,MAAMC,MAAQ,MAEtBrjF,KAAK6iF,QAAgCI,EAAMG,MACtCpjF,KAAK6iF,UACR7iF,KAAK8iF,QAAU,QAEf9iF,KAAK2iF,OACAM,EAAMC,MACf,CAMAjtE,OAAAA,CAAQjN,EAAK4B,GACX5K,KAAK2K,IAAI3B,GACThJ,KAAK4iF,SAAS55E,GAAKk6E,OAASt4E,CAC9B,CAMAY,GAAAA,CAAIxC,EAAK4B,GACP2B,IACIvD,KAAOhJ,KAAK4iF,UACd,uDAEF,MAAMK,EAAQ,CACZE,KAAMn6E,EACNo6E,MAAO,KACPC,MAAOrjF,KAAK8iF,QACZI,OAAQt4E,GAEL5K,KAAK8iF,QAGR9iF,KAAK8iF,QAAQM,MAAQH,EAFrBjjF,KAAK6iF,QAAUI,EAIjBjjF,KAAK8iF,QAAUG,EACfjjF,KAAK4iF,SAAS55E,GAAOi6E,IACnBjjF,KAAK2iF,MACT,CAOAx7B,OAAAA,CAAQjtC,GACNla,KAAK0iF,cAAgBxoE,CACvB,EAGF,UCrRO,SAAStC,GAAegL,EAAG7V,EAAGC,EAAG0zB,GACtC,YAAkBz5B,IAAdy5B,GACFA,EAAU,GAAK9d,EACf8d,EAAU,GAAK3zB,EACf2zB,EAAU,GAAK1zB,EACR0zB,GAEF,CAAC9d,EAAG7V,EAAGC,EAChB,CAQO,SAAS22E,GAAU/gE,EAAG7V,EAAGC,GAC9B,OAAO4V,EAAI,IAAM7V,EAAI,IAAMC,CAC7B,CAOO,SAASu7B,GAAO7H,GACrB,OAAOijD,GAAUjjD,EAAU,GAAIA,EAAU,GAAIA,EAAU,GACzD,CAoBO,SAASkjD,GAAQ56E,GACtB,OAAOA,EAAIm6B,MAAM,KAAKrG,IAAIsG,OAC5B,CAMO,SAASygD,GAAKnjD,GACnB,OAAQA,EAAU,IAAMA,EAAU,IAAMA,EAAU,EACpD,CAOO,SAASojD,GAAiBpjD,EAAWjsB,GAC1C,MAAMmO,EAAI8d,EAAU,GACd3zB,EAAI2zB,EAAU,GACd1zB,EAAI0zB,EAAU,GAEpB,GAAIjsB,EAAS1D,aAAe6R,GAAKA,EAAInO,EAASzD,aAC5C,OAAO,EAET,MAAM4vB,EAAYnsB,EAASsvE,iBAAiBnhE,GAC5C,OAAKge,GAGEA,EAAU1oB,WAAWnL,EAAGC,EACjC,CCzFA,MAAMg3E,WAAkBvB,GACtBr9E,KAAAA,GACE,MAAOpF,KAAK+iF,WAAa,EACvB/iF,KAAKusB,MAAM6b,UAEb3iC,MAAML,OACR,CAKA+zC,WAAAA,CAAYV,GACV,MAAOz4C,KAAKg5C,iBAAkB,CAC5B,MAAMvY,EAAOzgC,KAAKujF,WAClB,GAAI9iD,EAAK8H,WAAYkQ,EACnB,MAEAz4C,KAAKusB,MAAM6b,SAEf,CACF,CAKA67C,kBAAAA,GACE,GAAwB,IAApBjkF,KAAK+iF,WACP,OAEF,MAAM/5E,EAAMhJ,KAAKyjF,eACX/iD,EAAYkjD,GAAQ56E,GACpB4Z,EAAI8d,EAAU,GACpB1gC,KAAK+e,SAAS0hB,IACRA,EAAKC,UAAU,KAAO9d,IACxB5iB,KAAKy6E,OAAOlyC,GAAO9H,EAAKC,YACxBD,EAAK2H,UACP,GAEJ,EAGF,UCxCA,IAME87C,cAAe,gBAQfC,YAAa,cASbC,cAAe,iBCXjB,MAAMC,GAAe,CAAC,EAAG,EAAG,GAMtBC,GAAW,EAuCjB,MAAMC,GAIJvjF,WAAAA,CAAYkO,GAwBV,IAAI8iB,EACJ,GApBAhyB,KAAK6P,aAA8B5I,IAApBiI,EAAQW,QAAwBX,EAAQW,QAAU,EAMjE7P,KAAKiyB,aAAe/iB,EAAQuT,YAC5BlW,EACE3I,EACE5D,KAAKiyB,cACL,SAAU1vB,EAAGC,GACX,OAAOA,EAAID,CACb,IACA,GAEF,qDAKG2M,EAAQs1E,QACX,IAAK,IAAI3hF,EAAI,EAAG+D,EAAK5G,KAAKiyB,aAAa5vB,OAAS,EAAGQ,EAAI+D,IAAM/D,EAC3D,GAAKmvB,GAGH,GAAIhyB,KAAKiyB,aAAapvB,GAAK7C,KAAKiyB,aAAapvB,EAAI,KAAOmvB,EAAY,CAClEA,OAAa/qB,EACb,KACF,OALA+qB,EAAahyB,KAAKiyB,aAAapvB,GAAK7C,KAAKiyB,aAAapvB,EAAI,GAchE7C,KAAK+xB,YAAcC,EAMnBhyB,KAAK8P,QAAU9P,KAAKiyB,aAAa5vB,OAAS,EAM1CrC,KAAK8gD,aAA6B75C,IAAnBiI,EAAQ2oC,OAAuB3oC,EAAQ2oC,OAAS,KAM/D73C,KAAKykF,SAAW,UACQx9E,IAApBiI,EAAQs1E,UACVxkF,KAAKykF,SAAWv1E,EAAQs1E,QACxBj4E,EACEvM,KAAKykF,SAASpiF,QAAUrC,KAAKiyB,aAAa5vB,OAC1C,wDAIJ,MAAMsO,EAASzB,EAAQyB,YAER1J,IAAX0J,GAAyB3Q,KAAK8gD,SAAY9gD,KAAKykF,WACjDzkF,KAAK8gD,QAAUvnC,GAAW5I,IAG5BpE,GACIvM,KAAK8gD,SAAW9gD,KAAKykF,UAAczkF,KAAK8gD,UAAY9gD,KAAKykF,SAC3D,+DAOFzkF,KAAK0kF,WAAa,UACQz9E,IAAtBiI,EAAQy1E,YACV3kF,KAAK0kF,WAAax1E,EAAQy1E,UAC1Bp4E,EACEvM,KAAK0kF,WAAWriF,QAAUrC,KAAKiyB,aAAa5vB,OAC5C,0DAQJrC,KAAK4kF,eACkB39E,IAArBiI,EAAQymC,SACJzmC,EAAQymC,SACP31C,KAAK0kF,WAEN,KADA/xE,GAENpG,GACIvM,KAAK4kF,WAAa5kF,KAAK0kF,YACtB1kF,KAAK4kF,YAAc5kF,KAAK0kF,WAC3B,mEAOF1kF,KAAKkT,aAAqBjM,IAAX0J,EAAuBA,EAAS,KAM/C3Q,KAAK6kF,gBAAkB,KAMvB7kF,KAAK8kF,SAAW,CAAC,EAAG,GAMpB9kF,KAAK+kF,WAAa,CAAC,EAAG,EAAG,EAAG,QAEN99E,IAAlBiI,EAAQ81E,MACVhlF,KAAK6kF,gBAAkB31E,EAAQ81E,MAAMloD,KAAI,SAAU5iB,EAAM0I,GACvD,MAAMge,EAAY,IAAImT,GACpBlnC,KAAKF,IAAI,EAAGuN,EAAK,IACjBrN,KAAKD,IAAIsN,EAAK,GAAK,GAAI,GACvBrN,KAAKF,IAAI,EAAGuN,EAAK,IACjBrN,KAAKD,IAAIsN,EAAK,GAAK,GAAI,IAEzB,GAAIvJ,EAAQ,CACV,MAAMs0E,EAAsBjlF,KAAKszC,0BAA0B3iC,EAAQiS,GACnEge,EAAUppB,KAAO3K,KAAKD,IAAIq4E,EAAoBztE,KAAMopB,EAAUppB,MAC9DopB,EAAUlpB,KAAO7K,KAAKF,IAAIs4E,EAAoBvtE,KAAMkpB,EAAUlpB,MAC9DkpB,EAAUnpB,KAAO5K,KAAKD,IAAIq4E,EAAoBxtE,KAAMmpB,EAAUnpB,MAC9DmpB,EAAUjpB,KAAO9K,KAAKF,IAAIs4E,EAAoBttE,KAAMipB,EAAUjpB,KAChE,CACA,OAAOipB,CACT,GAAG5gC,MACM2Q,GACT3Q,KAAKklF,qBAAqBv0E,EAE9B,CAUAw0E,gBAAAA,CAAiBx0E,EAAQoiB,EAAM7Z,GAC7B,MAAM0nB,EAAY5gC,KAAKszC,0BAA0B3iC,EAAQoiB,GACzD,IAAK,IAAIlwB,EAAI+9B,EAAUppB,KAAM5Q,EAAKg6B,EAAUlpB,KAAM7U,GAAK+D,IAAM/D,EAC3D,IAAK,IAAImL,EAAI4yB,EAAUnpB,KAAMwU,EAAK2U,EAAUjpB,KAAM3J,GAAKie,IAAMje,EAC3DkL,EAAS,CAAC6Z,EAAMlwB,EAAGmL,GAGzB,CASA6oC,+BAAAA,CACEnW,EACAxnB,EACAksE,EACAC,GAEA,IAAIzkD,EAAW7zB,EAAGC,EACds4E,EAAkB,KAClB1iE,EAAI8d,EAAU,GAAK,EACE,IAArB1gC,KAAK+xB,aACPhlB,EAAI2zB,EAAU,GACd1zB,EAAI0zB,EAAU,IAEd4kD,EAAkBtlF,KAAK8yC,mBAAmBpS,EAAW2kD,GAEvD,MAAOziE,GAAK5iB,KAAK6P,QAAS,CAYxB,GAXyB,IAArB7P,KAAK+xB,aACPhlB,EAAIF,KAAKkC,MAAMhC,EAAI,GACnBC,EAAIH,KAAKkC,MAAM/B,EAAI,GACnB4zB,EAAY2kD,GAAwBx4E,EAAGA,EAAGC,EAAGA,EAAGo4E,IAEhDxkD,EAAY5gC,KAAKszC,0BACfgyC,EACA1iE,EACAwiE,GAGAlsE,EAAS0J,EAAGge,GACd,OAAO,IAEPhe,CACJ,CACA,OAAO,CACT,CAOAhS,SAAAA,GACE,OAAO5Q,KAAKkT,OACd,CAOAlC,UAAAA,GACE,OAAOhR,KAAK8P,OACd,CAOAiB,UAAAA,GACE,OAAO/Q,KAAK6P,OACd,CAQA6lC,SAAAA,CAAU9yB,GACR,OAAI5iB,KAAK8gD,QACA9gD,KAAK8gD,QAEP9gD,KAAKykF,SAAS7hE,EACvB,CAQAwQ,aAAAA,CAAcxQ,GACZ,OAAO5iB,KAAKiyB,aAAarP,EAC3B,CAOA4U,cAAAA,GACE,OAAOx3B,KAAKiyB,YACd,CAQA0kB,0BAAAA,CAA2BjW,EAAW0kD,EAAeC,GACnD,GAAI3kD,EAAU,GAAK1gC,KAAK8P,QAAS,CAC/B,GAAyB,IAArB9P,KAAK+xB,YAAmB,CAC1B,MAAMva,EAAsB,EAAfkpB,EAAU,GACjBjpB,EAAsB,EAAfipB,EAAU,GACvB,OAAO6kD,GACL/tE,EACAA,EAAO,EACPC,EACAA,EAAO,EACP2tE,EAEJ,CACA,MAAME,EAAkBtlF,KAAK8yC,mBAC3BpS,EACA2kD,GAAcrlF,KAAK+kF,YAErB,OAAO/kF,KAAKszC,0BACVgyC,EACA5kD,EAAU,GAAK,EACf0kD,EAEJ,CACA,OAAO,IACT,CAQAI,4BAAAA,CAA6B9kD,EAAW9d,EAAGwiE,GACzC,GAAIxiE,EAAI5iB,KAAK8P,SAAW8S,EAAI5iB,KAAK6P,QAC/B,OAAO,KAGT,MAAM41E,EAAa/kD,EAAU,GACvBglD,EAAahlD,EAAU,GACvBilD,EAAajlD,EAAU,GAE7B,GAAI9d,IAAM6iE,EACR,OAAOF,GACLG,EACAC,EACAD,EACAC,EACAP,GAIJ,GAAIplF,KAAK+xB,YAAa,CACpB,MAAMnjB,EAAS/B,KAAKgC,IAAI7O,KAAK+xB,YAAanP,EAAI6iE,GACxCjuE,EAAO3K,KAAKkC,MAAM22E,EAAa92E,GAC/B6I,EAAO5K,KAAKkC,MAAM42E,EAAa/2E,GACrC,GAAIgU,EAAI6iE,EACN,OAAOF,GAAwB/tE,EAAMA,EAAMC,EAAMA,EAAM2tE,GAGzD,MAAM1tE,EAAO7K,KAAKkC,MAAMH,GAAU82E,EAAa,IAAM,EAC/C/tE,EAAO9K,KAAKkC,MAAMH,GAAU+2E,EAAa,IAAM,EACrD,OAAOJ,GAAwB/tE,EAAME,EAAMD,EAAME,EAAMytE,EACzD,CAEA,MAAME,EAAkBtlF,KAAK8yC,mBAAmBpS,EAAW1gC,KAAK+kF,YAChE,OAAO/kF,KAAKszC,0BAA0BgyC,EAAiB1iE,EAAGwiE,EAC5D,CASA9xC,yBAAAA,CAA0B3iC,EAAQiS,EAAGwiE,GACnCplF,KAAK4lF,uBAAuBj1E,EAAO,GAAIA,EAAO,GAAIiS,GAAG,EAAOyhE,IAC5D,MAAM7sE,EAAO6sE,GAAa,GACpB5sE,EAAO4sE,GAAa,GAC1BrkF,KAAK4lF,uBAAuBj1E,EAAO,GAAIA,EAAO,GAAIiS,GAAG,EAAMyhE,IAC3D,MAAM3sE,EAAO2sE,GAAa,GACpB1sE,EAAO0sE,GAAa,GAC1B,OAAOkB,GAAwB/tE,EAAME,EAAMD,EAAME,EAAMytE,EACzD,CAMAzrC,kBAAAA,CAAmBjZ,GACjB,MAAMmX,EAAS73C,KAAK01C,UAAUhV,EAAU,IAClCtrB,EAAapV,KAAKozB,cAAcsN,EAAU,IAC1CiV,EAAWvB,GAAOp0C,KAAK0zC,YAAYhT,EAAU,IAAK1gC,KAAK8kF,UAC7D,MAAO,CACLjtC,EAAO,IAAMnX,EAAU,GAAK,IAAOiV,EAAS,GAAKvgC,EACjDyiC,EAAO,IAAMnX,EAAU,GAAK,IAAOiV,EAAS,GAAKvgC,EAErD,CAUA09B,kBAAAA,CAAmBpS,EAAW2kD,GAC5B,MAAMxtC,EAAS73C,KAAK01C,UAAUhV,EAAU,IAClCtrB,EAAapV,KAAKozB,cAAcsN,EAAU,IAC1CiV,EAAWvB,GAAOp0C,KAAK0zC,YAAYhT,EAAU,IAAK1gC,KAAK8kF,UACvDttE,EAAOqgC,EAAO,GAAKnX,EAAU,GAAKiV,EAAS,GAAKvgC,EAChDqC,EAAOogC,EAAO,IAAMnX,EAAU,GAAK,GAAKiV,EAAS,GAAKvgC,EACtDsC,EAAOF,EAAOm+B,EAAS,GAAKvgC,EAC5BuC,EAAOF,EAAOk+B,EAAS,GAAKvgC,EAClC,OAAOwC,GAAeJ,EAAMC,EAAMC,EAAMC,EAAM0tE,EAChD,CAaAQ,iCAAAA,CAAkC5tE,EAAY7C,EAAY0wE,GACxD,OAAO9lF,KAAK+lF,gCACV9tE,EAAW,GACXA,EAAW,GACX7C,GACA,EACA0wE,EAEJ,CAeAC,+BAAAA,CACEh5E,EACAC,EACAoI,EACA4wE,EACAF,GAEA,MAAMljE,EAAI5iB,KAAKozC,kBAAkBh+B,GAC3B0H,EAAQ1H,EAAapV,KAAKozB,cAAcxQ,GACxCi1B,EAAS73C,KAAK01C,UAAU9yB,GACxB+yB,EAAWvB,GAAOp0C,KAAK0zC,YAAY9wB,GAAI5iB,KAAK8kF,UAElD,IAAIY,EAAc5oE,GAAS/P,EAAI8qC,EAAO,IAAOziC,EAAaugC,EAAS,GAC/DgwC,EAAc7oE,GAAS+6B,EAAO,GAAK7qC,GAAMoI,EAAaugC,EAAS,GAUnE,OARIqwC,GACFN,EAAa12E,EAAK02E,EAAYpB,IAAY,EAC1CqB,EAAa32E,EAAK22E,EAAYrB,IAAY,IAE1CoB,EAAa32E,EAAM22E,EAAYpB,IAC/BqB,EAAa52E,EAAM42E,EAAYrB,KAG1B2B,GAAwBrjE,EAAG8iE,EAAYC,EAAYG,EAC5D,CAiBAF,sBAAAA,CAAuB74E,EAAGC,EAAG4V,EAAGojE,EAA2BF,GACzD,MAAMjuC,EAAS73C,KAAK01C,UAAU9yB,GACxBxN,EAAapV,KAAKozB,cAAcxQ,GAChC+yB,EAAWvB,GAAOp0C,KAAK0zC,YAAY9wB,GAAI5iB,KAAK8kF,UAElD,IAAIY,GAAc34E,EAAI8qC,EAAO,IAAMziC,EAAaugC,EAAS,GACrDgwC,GAAc9tC,EAAO,GAAK7qC,GAAKoI,EAAaugC,EAAS,GAUzD,OARIqwC,GACFN,EAAa12E,EAAK02E,EAAYpB,IAAY,EAC1CqB,EAAa32E,EAAK22E,EAAYrB,IAAY,IAE1CoB,EAAa32E,EAAM22E,EAAYpB,IAC/BqB,EAAa52E,EAAM42E,EAAYrB,KAG1B2B,GAAwBrjE,EAAG8iE,EAAYC,EAAYG,EAC5D,CAUAtwC,wBAAAA,CAAyBv9B,EAAY2K,EAAGkjE,GACtC,OAAO9lF,KAAK4lF,uBACV3tE,EAAW,GACXA,EAAW,GACX2K,GACA,EACAkjE,EAEJ,CAMAI,sBAAAA,CAAuBxlD,GACrB,OAAO1gC,KAAKiyB,aAAayO,EAAU,GACrC,CAUAgT,WAAAA,CAAY9wB,GACV,OAAI5iB,KAAK4kF,UACA5kF,KAAK4kF,UAEP5kF,KAAK0kF,WAAW9hE,EACzB,CAMAmhE,gBAAAA,CAAiBnhE,GACf,OAAK5iB,KAAK6kF,gBAKH7kF,KAAK6kF,gBAAgBjiE,GAJnB5iB,KAAKkT,QACRlT,KAAKszC,0BAA0BtzC,KAAKkT,QAAS0P,GAC7C,IAGR,CAmBAwwB,iBAAAA,CAAkBh+B,EAAY+wE,GAC5B,MAAMvjE,EAAIngB,EACRzC,KAAKiyB,aACL7c,EACA+wE,GAAiB,GAEnB,OAAOz5E,EAAMkW,EAAG5iB,KAAK6P,QAAS7P,KAAK8P,QACrC,CAQA0mC,2BAAAA,CAA4B9V,EAAW6V,GACrC,OAAOxnB,GACLwnB,EACA,EACAA,EAASl0C,OACT,EACArC,KAAK8yC,mBAAmBpS,GAE5B,CAMAwkD,oBAAAA,CAAqBv0E,GACnB,MAAMtO,EAASrC,KAAKiyB,aAAa5vB,OAC3B+jF,EAAiB,IAAI9iF,MAAMjB,GACjC,IAAK,IAAIugB,EAAI5iB,KAAK6P,QAAS+S,EAAIvgB,IAAUugB,EACvCwjE,EAAexjE,GAAK5iB,KAAKszC,0BAA0B3iC,EAAQiS,GAE7D5iB,KAAK6kF,gBAAkBuB,CACzB,EAGF,UCzoBO,SAASC,GAAiBlwE,GAC/B,IAAI1B,EAAW0B,EAAW5B,qBAK1B,OAJKE,IACHA,EAAW6xE,GAAoBnwE,GAC/BA,EAAW3B,mBAAmBC,IAEzBA,CACT,CAQO,SAASwH,GAAMxH,EAAUisB,EAAWvqB,GACzC,MAAMyM,EAAI8d,EAAU,GACd1mB,EAASvF,EAASklC,mBAAmBjZ,GACrCxkB,EAAmBqqE,GAAqBpwE,GAC9C,IAAK6B,GAAmBkE,EAAkBlC,GAAS,CACjD,MAAMmC,EAAazC,GAASwC,GACtBE,EAAavP,KAAKmC,MACrBkN,EAAiB,GAAKlC,EAAO,IAAMmC,GAGtC,OADAnC,EAAO,IAAMmC,EAAaC,EACnB3H,EAAS+gC,yBAAyBx7B,EAAQ4I,EACnD,CACA,OAAO8d,CACT,CAWO,SAAS8lD,GAAgB71E,EAAQb,EAAS6lC,EAAU77B,GACzDA,OAAoB7S,IAAX6S,EAAuBA,EAAS,WAEzC,MAAM2I,EAAcgkE,GAAsB91E,EAAQb,EAAS6lC,GAE3D,OAAO,IAAI4uC,GAAS,CAClB5zE,OAAQA,EACRknC,OAAQh+B,GAAUlJ,EAAQmJ,GAC1B2I,YAAaA,EACbkzB,SAAUA,GAEd,CAoBO,SAAS+wC,GAAUx3E,GACxB,MAAMy3E,EAAaz3E,GAAW,CAAC,EAEzByB,EAASg2E,EAAWh2E,QAAU4Y,GAAc,aAAa3Y,YAEzDg2E,EAAc,CAClBj2E,OAAQA,EACRd,QAAS82E,EAAW92E,QACpB8lC,SAAUgxC,EAAWhxC,SACrBlzB,YAAagkE,GACX91E,EACAg2E,EAAW72E,QACX62E,EAAWhxC,SACXgxC,EAAWj3E,gBAGf,OAAO,IAAI60E,GAASqC,EACtB,CAYA,SAASH,GAAsB91E,EAAQb,EAAS6lC,EAAUjmC,GACxDI,OAAsB7I,IAAZ6I,EAAwBA,EAAU4C,GAC5CijC,EAAWvB,QAAoBntC,IAAb0uC,EAAyBA,EAAWhjC,IAEtD,MAAMqJ,EAASrC,GAAUhJ,GACnBoL,EAAQrC,GAAS/I,GAEvBjB,EACEA,EAAgB,EACZA,EACA7C,KAAKD,IAAImP,EAAQ45B,EAAS,GAAI35B,EAAS25B,EAAS,IAEtD,MAAMtzC,EAASyN,EAAU,EACnB2S,EAAc,IAAInf,MAAMjB,GAC9B,IAAK,IAAIugB,EAAI,EAAGA,EAAIvgB,IAAUugB,EAC5BH,EAAYG,GAAKlT,EAAgB7C,KAAKgC,IAAI,EAAG+T,GAE/C,OAAOH,CACT,CAWO,SAAS6jE,GAAoBnwE,EAAYrG,EAAS6lC,EAAU77B,GACjE,MAAMnJ,EAAS41E,GAAqBpwE,GACpC,OAAOqwE,GAAgB71E,EAAQb,EAAS6lC,EAAU77B,EACpD,CAQO,SAASysE,GAAqBpwE,GACnCA,EAAaoT,GAAcpT,GAC3B,IAAIxF,EAASwF,EAAWvF,YACxB,IAAKD,EAAQ,CACX,MAAMk2E,EACH,IAAMj0E,GAAgBmpB,QAAW5lB,EAAWjC,mBAC/CvD,EAASiH,IAAgBivE,GAAOA,EAAMA,EAAMA,EAC9C,CACA,OAAOl2E,CACT,CCpHA,MAAMm2E,WAAmBlL,GAIvB56E,WAAAA,CAAYkO,GACVzJ,MAAM,CACJ64B,aAAcpvB,EAAQovB,aACtB09C,wBAAyB9sE,EAAQ8sE,wBACjC7lE,WAAYjH,EAAQiH,WACpB7F,MAAOpB,EAAQoB,MACf2L,MAAO/M,EAAQ+M,MACfksB,YAAaj5B,EAAQi5B,cAMvBnoC,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLrJ,KAAK+mF,aAA6B9/E,IAAnBiI,EAAQ83E,QAAuB93E,EAAQ83E,OAMtDhnF,KAAKinF,qBACwBhgF,IAA3BiI,EAAQomC,eAA+BpmC,EAAQomC,eAAiB,EAKlEt1C,KAAKyU,cAAgCxN,IAArBiI,EAAQuF,SAAyBvF,EAAQuF,SAAW,KAEpE,MAAMkhC,EAAW,CAAC,IAAK,KACnB31C,KAAKyU,UACP2/B,GAAOp0C,KAAKyU,SAASi/B,YAAY1zC,KAAKyU,SAAS1D,cAAe4kC,GAOhE31C,KAAKknF,UAAY,IAAIlD,GAAU90E,EAAQuzB,WAAa,GAMpDziC,KAAKmnF,QAAU,CAAC,EAAG,GAMnBnnF,KAAKmjF,KAAOj0E,EAAQlG,KAAO,GAM3BhJ,KAAKonF,YAAc,CACjBn/C,WAAY/4B,EAAQ+4B,WACpBE,YAAaj5B,EAAQi5B,aAUvBnoC,KAAKk2C,WAAahnC,EAAQgnC,WAAahnC,EAAQgnC,WAAa,CAC9D,CAKA8C,cAAAA,GACE,OAAOh5C,KAAKknF,UAAUluC,gBACxB,CAMAG,WAAAA,CAAYhjC,EAAYsiC,GACtB,MAAMyuC,EAAYlnF,KAAKqnF,0BAA0BlxE,GAC7C+wE,GACFA,EAAU/tC,YAAYV,EAE1B,CAWA5X,iBAAAA,CAAkB1qB,EAAYyM,EAAGge,EAAW1nB,GAC1C,MAAMguE,EAAYlnF,KAAKqnF,0BAA0BlxE,GACjD,IAAK+wE,EACH,OAAO,EAGT,IACIzmD,EAAMuX,EAAczO,EADpBqN,GAAU,EAEd,IAAK,IAAI7pC,EAAI6zB,EAAUppB,KAAMzK,GAAK6zB,EAAUlpB,OAAQ3K,EAClD,IAAK,IAAIC,EAAI4zB,EAAUnpB,KAAMzK,GAAK4zB,EAAUjpB,OAAQ3K,EAClDgrC,EAAe2rC,GAAU/gE,EAAG7V,EAAGC,GAC/Bu8B,GAAS,EACL29C,EAAUlE,YAAYhrC,KACxBvX,EACEymD,EAAUv8E,IAAIqtC,GAEhBzO,EAAS9I,EAAK1I,aAAesQ,GAAUtI,OACnCwJ,IACFA,GAA4B,IAAnBrwB,EAASunB,KAGjB8I,IACHqN,GAAU,GAIhB,OAAOA,CACT,CAMAf,sBAAAA,CAAuB1/B,GACrB,OAAO,CACT,CAMAoyB,MAAAA,GACE,OAAOvoC,KAAKmjF,IACd,CAOAmE,MAAAA,CAAOt+E,GACDhJ,KAAKmjF,OAASn6E,IAChBhJ,KAAKmjF,KAAOn6E,EACZhJ,KAAKwJ,UAET,CAMA8tC,SAAAA,CAAUnhC,GACR,OAAOnW,KAAK+mF,OACd,CAMAvvD,cAAAA,CAAerhB,GACb,MAAM1B,EAAW0B,EACbnW,KAAKq1C,yBAAyBl/B,GAC9BnW,KAAKyU,SACT,OAAKA,EAGEA,EAAS+iB,iBAFP,IAGX,CAWA0d,OAAAA,CAAQtyB,EAAG7V,EAAGC,EAAG66B,EAAY1xB,GAC3B,OAAOrM,GACT,CAOAy9E,WAAAA,GACE,OAAOvnF,KAAKyU,QACd,CAMA4gC,wBAAAA,CAAyBl/B,GACvB,OAAKnW,KAAKyU,SAGHzU,KAAKyU,SAFH4gC,GAAyBl/B,EAGpC,CAOAkxE,yBAAAA,CAA0BlxE,GACxB,MAAMiK,EAAmBpgB,KAAKupB,gBAK9B,OAJAhd,EACuB,OAArB6T,GAA6BH,GAAWG,EAAkBjK,GAC1D,wGAEKnW,KAAKknF,SACd,CASA3xC,iBAAAA,CAAkB1N,GAChB,OAAO7nC,KAAKinF,eACd,CAQAxvC,gBAAAA,CAAiB70B,EAAGilB,EAAY1xB,GAC9B,MAAM1B,EAAWzU,KAAKq1C,yBAAyBl/B,GACzCm/B,EAAiBt1C,KAAKu1C,kBAAkB1N,GACxC8N,EAAWvB,GAAO3/B,EAASi/B,YAAY9wB,GAAI5iB,KAAKmnF,SACtD,OAAsB,GAAlB7xC,EACKK,EAEF6xC,GAAU7xC,EAAUL,EAAgBt1C,KAAKmnF,QAClD,CAWAM,8BAAAA,CAA+B/mD,EAAWvqB,GACxCA,OAA4BlP,IAAfkP,EAA2BA,EAAanW,KAAKupB,gBAC1D,MAAM9U,EAAWzU,KAAKq1C,yBAAyBl/B,GAI/C,OAHInW,KAAKu3E,YAAcphE,EAAW9B,aAChCqsB,EAAYzkB,GAAMxH,EAAUisB,EAAWvqB,IAElC2tE,GAAiBpjD,EAAWjsB,GAAYisB,EAAY,IAC7D,CAMAt7B,KAAAA,GACEpF,KAAKknF,UAAU9hF,OACjB,CAEAm3E,OAAAA,GACEv8E,KAAKoF,QACLK,MAAM82E,SACR,CAOA1iC,eAAAA,CAAgBL,EAAWrjC,GACzB,MAAM+wE,EAAYlnF,KAAKqnF,0BAA0BlxE,GAC7CqjC,EAAY0tC,EAAUxE,gBACxBwE,EAAUxE,cAAgBlpC,EAE9B,CAUAI,OAAAA,CAAQh3B,EAAG7V,EAAGC,EAAGmJ,GAAa,EAQzB,MAAMuxE,WAAwBlhF,EAKnCxF,WAAAA,CAAYC,EAAMw/B,GAChBh7B,MAAMxE,GAONjB,KAAKygC,KAAOA,CACd,EAGF,UCjYO,SAASknD,GAAmBC,EAAUnzE,GAC3C,MAAMozE,EAAS,SACTC,EAAS,SACTC,EAAS,SACTC,EAAa,UACnB,OAAO,SAOKtnD,EAAWmH,EAAY1xB,GAC/B,GAAKuqB,EAGL,OAAOknD,EACJ3xE,QAAQ4xE,EAAQnnD,EAAU,GAAGzZ,YAC7BhR,QAAQ6xE,EAAQpnD,EAAU,GAAGzZ,YAC7BhR,QAAQ8xE,EAAQrnD,EAAU,GAAGzZ,YAC7BhR,QAAQ+xE,GAAY,WACnB,MAAMplE,EAAI8d,EAAU,GACdgkC,EAAQjwD,EAASsvE,iBAAiBnhE,GACxCrW,EACEm4D,EACA,yDAEF,MAAM13D,EAAI03D,EAAM/qD,YAAc+mB,EAAU,GAAK,EAC7C,OAAO1zB,EAAEia,UACX,GACH,CAEL,CAOO,SAASghE,GAAoBC,EAAWzzE,GAC7C,MAAM9K,EAAMu+E,EAAU7lF,OAChB8lF,EAAmB,IAAI7kF,MAAMqG,GACnC,IAAK,IAAI9G,EAAI,EAAGA,EAAI8G,IAAO9G,EACzBslF,EAAiBtlF,GAAK8kF,GAAmBO,EAAUrlF,GAAI4R,GAEzD,OAAO2zE,GAA2BD,EACpC,CAMO,SAASC,GAA2BD,GACzC,OAAgC,IAA5BA,EAAiB9lF,OACZ8lF,EAAiB,GAEnB,SAOKznD,EAAWmH,EAAY1xB,GAC/B,IAAKuqB,EACH,OAEF,MAAM/J,EAAI0xD,GAAc3nD,GAClBx8B,EAAQsK,EAAOmoB,EAAGwxD,EAAiB9lF,QACzC,OAAO8lF,EAAiBjkF,GAAOw8B,EAAWmH,EAAY1xB,EACvD,CAEL,CAgBO,SAASmyE,GAAUpL,GACxB,MAAMqL,EAAO,GACb,IAAInsC,EAAQ,sBAAsBtZ,KAAKo6C,GACvC,GAAI9gC,EAAO,CAET,MAAMosC,EAAgBpsC,EAAM,GAAGqsC,WAAW,GACpCC,EAAetsC,EAAM,GAAGqsC,WAAW,GACzC,IAAIE,EACJ,IAAKA,EAAWH,EAAeG,GAAYD,IAAgBC,EACzDJ,EAAKpiF,KAAK+2E,EAAIjnE,QAAQmmC,EAAM,GAAIhyC,OAAO+9D,aAAawgB,KAEtD,OAAOJ,CACT,CAEA,GADAnsC,EAAQ,kBAAkBtZ,KAAKo6C,GAC3B9gC,EAAO,CAET,MAAMwsC,EAAO5lD,SAASoZ,EAAM,GAAI,IAChC,IAAK,IAAIv5C,EAAImgC,SAASoZ,EAAM,GAAI,IAAKv5C,GAAK+lF,EAAM/lF,IAC9C0lF,EAAKpiF,KAAK+2E,EAAIjnE,QAAQmmC,EAAM,GAAIv5C,EAAEokB,aAEpC,OAAOshE,CACT,CAEA,OADAA,EAAKpiF,KAAK+2E,GACHqL,CACT,CCtFA,MAAMM,WAAgB/B,GAIpB9lF,WAAAA,CAAYkO,GACVzJ,MAAM,CACJ64B,aAAcpvB,EAAQovB,aACtBmE,UAAWvzB,EAAQuzB,UACnBukD,OAAQ93E,EAAQ83E,OAChB7wE,WAAYjH,EAAQiH,WACpB7F,MAAOpB,EAAQoB,MACfmE,SAAUvF,EAAQuF,SAClB6gC,eAAgBpmC,EAAQomC,eACxBr5B,MAAO/M,EAAQ+M,MACfgsB,WAAY/4B,EAAQ+4B,WACpBE,YAAaj5B,EAAQi5B,YACrBn/B,IAAKkG,EAAQlG,IACbgzE,wBAAyB9sE,EAAQ8sE,wBACjC9lC,WAAYhnC,EAAQgnC,aAOtBl2C,KAAK8oF,yBACH9oF,KAAK+oF,kBAAoBF,GAAQ/jF,UAAUikF,gBAM7C/oF,KAAKmqC,iBAAmBj7B,EAAQi7B,iBAE5Bj7B,EAAQ65E,kBACV/oF,KAAK+oF,gBAAkB75E,EAAQ65E,iBAOjC/oF,KAAKuoF,KAAO,KAERr5E,EAAQq5E,KACVvoF,KAAKgpF,QAAQ95E,EAAQq5E,MACZr5E,EAAQguE,KACjBl9E,KAAKwiF,OAAOtzE,EAAQguE,KAOtBl9E,KAAKipF,iBAAmB,CAAC,CAC3B,CAOAC,mBAAAA,GACE,OAAOlpF,KAAKmqC,gBACd,CAOAg/C,kBAAAA,GACE,OAAOhiF,OAAOiiF,eAAeppF,MAAM+oF,kBAAoB/oF,KAAK+oF,gBACxD/oF,KAAK+oF,gBAAgBpgF,KAAK3I,MAC1BA,KAAK+oF,eACX,CASAM,OAAAA,GACE,OAAOrpF,KAAKuoF,IACd,CAOAe,gBAAAA,CAAiBjjF,GACf,MAAMo6B,EAAoDp6B,EAAMjF,OAC1Dq1C,EAAMxsC,EAAOw2B,GACbwU,EAAYxU,EAAK1I,WACvB,IAAI92B,EACAg0C,GAAa5M,GAAUvI,SACzB9/B,KAAKipF,iBAAiBxyC,IAAO,EAC7Bx1C,EAAOsoF,GAAcrF,eACZztC,KAAOz2C,KAAKipF,0BACdjpF,KAAKipF,iBAAiBxyC,GAC7Bx1C,EACEg0C,GAAa5M,GAAU7gC,MACnB+hF,GAAcnF,cACdnvC,GAAa5M,GAAUtI,OACvBwpD,GAAcpF,iBACdl9E,QAEIA,GAARhG,GACFjB,KAAKoG,cAAc,IAAIshF,GAAgBzmF,EAAMw/B,GAEjD,CAOA+oD,mBAAAA,CAAoBr/C,GAClBnqC,KAAKknF,UAAU9hF,QACfpF,KAAKmqC,iBAAmBA,EACxBnqC,KAAKwJ,SACP,CAQAigF,kBAAAA,CAAmBV,EAAiB//E,GAClChJ,KAAK+oF,gBAAkBA,EACvB/oF,KAAKknF,UAAUjD,qBACI,qBAARj7E,EACThJ,KAAKsnF,OAAOt+E,GAEZhJ,KAAKwJ,SAET,CAOAg5E,MAAAA,CAAOtF,GACL,MAAMqL,EAAOD,GAAUpL,GACvBl9E,KAAKuoF,KAAOA,EACZvoF,KAAKgpF,QAAQT,EACf,CAOAS,OAAAA,CAAQT,GACNvoF,KAAKuoF,KAAOA,EACZ,MAAMv/E,EAAMu/E,EAAKphE,KAAK,MAClBnnB,KAAK8oF,yBACP9oF,KAAKypF,mBAAmBxB,GAAoBM,EAAMvoF,KAAKyU,UAAWzL,GAElEhJ,KAAKsnF,OAAOt+E,EAEhB,CAQA+/E,eAAAA,CAAgBroD,EAAWmH,EAAY1xB,GAEvC,CAQAyjC,OAAAA,CAAQh3B,EAAG7V,EAAGC,GACZ,MAAMgrC,EAAe2rC,GAAU/gE,EAAG7V,EAAGC,GACjChN,KAAKknF,UAAUlE,YAAYhrC,IAC7Bh4C,KAAKknF,UAAUv8E,IAAIqtC,EAEvB,EAGF,UCpKA,MAAM0xC,WAAkBb,GAItB7nF,WAAAA,CAAYkO,GACVzJ,MAAM,CACJ64B,aAAcpvB,EAAQovB,aACtBmE,UAAWvzB,EAAQuzB,UACnBukD,OAAQ93E,EAAQ83E,OAChB7wE,WAAYjH,EAAQiH,WACpB7F,MAAOpB,EAAQoB,MACfmE,SAAUvF,EAAQuF,SAClB01B,iBAAkBj7B,EAAQi7B,iBACtBj7B,EAAQi7B,iBACRw/C,GACJr0C,eAAgBpmC,EAAQomC,eACxByzC,gBAAiB75E,EAAQ65E,gBACzB7L,IAAKhuE,EAAQguE,IACbqL,KAAMr5E,EAAQq5E,KACdtsE,MAAO/M,EAAQ+M,MACfgsB,WAAY/4B,EAAQ+4B,WACpBE,iBAC0BlhC,IAAxBiI,EAAQi5B,aAA4Bj5B,EAAQi5B,YAC9Cn/B,IAAKkG,EAAQlG,IACbgzE,wBAAyB9sE,EAAQ8sE,wBACjC9lC,WAAYhnC,EAAQgnC,aAOtBl2C,KAAKkqC,iBACqBjjC,IAAxBiI,EAAQg7B,YAA4Bh7B,EAAQg7B,YAAc,KAM5DlqC,KAAK4pF,eACmB3iF,IAAtBiI,EAAQ06E,UAA0B16E,EAAQ06E,UAAY3/C,GAMxDjqC,KAAK6pF,uBAAyB,CAAC,EAM/B7pF,KAAK8pF,sBAAwB,CAAC,EAM9B9pF,KAAK+pF,4BAA8B76E,EAAQ86E,2BAM3ChqF,KAAKiqF,0BAA2B,CAClC,CAKAjxC,cAAAA,GACE,GAAIh5C,KAAKknF,UAAUluC,iBACjB,OAAO,EAET,IAAK,MAAMhwC,KAAOhJ,KAAK6pF,uBACrB,GAAI7pF,KAAK6pF,uBAAuB7gF,GAAKgwC,iBACnC,OAAO,EAIX,OAAO,CACT,CAMAG,WAAAA,CAAYhjC,EAAYsiC,GACtB,MAAMyxC,EAAgBlqF,KAAKqnF,0BAA0BlxE,GAErDnW,KAAKknF,UAAU/tC,YACbn5C,KAAKknF,WAAagD,EAAgBzxC,EAAY,CAAC,GAEjD,IAAK,MAAM5P,KAAM7oC,KAAK6pF,uBAAwB,CAC5C,MAAM3C,EAAYlnF,KAAK6pF,uBAAuBhhD,GAC9Cq+C,EAAU/tC,YAAY+tC,GAAagD,EAAgBzxC,EAAY,CAAC,EAClE,CACF,CAMA5C,sBAAAA,CAAuB1/B,GACrB,OACEnW,KAAKupB,iBACLpT,IACC8J,GAAWjgB,KAAKupB,gBAAiBpT,GAE3B,EAEFnW,KAAKmqF,WACd,CAKAA,SAAAA,GACE,OAAO,CACT,CAMA5hD,MAAAA,GACE,IAAIv/B,EAAMvD,MAAM8iC,SAIhB,OAHKvoC,KAAKi3C,mBACRjuC,GAAO,0BAEFA,CACT,CAMAsuC,SAAAA,CAAUnhC,GACR,QACEnW,KAAKupB,iBACLpT,IACC8J,GAAWjgB,KAAKupB,gBAAiBpT,KAI7B1Q,MAAM6xC,UAAUnhC,EACzB,CAMAk/B,wBAAAA,CAAyBl/B,GACvB,MAAMi0E,EAAWpqF,KAAKupB,gBACtB,GAAIvpB,KAAKyU,YAAc21E,GAAYnqE,GAAWmqE,EAAUj0E,IACtD,OAAOnW,KAAKyU,SAEd,MAAM41E,EAAUpgF,EAAOkM,GAKvB,OAJMk0E,KAAWrqF,KAAK8pF,wBACpB9pF,KAAK8pF,sBAAsBO,GACzBh1C,GAAyBl/B,IAEtBnW,KAAK8pF,sBAAsBO,EACpC,CAMAhD,yBAAAA,CAA0BlxE,GACxB,MAAMi0E,EAAWpqF,KAAKupB,gBACtB,IAAK6gE,GAAYnqE,GAAWmqE,EAAUj0E,GACpC,OAAOnW,KAAKknF,UAEd,MAAMmD,EAAUpgF,EAAOkM,GAMvB,OALMk0E,KAAWrqF,KAAK6pF,yBACpB7pF,KAAK6pF,uBAAuBQ,GAAW,IAAIrG,GACzChkF,KAAKknF,UAAUxE,gBAGZ1iF,KAAK6pF,uBAAuBQ,EACrC,CAYAC,WAAAA,CAAY1nE,EAAG7V,EAAGC,EAAG66B,EAAY1xB,EAAYnN,GAC3C,MAAM03B,EAAY,CAAC9d,EAAG7V,EAAGC,GACnBu9E,EAAevqF,KAAKynF,+BACxB/mD,EACAvqB,GAEIq0E,EAAUD,EACZvqF,KAAK+oF,gBAAgBwB,EAAc1iD,EAAY1xB,QAC/ClP,EACEw5B,EAAO,IAAIzgC,KAAK4pF,UACpBlpD,OACYz5B,IAAZujF,EAAwBniD,GAAUxI,KAAOwI,GAAUrI,WACvC/4B,IAAZujF,EAAwBA,EAAU,GAClCxqF,KAAKkqC,YACLlqC,KAAKmqC,iBACLnqC,KAAKonF,aAIP,OAFA3mD,EAAKz3B,IAAMA,EACXy3B,EAAK36B,iBAAiB2D,EAAUlC,OAAQvH,KAAKspF,iBAAiB3gF,KAAK3I,OAC5DygC,CACT,CAUAyU,OAAAA,CAAQtyB,EAAG7V,EAAGC,EAAG66B,EAAY1xB,GAC3B,MAAMiK,EAAmBpgB,KAAKupB,gBAC9B,IACGnJ,IACAjK,GACD8J,GAAWG,EAAkBjK,GAE7B,OAAOnW,KAAKyqF,gBACV7nE,EACA7V,EACAC,EACA66B,EACAznB,GAAoBjK,GAGxB,MAAMH,EAAQhW,KAAKqnF,0BAA0BlxE,GACvCuqB,EAAY,CAAC9d,EAAG7V,EAAGC,GACzB,IAAIyzB,EACJ,MAAMuX,EAAezP,GAAO7H,GACxB1qB,EAAMgtE,YAAYhrC,KACpBvX,EAAOzqB,EAAMrL,IAAIqtC,IAEnB,MAAMhvC,EAAMhJ,KAAKuoC,SACjB,GAAI9H,GAAQA,EAAKz3B,KAAOA,EACtB,OAAOy3B,EAET,MAAMuR,EAAiBhyC,KAAKq1C,yBAAyBj1B,GAC/C6xB,EAAiBjyC,KAAKq1C,yBAAyBl/B,GAC/C+7B,EAAmBlyC,KAAKynF,+BAC5B/mD,EACAvqB,GAEIu0E,EAAU,IAAI34C,GAClB3xB,EACA4xB,EACA77B,EACA87B,EACAvR,EACAwR,EACAlyC,KAAKu1C,kBAAkB1N,GACvB7nC,KAAKmqF,aACL,CAACvnE,EAAG7V,EAAGC,EAAG66B,IACR7nC,KAAKyqF,gBAAgB7nE,EAAG7V,EAAGC,EAAG66B,EAAYznB,IAC5CpgB,KAAK+pF,4BACL/pF,KAAKiqF,yBACLjqF,KAAKi3C,kBAWP,OATAyzC,EAAQ1hF,IAAMA,EAEVy3B,GACFiqD,EAAQ3iD,YAActH,EACtBiqD,EAAQjiD,sBACRzyB,EAAMC,QAAQ+hC,EAAc0yC,IAE5B10E,EAAMxK,IAAIwsC,EAAc0yC,GAEnBA,CACT,CAWAD,eAAAA,CAAgB7nE,EAAG7V,EAAGC,EAAG66B,EAAY1xB,GACnC,IAAIsqB,EAAO,KACX,MAAMuX,EAAe2rC,GAAU/gE,EAAG7V,EAAGC,GAC/BhE,EAAMhJ,KAAKuoC,SACjB,GAAKvoC,KAAKknF,UAAUlE,YAAYhrC,IAK9B,GADAvX,EAAOzgC,KAAKknF,UAAUv8E,IAAIqtC,GACtBvX,EAAKz3B,KAAOA,EAAK,CAInB,MAAM++B,EAActH,EACpBA,EAAOzgC,KAAKsqF,YAAY1nE,EAAG7V,EAAGC,EAAG66B,EAAY1xB,EAAYnN,GAGrD++B,EAAYhQ,YAAcsQ,GAAUxI,KAEtCY,EAAKsH,YAAcA,EAAYA,YAE/BtH,EAAKsH,YAAcA,EAErBtH,EAAKgI,sBACLzoC,KAAKknF,UAAUjxE,QAAQ+hC,EAAcvX,EACvC,OApBAA,EAAOzgC,KAAKsqF,YAAY1nE,EAAG7V,EAAGC,EAAG66B,EAAY1xB,EAAYnN,GACzDhJ,KAAKknF,UAAU17E,IAAIwsC,EAAcvX,GAqBnC,OAAOA,CACT,CAOAkqD,0BAAAA,CAA2B7qF,GACzB,GAAIE,KAAKiqF,0BAA4BnqF,EAArC,CAGAE,KAAKiqF,yBAA2BnqF,EAChC,IAAK,MAAM+oC,KAAM7oC,KAAK6pF,uBACpB7pF,KAAK6pF,uBAAuBhhD,GAAIzjC,QAElCpF,KAAKwJ,SALL,CAMF,CAcAohF,wBAAAA,CAAyBz0E,EAAY00E,GACnC,MAAMC,EAAOvhE,GAAcpT,GAC3B,GAAI20E,EAAM,CACR,MAAMT,EAAUpgF,EAAO6gF,GACjBT,KAAWrqF,KAAK8pF,wBACpB9pF,KAAK8pF,sBAAsBO,GAAWQ,EAE1C,CACF,CAEAzlF,KAAAA,GACEK,MAAML,QACN,IAAK,MAAMyjC,KAAM7oC,KAAK6pF,uBACpB7pF,KAAK6pF,uBAAuBhhD,GAAIzjC,OAEpC,EAOF,SAASukF,GAAwBoB,EAAWthD,GACQshD,EAAUtgD,WAAYhB,IACtEA,CACJ,CAEA,UClXA,MAAMuhD,WAAYtB,GAIhB1oF,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EAEtB,MAAMiH,OACmBlP,IAAvBiI,EAAQiH,WAA2BjH,EAAQiH,WAAa,YAEpD1B,OACiBxN,IAArBiI,EAAQuF,SACJvF,EAAQuF,SACRiyE,GAAU,CACR/1E,OAAQ41E,GAAqBpwE,GAC7BzG,cAAeR,EAAQQ,cACvBI,QAASZ,EAAQY,QACjBD,QAASX,EAAQW,QACjB8lC,SAAUzmC,EAAQymC,WAG1BlwC,MAAM,CACJ64B,aAAcpvB,EAAQovB,aACtBmE,UAAWvzB,EAAQuzB,UACnByH,YAAah7B,EAAQg7B,YACrB/B,YAAaj5B,EAAQi5B,YACrB6+C,OAAQ93E,EAAQ83E,OAChB7wE,WAAYA,EACZ6zE,2BAA4B96E,EAAQ86E,2BACpCv1E,SAAUA,EACV01B,iBAAkBj7B,EAAQi7B,iBAC1BmL,eAAgBpmC,EAAQomC,eACxByzC,gBAAiB75E,EAAQ65E,gBACzB7L,IAAKhuE,EAAQguE,IACbqL,KAAMr5E,EAAQq5E,KACdtsE,WAAyBhV,IAAlBiI,EAAQ+M,OAAsB/M,EAAQ+M,MAC7CgsB,WAAY/4B,EAAQ+4B,WACpB+zC,wBAAyB9sE,EAAQ8sE,wBACjC9lC,WAAYhnC,EAAQgnC,aAOtBl2C,KAAKsyC,aAA6BrrC,IAAnBiI,EAAQkhC,OAAuBlhC,EAAQkhC,OAAS,CACjE,CAKA+5C,SAAAA,GACE,OAAOnqF,KAAKsyC,OACd,EAGF,UCtDA,MAAM24C,WAAgB1gF,EAOpBvJ,WAAAA,CAAYkqF,GAmDV,GAlDAzlF,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLrJ,KAAKmrF,SAAMlkF,EAMXjH,KAAKorF,cAAgB,WAOrBprF,KAAKq4D,OAAS,KAMdr4D,KAAKs4D,oBAAiBrxD,EAMtBjH,KAAKqrF,mBAAqB,KAE1BrrF,KAAKsL,kBAAkBtL,KAAKorF,cAAeprF,KAAKsrF,wBAE5CJ,EACF,GAGQ,oBADcA,EAAsB1iE,sBAE1C,CACA,MAAMmQ,EAAoCuyD,EAC1ClrF,KAAK0lD,YAAY/sB,EACnB,KAAO,CAEL,MAAMtpB,EAAa67E,EACnBlrF,KAAK0K,cAAc2E,EACrB,CAEJ,CAQAyI,KAAAA,GACE,MAAMA,EACJ,IAAImzE,GAAQjrF,KAAKkL,gBAAkBlL,KAAK+K,gBAAkB,MAE5D+M,EAAMyzE,gBAAgBvrF,KAAKwrF,mBAC3B,MAAM7yD,EAAW34B,KAAKgmD,cAClBrtB,GACF7gB,EAAM4tC,YAAqC/sB,EAAS7gB,SAEtD,MAAMyP,EAAQvnB,KAAK64D,WAInB,OAHItxC,GACFzP,EAAMygD,SAAShxC,GAEVzP,CACT,CAUAkuC,WAAAA,GACE,OAA0ChmD,KAAK2K,IAAI3K,KAAKorF,cAC1D,CASAhL,KAAAA,GACE,OAAOpgF,KAAKmrF,GACd,CASAK,eAAAA,GACE,OAAOxrF,KAAKorF,aACd,CAQAvyB,QAAAA,GACE,OAAO74D,KAAKq4D,MACd,CAQAS,gBAAAA,GACE,OAAO94D,KAAKs4D,cACd,CAKAmzB,qBAAAA,GACEzrF,KAAKwJ,SACP,CAKA8hF,sBAAAA,GACMtrF,KAAKqrF,qBACPtiF,EAAc/I,KAAKqrF,oBACnBrrF,KAAKqrF,mBAAqB,MAE5B,MAAM1yD,EAAW34B,KAAKgmD,cAClBrtB,IACF34B,KAAKqrF,mBAAqB7iF,EACxBmwB,EACAlvB,EAAUlC,OACVvH,KAAKyrF,sBACLzrF,OAGJA,KAAKwJ,SACP,CASAk8C,WAAAA,CAAY/sB,GACV34B,KAAKwL,IAAIxL,KAAKorF,cAAezyD,EAC/B,CAWA4/B,QAAAA,CAAShxC,GACPvnB,KAAKq4D,OAAS9wC,EACdvnB,KAAKs4D,eAAkB/wC,EAAoBmkE,GAAoBnkE,QAAhCtgB,EAC/BjH,KAAKwJ,SACP,CAWAmiF,KAAAA,CAAM9iD,GACJ7oC,KAAKmrF,IAAMtiD,EACX7oC,KAAKwJ,SACP,CASA+hF,eAAAA,CAAgBp5B,GACdnyD,KAAKuL,qBAAqBvL,KAAKorF,cAAeprF,KAAKsrF,wBACnDtrF,KAAKorF,cAAgBj5B,EACrBnyD,KAAKsL,kBAAkBtL,KAAKorF,cAAeprF,KAAKsrF,wBAChDtrF,KAAKsrF,wBACP,EAWK,SAASI,GAAoBxhF,GAClC,GAAmB,oBAARA,EACT,OAAOA,EAKT,IAAIw8C,EACJ,GAAIpjD,MAAMC,QAAQ2G,GAChBw8C,EAASx8C,MACJ,CACLqC,EACgD,oBAApBrC,EAAKsG,UAC/B,mEAEF,MAAM+W,EAA2Drd,EACjEw8C,EAAS,CAACn/B,EACZ,CACA,OAAO,WACL,OAAOm/B,CACT,CACF,CACA,UCvTA,MAAMklC,WAAoBpqF,EAIxBR,WAAAA,CAAY87B,GACVr3B,QAMAzF,KAAK6rF,KAAO/uD,CACd,CAOAgvD,mBAAAA,CAAoB7qF,EAAM28B,GACxB9zB,GACF,CAMAiiF,mBAAAA,CAAoBnuD,GAClB,MAAMtF,EAAYsF,EAAWtF,UACvB4O,EAA6BtJ,EAAWsJ,2BACxCkO,EAA6BxX,EAAWwX,2BAE9CxrB,GACEsd,EACAtJ,EAAW1jB,KAAK,GAAK,EACrB0jB,EAAW1jB,KAAK,GAAK,EACrB,EAAIoe,EAAUljB,YACb,EAAIkjB,EAAUljB,YACdkjB,EAAUre,UACVqe,EAAUte,OAAO,IACjBse,EAAUte,OAAO,IAGpB6M,GAAYuuB,EAA4BlO,EAC1C,CAiBApG,0BAAAA,CACE7oB,EACA2lB,EACAmD,EACAirD,EACA9yE,EACAzQ,EACAwjF,EACAC,GAEA,IAAI3pE,EACJ,MAAM+V,EAAYsF,EAAWtF,UAS7B,SAASwI,EAA2BzwB,EAASk2C,EAASh2C,EAAOooB,GAC3D,OAAOzf,EAASlU,KAAKyD,EAAS89C,EAASl2C,EAAUE,EAAQ,KAAMooB,EACjE,CAEA,MAAMxiB,EAAamiB,EAAUniB,WAEvBg2E,EAAuBlwE,GAAMhE,EAAWlT,QAASoR,GACjDi2E,EAAU,CAAC,CAAC,EAAG,IACrB,GAAIj2E,EAAWpC,YAAci4E,EAAc,CACzC,MAAM9vE,EAAmB/F,EAAWvF,YAC9BuL,EAAazC,GAASwC,GAC5BkwE,EAAQjmF,KAAK,EAAEgW,EAAY,GAAI,CAACA,EAAY,GAC9C,CAEA,MAAMkwE,EAAczuD,EAAWI,iBACzBsuD,EAAYD,EAAYhqF,OAExB2+B,EAA6C,GAC7Ck8B,EAAW,GACjB,IAAK,IAAIr6D,EAAI,EAAGA,EAAIupF,EAAQ/pF,OAAQQ,IAClC,IAAK,IAAImL,EAAIs+E,EAAY,EAAGt+E,GAAK,IAAKA,EAAG,CACvC,MAAM8vB,EAAauuD,EAAYr+E,GACzBuC,EAAQutB,EAAWvtB,MACzB,GACEA,EAAM2uB,eACNd,GAAON,EAAYxF,IACnB2zD,EAAYjnF,KAAKknF,EAAU37E,GAC3B,CACA,MAAMguB,EAAgBhuB,EAAMiuB,cACtB7yB,EAAS4E,EAAM2sB,YACrB,GAAIqB,GAAiB5yB,EAAQ,CAC3B,MAAMsL,EAActL,EAAO4rE,WACvB4U,EACAl0E,EACEiB,EAAW4nB,EAA2Bn4B,KAC1C,KACAm1B,EAAWztB,SAEb6sD,EAAS,GAAKjmD,EAAY,GAAKm1E,EAAQvpF,GAAG,GAC1Cq6D,EAAS,GAAKjmD,EAAY,GAAKm1E,EAAQvpF,GAAG,GAC1C0f,EAASgc,EAAcuC,2BACrBo8B,EACAt/B,EACAmD,EACA7nB,EACA8nB,EAEJ,CACA,GAAIze,EACF,OAAOA,CAEX,CACF,CAEF,GAAuB,IAAnBye,EAAQ3+B,OACV,OAEF,MAAMkqF,EAAQ,EAAIvrD,EAAQ3+B,OAM1B,OALA2+B,EAAQjiB,SAAQ,CAAC3Q,EAAGvL,IAAOuL,EAAE2gE,YAAclsE,EAAI0pF,IAC/CvrD,EAAQzS,MAAK,CAAChsB,EAAGC,IAAMD,EAAEwsE,WAAavsE,EAAEusE,aACxC/tC,EAAQjC,MAAM3wB,GACJmU,EAASnU,EAAE8K,SAAS9K,EAAEm4C,QAASn4C,EAAEmC,MAAOnC,EAAEuqB,YAE7CpW,CACT,CAeAiqE,sBAAAA,CACEv0E,EACA2lB,EACAmD,EACAirD,EACAC,EACAxjF,GAEA,MAAMs5E,EAAa/hF,KAAK8gC,2BACtB7oB,EACA2lB,EACAmD,EACAirD,EACA5nF,EACApE,KACAisF,EACAxjF,GAGF,YAAsBxB,IAAf86E,CACT,CAKA0K,MAAAA,GACE,OAAOzsF,KAAK6rF,IACd,CAOAntD,WAAAA,CAAYd,GACV9zB,GACF,CAKA4iF,mBAAAA,CAAoB9uD,GAAa,CAMjC+uD,uBAAAA,CAAwB/uD,GAClBuqB,GAAenP,kBACjBpb,EAAWwb,oBAAoBjzC,KAAKymF,GAExC,EAOF,SAASA,GAAgB9vD,EAAKc,GAC5BuqB,GAAelB,QACjB,CAEA,UCrOA,MAAM4lC,WAA6BjB,GAIjC5qF,WAAAA,CAAY87B,GACVr3B,MAAMq3B,GAKN98B,KAAK8sF,uBAAyBtkF,EAC5B80C,GACAjyC,EAAgB9J,eAChBu7B,EAAIiwD,WAAWpkF,KAAKm0B,IAOtB98B,KAAKgtF,SAAW3lE,SAASC,cAAc,OACvC,MAAMC,EAAQvnB,KAAKgtF,SAASzlE,MAC5BA,EAAMqS,SAAW,WACjBrS,EAAMxL,MAAQ,OACdwL,EAAMvL,OAAS,OACfuL,EAAM9X,OAAS,IAEfzP,KAAKgtF,SAASh9E,UAAY4rC,GAAqB,aAE/C,MAAMjW,EAAY7I,EAAImwD,cACtBtnD,EAAUL,aAAatlC,KAAKgtF,SAAUrnD,EAAUunD,YAAc,MAM9DltF,KAAKmtF,UAAY,GAMjBntF,KAAKotF,kBAAmB,EAKxBptF,KAAKqtF,iBAAmB,EAC1B,CAMAvB,mBAAAA,CAAoB7qF,EAAM28B,GACxB,MAAMd,EAAM98B,KAAKysF,SACjB,GAAI3vD,EAAI51B,YAAYjG,GAAO,CACzB,MAAMoF,EAAQ,IAAIo7B,GAAYxgC,OAAMgG,EAAW22B,GAC/Cd,EAAI12B,cAAcC,EACpB,CACF,CAEA1E,eAAAA,GACEoH,EAAc/I,KAAK8sF,wBACnB9sF,KAAKgtF,SAASroD,WAAWrC,YAAYtiC,KAAKgtF,UAC1CvnF,MAAM9D,iBACR,CAMA+8B,WAAAA,CAAYd,GACV,IAAKA,EAKH,YAJI59B,KAAKotF,mBACPptF,KAAKgtF,SAASzlE,MAAMg4B,QAAU,OAC9Bv/C,KAAKotF,kBAAmB,IAK5BptF,KAAK+rF,oBAAoBnuD,GACzB59B,KAAK8rF,oBAAoBjtD,EAAgB3sB,WAAY0rB,GAErD,MAAMI,EAAmBJ,EAAWI,iBAAiBzP,MAAK,SAAUhsB,EAAGC,GACrE,OAAOD,EAAEkN,OAASjN,EAAEiN,MACtB,IACM6oB,EAAYsF,EAAWtF,UAE7Bt4B,KAAKmtF,UAAU9qF,OAAS,EAExB,MAAMirF,EAAkBttF,KAAKqtF,iBAC7BC,EAAgBjrF,OAAS,EAEzB,IAAIkrF,EAAkB,KACtB,IAAK,IAAI1qF,EAAI,EAAG+D,EAAKo3B,EAAiB37B,OAAQQ,EAAI+D,IAAM/D,EAAG,CACzD,MAAMi7B,EAAaE,EAAiBn7B,GACpC+6B,EAAWkY,WAAajzC,EAExB,MAAM0N,EAAQutB,EAAWvtB,MACnBi9E,EAAcj9E,EAAMc,iBAC1B,IACG+sB,GAAON,EAAYxF,IACJ,SAAfk1D,GAAyC,aAAfA,EAC3B,CACAj9E,EAAMouB,WACN,QACF,CAEA,MAAMoF,EAAUxzB,EAAMzQ,OAAO89B,EAAY2vD,GACpCxpD,IAGDA,IAAYwpD,IACdvtF,KAAKmtF,UAAUhnF,KAAK49B,GACpBwpD,EAAkBxpD,GAEhB,iBAAkBxzB,GACpB+8E,EAAgBnnF,KAC2CoK,GAG/D,CACAvQ,KAAK0sF,oBAAoB9uD,GAEzBoH,GAAgBhlC,KAAKgtF,SAAUhtF,KAAKmtF,WAEpCntF,KAAK8rF,oBAAoBjtD,EAAgB1sB,YAAayrB,GAEjD59B,KAAKotF,mBACRptF,KAAKgtF,SAASzlE,MAAMg4B,QAAU,GAC9Bv/C,KAAKotF,kBAAmB,GAG1BptF,KAAK2sF,wBAAwB/uD,EAC/B,CAKA8uD,mBAAAA,CAAoB9uD,GAClB,MAAM6vD,EAASztF,KAAKqtF,iBACpB,IAAK,IAAIxqF,EAAI4qF,EAAOprF,OAAS,EAAGQ,GAAK,IAAKA,EACxC4qF,EAAO5qF,GAAGo2D,gBAAgBr7B,GAE5B6vD,EAAOprF,OAAS,CAClB,EAGF,UC9IO,MAAMqrF,WAAmBlnF,EAK9BxF,WAAAA,CAAYC,EAAMsP,GAChB9K,MAAMxE,GAONjB,KAAKuQ,MAAQA,CACf,EAqCF,MAAMqnD,GAAW,CACf+1B,OAAQ,UAWV,MAAMC,WAAmB3+E,EAIvBjO,WAAAA,CAAYkO,GACVA,EAAUA,GAAW,CAAC,EACtB,MAAMqtB,EAAsCp1B,OAAO6D,OAAO,CAAC,EAAGkE,UACvDqtB,EAAYkxD,OAEnB,IAAIA,EAASv+E,EAAQu+E,OAErBhoF,MAAM82B,GAKNv8B,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLrJ,KAAK6tF,oBAAsB,GAM3B7tF,KAAK8tF,cAAgB,CAAC,EAEtB9tF,KAAKsL,kBAAkBssD,GAAS+1B,OAAQ3tF,KAAK+tF,sBAEzCN,EACEnqF,MAAMC,QAAQkqF,GAChBA,EAAS,IAAI5T,GAAW4T,EAAO1oF,QAAS,CAACg1E,QAAQ,IAEjDxtE,EACkD,oBAAtBkhF,EAAQrT,SAClC,sDAIJqT,EAAS,IAAI5T,QAAW5yE,EAAW,CAAC8yE,QAAQ,IAG9C/5E,KAAKguF,UAAUP,EACjB,CAKAQ,kBAAAA,GACEjuF,KAAKwJ,SACP,CAKAukF,oBAAAA,GACE/tF,KAAK6tF,oBAAoB9uE,QAAQhW,GACjC/I,KAAK6tF,oBAAoBxrF,OAAS,EAElC,MAAMorF,EAASztF,KAAKkuF,YACpBluF,KAAK6tF,oBAAoB1nF,KACvBqC,EAAOilF,EAAQlT,GAAoBd,IAAKz5E,KAAKmuF,iBAAkBnuF,MAC/DwI,EAAOilF,EAAQlT,GAAoBb,OAAQ15E,KAAKouF,oBAAqBpuF,OAGvE,IAAK,MAAM6oC,KAAM7oC,KAAK8tF,cACpB9tF,KAAK8tF,cAAcjlD,GAAI9pB,QAAQhW,GAEjC3D,EAAMpF,KAAK8tF,eAEX,MAAMO,EAAcZ,EAAOrT,WAC3B,IAAK,IAAIv3E,EAAI,EAAG+D,EAAKynF,EAAYhsF,OAAQQ,EAAI+D,EAAI/D,IAAK,CACpD,MAAM0N,EAAQ89E,EAAYxrF,GAC1B7C,KAAKsuF,wBAAwB/9E,GAC7BvQ,KAAKoG,cAAc,IAAIsnF,GAAW,WAAYn9E,GAChD,CACAvQ,KAAKwJ,SACP,CAKA8kF,uBAAAA,CAAwB/9E,GACtB,MAAMi5B,EAAe,CACnBhhC,EACE+H,EACAlF,EAAgB9J,eAChBvB,KAAKiuF,mBACLjuF,MAEFwI,EAAO+H,EAAO9G,EAAUlC,OAAQvH,KAAKiuF,mBAAoBjuF,OAGvDuQ,aAAiBq9E,IACnBpkD,EAAarjC,KACXqC,EAAO+H,EAAO,WAAYvQ,KAAKuuF,qBAAsBvuF,MACrDwI,EAAO+H,EAAO,cAAevQ,KAAKwuF,wBAAyBxuF,OAI/DA,KAAK8tF,cAAc7jF,EAAOsG,IAAUi5B,CACtC,CAKA+kD,oBAAAA,CAAqBloF,GACnBrG,KAAKoG,cAAc,IAAIsnF,GAAW,WAAYrnF,EAAMkK,OACtD,CAKAi+E,uBAAAA,CAAwBnoF,GACtBrG,KAAKoG,cAAc,IAAIsnF,GAAW,cAAernF,EAAMkK,OACzD,CAMA49E,gBAAAA,CAAiBM,GACf,MAAMl+E,EAAQk+E,EAAgB1qD,QAC9B/jC,KAAKsuF,wBAAwB/9E,GAC7BvQ,KAAKoG,cAAc,IAAIsnF,GAAW,WAAYn9E,IAC9CvQ,KAAKwJ,SACP,CAMA4kF,mBAAAA,CAAoBK,GAClB,MAAMl+E,EAAQk+E,EAAgB1qD,QACxB/6B,EAAMiB,EAAOsG,GACnBvQ,KAAK8tF,cAAc9kF,GAAK+V,QAAQhW,UACzB/I,KAAK8tF,cAAc9kF,GAC1BhJ,KAAKoG,cAAc,IAAIsnF,GAAW,cAAen9E,IACjDvQ,KAAKwJ,SACP,CAUA0kF,SAAAA,GACE,OACEluF,KAAK2K,IAAIitD,GAAS+1B,OAEtB,CAUAK,SAAAA,CAAUP,GACR,MAAMxO,EAAaj/E,KAAKkuF,YACxB,GAAIjP,EAAY,CACd,MAAMyP,EAAgBzP,EAAW7E,WACjC,IAAK,IAAIv3E,EAAI,EAAG+D,EAAK8nF,EAAcrsF,OAAQQ,EAAI+D,IAAM/D,EACnD7C,KAAKoG,cAAc,IAAIsnF,GAAW,cAAegB,EAAc7rF,IAEnE,CAEA7C,KAAKwL,IAAIosD,GAAS+1B,OAAQF,EAC5B,CAMAx8E,cAAAA,CAAeC,GAKb,OAJAA,OAAkBjK,IAAViK,EAAsBA,EAAQ,GACtClR,KAAKkuF,YAAYnvE,SAAQ,SAAUxO,GACjCA,EAAMU,eAAeC,EACvB,IACOA,CACT,CAWAC,mBAAAA,CAAoBoG,GAClB,MAAMnG,OAAkBnK,IAATsQ,EAAqBA,EAAO,GACrCo3E,EAAMv9E,EAAO/O,OAEnBrC,KAAKkuF,YAAYnvE,SAAQ,SAAUxO,GACjCA,EAAMY,oBAAoBC,EAC5B,IAEA,MAAMw9E,EAAgB5uF,KAAKoQ,gBAC3B,IAAIy+E,EAAgBD,EAAcn/E,OAC7B8H,QAAiCtQ,IAAzB2nF,EAAcn/E,SACzBo/E,EAAgB,GAElB,IAAK,IAAIhsF,EAAI8rF,EAAK/nF,EAAKwK,EAAO/O,OAAQQ,EAAI+D,EAAI/D,IAAK,CACjD,MAAMi7B,EAAa1sB,EAAOvO,GAC1Bi7B,EAAWvuB,SAAWq/E,EAAcr/E,QACpCuuB,EAAWtuB,QAAUsuB,EAAWtuB,SAAWo/E,EAAcp/E,QACzDsuB,EAAWpuB,cAAgB7C,KAAKF,IAC9BmxB,EAAWpuB,cACXk/E,EAAcl/E,eAEhBouB,EAAWluB,cAAgB/C,KAAKD,IAC9BkxB,EAAWluB,cACXg/E,EAAch/E,eAEhBkuB,EAAWjuB,QAAUhD,KAAKD,IAAIkxB,EAAWjuB,QAAS++E,EAAc/+E,SAChEiuB,EAAWhuB,QAAUjD,KAAKF,IAAImxB,EAAWhuB,QAAS8+E,EAAc9+E,cACnC7I,IAAzB2nF,EAAcj+E,cACU1J,IAAtB62B,EAAWntB,OACbmtB,EAAWntB,OAASqK,GAClB8iB,EAAWntB,OACXi+E,EAAcj+E,QAGhBmtB,EAAWntB,OAASi+E,EAAcj+E,aAGZ1J,IAAtB62B,EAAWruB,SACbquB,EAAWruB,OAASo/E,EAExB,CAEA,OAAOz9E,CACT,CAKAC,cAAAA,GACE,MAAO,OACT,EAGF,UCpVA,MAAMy9E,WAAiBtoF,EAMrBxF,WAAAA,CAAYC,EAAM67B,EAAKc,GACrBn4B,MAAMxE,GAONjB,KAAK88B,IAAMA,EAOX98B,KAAK49B,gBAA4B32B,IAAf22B,EAA2BA,EAAa,IAC5D,EAGF,UCxBA,MAAMmxD,WAAwBD,GAS5B9tF,WAAAA,CAAYC,EAAM67B,EAAKkyD,EAAeC,EAAUrxD,EAAYsxD,GAC1DzpF,MAAMxE,EAAM67B,EAAKc,GAQjB59B,KAAKgvF,cAAgBA,EAMrBhvF,KAAKmvF,OAAS,KAMdnvF,KAAKovF,YAAc,KASnBpvF,KAAKivF,cAAwBhoF,IAAbgoF,GAAyBA,EAKzCjvF,KAAKkvF,eAAiBA,CACxB,CAOA,SAAI5xD,GAIF,OAHKt9B,KAAKmvF,SACRnvF,KAAKmvF,OAASnvF,KAAK88B,IAAIuyD,cAAcrvF,KAAKgvF,gBAErChvF,KAAKmvF,MACd,CACA,SAAI7xD,CAAMA,GACRt9B,KAAKmvF,OAAS7xD,CAChB,CAQA,cAAIrlB,GAIF,OAHKjY,KAAKovF,cACRpvF,KAAKovF,YAAcpvF,KAAK88B,IAAIwyD,uBAAuBtvF,KAAKs9B,QAEnDt9B,KAAKovF,WACd,CACA,cAAIn3E,CAAWA,GACbjY,KAAKovF,YAAcn3E,CACrB,CAOA5W,cAAAA,GACEoE,MAAMpE,iBACF,mBAAoBrB,KAAKgvF,eACHhvF,KAAKgvF,cAAe3tF,gBAEhD,CAOAC,eAAAA,GACEmE,MAAMnE,kBACF,oBAAqBtB,KAAKgvF,eACJhvF,KAAKgvF,cAAe1tF,iBAEhD,EAGF,UCzGA,IAOEiuF,YAAa,cAOb3nF,MAAO6B,EAAU7B,MAOjBC,SAAU4B,EAAU5B,SAOpB2nF,YAAa,cAQbC,YAAa,cAEbC,YAAa,cACbC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,aAAc,eACdC,aAAc,eACdC,cAAe,iBC7CjB,IACEP,YAAa,cACbC,YAAa,cACbC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,aAAc,eACdC,aAAc,eACdC,cAAe,iBCJjB,MAAMC,WAA+BzqF,EAKnCxE,WAAAA,CAAY87B,EAAKozD,GACfzqF,MAAMq3B,GAON98B,KAAK6rF,KAAO/uD,EAMZ98B,KAAKmwF,gBAMLnwF,KAAKowF,gBAAiB,EAMtBpwF,KAAKqwF,WAAY,EAMjBrwF,KAAKswF,kBAAoB,GAMzBtwF,KAAKuwF,oBAAmCtpF,IAAlBipF,EAA8B,EAAIA,EAQxDlwF,KAAKwwF,MAAQ,KAEb,MAAMzsD,EAAU/jC,KAAK6rF,KAAKoB,cAM1BjtF,KAAKywF,gBAAkB,GAMvBzwF,KAAK0wF,gBAAkB,CAAC,EAExB1wF,KAAKgtF,SAAWjpD,EAMhB/jC,KAAK2wF,wBAA0BnoF,EAC7Bu7B,EACA6sD,GAAiBlB,YACjB1vF,KAAK6wF,mBACL7wF,MAOFA,KAAK8wF,0BAML9wF,KAAK+wF,oBAAsBvoF,EACzBu7B,EACA6sD,GAAiBnB,YACjBzvF,KAAKgxF,gBACLhxF,MAMFA,KAAKixF,sBAAwBjxF,KAAKkxF,iBAAiBvoF,KAAK3I,MAExDA,KAAKgtF,SAASlnF,iBACZ2D,EAAUnB,UACVtI,KAAKixF,wBACLnsE,IAA0B,CAACC,SAAS,GAExC,CAOAosE,aAAAA,CAAcC,GACZ,IAAIC,EAAW,IAAItC,GACjBuC,GAAoB1pF,MACpB5H,KAAK6rF,KACLuF,GAEFpxF,KAAKoG,cAAcirF,QACUpqF,IAAzBjH,KAAKmwF,iBAEPoB,aAAavxF,KAAKmwF,iBAClBnwF,KAAKmwF,qBAAkBlpF,EACvBoqF,EAAW,IAAItC,GACbuC,GAAoBzpF,SACpB7H,KAAK6rF,KACLuF,GAEFpxF,KAAKoG,cAAcirF,IAGnBrxF,KAAKmwF,gBAAkB70D,YAAW,KAChCt7B,KAAKmwF,qBAAkBlpF,EACvB,MAAMoqF,EAAW,IAAItC,GACnBuC,GAAoB/B,YACpBvvF,KAAK6rF,KACLuF,GAEFpxF,KAAKoG,cAAcirF,EAAS,GAC3B,IAEP,CASAG,qBAAAA,CAAsBJ,GACpB,MAAM/qF,EAAQ+qF,EACRvoD,EAAKxiC,EAAMorF,UAEjB,GACEprF,EAAMpF,MAAQqwF,GAAoB3B,WAClCtpF,EAAMpF,MAAQqwF,GAAoBtB,cAClC,QACOhwF,KAAK0wF,gBAAgB7nD,GAC5B,IAAK,MAAM4oD,KAAazxF,KAAK0wF,gBAC3B,GAAI1wF,KAAK0wF,gBAAgBe,GAAWrwF,SAAWiF,EAAMjF,OAAQ,QAKpDpB,KAAK0wF,gBAAgBe,GAC5B,KACF,CAEJ,MACEprF,EAAMpF,MAAQqwF,GAAoB5B,aAClCrpF,EAAMpF,MAAQqwF,GAAoB7B,cAElCzvF,KAAK0wF,gBAAgB7nD,GAAMxiC,GAE7BrG,KAAKywF,gBAAkBtpF,OAAOqD,OAAOxK,KAAK0wF,gBAC5C,CAOAgB,gBAAAA,CAAiBN,GACfpxF,KAAKwxF,sBAAsBJ,GAC3B,MAAMC,EAAW,IAAItC,GACnBuC,GAAoB3B,UACpB3vF,KAAK6rF,KACLuF,OACAnqF,OACAA,EACAjH,KAAKywF,iBAEPzwF,KAAKoG,cAAcirF,GASjBrxF,KAAKowF,iBACJiB,EAASlwF,mBACTnB,KAAKqwF,WACNrwF,KAAK2xF,qBAAqBP,IAE1BpxF,KAAKmxF,cAAcnxF,KAAKwwF,OAGU,IAAhCxwF,KAAKywF,gBAAgBpuF,SACvBrC,KAAKswF,kBAAkBvxE,QAAQhW,GAC/B/I,KAAKswF,kBAAkBjuF,OAAS,EAChCrC,KAAKqwF,WAAY,EACjBrwF,KAAKwwF,MAAQ,KAEjB,CAQAmB,oBAAAA,CAAqBP,GACnB,OAA+B,IAAxBA,EAAaQ,MACtB,CAOAf,kBAAAA,CAAmBO,GACjBpxF,KAAKowF,eAAiD,IAAhCpwF,KAAKywF,gBAAgBpuF,OAC3CrC,KAAKwxF,sBAAsBJ,GAC3B,MAAMC,EAAW,IAAItC,GACnBuC,GAAoB5B,YACpB1vF,KAAK6rF,KACLuF,OACAnqF,OACAA,EACAjH,KAAKywF,iBAUP,GARAzwF,KAAKoG,cAAcirF,GAEnBrxF,KAAKwwF,MAAQ,IAAIqB,aAAaT,EAAanwF,KAAMmwF,GACjDjqF,OAAO6d,eAAehlB,KAAKwwF,MAAO,SAAU,CAC1CsB,UAAU,EACVlnF,MAAOwmF,EAAahwF,SAGgB,IAAlCpB,KAAKswF,kBAAkBjuF,OAAc,CACvC,MAAM0vF,EAAM/xF,KAAK6rF,KAAKmG,mBACtBhyF,KAAKswF,kBAAkBnqF,KACrBqC,EACEupF,EACAT,GAAoB7B,YACpBzvF,KAAKiyF,mBACLjyF,MAEFwI,EAAOupF,EAAKT,GAAoB3B,UAAW3vF,KAAK0xF,iBAAkB1xF,MAclEwI,EACExI,KAAKgtF,SACLsE,GAAoBtB,cACpBhwF,KAAK0xF,iBACL1xF,OAGAA,KAAKgtF,SAASkF,aAAelyF,KAAKgtF,SAASkF,gBAAkBH,GAC/D/xF,KAAKswF,kBAAkBnqF,KACrBqC,EACExI,KAAKgtF,SAASkF,cACdZ,GAAoB3B,UACpB3vF,KAAK0xF,iBACL1xF,MAIR,CACF,CAOAiyF,kBAAAA,CAAmBb,GAIjB,GAAIpxF,KAAKmyF,UAAUf,GAAe,CAChCpxF,KAAKwxF,sBAAsBJ,GAC3BpxF,KAAKqwF,WAAY,EACjB,MAAMgB,EAAW,IAAItC,GACnBuC,GAAoB9B,YACpBxvF,KAAK6rF,KACLuF,EACApxF,KAAKqwF,eACLppF,EACAjH,KAAKywF,iBAEPzwF,KAAKoG,cAAcirF,EACrB,CACF,CAQAL,eAAAA,CAAgBI,GACdpxF,KAAK8wF,0BAA4BM,EACjC,MAAMnC,KAAcjvF,KAAKwwF,QAASxwF,KAAKmyF,UAAUf,IACjDpxF,KAAKoG,cACH,IAAI2oF,GACFuC,GAAoB7B,YACpBzvF,KAAK6rF,KACLuF,EACAnC,GAGN,CAUAiC,gBAAAA,CAAiB7qF,GAIf,MAAM2oF,EAAgBhvF,KAAK8wF,0BAEvB9B,IAAiBA,EAAc7tF,kBACJ,mBAArBkF,EAAM+rF,aAAiD,IAArB/rF,EAAM+rF,YAEhD/rF,EAAMhF,gBAEV,CAQA8wF,SAAAA,CAAUf,GACR,OACEpxF,KAAKqwF,WACLxjF,KAAKgB,IAAIujF,EAAaiB,QAAUryF,KAAKwwF,MAAM6B,SACzCryF,KAAKuwF,gBACP1jF,KAAKgB,IAAIujF,EAAakB,QAAUtyF,KAAKwwF,MAAM8B,SAAWtyF,KAAKuwF,cAE/D,CAKA5uF,eAAAA,GACM3B,KAAK+wF,sBACPhoF,EAAc/I,KAAK+wF,qBACnB/wF,KAAK+wF,oBAAsB,MAE7B/wF,KAAKgtF,SAASjmF,oBACZ0C,EAAUnB,UACVtI,KAAKixF,uBAGHjxF,KAAK2wF,0BACP5nF,EAAc/I,KAAK2wF,yBACnB3wF,KAAK2wF,wBAA0B,MAGjC3wF,KAAKswF,kBAAkBvxE,QAAQhW,GAC/B/I,KAAKswF,kBAAkBjuF,OAAS,EAEhCrC,KAAKgtF,SAAW,KAChBvnF,MAAM9D,iBACR,EAGF,UCvZA,IAMEsQ,WAAY,aAOZsgF,UAAW,YAOXC,QAAS,UAOTC,UAAW,YAOXC,QAAS,WClCX,IACEC,WAAY,aACZC,KAAM,OACNC,OAAQ,SACRC,KAAM,QCFD,MAAM9qF,GAAO2H,IAcpB,MAAMojF,GAKJ/xF,WAAAA,CAAYgyF,EAAkBC,GAK5BjzF,KAAKkzF,kBAAoBF,EAMzBhzF,KAAKmzF,aAAeF,EAMpBjzF,KAAKozF,UAAY,GAMjBpzF,KAAKqzF,YAAc,GAMnBrzF,KAAKszF,gBAAkB,CAAC,CAC1B,CAKAluF,KAAAA,GACEpF,KAAKozF,UAAU/wF,OAAS,EACxBrC,KAAKqzF,YAAYhxF,OAAS,EAC1B+C,EAAMpF,KAAKszF,gBACb,CAMAC,OAAAA,GACE,MAAMC,EAAWxzF,KAAKozF,UAChBK,EAAazzF,KAAKqzF,YAClBtvD,EAAUyvD,EAAS,GACF,GAAnBA,EAASnxF,QACXmxF,EAASnxF,OAAS,EAClBoxF,EAAWpxF,OAAS,IAEpBmxF,EAAS,GAAKA,EAASjnE,MACvBknE,EAAW,GAAKA,EAAWlnE,MAC3BvsB,KAAK0zF,QAAQ,IAEf,MAAMC,EAAa3zF,KAAKmzF,aAAapvD,GAErC,cADO/jC,KAAKszF,gBAAgBK,GACrB5vD,CACT,CAOA2V,OAAAA,CAAQ3V,GACNx3B,IACIvM,KAAKmzF,aAAapvD,KAAY/jC,KAAKszF,iBACrC,qEAEF,MAAMM,EAAW5zF,KAAKkzF,kBAAkBnvD,GACxC,OAAI6vD,GAAY5rF,KACdhI,KAAKozF,UAAUjtF,KAAK49B,GACpB/jC,KAAKqzF,YAAYltF,KAAKytF,GACtB5zF,KAAKszF,gBAAgBtzF,KAAKmzF,aAAapvD,KAAY,EACnD/jC,KAAK6zF,UAAU,EAAG7zF,KAAKozF,UAAU/wF,OAAS,IACnC,EAGX,CAKA0gF,QAAAA,GACE,OAAO/iF,KAAKozF,UAAU/wF,MACxB,CAQAyxF,kBAAAA,CAAmB5vF,GACjB,OAAe,EAARA,EAAY,CACrB,CAQA6vF,mBAAAA,CAAoB7vF,GAClB,OAAe,EAARA,EAAY,CACrB,CAQA8vF,eAAAA,CAAgB9vF,GACd,OAAQA,EAAQ,GAAM,CACxB,CAMA+vF,QAAAA,GACE,IAAIpxF,EACJ,IAAKA,GAAK7C,KAAKozF,UAAU/wF,QAAU,GAAK,EAAGQ,GAAK,EAAGA,IACjD7C,KAAK0zF,QAAQ7wF,EAEjB,CAKA0C,OAAAA,GACE,OAAiC,IAA1BvF,KAAKozF,UAAU/wF,MACxB,CAMAo3C,WAAAA,CAAYzwC,GACV,OAAOA,KAAOhJ,KAAKszF,eACrB,CAMAY,QAAAA,CAASnwD,GACP,OAAO/jC,KAAKy5C,YAAYz5C,KAAKmzF,aAAapvD,GAC5C,CAMA2vD,OAAAA,CAAQxvF,GACN,MAAMsvF,EAAWxzF,KAAKozF,UAChBK,EAAazzF,KAAKqzF,YAClBc,EAAQX,EAASnxF,OACjB0hC,EAAUyvD,EAAStvF,GACnB0vF,EAAWH,EAAWvvF,GACtBkwF,EAAalwF,EAEnB,MAAOA,EAAQiwF,GAAS,EAAG,CACzB,MAAME,EAASr0F,KAAK8zF,mBAAmB5vF,GACjCowF,EAASt0F,KAAK+zF,oBAAoB7vF,GAElCqwF,EACJD,EAASH,GAASV,EAAWa,GAAUb,EAAWY,GAC9CC,EACAD,EAENb,EAAStvF,GAASsvF,EAASe,GAC3Bd,EAAWvvF,GAASuvF,EAAWc,GAC/BrwF,EAAQqwF,CACV,CAEAf,EAAStvF,GAAS6/B,EAClB0vD,EAAWvvF,GAAS0vF,EACpB5zF,KAAK6zF,UAAUO,EAAYlwF,EAC7B,CAOA2vF,SAAAA,CAAUO,EAAYlwF,GACpB,MAAMsvF,EAAWxzF,KAAKozF,UAChBK,EAAazzF,KAAKqzF,YAClBtvD,EAAUyvD,EAAStvF,GACnB0vF,EAAWH,EAAWvvF,GAE5B,MAAOA,EAAQkwF,EAAY,CACzB,MAAMI,EAAcx0F,KAAKg0F,gBAAgB9vF,GACzC,KAAIuvF,EAAWe,GAAeZ,GAK5B,MAJAJ,EAAStvF,GAASsvF,EAASgB,GAC3Bf,EAAWvvF,GAASuvF,EAAWe,GAC/BtwF,EAAQswF,CAIZ,CACAhB,EAAStvF,GAAS6/B,EAClB0vD,EAAWvvF,GAAS0vF,CACtB,CAKAa,YAAAA,GACE,MAAMzB,EAAmBhzF,KAAKkzF,kBACxBM,EAAWxzF,KAAKozF,UAChBK,EAAazzF,KAAKqzF,YACxB,IAAInvF,EAAQ,EACZ,MAAMtB,EAAI4wF,EAASnxF,OACnB,IAAI0hC,EAASlhC,EAAG+wF,EAChB,IAAK/wF,EAAI,EAAGA,EAAID,IAAKC,EACnBkhC,EAAUyvD,EAAS3wF,GACnB+wF,EAAWZ,EAAiBjvD,GACxB6vD,GAAY5rF,UACPhI,KAAKszF,gBAAgBtzF,KAAKmzF,aAAapvD,KAE9C0vD,EAAWvvF,GAAS0vF,EACpBJ,EAAStvF,KAAW6/B,GAGxByvD,EAASnxF,OAAS6B,EAClBuvF,EAAWpxF,OAAS6B,EACpBlE,KAAKi0F,UACP,EAGF,UC7PA,MAAMS,WAAkB3B,GAKtB/xF,WAAAA,CAAY2zF,EAAsBC,GAChCnvF,OAKE,SAAUs+B,GACR,OAAO4wD,EAAqBxvF,MAAM,KAAM4+B,EAC1C,IAKA,SAAUA,GACR,OAAmDA,EAAQ,GAAIwE,QACjE,IAIFvoC,KAAK60F,uBAAyB70F,KAAKspF,iBAAiB3gF,KAAK3I,MAMzDA,KAAK80F,oBAAsBF,EAM3B50F,KAAK+0F,cAAgB,EAMrB/0F,KAAKg1F,kBAAoB,CAAC,CAC5B,CAMAt7C,OAAAA,CAAQ3V,GACN,MAAMkxD,EAAQxvF,MAAMi0C,QAAQ3V,GAC5B,GAAIkxD,EAAO,CACT,MAAMx0D,EAAOsD,EAAQ,GACrBtD,EAAK36B,iBAAiB2D,EAAUlC,OAAQvH,KAAK60F,uBAC/C,CACA,OAAOI,CACT,CAKAC,eAAAA,GACE,OAAOl1F,KAAK+0F,aACd,CAMAzL,gBAAAA,CAAiBjjF,GACf,MAAMo6B,EAAmDp6B,EAAMjF,OACzDkP,EAAQmwB,EAAK1I,WACnB,GACEznB,IAAU+3B,GAAUtI,QACpBzvB,IAAU+3B,GAAU7gC,OACpB8I,IAAU+3B,GAAUrI,MACpB,CACI1vB,IAAU+3B,GAAU7gC,OACtBi5B,EAAK15B,oBAAoB0C,EAAUlC,OAAQvH,KAAK60F,wBAElD,MAAMM,EAAU10D,EAAK8H,SACjB4sD,KAAWn1F,KAAKg1F,2BACXh1F,KAAKg1F,kBAAkBG,KAC5Bn1F,KAAK+0F,eAET/0F,KAAK80F,qBACP,CACF,CAMAM,aAAAA,CAAcC,EAAiBC,GAC7B,IACIhlF,EAAOmwB,EAAM00D,EADbI,EAAW,EAEf,MACEv1F,KAAK+0F,cAAgBM,GACrBE,EAAWD,GACXt1F,KAAK+iF,WAAa,EAElBtiD,EAAmDzgC,KAAKuzF,UAAU,GAClE4B,EAAU10D,EAAK8H,SACfj4B,EAAQmwB,EAAK1I,WACTznB,IAAU+3B,GAAUxI,MAAUs1D,KAAWn1F,KAAKg1F,oBAChDh1F,KAAKg1F,kBAAkBG,IAAW,IAChCn1F,KAAK+0F,gBACLQ,EACF90D,EAAKe,OAGX,EAGF,UAUO,SAASg0D,GACd53D,EACA6C,EACAyY,EACAu8C,EACA7/C,GAIA,IAAKhY,KAAgBsb,KAAiBtb,EAAW0b,aAC/C,OAAOtxC,GAET,IAAK41B,EAAW0b,YAAYJ,GAAezY,EAAK8H,UAC9C,OAAOvgC,GAQT,MAAMgS,EAAS4jB,EAAWtF,UAAUte,OAC9B4N,EAAS6tE,EAAW,GAAKz7E,EAAO,GAChC6N,EAAS4tE,EAAW,GAAKz7E,EAAO,GACtC,OACE,MAAQnN,KAAKoI,IAAI2gC,GACjB/oC,KAAK8Q,KAAKiK,EAASA,EAASC,EAASA,GAAU+tB,CAEnD,CCtHA,MAAM8/C,WAAgBnrF,EAIpBvJ,WAAAA,CAAYkO,GACVzJ,QAEA,MAAMs+B,EAAU70B,EAAQ60B,SACpBA,GAAY70B,EAAQ9N,QAAW2iC,EAAQxc,MAAMouE,gBAC/C5xD,EAAQxc,MAAMouE,cAAgB,QAOhC31F,KAAK+jC,QAAUA,GAAoB,KAMnC/jC,KAAK41F,QAAU,KAMf51F,KAAK6rF,KAAO,KAMZ7rF,KAAKwpC,aAAe,GAEhBt6B,EAAQpP,SACVE,KAAKF,OAASoP,EAAQpP,QAGpBoP,EAAQ9N,QACVpB,KAAK61F,UAAU3mF,EAAQ9N,OAE3B,CAKAO,eAAAA,GACEkjC,GAAW7kC,KAAK+jC,SAChBt+B,MAAM9D,iBACR,CAOA8qF,MAAAA,GACE,OAAOzsF,KAAK6rF,IACd,CAUA9uD,MAAAA,CAAOD,GACD98B,KAAK6rF,MACPhnD,GAAW7kC,KAAK+jC,SAElB,IAAK,IAAIlhC,EAAI,EAAG+D,EAAK5G,KAAKwpC,aAAannC,OAAQQ,EAAI+D,IAAM/D,EACvDkG,EAAc/I,KAAKwpC,aAAa3mC,IAIlC,GAFA7C,KAAKwpC,aAAannC,OAAS,EAC3BrC,KAAK6rF,KAAO/uD,EACRA,EAAK,CACP,MAAM17B,EAASpB,KAAK41F,QAChB51F,KAAK41F,QACL94D,EAAIg5D,+BACR10F,EAAO+gC,YAAYniC,KAAK+jC,SACpB/jC,KAAKF,SAAWwE,GAClBtE,KAAKwpC,aAAarjC,KAChBqC,EAAOs0B,EAAKi5D,GAAa9jF,WAAYjS,KAAKF,OAAQE,OAGtD88B,EAAIh9B,QACN,CACF,CAOAA,MAAAA,CAAOk2F,GAAW,CAWlBH,SAAAA,CAAUz0F,GACRpB,KAAK41F,QACe,kBAAXx0F,EAAsBimB,SAAS4uE,eAAe70F,GAAUA,CACnE,EAGF,UCnHA,MAAM80F,WAAoBR,GAIxB10F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/BzJ,MAAM,CACJs+B,QAAS1c,SAASC,cAAc,OAChCxnB,OAAQoP,EAAQpP,OAChBsB,OAAQ8N,EAAQ9N,SAOlBpB,KAAKm2F,WAAa9uE,SAASC,cAAc,MAMzCtnB,KAAKo2F,gBACmBnvF,IAAtBiI,EAAQmnF,WAA0BnnF,EAAQmnF,UAM5Cr2F,KAAKs2F,eAAiBt2F,KAAKo2F,WAM3Bp2F,KAAKu2F,0BAA+CtvF,IAAxBiI,EAAQsnF,YAMpCx2F,KAAKy2F,kBACqBxvF,IAAxBiI,EAAQsnF,aAA4BtnF,EAAQsnF,YAEzCx2F,KAAKy2F,eACRz2F,KAAKo2F,YAAa,GAGpB,MAAMpmF,OACkB/I,IAAtBiI,EAAQc,UAA0Bd,EAAQc,UAAY,iBAElD0mF,OACiBzvF,IAArBiI,EAAQwnF,SAAyBxnF,EAAQwnF,SAAW,eAEhDC,OACwB1vF,IAA5BiI,EAAQynF,gBACJznF,EAAQynF,gBACR3mF,EAAY,UAEZ4mF,OACsB3vF,IAA1BiI,EAAQ0nF,cAA8B1nF,EAAQ0nF,cAAgB,IAE1DC,OAC0B5vF,IAA9BiI,EAAQ2nF,kBACJ3nF,EAAQ2nF,kBACR7mF,EAAY,YAEW,kBAAlB4mF,GAKT52F,KAAK82F,eAAiBzvE,SAASC,cAAc,QAC7CtnB,KAAK82F,eAAeC,YAAcH,EAClC52F,KAAK82F,eAAe9mF,UAAY6mF,GAEhC72F,KAAK82F,eAAiBF,EAGxB,MAAMn2C,OAA0Bx5C,IAAlBiI,EAAQuxC,MAAsBvxC,EAAQuxC,MAAQ,IAEvC,kBAAVA,GAKTzgD,KAAKg3F,OAAS3vE,SAASC,cAAc,QACrCtnB,KAAKg3F,OAAOD,YAAct2C,EAC1BzgD,KAAKg3F,OAAOhnF,UAAY2mF,GAExB32F,KAAKg3F,OAASv2C,EAGhB,MAAMw2C,EACJj3F,KAAKy2F,eAAiBz2F,KAAKo2F,WAAap2F,KAAK82F,eAAiB92F,KAAKg3F,OAMrEh3F,KAAKk3F,cAAgB7vE,SAASC,cAAc,UAC5CtnB,KAAKk3F,cAAcC,aAAa,OAAQ,UACxCn3F,KAAKk3F,cAAcC,aAAa,gBAAiB/sF,QAAQpK,KAAKo2F,aAC9Dp2F,KAAKk3F,cAAcE,MAAQV,EAC3B12F,KAAKk3F,cAAc/0D,YAAY80D,GAE/Bj3F,KAAKk3F,cAAcpxF,iBACjB2D,EAAU7B,MACV5H,KAAKq3F,aAAa1uF,KAAK3I,OACvB,GAGF,MAAMs3F,EACJtnF,EACA,IACA4rC,GACA,IACAC,IACC77C,KAAKo2F,YAAcp2F,KAAKy2F,aAAe,IAAM36C,GAAkB,KAC/D97C,KAAKy2F,aAAe,GAAK,qBACtB1yD,EAAU/jC,KAAK+jC,QACrBA,EAAQ/zB,UAAYsnF,EACpBvzD,EAAQ5B,YAAYniC,KAAKk3F,eACzBnzD,EAAQ5B,YAAYniC,KAAKm2F,YAOzBn2F,KAAKu3F,sBAAwB,GAM7Bv3F,KAAKotF,kBAAmB,CAC1B,CAQAoK,0BAAAA,CAA2B55D,GACzB,MAAM65D,EAAsBn0F,MAAMo0F,KAChC,IAAIxpC,IACFluD,KAAKysF,SACFkL,eACAC,SAASrnF,GAAUA,EAAM8tB,gBAAgBT,OAI1C44D,GAAex2F,KAAKysF,SACvBkL,eACA54D,MACExuB,GACCA,EAAM2sB,cAC6C,IAAnD3sB,EAAM2sB,YAAYo/C,+BAKxB,OAHKt8E,KAAKu2F,sBACRv2F,KAAK63F,eAAerB,GAEfiB,CACT,CAMAK,cAAAA,CAAel6D,GACb,IAAKA,EAKH,YAJI59B,KAAKotF,mBACPptF,KAAK+jC,QAAQxc,MAAMg4B,QAAU,OAC7Bv/C,KAAKotF,kBAAmB,IAK5B,MAAM9uD,EAAet+B,KAAKw3F,2BAA2B55D,GAE/CpuB,EAAU8uB,EAAaj8B,OAAS,EAMtC,GALIrC,KAAKotF,kBAAoB59E,IAC3BxP,KAAK+jC,QAAQxc,MAAMg4B,QAAU/vC,EAAU,GAAK,OAC5CxP,KAAKotF,iBAAmB59E,IAGtBhM,EAAO86B,EAAct+B,KAAKu3F,uBAA9B,CAIAzyD,GAAe9kC,KAAKm2F,YAGpB,IAAK,IAAItzF,EAAI,EAAG+D,EAAK03B,EAAaj8B,OAAQQ,EAAI+D,IAAM/D,EAAG,CACrD,MAAMkhC,EAAU1c,SAASC,cAAc,MACvCyc,EAAQob,UAAY7gB,EAAaz7B,GACjC7C,KAAKm2F,WAAWh0D,YAAY4B,EAC9B,CAEA/jC,KAAKu3F,sBAAwBj5D,CAX7B,CAYF,CAMA+4D,YAAAA,CAAahxF,GACXA,EAAMhF,iBACNrB,KAAK+3F,gBACL/3F,KAAKs2F,eAAiBt2F,KAAKo2F,UAC7B,CAKA2B,aAAAA,GACE/3F,KAAK+jC,QAAQi0D,UAAUC,OAAOn8C,IAC1B97C,KAAKo2F,WACP7xD,GAAYvkC,KAAK82F,eAAgB92F,KAAKg3F,QAEtCzyD,GAAYvkC,KAAKg3F,OAAQh3F,KAAK82F,gBAEhC92F,KAAKo2F,YAAcp2F,KAAKo2F,WACxBp2F,KAAKk3F,cAAcC,aAAa,gBAAiB/sF,QAAQpK,KAAKo2F,YAChE,CAOA8B,cAAAA,GACE,OAAOl4F,KAAKy2F,YACd,CAOAoB,cAAAA,CAAerB,GACTx2F,KAAKy2F,eAAiBD,IAG1Bx2F,KAAKy2F,aAAeD,EACpBx2F,KAAK+jC,QAAQi0D,UAAUC,OAAO,oBAC1Bj4F,KAAKs2F,gBACPt2F,KAAK+3F,gBAET,CASAI,YAAAA,CAAa9B,GACXr2F,KAAKs2F,eAAiBD,EACjBr2F,KAAKy2F,cAAgBz2F,KAAKo2F,aAAeC,GAG9Cr2F,KAAK+3F,eACP,CAQAK,YAAAA,GACE,OAAOp4F,KAAKo2F,UACd,CAOAt2F,MAAAA,CAAOk2F,GACLh2F,KAAK83F,eAAe9B,EAASp4D,WAC/B,EAGF,UC7SA,MAAMy6D,WAAe3C,GAInB10F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/BzJ,MAAM,CACJs+B,QAAS1c,SAASC,cAAc,OAChCxnB,OAAQoP,EAAQpP,OAChBsB,OAAQ8N,EAAQ9N,SAGlB,MAAM4O,OACkB/I,IAAtBiI,EAAQc,UAA0Bd,EAAQc,UAAY,YAElDywC,OAA0Bx5C,IAAlBiI,EAAQuxC,MAAsBvxC,EAAQuxC,MAAQ,IAEtD63C,OACyBrxF,IAA7BiI,EAAQopF,iBACJppF,EAAQopF,iBACR,aAMNt4F,KAAKg3F,OAAS,KAEO,kBAAVv2C,GACTzgD,KAAKg3F,OAAS3vE,SAASC,cAAc,QACrCtnB,KAAKg3F,OAAOhnF,UAAYsoF,EACxBt4F,KAAKg3F,OAAOD,YAAct2C,IAE1BzgD,KAAKg3F,OAASv2C,EACdzgD,KAAKg3F,OAAOgB,UAAU9hF,IAAIoiF,IAG5B,MAAM5B,EAAWxnF,EAAQwnF,SAAWxnF,EAAQwnF,SAAW,iBAEjD9E,EAASvqE,SAASC,cAAc,UACtCsqE,EAAO5hF,UAAYA,EAAY,SAC/B4hF,EAAOuF,aAAa,OAAQ,UAC5BvF,EAAOwF,MAAQV,EACf9E,EAAOzvD,YAAYniC,KAAKg3F,QAExBpF,EAAO9rF,iBACL2D,EAAU7B,MACV5H,KAAKq3F,aAAa1uF,KAAK3I,OACvB,GAGF,MAAMs3F,EACJtnF,EAAY,IAAM4rC,GAAqB,IAAMC,GACzC9X,EAAU/jC,KAAK+jC,QACrBA,EAAQ/zB,UAAYsnF,EACpBvzD,EAAQ5B,YAAYyvD,GAEpB5xF,KAAKu4F,gBAAkBrpF,EAAQspF,WAAatpF,EAAQspF,gBAAavxF,EAMjEjH,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,IAMrEx0B,KAAK04F,eAAiCzxF,IAArBiI,EAAQypF,UAAyBzpF,EAAQypF,SAM1D34F,KAAKm6C,eAAYlzC,EAEbjH,KAAK04F,WACP14F,KAAK+jC,QAAQi0D,UAAU9hF,IAAIwlC,GAE/B,CAMA27C,YAAAA,CAAahxF,GACXA,EAAMhF,sBACuB4F,IAAzBjH,KAAKu4F,gBACPv4F,KAAKu4F,kBAELv4F,KAAK44F,aAET,CAKAA,WAAAA,GACE,MAAM97D,EAAM98B,KAAKysF,SACX9uD,EAAOb,EAAIiB,UACjB,IAAKJ,EAGH,OAEF,MAAM1jB,EAAW0jB,EAAKjK,mBACLzsB,IAAbgT,IACEja,KAAKy4F,UAAY,GAAKx+E,GAAY,EAAIpN,KAAK0B,MAAQ,EACrDovB,EAAKhK,QAAQ,CACX1Z,SAAU,EACVua,SAAUx0B,KAAKy4F,UACfhkE,OAAQhR,KAGVka,EAAK/K,YAAY,GAGvB,CAOA9yB,MAAAA,CAAOk2F,GACL,MAAMp4D,EAAao4D,EAASp4D,WAC5B,IAAKA,EACH,OAEF,MAAM3jB,EAAW2jB,EAAWtF,UAAUre,SACtC,GAAIA,GAAYja,KAAKm6C,UAAW,CAC9B,MAAM1jC,EAAY,UAAYwD,EAAW,OACzC,GAAIja,KAAK04F,UAAW,CAClB,MAAM1kD,EAAWh0C,KAAK+jC,QAAQi0D,UAAUhkD,SAAS0H,IAC5C1H,GAAyB,IAAb/5B,EAEN+5B,GAAyB,IAAb/5B,GACrBja,KAAK+jC,QAAQi0D,UAAUvd,OAAO/+B,IAF9B17C,KAAK+jC,QAAQi0D,UAAU9hF,IAAIwlC,GAI/B,CACA17C,KAAKg3F,OAAOzvE,MAAM9Q,UAAYA,CAChC,CACAzW,KAAKm6C,UAAYlgC,CACnB,EAGF,UCpJA,MAAM4+E,WAAanD,GAIjB10F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/BzJ,MAAM,CACJs+B,QAAS1c,SAASC,cAAc,OAChClmB,OAAQ8N,EAAQ9N,SAGlB,MAAM4O,OACkB/I,IAAtBiI,EAAQc,UAA0Bd,EAAQc,UAAY,UAElDuM,OAA0BtV,IAAlBiI,EAAQqN,MAAsBrN,EAAQqN,MAAQ,EAEtDu8E,OACwB7xF,IAA5BiI,EAAQ4pF,gBACJ5pF,EAAQ4pF,gBACR9oF,EAAY,MAEZ+oF,OACyB9xF,IAA7BiI,EAAQ6pF,iBACJ7pF,EAAQ6pF,iBACR/oF,EAAY,OAEZgpF,OACoB/xF,IAAxBiI,EAAQ8pF,YAA4B9pF,EAAQ8pF,YAAc,IACtDC,OACqBhyF,IAAzBiI,EAAQ+pF,aAA6B/pF,EAAQ+pF,aAAe,IAExDC,OACuBjyF,IAA3BiI,EAAQgqF,eAA+BhqF,EAAQgqF,eAAiB,UAC5DC,OACwBlyF,IAA5BiI,EAAQiqF,gBACJjqF,EAAQiqF,gBACR,WAEAC,EAAY/xE,SAASC,cAAc,UACzC8xE,EAAUppF,UAAY8oF,EACtBM,EAAUjC,aAAa,OAAQ,UAC/BiC,EAAUhC,MAAQ8B,EAClBE,EAAUj3D,YACe,kBAAhB62D,EACH3xE,SAASgyE,eAAeL,GACxBA,GAGNI,EAAUtzF,iBACR2D,EAAU7B,MACV5H,KAAKq3F,aAAa1uF,KAAK3I,KAAMuc,IAC7B,GAGF,MAAM+8E,EAAajyE,SAASC,cAAc,UAC1CgyE,EAAWtpF,UAAY+oF,EACvBO,EAAWnC,aAAa,OAAQ,UAChCmC,EAAWlC,MAAQ+B,EACnBG,EAAWn3D,YACe,kBAAjB82D,EACH5xE,SAASgyE,eAAeJ,GACxBA,GAGNK,EAAWxzF,iBACT2D,EAAU7B,MACV5H,KAAKq3F,aAAa1uF,KAAK3I,MAAOuc,IAC9B,GAGF,MAAM+6E,EACJtnF,EAAY,IAAM4rC,GAAqB,IAAMC,GACzC9X,EAAU/jC,KAAK+jC,QACrBA,EAAQ/zB,UAAYsnF,EACpBvzD,EAAQ5B,YAAYi3D,GACpBr1D,EAAQ5B,YAAYm3D,GAMpBt5F,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,GACvE,CAOA6iE,YAAAA,CAAa96E,EAAOlW,GAClBA,EAAMhF,iBACNrB,KAAKu5F,aAAah9E,EACpB,CAMAg9E,YAAAA,CAAah9E,GACX,MAAMugB,EAAM98B,KAAKysF,SACX9uD,EAAOb,EAAIiB,UACjB,IAAKJ,EAGH,OAEF,MAAM67D,EAAc77D,EAAKlK,UACzB,QAAoBxsB,IAAhBuyF,EAA2B,CAC7B,MAAMC,EAAU97D,EAAKzC,mBAAmBs+D,EAAcj9E,GAClDvc,KAAKy4F,UAAY,GACf96D,EAAK7J,gBACP6J,EAAKrI,mBAEPqI,EAAKhK,QAAQ,CACXZ,KAAM0mE,EACNjlE,SAAUx0B,KAAKy4F,UACfhkE,OAAQhR,MAGVka,EAAK3K,QAAQymE,EAEjB,CACF,EAGF,UC3HO,SAASC,GAASxqF,GACvBA,EAAUA,GAAoB,CAAC,EAG/B,MAAMyqF,EAAW,IAAI9f,GAEf+f,OAA+B3yF,IAAjBiI,EAAQ6jB,MAAqB7jB,EAAQ6jB,KACrD6mE,GACFD,EAASxzF,KAAK,IAAI0yF,GAAK3pF,EAAQ2qF,cAGjC,MAAMC,OAAmC7yF,IAAnBiI,EAAQwN,QAAuBxN,EAAQwN,OACzDo9E,GACFH,EAASxzF,KAAK,IAAIkyF,GAAOnpF,EAAQ6qF,gBAGnC,MAAMC,OACoB/yF,IAAxBiI,EAAQ+qF,aAA4B/qF,EAAQ+qF,YAK9C,OAJID,GACFL,EAASxzF,KAAK,IAAI+vF,GAAYhnF,EAAQgrF,qBAGjCP,CACT,CCpDA,QACEQ,OAAQ,UCgCV,MAAMC,WAAoB7vF,EAIxBvJ,WAAAA,CAAYkO,GACVzJ,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAED6F,GAAWA,EAAQrI,cACrB7G,KAAK6G,YAAcqI,EAAQrI,aAO7B7G,KAAK6rF,KAAO,KAEZ7rF,KAAKq6F,WAAU,EACjB,CAQAC,SAAAA,GACE,OAA+Bt6F,KAAK2K,IAAI4vF,GAAoBJ,OAC9D,CAOA1N,MAAAA,GACE,OAAOzsF,KAAK6rF,IACd,CAQAhlF,WAAAA,CAAY2zF,GACV,OAAO,CACT,CAQAH,SAAAA,CAAUI,GACRz6F,KAAKwL,IAAI+uF,GAAoBJ,OAAQM,EACvC,CAQA19D,MAAAA,CAAOD,GACL98B,KAAK6rF,KAAO/uD,CACd,EAQK,SAAS49D,GAAI/8D,EAAMphB,EAAOiY,GAC/B,MAAM8B,EAAgBqH,EAAKzK,oBAC3B,GAAIoD,EAAe,CACjB,MAAMtc,EAAS,CAACsc,EAAc,GAAK/Z,EAAM,GAAI+Z,EAAc,GAAK/Z,EAAM,IACtEohB,EAAK3J,gBAAgB,CACnBQ,cAAuBvtB,IAAbutB,EAAyBA,EAAW,IAC9CC,OAAQ9Q,GACR3J,OAAQ2jB,EAAKjE,qBAAqB1f,IAEtC,CACF,CAQO,SAAS2gF,GAAYh9D,EAAMphB,EAAOkL,EAAQ+M,GAC/C,MAAMglE,EAAc77D,EAAKlK,UAEzB,QAAoBxsB,IAAhBuyF,EACF,OAGF,MAAMC,EAAU97D,EAAKzC,mBAAmBs+D,EAAcj9E,GAChD4G,EAAgBwa,EAAK7I,qBAAqB2kE,GAE5C97D,EAAK7J,gBACP6J,EAAKrI,mBAEPqI,EAAKhK,QAAQ,CACXve,WAAY+N,EACZsE,OAAQA,EACR+M,cAAuBvtB,IAAbutB,EAAyBA,EAAW,IAC9CC,OAAQhR,IAEZ,CAEA,UCxJA,MAAMm3E,WAAwBR,GAI5Bp5F,WAAAA,CAAYkO,GACVzJ,QAEAyJ,EAAUA,GAAoB,CAAC,EAM/BlP,KAAK66F,OAAS3rF,EAAQqN,MAAQrN,EAAQqN,MAAQ,EAM9Cvc,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,GACvE,CAQA3tB,WAAAA,CAAY2zF,GACV,IAAIM,GAAY,EAChB,GAAIN,EAAgBv5F,MAAQqwF,GAAoBzpF,SAAU,CACxD,MAAMkzF,EACJP,EAAgBxL,cAEZlyD,EAAM09D,EAAgB19D,IACtBrV,EAAS+yE,EAAgBviF,WACzBsE,EAAQw+E,EAAaC,UAAYh7F,KAAK66F,OAAS76F,KAAK66F,OACpDl9D,EAAOb,EAAIiB,UACjB48D,GAAYh9D,EAAMphB,EAAOkL,EAAQznB,KAAKy4F,WACtCsC,EAAa15F,iBACby5F,GAAY,CACd,CACA,OAAQA,CACV,EAGF,UCnBA,MAAMG,WAA2Bb,GAI/Bp5F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/BzJ,MACgEyJ,GAG5DA,EAAQgsF,kBACVl7F,KAAKk7F,gBAAkBhsF,EAAQgsF,iBAG7BhsF,EAAQisF,kBACVn7F,KAAKm7F,gBAAkBjsF,EAAQisF,iBAG7BjsF,EAAQksF,kBACVp7F,KAAKo7F,gBAAkBlsF,EAAQksF,iBAG7BlsF,EAAQmsF,gBACVr7F,KAAKq7F,cAAgBnsF,EAAQmsF,eAG3BnsF,EAAQosF,WACVt7F,KAAKs7F,SAAWpsF,EAAQosF,UAO1Bt7F,KAAKu7F,wBAAyB,EAM9Bv7F,KAAKw7F,eAAiB,EACxB,CAQAC,eAAAA,GACE,OAAOz7F,KAAKw7F,eAAen5F,MAC7B,CAQA64F,eAAAA,CAAgBV,GACd,OAAO,CACT,CAOAW,eAAAA,CAAgBX,GAAkB,CAUlC3zF,WAAAA,CAAY2zF,GACV,IAAKA,EAAgBxL,cACnB,OAAO,EAGT,IAAI8L,GAAY,EAEhB,GADA96F,KAAK07F,uBAAuBlB,GACxBx6F,KAAKu7F,wBACP,GAAIf,EAAgBv5F,MAAQqwF,GAAoB9B,YAC9CxvF,KAAKm7F,gBAAgBX,GAErBA,EAAgBxL,cAAc3tF,sBACzB,GAAIm5F,EAAgBv5F,MAAQqwF,GAAoB3B,UAAW,CAChE,MAAMgM,EAAY37F,KAAKq7F,cAAcb,GACrCx6F,KAAKu7F,uBACHI,GAAa37F,KAAKw7F,eAAen5F,OAAS,CAC9C,OAEA,GAAIm4F,EAAgBv5F,MAAQqwF,GAAoB5B,YAAa,CAC3D,MAAMkM,EAAU57F,KAAKk7F,gBAAgBV,GACrCx6F,KAAKu7F,uBAAyBK,EAC9Bd,EAAY96F,KAAKs7F,SAASM,EAC5B,MAAWpB,EAAgBv5F,MAAQqwF,GAAoB7B,aACrDzvF,KAAKo7F,gBAAgBZ,GAGzB,OAAQM,CACV,CAOAM,eAAAA,CAAgBZ,GAAkB,CAQlCa,aAAAA,CAAcb,GACZ,OAAO,CACT,CAQAc,QAAAA,CAASM,GACP,OAAOA,CACT,CAMAF,sBAAAA,CAAuBlB,GACjBA,EAAgBtL,iBAClBlvF,KAAKw7F,eAAiBhB,EAAgBtL,eAE1C,EAOK,SAAS2M,GAASlG,GACvB,MAAMtzF,EAASszF,EAActzF,OAC7B,IAAIgwF,EAAU,EACVC,EAAU,EACd,IAAK,IAAIzvF,EAAI,EAAGA,EAAIR,EAAQQ,IAC1BwvF,GAAWsD,EAAc9yF,GAAGwvF,QAC5BC,GAAWqD,EAAc9yF,GAAGyvF,QAE9B,MAAO,CAACD,QAASA,EAAUhwF,EAAQiwF,QAASA,EAAUjwF,EACxD,CAEA,UCzLO,SAAS61E,GAAItkD,GAClB,MAAMkoE,EAAa72F,UAKnB,OAAO,SAAUoB,GACf,IAAI01F,GAAO,EACX,IAAK,IAAIl5F,EAAI,EAAG+D,EAAKk1F,EAAWz5F,OAAQQ,EAAI+D,IAAM/D,EAEhD,GADAk5F,EAAOA,GAAQD,EAAWj5F,GAAGwD,IACxB01F,EACH,MAGJ,OAAOA,CACT,CACF,CAUO,MAmBMC,GAAmB,SAAUxB,GACxC,MAAMxL,EACJwL,EAAgBxL,cAElB,OACEA,EAAciN,UACZjN,EAAckN,SAAWlN,EAAcmN,UACzCnN,EAAcgM,QAElB,EAUaoB,GAAQ,SAAU/1F,GAC7B,MAAMg2F,EAAgBh2F,EAAMy2B,IAAIw/D,mBAC1BC,EAAgBl2F,EAAMy2B,IAAIk1D,mBAAmBuK,cACnD,OAAOF,EAAcroD,SAASuoD,EAChC,EAQaC,GAAoB,SAAUn2F,GACzC,OAAOA,EAAMy2B,IAAIw/D,mBAAmBG,aAAa,aAC7CL,GAAM/1F,EAEZ,EASagsD,GAASjuD,EAsBTs4F,GAAoB,SAAUlC,GACzC,MAAMxL,EACJwL,EAAgBxL,cAElB,OAA+B,GAAxBA,EAAc4C,UAAiB1tE,IAAUE,IAAO4qE,EAAcmN,QACvE,EAqDaQ,GAAiB,SAAUnC,GACtC,MAAMxL,EACJwL,EAAgBxL,cAElB,OACGA,EAAciN,UACbjN,EAAckN,SAAWlN,EAAcmN,WACxCnN,EAAcgM,QAEnB,EA8Ba4B,GAAsB,SAAUpC,GAC3C,MAAMxL,EACJwL,EAAgBxL,cAElB,OAAO5qE,GAAM4qE,EAAckN,QAAUlN,EAAcmN,OACrD,EAUaU,GAAe,SAAUrC,GACpC,MAAMxL,EACJwL,EAAgBxL,cAElB,OACGA,EAAciN,UACbjN,EAAckN,SAAWlN,EAAcmN,UACzCnN,EAAcgM,QAElB,EAWa8B,GAAoB,SAAUtC,GACzC,MAAMxL,EACJwL,EAAgBxL,cAEZ+N,EAAkC/N,EAAc5tF,OAAQ27F,QAC9D,MACc,UAAZA,GACY,WAAZA,GACY,aAAZA,IAIC/N,EAAc5tF,OAAO47F,iBAE1B,EASaC,GAAY,SAAUzC,GACjC,MAAMpJ,EACJoJ,EACAxL,cAMF,OALAziF,OACmBtF,IAAjBmqF,EACA,uDAGiC,SAA5BA,EAAa8L,WACtB,EAiDaC,GAAgB,SAAU3C,GACrC,MAAMpJ,EACJoJ,EACAxL,cAKF,OAJAziF,OACmBtF,IAAjBmqF,EACA,uDAEKA,EAAagM,WAAqC,IAAxBhM,EAAaQ,MAChD,EChUA,MAAMyL,WAAgBpC,GAIpBj6F,WAAAA,CAAYkO,GACVzJ,MAAM,CACJ61F,SAAUj3F,IAGZ6K,EAAUA,GAAoB,CAAC,EAM/BlP,KAAKs9F,SAAWpuF,EAAQquF,QAKxBv9F,KAAKw9F,aAAe,KAKpBx9F,KAAKy9F,mBAKLz9F,KAAK09F,UAAW,EAEhB,MAAMC,EAAYzuF,EAAQyuF,UACtBzuF,EAAQyuF,UACRzlB,GAAIykB,GAAgBQ,IAMxBn9F,KAAK49F,WAAa1uF,EAAQ2uF,YACtB3lB,GAAIskB,GAAmBmB,GACvBA,EAMJ39F,KAAK89F,YAAa,CACpB,CAMA3C,eAAAA,CAAgBX,GACd,MAAM19D,EAAM09D,EAAgB19D,IACvB98B,KAAK09F,WACR19F,KAAK09F,UAAW,EAChB5gE,EAAIiB,UAAUhD,oBAEhB,MAAMygE,EAAiBx7F,KAAKw7F,eACtBK,EAAW/+D,EAAIuyD,cAAc0O,GAAqBvC,IACxD,GAAIA,EAAen5F,QAAUrC,KAAKy9F,oBAIhC,GAHIz9F,KAAKs9F,UACPt9F,KAAKs9F,SAASpiB,OAAO2gB,EAAS,GAAIA,EAAS,IAEzC77F,KAAKw9F,aAAc,CACrB,MAAMjhF,EAAQ,CACZvc,KAAKw9F,aAAa,GAAK3B,EAAS,GAChCA,EAAS,GAAK77F,KAAKw9F,aAAa,IAE5B1gE,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UACjBigE,GAAgBzhF,EAAOohB,EAAKvK,iBAC5BmD,GAAiBha,EAAOohB,EAAKjK,eAC7BiK,EAAKxD,qBAAqB5d,EAC5B,OACSvc,KAAKs9F,UAGdt9F,KAAKs9F,SAASt6F,QAEhBhD,KAAKw9F,aAAe3B,EACpB77F,KAAKy9F,mBAAqBjC,EAAen5F,OACzCm4F,EAAgBxL,cAAc3tF,gBAChC,CAOAg6F,aAAAA,CAAcb,GACZ,MAAM19D,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UACjB,GAAmC,IAA/B/9B,KAAKw7F,eAAen5F,OAAc,CACpC,IAAKrC,KAAK89F,YAAc99F,KAAKs9F,UAAYt9F,KAAKs9F,SAASr6F,MAAO,CAC5D,MAAM+rE,EAAWhvE,KAAKs9F,SAASpgF,cACzBP,EAAQ3c,KAAKs9F,SAASz7C,WACtB7nC,EAAS2jB,EAAKzK,oBACd+qE,EAAWnhE,EAAIohE,+BAA+BlkF,GAC9CzC,EAAOulB,EAAIqhE,+BAA+B,CAC9CF,EAAS,GAAKjvB,EAAWniE,KAAK4N,IAAIkC,GAClCshF,EAAS,GAAKjvB,EAAWniE,KAAK8N,IAAIgC,KAEpCghB,EAAK3J,gBAAgB,CACnBha,OAAQ2jB,EAAKjE,qBAAqBniB,GAClCid,SAAU,IACVC,OAAQhR,IAEZ,CAKA,OAJIzjB,KAAK09F,WACP19F,KAAK09F,UAAW,EAChB//D,EAAK3C,mBAEA,CACT,CAOA,OANIh7B,KAAKs9F,UAGPt9F,KAAKs9F,SAASt6F,QAEhBhD,KAAKw9F,aAAe,MACb,CACT,CAOAtC,eAAAA,CAAgBV,GACd,GAAIx6F,KAAKw7F,eAAen5F,OAAS,GAAKrC,KAAK49F,WAAWpD,GAAkB,CACtE,MAAM19D,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UAYjB,OAXA/9B,KAAKw9F,aAAe,KAEhB7/D,EAAK7J,gBACP6J,EAAKrI,mBAEHt1B,KAAKs9F,UACPt9F,KAAKs9F,SAASt6F,QAIhBhD,KAAK89F,WAAa99F,KAAKw7F,eAAen5F,OAAS,GACxC,CACT,CACA,OAAO,CACT,EAGF,UC7JA,MAAM+7F,WAAmBnD,GAIvBj6F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/BzJ,MAAM,CACJ61F,SAAUj3F,IAOZrE,KAAK49F,WAAa1uF,EAAQyuF,UAAYzuF,EAAQyuF,UAAY3B,GAM1Dh8F,KAAKq+F,gBAAap3F,EAMlBjH,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,GACvE,CAMA2mE,eAAAA,CAAgBX,GACd,IAAKyC,GAAUzC,GACb,OAGF,MAAM19D,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UACjB,GAAIJ,EAAK9G,iBAAiB5c,WAAaqE,GACrC,OAEF,MAAMpE,EAAO4iB,EAAIoX,UACXr7B,EAAS2hF,EAAgBl9D,MACzBha,EAAQzW,KAAK6Q,MAAMxD,EAAK,GAAK,EAAIrB,EAAO,GAAIA,EAAO,GAAKqB,EAAK,GAAK,GACxE,QAAwBjT,IAApBjH,KAAKq+F,WAA0B,CACjC,MAAM9hF,EAAQ+G,EAAQtjB,KAAKq+F,WAC3B1gE,EAAKnD,wBAAwBje,EAC/B,CACAvc,KAAKq+F,WAAa/6E,CACpB,CAOA+3E,aAAAA,CAAcb,GACZ,IAAKyC,GAAUzC,GACb,OAAO,EAGT,MAAM19D,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UAEjB,OADAJ,EAAK3C,eAAeh7B,KAAKy4F,YAClB,CACT,CAOAyC,eAAAA,CAAgBV,GACd,IAAKyC,GAAUzC,GACb,OAAO,EAGT,GACEkC,GAAkBlC,IAClBx6F,KAAK49F,WAAWpD,GAChB,CACA,MAAM19D,EAAM09D,EAAgB19D,IAG5B,OAFAA,EAAIiB,UAAUhD,mBACd/6B,KAAKq+F,gBAAap3F,GACX,CACT,CACA,OAAO,CACT,EAGF,UCpHA,MAAMq3F,WAAkB98F,EAItBR,WAAAA,CAAYgP,GACVvK,QAMAzF,KAAKulD,UAAY,KAMjBvlD,KAAKgtF,SAAW3lE,SAASC,cAAc,OACvCtnB,KAAKgtF,SAASzlE,MAAMqS,SAAW,WAC/B55B,KAAKgtF,SAASzlE,MAAMouE,cAAgB,OACpC31F,KAAKgtF,SAASh9E,UAAY,UAAYA,EAMtChQ,KAAK6rF,KAAO,KAMZ7rF,KAAKu+F,YAAc,KAMnBv+F,KAAKw+F,UAAY,IACnB,CAKA78F,eAAAA,GACE3B,KAAK+8B,OAAO,KACd,CAKA0hE,OAAAA,GACE,MAAMC,EAAa1+F,KAAKu+F,YAClBI,EAAW3+F,KAAKw+F,UAChBI,EAAK,KACLr3E,EAAQvnB,KAAKgtF,SAASzlE,MAC5BA,EAAMof,KAAO95B,KAAKF,IAAI+xF,EAAW,GAAIC,EAAS,IAAMC,EACpDr3E,EAAMs3E,IAAMhyF,KAAKF,IAAI+xF,EAAW,GAAIC,EAAS,IAAMC,EACnDr3E,EAAMxL,MAAQlP,KAAKgB,IAAI8wF,EAAS,GAAKD,EAAW,IAAME,EACtDr3E,EAAMvL,OAASnP,KAAKgB,IAAI8wF,EAAS,GAAKD,EAAW,IAAME,CACzD,CAKA7hE,MAAAA,CAAOD,GACL,GAAI98B,KAAK6rF,KAAM,CACb7rF,KAAK6rF,KAAKiT,sBAAsBx8D,YAAYtiC,KAAKgtF,UACjD,MAAMzlE,EAAQvnB,KAAKgtF,SAASzlE,MAC5BA,EAAMof,KAAO,UACbpf,EAAMs3E,IAAM,UACZt3E,EAAMxL,MAAQ,UACdwL,EAAMvL,OAAS,SACjB,CACAhc,KAAK6rF,KAAO/uD,EACR98B,KAAK6rF,MACP7rF,KAAK6rF,KAAKiT,sBAAsB38D,YAAYniC,KAAKgtF,SAErD,CAMA+R,SAAAA,CAAUL,EAAYC,GACpB3+F,KAAKu+F,YAAcG,EACnB1+F,KAAKw+F,UAAYG,EACjB3+F,KAAKg/F,yBACLh/F,KAAKy+F,SACP,CAKAO,sBAAAA,GACE,MAAMN,EAAa1+F,KAAKu+F,YAClBI,EAAW3+F,KAAKw+F,UAChBS,EAAS,CACbP,EACA,CAACA,EAAW,GAAIC,EAAS,IACzBA,EACA,CAACA,EAAS,GAAID,EAAW,KAErBznF,EAAcgoF,EAAOniE,IACzB98B,KAAK6rF,KAAKsS,+BACVn+F,KAAK6rF,MAGP50E,EAAY,GAAKA,EAAY,GAAGlS,QAC3B/E,KAAKulD,UAGRvlD,KAAKulD,UAAU76B,eAAe,CAACzT,IAF/BjX,KAAKulD,UAAY,IAAI91B,GAAQ,CAACxY,GAIlC,CAKA+uC,WAAAA,GACE,OAAOhmD,KAAKulD,SACd,EAGF,UCjGA,MAAM25C,GAAmB,CAMvBC,SAAU,WAOVC,QAAS,UAOTC,OAAQ,SAORC,UAAW,aAQN,MAAMC,WAAqB/4F,EAMhCxF,WAAAA,CAAYC,EAAMgX,EAAYuiF,GAC5B/0F,MAAMxE,GAQNjB,KAAKiY,WAAaA,EAOlBjY,KAAKw6F,gBAAkBA,CACzB,EAyBF,MAAMgF,WAAgBvE,GAIpBj6F,WAAAA,CAAYkO,GACVzJ,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAEL6F,EAAUA,GAAoB,CAAC,EAM/BlP,KAAKy/F,KAAO,IAAInB,GAAUpvF,EAAQc,WAAa,cAM/ChQ,KAAK0/F,cAA+Bz4F,IAApBiI,EAAQywF,QAAwBzwF,EAAQywF,QAAU,GAE9DzwF,EAAQ0wF,WACV5/F,KAAK4/F,SAAW1wF,EAAQ0wF,UAO1B5/F,KAAKu+F,YAAc,KAMnBv+F,KAAK49F,WAAa1uF,EAAQyuF,UAAYzuF,EAAQyuF,UAAYjB,GAM1D18F,KAAK6/F,iBAAmB3wF,EAAQ4wF,gBAC5B5wF,EAAQ4wF,gBACR9/F,KAAK+/F,sBACX,CAWAA,sBAAAA,CAAuBvF,EAAiBkE,EAAYC,GAClD,MAAM5iF,EAAQ4iF,EAAS,GAAKD,EAAW,GACjC1iF,EAAS2iF,EAAS,GAAKD,EAAW,GACxC,OAAO3iF,EAAQA,EAAQC,EAASA,GAAUhc,KAAK0/F,QACjD,CAOA15C,WAAAA,GACE,OAAOhmD,KAAKy/F,KAAKz5C,aACnB,CAMAm1C,eAAAA,CAAgBX,GACdx6F,KAAKy/F,KAAKV,UAAU/+F,KAAKu+F,YAAa/D,EAAgBl9D,OAEtDt9B,KAAKoG,cACH,IAAIm5F,GACFL,GAAiBE,QACjB5E,EAAgBviF,WAChBuiF,GAGN,CAOAa,aAAAA,CAAcb,GACZx6F,KAAKy/F,KAAK1iE,OAAO,MAEjB,MAAMijE,EAAchgG,KAAK6/F,iBACvBrF,EACAx6F,KAAKu+F,YACL/D,EAAgBl9D,OAYlB,OAVI0iE,GACFhgG,KAAK4/F,SAASpF,GAEhBx6F,KAAKoG,cACH,IAAIm5F,GACFS,EAAcd,GAAiBG,OAASH,GAAiBI,UACzD9E,EAAgBviF,WAChBuiF,KAGG,CACT,CAOAU,eAAAA,CAAgBV,GACd,QAAIx6F,KAAK49F,WAAWpD,KAClBx6F,KAAKu+F,YAAc/D,EAAgBl9D,MACnCt9B,KAAKy/F,KAAK1iE,OAAOy9D,EAAgB19D,KACjC98B,KAAKy/F,KAAKV,UAAU/+F,KAAKu+F,YAAav+F,KAAKu+F,aAC3Cv+F,KAAKoG,cACH,IAAIm5F,GACFL,GAAiBC,SACjB3E,EAAgBviF,WAChBuiF,KAGG,EAGX,CAMAoF,QAAAA,CAASv5F,GAAQ,EAGnB,UClPA,MAAM45F,WAAiBT,GAIrBx+F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/B,MAAMyuF,EAAYzuF,EAAQyuF,UAAYzuF,EAAQyuF,UAAYd,GAE1Dp3F,MAAM,CACJk4F,UAAWA,EACX3tF,UAAWd,EAAQc,WAAa,cAChC2vF,QAASzwF,EAAQywF,UAOnB3/F,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,IAMrEx0B,KAAKkgG,UAAuBj5F,IAAhBiI,EAAQixF,KAAoBjxF,EAAQixF,GAClD,CAMAP,QAAAA,CAASv5F,GACP,MAAMy2B,EAAM98B,KAAKysF,SACX9uD,EAAqDb,EAAIiB,UAC/D,IAAIpF,EAAW34B,KAAKgmD,cAEpB,GAAIhmD,KAAKkgG,KAAM,CACb,MAAM5mE,EAAgBqE,EAAK7E,yBAAyBH,GAC9CvjB,EAAauoB,EAAKjG,+BAA+B4B,GACjD1qB,EAAS+uB,EAAKvK,gBAAkBhe,EACtCujB,EAAWA,EAAS7gB,QACpB6gB,EAAS7b,MAAMlO,EAASA,EAC1B,CAEA+uB,EAAK9E,YAAYF,EAAU,CACzBnE,SAAUx0B,KAAKy4F,UACfhkE,OAAQhR,IAEZ,EAGF,UC3EA,IACE1M,KAAM,YACNqpF,GAAI,UACJvpF,MAAO,aACPwpF,KAAM,aCsBR,MAAMC,WAAoBlG,GAIxBp5F,WAAAA,CAAYkO,GACVzJ,QAEAyJ,EAAUA,GAAW,CAAC,EAOtBlP,KAAKugG,kBAAoB,SAAU/F,GACjC,OACEmC,GAAenC,IAAoBsC,GAAkBtC,EAEzD,EAMAx6F,KAAK49F,gBACmB32F,IAAtBiI,EAAQyuF,UACJzuF,EAAQyuF,UACR39F,KAAKugG,kBAMXvgG,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,IAMrEx0B,KAAKwgG,iBACoBv5F,IAAvBiI,EAAQuxF,WAA2BvxF,EAAQuxF,WAAa,GAC5D,CASA55F,WAAAA,CAAY2zF,GACV,IAAIM,GAAY,EAChB,GAAIN,EAAgBv5F,MAAQwI,EAAUvB,QAAS,CAC7C,MAAMw4F,EACJlG,EAAgBxL,cAEZhmF,EAAM03F,EAAS13F,IACrB,GACEhJ,KAAK49F,WAAWpD,KACfxxF,GAAO23F,GAAIN,MACVr3F,GAAO23F,GAAI5pF,MACX/N,GAAO23F,GAAI9pF,OACX7N,GAAO23F,GAAIP,IACb,CACA,MAAMtjE,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UACX6iE,EAAgBjjE,EAAKvK,gBAAkBpzB,KAAKwgG,YAClD,IAAI54E,EAAS,EACXC,EAAS,EACP7e,GAAO23F,GAAIN,KACbx4E,GAAU+4E,EACD53F,GAAO23F,GAAI5pF,KACpB6Q,GAAUg5E,EACD53F,GAAO23F,GAAI9pF,MACpB+Q,EAASg5E,EAET/4E,EAAS+4E,EAEX,MAAMrkF,EAAQ,CAACqL,EAAQC,GACvB0O,GAAiBha,EAAOohB,EAAKjK,eAC7BgnE,GAAI/8D,EAAMphB,EAAOvc,KAAKy4F,WACtBiI,EAASr/F,iBACTy5F,GAAY,CACd,CACF,CACA,OAAQA,CACV,EAGF,UC3FA,MAAM+F,WAAqBzG,GAIzBp5F,WAAAA,CAAYkO,GACVzJ,QAEAyJ,EAAUA,GAAoB,CAAC,EAM/BlP,KAAK49F,WAAa1uF,EAAQyuF,UACtBzuF,EAAQyuF,UACR,SAAUnD,GACR,OACGoC,GAAoBpC,IACrBsC,GAAkBtC,EAEtB,EAMJx6F,KAAK66F,OAAS3rF,EAAQqN,MAAQrN,EAAQqN,MAAQ,EAM9Cvc,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,GACvE,CASA3tB,WAAAA,CAAY2zF,GACV,IAAIM,GAAY,EAChB,GACEN,EAAgBv5F,MAAQwI,EAAUvB,SAClCsyF,EAAgBv5F,MAAQwI,EAAUtB,SAClC,CACA,MAAMu4F,EACJlG,EAAgBxL,cAEZhmF,EAAM03F,EAAS13F,IACrB,GAAIhJ,KAAK49F,WAAWpD,KAA6B,MAARxxF,GAAuB,MAARA,GAAc,CACpE,MAAM8zB,EAAM09D,EAAgB19D,IACtBvgB,EAAgB,MAARvT,EAAchJ,KAAK66F,QAAU76F,KAAK66F,OAC1Cl9D,EAAOb,EAAIiB,UACjB48D,GAAYh9D,EAAMphB,OAAOtV,EAAWjH,KAAKy4F,WACzCiI,EAASr/F,iBACTy5F,GAAY,CACd,CACF,CACA,OAAQA,CACV,EAGF,UCvFA,MAAMgG,GAOJ9/F,WAAAA,CAAY+/F,EAAOC,EAAaC,GAK9BjhG,KAAKkhG,OAASH,EAMd/gG,KAAKmhG,aAAeH,EAMpBhhG,KAAKohG,OAASH,EAMdjhG,KAAK+gD,QAAU,GAMf/gD,KAAKqhD,OAAS,EAMdrhD,KAAKqhG,iBAAmB,CAC1B,CAKAr+F,KAAAA,GACEhD,KAAK+gD,QAAQ1+C,OAAS,EACtBrC,KAAKqhD,OAAS,EACdrhD,KAAKqhG,iBAAmB,CAC1B,CAMAnmB,MAAAA,CAAOnuE,EAAGC,GACRhN,KAAK+gD,QAAQ56C,KAAK4G,EAAGC,EAAGmnB,KAAKC,MAC/B,CAKAnxB,GAAAA,GACE,GAAIjD,KAAK+gD,QAAQ1+C,OAAS,EAGxB,OAAO,EAET,MAAM4+F,EAAQ9sE,KAAKC,MAAQp0B,KAAKohG,OAC1BE,EAAYthG,KAAK+gD,QAAQ1+C,OAAS,EACxC,GAAIrC,KAAK+gD,QAAQugD,EAAY,GAAKL,EAGhC,OAAO,EAIT,IAAIM,EAAaD,EAAY,EAC7B,MAAOC,EAAa,GAAKvhG,KAAK+gD,QAAQwgD,EAAa,GAAKN,EACtDM,GAAc,EAGhB,MAAM/sE,EAAWx0B,KAAK+gD,QAAQugD,EAAY,GAAKthG,KAAK+gD,QAAQwgD,EAAa,GAIzE,GAAI/sE,EAAW,IAAO,GACpB,OAAO,EAGT,MAAMnnB,EAAKrN,KAAK+gD,QAAQugD,GAAathG,KAAK+gD,QAAQwgD,GAC5Cj0F,EAAKtN,KAAK+gD,QAAQugD,EAAY,GAAKthG,KAAK+gD,QAAQwgD,EAAa,GAGnE,OAFAvhG,KAAKqhD,OAASx0C,KAAK6Q,MAAMpQ,EAAID,GAC7BrN,KAAKqhG,iBAAmBx0F,KAAK8Q,KAAKtQ,EAAKA,EAAKC,EAAKA,GAAMknB,EAChDx0B,KAAKqhG,iBAAmBrhG,KAAKmhG,YACtC,CAKAjkF,WAAAA,GACE,OAAQld,KAAKmhG,aAAenhG,KAAKqhG,kBAAoBrhG,KAAKkhG,MAC5D,CAKAr/C,QAAAA,GACE,OAAO7hD,KAAKqhD,MACd,EAGF,UCxFA,MAAMmgD,WAAuBpH,GAI3Bp5F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/BzJ,MACgEyJ,GAOhElP,KAAKyhG,YAAc,EAMnBzhG,KAAK0hG,WAAa,EAMlB1hG,KAAKutB,eAAiCtmB,IAArBiI,EAAQuc,SAAyBvc,EAAQuc,SAAW,EAMrEzrB,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,IAMrEx0B,KAAK2hG,cAA+B16F,IAApBiI,EAAQ0yF,QAAwB1yF,EAAQ0yF,QAAU,GAMlE5hG,KAAK6hG,gBACmB56F,IAAtBiI,EAAQ4yF,WAA0B5yF,EAAQ4yF,UAM5C9hG,KAAK+hG,0BAC6B96F,IAAhCiI,EAAQqoB,qBACJroB,EAAQqoB,oBAGd,MAAMomE,EAAYzuF,EAAQyuF,UAAYzuF,EAAQyuF,UAAYtrC,GAM1DryD,KAAK49F,WAAa1uF,EAAQ2uF,YACtB3lB,GAAIskB,GAAmBmB,GACvBA,EAMJ39F,KAAKgiG,YAAc,KAMnBhiG,KAAKiiG,gBAAah7F,EAMlBjH,KAAKkiG,WAMLliG,KAAKmiG,WAAQl7F,EAQbjH,KAAKoiG,kBAAoB,IAMzBpiG,KAAKqiG,mBAOLriG,KAAKsiG,cAAgB,GACvB,CAKAC,eAAAA,GACEviG,KAAKqiG,wBAAqBp7F,EAC1B,MAAM61B,EAAM98B,KAAKysF,SACjB,IAAK3vD,EACH,OAEF,MAAMa,EAAOb,EAAIiB,UACjBJ,EAAK3C,oBACH/zB,EACAjH,KAAK0hG,WAAc1hG,KAAK0hG,WAAa,EAAI,GAAK,EAAK,EACnD1hG,KAAKgiG,YAET,CAQAn7F,WAAAA,CAAY2zF,GACV,IAAKx6F,KAAK49F,WAAWpD,GACnB,OAAO,EAET,MAAMv5F,EAAOu5F,EAAgBv5F,KAC7B,GAAIA,IAASwI,EAAUlB,MACrB,OAAO,EAGT,MAAMu0B,EAAM09D,EAAgB19D,IACtB0lE,EACJhI,EAAgBxL,cAUlB,IAAIzyE,EAWJ,GAnBAimF,EAAWnhG,iBAEPrB,KAAK6hG,aACP7hG,KAAKgiG,YAAcxH,EAAgBviF,YAMjCuiF,EAAgBv5F,MAAQwI,EAAUlB,QACpCgU,EAAQimF,EAAW36E,OACf7D,IAAWw+E,EAAWC,YAAcC,WAAWC,kBACjDpmF,GAAS8H,IAEPm+E,EAAWC,YAAcC,WAAWE,iBACtCrmF,GAAS,KAIC,IAAVA,EACF,OAAO,EAETvc,KAAK0hG,WAAanlF,EAElB,MAAM6X,EAAMD,KAAKC,WAEOntB,IAApBjH,KAAKiiG,aACPjiG,KAAKiiG,WAAa7tE,KAGfp0B,KAAKmiG,OAAS/tE,EAAMp0B,KAAKiiG,WAAajiG,KAAKoiG,qBAC9CpiG,KAAKmiG,MAAQt1F,KAAKgB,IAAI0O,GAAS,EAAI,WAAa,SAGlD,MAAMohB,EAAOb,EAAIiB,UACjB,GACiB,aAAf/9B,KAAKmiG,QACHxkE,EAAK7G,2BAA4B92B,KAAK+hG,qBAgBxC,OAdI/hG,KAAKqiG,mBACP9Q,aAAavxF,KAAKqiG,qBAEd1kE,EAAK7J,gBACP6J,EAAKrI,mBAEPqI,EAAK5C,oBAEP/6B,KAAKqiG,mBAAqB/mE,WACxBt7B,KAAKuiG,gBAAgB55F,KAAK3I,MAC1BA,KAAK2hG,UAEPhkE,EAAKrD,YAAY/d,EAAQvc,KAAKsiG,cAAetiG,KAAKgiG,aAClDhiG,KAAKiiG,WAAa7tE,GACX,EAGTp0B,KAAKyhG,aAAellF,EAEpB,MAAMsmF,EAAWh2F,KAAKD,IAAI5M,KAAK2hG,UAAYvtE,EAAMp0B,KAAKiiG,YAAa,GAQnE,OANA1Q,aAAavxF,KAAKkiG,YAClBliG,KAAKkiG,WAAa5mE,WAChBt7B,KAAK8iG,iBAAiBn6F,KAAK3I,KAAM88B,GACjC+lE,IAGK,CACT,CAMAC,gBAAAA,CAAiBhmE,GACf,MAAMa,EAAOb,EAAIiB,UACbJ,EAAK7J,gBACP6J,EAAKrI,mBAEP,IAAI/Y,GACD7P,EACC1M,KAAKyhG,aACJzhG,KAAKutB,UAAYvtB,KAAKsiG,cACvBtiG,KAAKutB,UAAYvtB,KAAKsiG,eACpBtiG,KAAKsiG,eACP3kE,EAAK7G,0BAA4B92B,KAAK+hG,wBAExCxlF,EAAQA,EAASA,EAAQ,EAAI,GAAK,EAAK,GAEzCo+E,GAAYh9D,EAAMphB,EAAOvc,KAAKgiG,YAAahiG,KAAKy4F,WAEhDz4F,KAAKmiG,WAAQl7F,EACbjH,KAAKyhG,YAAc,EACnBzhG,KAAKgiG,YAAc,KACnBhiG,KAAKiiG,gBAAah7F,EAClBjH,KAAKkiG,gBAAaj7F,CACpB,CAQA87F,cAAAA,CAAejB,GACb9hG,KAAK6hG,WAAaC,EACbA,IACH9hG,KAAKgiG,YAAc,KAEvB,EAGF,UCnRA,MAAMgB,WAAoB/H,GAIxBj6F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/B,MAAM+zF,EACJ/zF,EAGG+zF,EAAe3H,WAClB2H,EAAe3H,SAAWj3F,GAG5BoB,MAAMw9F,GAMNjjG,KAAKwoD,QAAU,KAMfxoD,KAAKq+F,gBAAap3F,EAMlBjH,KAAKkjG,WAAY,EAMjBljG,KAAKmjG,eAAiB,EAMtBnjG,KAAKojG,gBAAmCn8F,IAAtBiI,EAAQm0F,UAA0Bn0F,EAAQm0F,UAAY,GAMxErjG,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,GACvE,CAMA2mE,eAAAA,CAAgBX,GACd,IAAI8I,EAAgB,EAEpB,MAAMC,EAASvjG,KAAKw7F,eAAe,GAC7BgI,EAASxjG,KAAKw7F,eAAe,GAG7B7+E,EAAQ9P,KAAK6Q,MACjB8lF,EAAOlR,QAAUiR,EAAOjR,QACxBkR,EAAOnR,QAAUkR,EAAOlR,SAG1B,QAAwBprF,IAApBjH,KAAKq+F,WAA0B,CACjC,MAAM9hF,EAAQI,EAAQ3c,KAAKq+F,WAC3Br+F,KAAKmjG,gBAAkB5mF,GAClBvc,KAAKkjG,WAAar2F,KAAKgB,IAAI7N,KAAKmjG,gBAAkBnjG,KAAKojG,aAC1DpjG,KAAKkjG,WAAY,GAEnBI,EAAgB/mF,CAClB,CACAvc,KAAKq+F,WAAa1hF,EAElB,MAAMmgB,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UACbJ,EAAK9G,iBAAiB5c,WAAaqE,KAOvCte,KAAKwoD,QAAU1rB,EAAIqhE,+BACjBrhE,EAAIuyD,cAAc0O,GAAqB/9F,KAAKw7F,kBAI1Cx7F,KAAKkjG,YACPpmE,EAAIh9B,SACJ69B,EAAKnD,uBAAuB8oE,EAAetjG,KAAKwoD,UAEpD,CAOA6yC,aAAAA,CAAcb,GACZ,GAAIx6F,KAAKw7F,eAAen5F,OAAS,EAAG,CAClC,MAAMy6B,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UAEjB,OADAJ,EAAK3C,eAAeh7B,KAAKy4F,YAClB,CACT,CACA,OAAO,CACT,CAOAyC,eAAAA,CAAgBV,GACd,GAAIx6F,KAAKw7F,eAAen5F,QAAU,EAAG,CACnC,MAAMy6B,EAAM09D,EAAgB19D,IAQ5B,OAPA98B,KAAKwoD,QAAU,KACfxoD,KAAKq+F,gBAAap3F,EAClBjH,KAAKkjG,WAAY,EACjBljG,KAAKmjG,eAAiB,EACjBnjG,KAAKu7F,wBACRz+D,EAAIiB,UAAUhD,oBAET,CACT,CACA,OAAO,CACT,EAGF,UC3IA,MAAM0oE,WAAkBxI,GAItBj6F,WAAAA,CAAYkO,GACVA,EAAUA,GAAoB,CAAC,EAE/B,MAAM+zF,EACJ/zF,EAGG+zF,EAAe3H,WAClB2H,EAAe3H,SAAWj3F,GAG5BoB,MAAMw9F,GAMNjjG,KAAKwoD,QAAU,KAMfxoD,KAAKy4F,eAAiCxxF,IAArBiI,EAAQslB,SAAyBtlB,EAAQslB,SAAW,IAMrEx0B,KAAK0jG,mBAAgBz8F,EAMrBjH,KAAK2jG,gBAAkB,CACzB,CAMAxI,eAAAA,CAAgBX,GACd,IAAIoJ,EAAa,EAEjB,MAAML,EAASvjG,KAAKw7F,eAAe,GAC7BgI,EAASxjG,KAAKw7F,eAAe,GAC7BnuF,EAAKk2F,EAAOlR,QAAUmR,EAAOnR,QAC7B/kF,EAAKi2F,EAAOjR,QAAUkR,EAAOlR,QAG7BtjB,EAAWniE,KAAK8Q,KAAKtQ,EAAKA,EAAKC,EAAKA,QAEfrG,IAAvBjH,KAAK0jG,gBACPE,EAAa5jG,KAAK0jG,cAAgB10B,GAEpChvE,KAAK0jG,cAAgB10B,EAErB,MAAMlyC,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UAEC,GAAd6lE,IACF5jG,KAAK2jG,gBAAkBC,GAIzB5jG,KAAKwoD,QAAU1rB,EAAIqhE,+BACjBrhE,EAAIuyD,cAAc0O,GAAqB/9F,KAAKw7F,kBAI9C1+D,EAAIh9B,SACJ69B,EAAKtD,yBAAyBupE,EAAY5jG,KAAKwoD,QACjD,CAOA6yC,aAAAA,CAAcb,GACZ,GAAIx6F,KAAKw7F,eAAen5F,OAAS,EAAG,CAClC,MAAMy6B,EAAM09D,EAAgB19D,IACtBa,EAAOb,EAAIiB,UACXp7B,EAAY3C,KAAK2jG,gBAAkB,EAAI,GAAK,EAElD,OADAhmE,EAAK3C,eAAeh7B,KAAKy4F,UAAW91F,IAC7B,CACT,CACA,OAAO,CACT,CAOAu4F,eAAAA,CAAgBV,GACd,GAAIx6F,KAAKw7F,eAAen5F,QAAU,EAAG,CACnC,MAAMy6B,EAAM09D,EAAgB19D,IAO5B,OANA98B,KAAKwoD,QAAU,KACfxoD,KAAK0jG,mBAAgBz8F,EACrBjH,KAAK2jG,gBAAkB,EAClB3jG,KAAKu7F,wBACRz+D,EAAIiB,UAAUhD,oBAET,CACT,CACA,OAAO,CACT,EAGF,UCxEO,SAAS2+D,GAASxqF,GACvBA,EAAUA,GAAoB,CAAC,EAG/B,MAAM20F,EAAe,IAAIhqB,GAEnB0jB,EAAU,IAAIuD,IAAS,KAAO,IAAM,KAEpCgD,OAC2B78F,IAA/BiI,EAAQ40F,oBACJ50F,EAAQ40F,mBAEVA,GACFD,EAAa19F,KAAK,IAAIi4F,IAGxB,MAAM2F,OACwB98F,IAA5BiI,EAAQ60F,iBAAgC70F,EAAQ60F,gBAC9CA,GACFF,EAAa19F,KACX,IAAIy0F,GAAgB,CAClBr+E,MAAOrN,EAAQ80F,UACfxvE,SAAUtlB,EAAQ+0F,gBAKxB,MAAMC,OAA8Bj9F,IAApBiI,EAAQg1F,SAAwBh1F,EAAQg1F,QACpDA,GACFL,EAAa19F,KACX,IAAIk3F,GAAQ,CACVQ,YAAa3uF,EAAQ2uF,YACrBN,QAASA,KAKf,MAAM4G,OACoBl9F,IAAxBiI,EAAQi1F,aAA4Bj1F,EAAQi1F,YAC1CA,GACFN,EAAa19F,KAAK,IAAI68F,IAGxB,MAAMoB,OAAkCn9F,IAAtBiI,EAAQk1F,WAA0Bl1F,EAAQk1F,UACxDA,GACFP,EAAa19F,KACX,IAAIs9F,GAAU,CACZjvE,SAAUtlB,EAAQ+0F,gBAKxB,MAAMI,OAAgCp9F,IAArBiI,EAAQm1F,UAAyBn1F,EAAQm1F,SACtDA,IACFR,EAAa19F,KAAK,IAAIm6F,IACtBuD,EAAa19F,KACX,IAAI06F,GAAa,CACftkF,MAAOrN,EAAQ80F,UACfxvE,SAAUtlB,EAAQ+0F,iBAKxB,MAAMK,OACuBr9F,IAA3BiI,EAAQo1F,gBAA+Bp1F,EAAQo1F,eAC7CA,GACFT,EAAa19F,KACX,IAAIq7F,GAAe,CACjB3D,YAAa3uF,EAAQ2uF,YACrBrpE,SAAUtlB,EAAQ+0F,gBAKxB,MAAMM,OACsBt9F,IAA1BiI,EAAQq1F,eAA8Br1F,EAAQq1F,cAShD,OARIA,GACFV,EAAa19F,KACX,IAAI85F,GAAS,CACXzrE,SAAUtlB,EAAQ+0F,gBAKjBJ,CACT,CCWA,SAASW,GAAuBj0F,GAC1BA,aAAiB+rB,GACnB/rB,EAAMquB,eAAe,MAGnBruB,aAAiBq9E,IACnBr9E,EAAM29E,YAAYnvE,QAAQylF,GAE9B,CAMA,SAASC,GAAoBl0F,EAAOusB,GAClC,GAAIvsB,aAAiB+rB,GACnB/rB,EAAMquB,eAAe9B,QAGvB,GAAIvsB,aAAiBq9E,GAAY,CAC/B,MAAMH,EAASl9E,EAAM29E,YAAY9T,WACjC,IAAK,IAAIv3E,EAAI,EAAG+D,EAAK6mF,EAAOprF,OAAQQ,EAAI+D,IAAM/D,EAC5C4hG,GAAoBhX,EAAO5qF,GAAIi6B,EAEnC,CACF,CAsDA,MAAM4nE,WAAYn6F,EAIhBvJ,WAAAA,CAAYkO,GACVzJ,QAEAyJ,EAAUA,GAAW,CAAC,EAKtBlP,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAEL,MAAMs7F,EAAkBC,GAAsB11F,GAM9ClP,KAAK6kG,gBAML7kG,KAAK8kG,SAAU,EAGf9kG,KAAK+kG,yBAA2B/kG,KAAKglG,mBAAmBr8F,KAAK3I,MAM7DA,KAAKilG,sBACyBh+F,IAA5BiI,EAAQg2F,gBAAgCh2F,EAAQg2F,gBAAkB,GAMpEllG,KAAKqyC,iBACoBprC,IAAvBiI,EAAQ24B,WACJ34B,EAAQ24B,WACRxjB,GAMNrkB,KAAKmlG,yBAMLnlG,KAAKolG,mBAKLplG,KAAKqlG,gBAAkBrlG,KAAKqlG,gBAAgB18F,KAAK3I,MAMjDA,KAAKslG,4BAA8Bt9E,KAMnChoB,KAAKulG,4BAA8Bv9E,KAMnChoB,KAAKwlG,YAAc,EAMnBxlG,KAAKylG,YAAc,KAOnBzlG,KAAK0lG,gBAAkB,KAMvB1lG,KAAK2lG,yBAA2B,KAMhC3lG,KAAK4lG,uBAAyB,KAM9B5lG,KAAK6lG,gCAAkC,KAMvC7lG,KAAK8lG,UAAYz+E,SAASC,cAAc,OACxCtnB,KAAK8lG,UAAU91F,UACb,eAAiB,iBAAkBiV,OAAS,YAAc,IAC5DjlB,KAAK8lG,UAAUv+E,MAAMqS,SAAW,WAChC55B,KAAK8lG,UAAUv+E,MAAMmjC,SAAW,SAChC1qD,KAAK8lG,UAAUv+E,MAAMxL,MAAQ,OAC7B/b,KAAK8lG,UAAUv+E,MAAMvL,OAAS,OAM9Bhc,KAAK+lG,kBAAoB1+E,SAASC,cAAc,OAChDtnB,KAAK+lG,kBAAkBx+E,MAAMqS,SAAW,WACxC55B,KAAK+lG,kBAAkBx+E,MAAM9X,OAAS,IACtCzP,KAAK+lG,kBAAkBx+E,MAAMxL,MAAQ,OACrC/b,KAAK+lG,kBAAkBx+E,MAAMvL,OAAS,OACtChc,KAAK+lG,kBAAkBx+E,MAAMouE,cAAgB,OAC7C31F,KAAK+lG,kBAAkB/1F,UAAY,sBACnChQ,KAAK8lG,UAAU3jE,YAAYniC,KAAK+lG,mBAMhC/lG,KAAKgmG,2BAA6B3+E,SAASC,cAAc,OACzDtnB,KAAKgmG,2BAA2Bz+E,MAAMqS,SAAW,WACjD55B,KAAKgmG,2BAA2Bz+E,MAAM9X,OAAS,IAC/CzP,KAAKgmG,2BAA2Bz+E,MAAMxL,MAAQ,OAC9C/b,KAAKgmG,2BAA2Bz+E,MAAMvL,OAAS,OAC/Chc,KAAKgmG,2BAA2Bz+E,MAAMouE,cAAgB,OACtD31F,KAAKgmG,2BAA2Bh2F,UAAY,gCAC5ChQ,KAAK8lG,UAAU3jE,YAAYniC,KAAKgmG,4BAMhChmG,KAAKimG,wBAA0B,KAM/BjmG,KAAKuwF,eAAiBrhF,EAAQghF,cAM9BlwF,KAAKkmG,qBAAuBvB,EAAgBwB,oBAM5CnmG,KAAKomG,yBAA2B,KAMhCpmG,KAAKqmG,eAAiB,KAKtBrmG,KAAKsmG,gBAAkB,IAAIC,gBAAe,IAAMvmG,KAAKwmG,eAMrDxmG,KAAK25F,SAAWgL,EAAgBhL,UAAY8M,KAM5CzmG,KAAK6jG,aACHc,EAAgBd,cAChB6C,GAAoB,CAClB7I,aAAa,IAOjB79F,KAAK2mG,UAAYhC,EAAgBiC,SAOjC5mG,KAAK6mG,gBAAkB,CAAC,EAMxB7mG,KAAK28B,UAAY,KAMjB38B,KAAK8mG,qBAAuB,GAM5B9mG,KAAK+mG,WAAa,IAAIrS,GACpB10F,KAAKw1F,gBAAgB7sF,KAAK3I,MAC1BA,KAAKgnG,kBAAkBr+F,KAAK3I,OAG9BA,KAAKsL,kBACH27F,GAAYtU,WACZ3yF,KAAKknG,0BAEPlnG,KAAKsL,kBAAkB27F,GAAYnU,KAAM9yF,KAAKmnG,oBAC9CnnG,KAAKsL,kBAAkB27F,GAAYrU,KAAM5yF,KAAKonG,oBAC9CpnG,KAAKsL,kBAAkB27F,GAAYpU,OAAQ7yF,KAAKqnG,sBAIhDrnG,KAAK0K,cAAci6F,EAAgBn6F,QAEnC,MAAMsyB,EAAM98B,MACRkP,EAAQyuB,MAAUzuB,EAAQyuB,gBAAgB/M,IAC5C1hB,EAAQyuB,KAAK+L,MAAK,SAAU49D,GAC1BxqE,EAAIyqE,QAAQ,IAAI32E,GAAK02E,GACvB,IAGFtnG,KAAK25F,SAAS7zF,iBACZy0E,GAAoBd,KAInBpzE,IACCA,EAAM09B,QAAQhH,OAAO/8B,KAAK,IAI9BA,KAAK25F,SAAS7zF,iBACZy0E,GAAoBb,QAInBrzE,IACCA,EAAM09B,QAAQhH,OAAO,KAAK,IAI9B/8B,KAAK6jG,aAAa/9F,iBAChBy0E,GAAoBd,KAInBpzE,IACCA,EAAM09B,QAAQhH,OAAO/8B,KAAK,IAI9BA,KAAK6jG,aAAa/9F,iBAChBy0E,GAAoBb,QAInBrzE,IACCA,EAAM09B,QAAQhH,OAAO,KAAK,IAI9B/8B,KAAK2mG,UAAU7gG,iBACby0E,GAAoBd,KAInBpzE,IACCrG,KAAKwnG,oBAAoBnhG,EAAM09B,QAAQ,IAI3C/jC,KAAK2mG,UAAU7gG,iBACby0E,GAAoBb,QAInBrzE,IACC,MAAMwiC,EAAKxiC,EAAM09B,QAAQq8C,aACdn5E,IAAP4hC,UACK7oC,KAAK6mG,gBAAgBh+D,EAAG5hB,YAEjC5gB,EAAM09B,QAAQhH,OAAO,KAAK,IAI9B/8B,KAAK25F,SAAS56E,SAIX0oF,IACCA,EAAQ1qE,OAAO/8B,KAAK,IAIxBA,KAAK6jG,aAAa9kF,SAIf2oF,IACCA,EAAY3qE,OAAO/8B,KAAK,IAI5BA,KAAK2mG,UAAU5nF,QAAQ/e,KAAKwnG,oBAAoB7+F,KAAK3I,MACvD,CAOA2nG,UAAAA,CAAWF,GACTznG,KAAK4nG,cAAczhG,KAAKshG,EAC1B,CAWAI,cAAAA,CAAeH,GACb1nG,KAAK8nG,kBAAkB3hG,KAAKuhG,EAC9B,CASAK,QAAAA,CAASx3F,GACP,MAAMk9E,EAASztF,KAAKi+B,gBAAgBiwD,YACpCT,EAAOtnF,KAAKoK,EACd,CAMAy3F,eAAAA,CAAgB3hG,GACdo+F,GAAoBp+F,EAAMkK,MAAOvQ,KACnC,CAOAioG,UAAAA,CAAWC,GACTloG,KAAKmoG,cAAchiG,KAAK+hG,EAC1B,CAOAV,mBAAAA,CAAoBU,GAClB,MAAMr/D,EAAKq/D,EAAQ9nB,aACRn5E,IAAP4hC,IACF7oC,KAAK6mG,gBAAgBh+D,EAAG5hB,YAAcihF,GAExCA,EAAQnrE,OAAO/8B,KACjB,CAMA2B,eAAAA,GACE3B,KAAK25F,SAASv0F,QACdpF,KAAK6jG,aAAaz+F,QAClBpF,KAAK2mG,UAAUvhG,QACfpF,KAAKsmG,gBAAgB8B,aACrBpoG,KAAK61F,UAAU,MACfpwF,MAAM9D,iBACR,CAoBA0mG,qBAAAA,CAAsB/qE,EAAOpkB,EAAUhK,GACrC,IAAKlP,KAAKylG,cAAgBzlG,KAAK28B,UAC7B,OAEF,MAAM1kB,EAAajY,KAAKm+F,+BAA+B7gE,GACvDpuB,OAAsBjI,IAAZiI,EAAwBA,EAAU,CAAC,EAC7C,MAAM6xB,OACqB95B,IAAzBiI,EAAQ6xB,aAA6B7xB,EAAQ6xB,aAAe,EACxDkrD,OACoBhlF,IAAxBiI,EAAQ+8E,YAA4B/8E,EAAQ+8E,YAAc7nF,EACtD4nF,GAAwC,IAAzB98E,EAAQ88E,aAC7B,OAAOhsF,KAAK28B,UAAUmE,2BACpB7oB,EACAjY,KAAKylG,YACL1kE,EACAirD,EACA9yE,EACA,KACA+yE,EACA,KAEJ,CAUAqc,kBAAAA,CAAmBhrE,EAAOpuB,GACxB,MAAMgkE,EAAW,GAQjB,OAPAlzE,KAAKqoG,sBACH/qE,GACA,SAAUipB,GACR2sB,EAAS/sE,KAAKogD,EAChB,GACAr3C,GAEKgkE,CACT,CAOAykB,YAAAA,GACE,MAAMlK,EAAS,GACf,SAAS8a,EAAcC,GACrBA,EAAWzpF,SAAQ,SAAUxO,GACvBA,aAAiBq9E,GACnB2a,EAAch4F,EAAM29E,aAEpBT,EAAOtnF,KAAKoK,EAEhB,GACF,CAEA,OADAg4F,EAAcvoG,KAAKkuF,aACZT,CACT,CAUAgb,iBAAAA,CAAkBnrE,EAAOpuB,GACvB,IAAKlP,KAAKylG,cAAgBzlG,KAAK28B,UAC7B,OAAO,EAET,MAAM1kB,EAAajY,KAAKm+F,+BAA+B7gE,GACvDpuB,OAAsBjI,IAAZiI,EAAwBA,EAAU,CAAC,EAC7C,MAAM+8E,OACoBhlF,IAAxBiI,EAAQ+8E,YAA4B/8E,EAAQ+8E,YAAc7nF,EACtD28B,OACqB95B,IAAzBiI,EAAQ6xB,aAA6B7xB,EAAQ6xB,aAAe,EACxDirD,GAAwC,IAAzB98E,EAAQ88E,aAC7B,OAAOhsF,KAAK28B,UAAU6vD,uBACpBv0E,EACAjY,KAAKylG,YACL1kE,EACAirD,EACAC,EACA,KAEJ,CAQAyc,kBAAAA,CAAmBriG,GACjB,OAAOrG,KAAKsvF,uBAAuBtvF,KAAKqvF,cAAchpF,GACxD,CAOAsiG,0BAAAA,CAA2BtiG,GACzB,OAAOrG,KAAKm+F,+BAA+Bn+F,KAAKqvF,cAAchpF,GAChE,CAQAgpF,aAAAA,CAAchpF,GACZ,MAAMkwC,EAAWv2C,KAAK8lG,UAChB8C,EAAmBryD,EAASsyD,wBAC5B3mF,EAAeliB,KAAKk0C,UACpB40D,EAASF,EAAiB7sF,MAAQmG,EAAa,GAC/C6mF,EAASH,EAAiB5sF,OAASkG,EAAa,GAChD8mF,EAEJ,mBAAoB3iG,EACWA,EAAO4iG,eAAe,GACtB5iG,EAEjC,MAAO,EACJ2iG,EAAc3W,QAAUuW,EAAiBjiE,MAAQmiE,GACjDE,EAAc1W,QAAUsW,EAAiB/J,KAAOkK,EAErD,CAWAG,SAAAA,GACE,OACElpG,KAAK2K,IAAIs8F,GAAYpU,OAEzB,CASAyJ,gBAAAA,GACE,OAAOt8F,KAAKqmG,cACd,CASA/W,sBAAAA,CAAuBhyD,GACrB,OAAO3c,GACL3gB,KAAKm+F,+BAA+B7gE,GACpCt9B,KAAK+9B,UAAUxU,gBAEnB,CAQA40E,8BAAAA,CAA+B7gE,GAC7B,MAAMM,EAAa59B,KAAKylG,YACxB,OAAK7nE,EAGE/hB,GAAe+hB,EAAWwX,2BAA4B9X,EAAMv4B,SAF1D,IAGX,CAQA6iG,WAAAA,GACE,OAAO5nG,KAAK25F,QACd,CAQAwO,WAAAA,GACE,OAAOnoG,KAAK2mG,SACd,CAUAwC,cAAAA,CAAetgE,GACb,MAAMq/D,EAAUloG,KAAK6mG,gBAAgBh+D,EAAG5hB,YACxC,YAAmBhgB,IAAZihG,EAAwBA,EAAU,IAC3C,CAUAJ,eAAAA,GACE,OAAO9nG,KAAK6jG,YACd,CAQA5lE,aAAAA,GACE,OAAkCj+B,KAAK2K,IAAIs8F,GAAYtU,WACzD,CAOA3E,SAAAA,CAAUP,GACR,MAAM2b,EAAQppG,KAAKi+B,gBACnB,GAAIwvD,aAAkB5T,GAEpB,YADAuvB,EAAMpb,UAAUP,GAIlB,MAAMxO,EAAamqB,EAAMlb,YACzBjP,EAAW75E,QACX65E,EAAW97E,OAAOsqF,EACpB,CAOAS,SAAAA,GACE,MAAMT,EAASztF,KAAKi+B,gBAAgBiwD,YACpC,OAAOT,CACT,CAKA4b,oBAAAA,GACE,MAAMrrE,EAAmBh+B,KAAKi+B,gBAAgB9sB,sBAC9C,IAAK,IAAItO,EAAI,EAAG+D,EAAKo3B,EAAiB37B,OAAQQ,EAAI+D,IAAM/D,EAAG,CACzD,MAAMyN,EAAQ0tB,EAAiBn7B,GAC/B,IAAKyN,EAAMd,QACT,SAEF,MAAMm2C,EAAWr1C,EAAMC,MAAMiuB,cAC7B,GAAImnB,IAAaA,EAASzlB,MACxB,OAAO,EAET,MAAMv0B,EAAS2E,EAAMC,MAAM2sB,YAC3B,GAAIvxB,GAAUA,EAAO4pE,QACnB,OAAO,CAEX,CACA,OAAO,CACT,CASA+zB,sBAAAA,CAAuBrxF,GACrB,MAAMsxF,EAAiB3oF,GACrB3I,EACAjY,KAAK+9B,UAAUxU,iBAEjB,OAAOvpB,KAAKk+F,+BAA+BqL,EAC7C,CAQArL,8BAAAA,CAA+BjmF,GAC7B,MAAM2lB,EAAa59B,KAAKylG,YACxB,OAAK7nE,EAGE/hB,GACL+hB,EAAWsJ,2BACXjvB,EAAWlT,MAAM,EAAG,IAJb,IAMX,CAMAy5B,WAAAA,GACE,OAAOx+B,KAAK28B,SACd,CAQAuX,OAAAA,GACE,OACEl0C,KAAK2K,IAAIs8F,GAAYrU,KAEzB,CASA70D,OAAAA,GACE,OAA4B/9B,KAAK2K,IAAIs8F,GAAYnU,KACnD,CAOA7F,WAAAA,GACE,OAAOjtF,KAAK8lG,SACd,CASAhH,mBAAAA,GACE,OAAO9+F,KAAK+lG,iBACd,CASAjQ,4BAAAA,GACE,OAAO91F,KAAKgmG,0BACd,CAKAhU,gBAAAA,GACE,MAAMqK,EAAgBr8F,KAAKs8F,mBAC3B,OAAOD,EAAgBA,EAAcmN,cAAgBniF,QACvD,CASAmuE,eAAAA,CAAgB/0D,EAAMyY,EAAeu8C,EAAY7/C,GAC/C,OAAO4/C,GACLx1F,KAAKylG,YACLhlE,EACAyY,EACAu8C,EACA7/C,EAEJ,CAMAovD,kBAAAA,CAAmBjK,EAAc95F,GAC/BA,EAAOA,GAAQ85F,EAAa95F,KAC5B,MAAMu5F,EAAkB,IAAIzL,GAAgB9tF,EAAMjB,KAAM+6F,GACxD/6F,KAAKypG,sBAAsBjP,EAC7B,CAKAiP,qBAAAA,CAAsBjP,GACpB,IAAKx6F,KAAKylG,YAGR,OAEF,MAAMzW,EACJwL,EAAgBxL,cAEZ5jF,EAAY4jF,EAAc/tF,KAChC,GACEmK,IAAcwlF,GAAiBlB,aAC/BtkF,IAAc3B,EAAUlB,OACxB6C,IAAc3B,EAAUvB,QACxB,CACA,MAAM6pF,EAAM/xF,KAAKgyF,mBACX0X,EAAW1pG,KAAK8lG,UAAU5T,YAC5BlyF,KAAK8lG,UAAU5T,cACfH,EACE3wF,EAA8B4tF,EAAc5tF,OAClD,GAGEpB,KAAKgmG,2BAA2BhyD,SAAS5yC,MAKvCsoG,IAAa3X,EAAMA,EAAI4X,gBAAkBD,GAAU11D,SAAS5yC,GAE9D,MAEJ,CAEA,GADAo5F,EAAgB58D,WAAa59B,KAAKylG,aACU,IAAxCzlG,KAAKoG,cAAco0F,GAA4B,CACjD,MAAMoP,EAAoB5pG,KAAK8nG,kBAAkB1tB,WAAWr1E,QAC5D,IAAK,IAAIlC,EAAI+mG,EAAkBvnG,OAAS,EAAGQ,GAAK,EAAGA,IAAK,CACtD,MAAM6kG,EAAckC,EAAkB/mG,GACtC,GACE6kG,EAAYjb,WAAazsF,OACxB0nG,EAAYpN,cACZt6F,KAAKs8F,mBAEN,SAEF,MAAMuN,EAAOnC,EAAY7gG,YAAY2zF,GACrC,IAAKqP,GAAQrP,EAAgBt5F,mBAC3B,KAEJ,CACF,CACF,CAKA4oG,gBAAAA,GACE,MAAMlsE,EAAa59B,KAAKylG,YAWlBlsD,EAAYv5C,KAAK+mG,WACvB,IAAKxtD,EAAUh0C,UAAW,CACxB,IAAI8vF,EAAkBr1F,KAAKilG,iBACvB3P,EAAcD,EAClB,GAAIz3D,EAAY,CACd,MAAM5G,EAAQ4G,EAAW05C,UACzB,GAAItgD,EAAM7B,EAAS9iB,YAAc2kB,EAAM7B,EAAS7iB,aAAc,CAC5D,MAAMy3F,EAAmB51E,KAAKC,MAAQwJ,EAAWkL,KAAO,EACxDusD,EAAkB0U,EAAmB,EAAI,EACzCzU,EAAcyU,EAAmB,EAAI,CACvC,CACF,CACIxwD,EAAU27C,kBAAoBG,IAChC97C,EAAUk7C,eACVl7C,EAAU67C,cAAcC,EAAiBC,GAE7C,CAEI13D,GAAc59B,KAAK28B,YAAciB,EAAWjK,WACjB,IAAzB3zB,KAAK6kG,iBACH7kG,KAAKkH,YAAY23B,EAAgBzsB,iBACnCpS,KAAK28B,UAAUmvD,oBACbjtD,EAAgBzsB,eAChBwrB,IAGiB,IAAjB59B,KAAK8kG,UACP9kG,KAAK8kG,SAAU,EACf9kG,KAAKoG,cACH,IAAI0oF,GAASiH,GAAarD,QAAS1yF,KAAM49B,OAGnB,IAAjB59B,KAAK8kG,UACd9kG,KAAK8kG,SAAU,EACf9kG,KAAKoG,cACH,IAAI0oF,GAASiH,GAAatD,UAAWzyF,KAAM49B,MAKjD,MAAMwb,EAAsBp5C,KAAK8mG,qBACjC,IAAK,IAAIjkG,EAAI,EAAG+D,EAAKwyC,EAAoB/2C,OAAQQ,EAAI+D,IAAM/D,EACzDu2C,EAAoBv2C,GAAG7C,KAAM49B,GAE/Bwb,EAAoB/2C,OAAS,CAC/B,CAKA+kG,kBAAAA,GACMpnG,KAAK+9B,YAAc/9B,KAAK+9B,UAAUjK,gBACpC9zB,KAAK+9B,UAAUhK,mBAAmB,GAGpC/zB,KAAKF,QACP,CAKAunG,oBAAAA,GACE,GAAIrnG,KAAKimG,wBAAyB,CAChC,IAAK,IAAIpjG,EAAI,EAAG+D,EAAK5G,KAAKomG,yBAAyB/jG,OAAQQ,EAAI+D,IAAM/D,EACnEkG,EAAc/I,KAAKomG,yBAAyBvjG,IAE9C7C,KAAKomG,yBAA2B,KAChCpmG,KAAK8lG,UAAU/+F,oBACb0C,EAAU9B,YACV3H,KAAK+kG,0BAEP/kG,KAAK8lG,UAAU/+F,oBACb0C,EAAUlB,MACVvI,KAAK+kG,0BAEP/kG,KAAKimG,wBAAwBvkG,UAC7B1B,KAAKimG,wBAA0B,KAC/BphE,GAAW7kC,KAAK8lG,UAClB,CAEA,GAAI9lG,KAAKqmG,eAAgB,CACvBrmG,KAAKsmG,gBAAgB0D,UAAUhqG,KAAKqmG,gBACpC,MAAMqD,EAAW1pG,KAAKqmG,eAAenU,cACjCwX,aAAoBO,YACtBjqG,KAAKsmG,gBAAgB0D,UAAUN,EAASQ,MAE1ClqG,KAAKmnD,aAAQlgD,EACf,CAOA,MAAM7F,EAASpB,KAAKkpG,YACd7M,EACc,kBAAXj7F,EAAsBimB,SAAS4uE,eAAe70F,GAAUA,EAEjE,GADApB,KAAKqmG,eAAiBhK,EACjBA,EAYE,CACLA,EAAcl6D,YAAYniC,KAAK8lG,WAC1B9lG,KAAK28B,YACR38B,KAAK28B,UAAY,IAAIkwD,GAAqB7sF,OAG5CA,KAAKimG,wBAA0B,IAAIhW,GACjCjwF,KACAA,KAAKuwF,gBAEP,IAAK,MAAMvnF,KAAOsoF,GAChBtxF,KAAKimG,wBAAwBngG,iBAC3BwrF,GAAoBtoF,GACpBhJ,KAAKypG,sBAAsB9gG,KAAK3I,OAGpCA,KAAK8lG,UAAUhgG,iBACb2D,EAAU9B,YACV3H,KAAK+kG,0BACL,GAEF/kG,KAAK8lG,UAAUhgG,iBACb2D,EAAUlB,MACVvI,KAAK+kG,2BACLjgF,IAA0B,CAACC,SAAS,IAGtC,MAAMohF,EAAuBnmG,KAAKkmG,qBAE9BlmG,KAAKkmG,qBADL7J,EAEJr8F,KAAKomG,yBAA2B,CAC9B59F,EACE29F,EACA18F,EAAUvB,QACVlI,KAAKglG,mBACLhlG,MAEFwI,EACE29F,EACA18F,EAAUtB,SACVnI,KAAKglG,mBACLhlG,OAGJ,MAAM0pG,EAAWrN,EAAcnK,cAC3BwX,aAAoBO,YACtBjqG,KAAKsmG,gBAAgB6D,QAAQT,EAASQ,MAExClqG,KAAKsmG,gBAAgB6D,QAAQ9N,EAC/B,MA5DMr8F,KAAK28B,YACP40D,aAAavxF,KAAKmlG,0BAClBnlG,KAAKmlG,8BAA2Bl+F,EAChCjH,KAAK8mG,qBAAqBzkG,OAAS,EACnCrC,KAAK28B,UAAUj7B,UACf1B,KAAK28B,UAAY,MAEf38B,KAAKolG,qBACP7vE,qBAAqBv1B,KAAKolG,oBAC1BplG,KAAKolG,wBAAqBn+F,GAqD9BjH,KAAKwmG,YAGP,CAKAQ,iBAAAA,GACEhnG,KAAKF,QACP,CAKAsqG,0BAAAA,GACEpqG,KAAKF,QACP,CAKAqnG,kBAAAA,GACMnnG,KAAK2lG,2BACP58F,EAAc/I,KAAK2lG,0BACnB3lG,KAAK2lG,yBAA2B,MAE9B3lG,KAAK4lG,yBACP78F,EAAc/I,KAAK4lG,wBACnB5lG,KAAK4lG,uBAAyB,MAEhC,MAAMjoE,EAAO39B,KAAK+9B,UACdJ,IACF39B,KAAKqqG,sBAELrqG,KAAK2lG,yBAA2Bn9F,EAC9Bm1B,EACAtyB,EAAgB9J,eAChBvB,KAAKoqG,2BACLpqG,MAEFA,KAAK4lG,uBAAyBp9F,EAC5Bm1B,EACAl0B,EAAUlC,OACVvH,KAAKoqG,2BACLpqG,MAGF29B,EAAK5J,mBAAmB,IAE1B/zB,KAAKF,QACP,CAKAonG,wBAAAA,GACMlnG,KAAK6lG,kCACP7lG,KAAK6lG,gCAAgC9mF,QAAQhW,GAC7C/I,KAAK6lG,gCAAkC,MAEzC,MAAM2C,EAAaxoG,KAAKi+B,gBACpBuqE,IACFxoG,KAAKgoG,gBAAgB,IAAIta,GAAW,WAAY8a,IAChDxoG,KAAK6lG,gCAAkC,CACrCr9F,EAAOggG,EAAYn9F,EAAgB9J,eAAgBvB,KAAKF,OAAQE,MAChEwI,EAAOggG,EAAY/+F,EAAUlC,OAAQvH,KAAKF,OAAQE,MAClDwI,EAAOggG,EAAY,WAAYxoG,KAAKgoG,gBAAiBhoG,MACrDwI,EAAOggG,EAAY,cAAexoG,KAAKsqG,mBAAoBtqG,QAG/DA,KAAKF,QACP,CAKAyqG,UAAAA,GACE,QAASvqG,KAAKylG,WAChB,CAKAJ,eAAAA,GACErlG,KAAKolG,wBAAqBn+F,EAC1BjH,KAAKwqG,aAAar2E,KAAKC,MACzB,CAMAq2E,UAAAA,GACMzqG,KAAKolG,oBACP7vE,qBAAqBv1B,KAAKolG,oBAE5BplG,KAAKqlG,iBACP,CAKAtY,UAAAA,GACE,MAAMV,EAAcrsF,KAAKi+B,gBAAgB9sB,sBACzC,IAAK,IAAItO,EAAI,EAAG+D,EAAKylF,EAAYhqF,OAAQQ,EAAI+D,IAAM/D,EAAG,CACpD,MAAM0N,EAAQ87E,EAAYxpF,GAAG0N,MACzBA,EAAM2uB,eACR3uB,EAAMiuB,cAAc0C,oBAExB,CACF,CAMAphC,MAAAA,GACME,KAAK28B,gBAAyC11B,IAA5BjH,KAAKolG,qBACzBplG,KAAKolG,mBAAqB/uE,sBAAsBr2B,KAAKqlG,iBAEzD,CASA3Y,mBAAAA,GACE,MAAM9uD,EAAa59B,KAAKylG,YACnB7nE,GAGL59B,KAAK28B,UAAU+vD,oBAAoB9uD,EACrC,CASA8sE,aAAAA,CAAcjD,GACZ,OAAOznG,KAAK4nG,cAAcntB,OAAOgtB,EACnC,CASAkD,iBAAAA,CAAkBjD,GAChB,OAAO1nG,KAAK8nG,kBAAkBrtB,OAAOitB,EACvC,CASAkD,WAAAA,CAAYr6F,GACV,MAAMk9E,EAASztF,KAAKi+B,gBAAgBiwD,YACpC,OAAOT,EAAOhT,OAAOlqE,EACvB,CAMA+5F,kBAAAA,CAAmBjkG,GACjBm+F,GAAuBn+F,EAAMkK,MAC/B,CASAs6F,aAAAA,CAAc3C,GACZ,OAAOloG,KAAKmoG,cAAc1tB,OAAOytB,EACnC,CAMAsC,YAAAA,CAAa1hE,GACX,MAAM5uB,EAAOla,KAAKk0C,UACZvW,EAAO39B,KAAK+9B,UACZ+sE,EAAqB9qG,KAAKylG,YAEhC,IAAI7nE,EAAa,KACjB,QAAa32B,IAATiT,GAAsBi6B,GAAQj6B,IAASyjB,GAAQA,EAAK9J,QAAS,CAC/D,MAAMyjD,EAAY35C,EAAK5G,SACrB/2B,KAAKylG,YAAczlG,KAAKylG,YAAYnuB,eAAYrwE,GAE5CqxB,EAAYqF,EAAK5F,WA2BvB,GA1BA6F,EAAa,CACXjK,SAAS,EACTuT,2BAA4BlnC,KAAKslG,4BACjCpsC,cAAe,KACfvoD,OAAQoJ,GACNue,EAAUte,OACVse,EAAUljB,WACVkjB,EAAUre,SACVC,GAEFhW,MAAOlE,KAAKwlG,cACZ1vD,WAAY,EACZ9X,iBAAkBh+B,KAAKi+B,gBAAgB9sB,sBACvC02B,WAAY7nC,KAAKqyC,YACjB+C,2BAA4Bp1C,KAAKulG,4BACjCnsD,oBAAqB,GACrBl/B,KAAMA,EACNq/B,UAAWv5C,KAAK+mG,WAChBj+D,KAAMA,EACN2P,UAAW,CAAC,EACZngB,UAAWA,EACXg/C,UAAWA,EACXh+B,YAAa,CAAC,EACdyxD,MAAO9gG,EAAOjK,MACdgrG,cAAe,CAAC,GAEd1yE,EAAUJ,YAAcI,EAAUH,eAAgB,CACpD,MAAMle,EAAWiP,MAAMoP,EAAUF,cAC7BE,EAAUre,SACVqe,EAAUF,aAEdwF,EAAWqtE,WAAalxF,GACtBue,EAAUJ,WACVI,EAAUH,eACVle,EACAC,EAEJ,CACF,CAKA,GAHAla,KAAKylG,YAAc7nE,EACnB59B,KAAK28B,UAAU+B,YAAYd,GAEvBA,EAAY,CASd,GARIA,EAAWjK,SACb3zB,KAAKF,SAEPwD,MAAMwB,UAAUqB,KAAKhB,MACnBnF,KAAK8mG,qBACLlpE,EAAWwb,qBAGT0xD,EAAoB,CACtB,MAAMI,GACHlrG,KAAK0lG,kBACJngG,GAAQvF,KAAK0lG,mBACZyF,GAAavtE,EAAWjtB,OAAQ3Q,KAAK0lG,iBACtCwF,IACFlrG,KAAKoG,cACH,IAAI0oF,GAASiH,GAAaxD,UAAWvyF,KAAM8qG,IAE7C9qG,KAAK0lG,gBAAkBjtF,GAAoBzY,KAAK0lG,iBAEpD,CAEA,MAAM0F,EACJprG,KAAK0lG,kBACJ9nE,EAAW05C,UAAUniD,EAAS9iB,aAC9BurB,EAAW05C,UAAUniD,EAAS7iB,eAC9B64F,GAAavtE,EAAWjtB,OAAQ3Q,KAAK0lG,iBAEpC0F,IACFprG,KAAKoG,cACH,IAAI0oF,GAASiH,GAAavD,QAASxyF,KAAM49B,IAE3C9lB,GAAM8lB,EAAWjtB,OAAQ3Q,KAAK0lG,iBAElC,CAEA1lG,KAAKoG,cAAc,IAAI0oF,GAASiH,GAAa9jF,WAAYjS,KAAM49B,IAE/D59B,KAAK6kG,gBACH7kG,KAAKkH,YAAY6uF,GAAatD,YAC9BzyF,KAAKkH,YAAY6uF,GAAarD,UAC9B1yF,KAAKkH,YAAY23B,EAAgBzsB,iBAC5BpS,KAAK+mG,WAAW7R,oBAChBl1F,KAAK+mG,WAAWhkB,aAChB/iF,KAAKqpG,4BACNpiG,EAEDjH,KAAKmlG,2BACRnlG,KAAKmlG,yBAA2B7pE,YAAW,KACzCt7B,KAAKmlG,8BAA2Bl+F,EAChCjH,KAAK8pG,kBAAkB,GACtB,GAEP,CAQAuB,aAAAA,CAAc7C,GACZ,MAAM8C,EAAgBtrG,KAAKi+B,gBACvBqtE,GACFtrG,KAAKsqG,mBAAmB,IAAI5c,GAAW,cAAe4d,IAExDtrG,KAAKwL,IAAIy7F,GAAYtU,WAAY6V,EACnC,CAQArhD,OAAAA,CAAQjtC,GACNla,KAAKwL,IAAIy7F,GAAYrU,KAAM14E,EAC7B,CASA27E,SAAAA,CAAUz0F,GACRpB,KAAKwL,IAAIy7F,GAAYpU,OAAQzxF,EAC/B,CAWAmmG,OAAAA,CAAQ5pE,GACN,IAAKA,GAAQA,aAAgB/M,GAE3B,YADA5wB,KAAKwL,IAAIy7F,GAAYnU,KAAMn1D,GAG7B39B,KAAKwL,IAAIy7F,GAAYnU,KAAM,IAAIliE,IAE/B,MAAMkM,EAAM98B,KACZ29B,EAAK+L,MAAK,SAAU49D,GAClBxqE,EAAIyqE,QAAQ,IAAI32E,GAAK02E,GACvB,GACF,CAOAd,UAAAA,GACE,MAAMnK,EAAgBr8F,KAAKs8F,mBAE3B,IAAIpiF,EACJ,GAAImiF,EAAe,CACjB,MAAMkP,EAAgBlpE,iBAAiBg6D,GACjCtgF,EACJsgF,EAAcr4D,YACdwnE,WAAWD,EAAc,oBACzBC,WAAWD,EAAc,gBACzBC,WAAWD,EAAc,iBACzBC,WAAWD,EAAc,qBACrBvvF,EACJqgF,EAAcj4D,aACdonE,WAAWD,EAAc,mBACzBC,WAAWD,EAAc,eACzBC,WAAWD,EAAc,kBACzBC,WAAWD,EAAc,sBACtBriF,MAAMnN,IAAWmN,MAAMlN,KAC1B9B,EAAO,CAAC6B,EAAOC,IAEZm4B,GAAQj6B,KAEPmiF,EAAcr4D,aACdq4D,EAAcj4D,cACdi4D,EAAcoP,iBAAiBppG,SAGjCyb,GACE,qEAIR,CAEA,MAAM4tF,EAAU1rG,KAAKk0C,WACjBh6B,GAAUwxF,GAAYloG,EAAO0W,EAAMwxF,KACrC1rG,KAAKmnD,QAAQjtC,GACbla,KAAKqqG,sBAET,CAMAA,mBAAAA,GACE,MAAM1sE,EAAO39B,KAAK+9B,UAClB,GAAIJ,EAAM,CACR,IAAIzjB,EACJ,MAAMqxF,EAAgBlpE,iBAAiBriC,KAAK8lG,WACxCyF,EAAcxvF,OAASwvF,EAAcvvF,SACvC9B,EAAO,CACL8oB,SAASuoE,EAAcxvF,MAAO,IAC9BinB,SAASuoE,EAAcvvF,OAAQ,MAGnC2hB,EAAK/G,gBAAgB1c,EACvB,CACF,EAOF,SAAS0qF,GAAsB11F,GAI7B,IAAIi3F,EAAsB,UACUl/F,IAAhCiI,EAAQi3F,sBACVA,EACyC,kBAAhCj3F,EAAQi3F,oBACX9+E,SAAS4uE,eAAe/mF,EAAQi3F,qBAChCj3F,EAAQi3F,qBAMhB,MAAM37F,EAAS,CAAC,EAEVg+F,EACJt5F,EAAQu+E,QACiD,oBAA/Bv+E,EAAQu+E,OAAQS,UACXh/E,EAAQu+E,OACnC,IAAIG,GAAW,CACbH,OAEIv+E,EAAQu+E,SAWpB,IAAIkM,EAcAkK,EAeA+C,EAeJ,OApDAp8F,EAAOy8F,GAAYtU,YAAc6V,EAEjCh+F,EAAOy8F,GAAYpU,QAAU3jF,EAAQ9N,OAErCoJ,EAAOy8F,GAAYnU,MACjB5jF,EAAQyuB,gBAAgB/M,GAAO1hB,EAAQyuB,KAAO,IAAI/M,QAI3B3pB,IAArBiI,EAAQyqF,WACNr2F,MAAMC,QAAQ2L,EAAQyqF,UACxBA,EAAW,IAAI9f,GAAW3qE,EAAQyqF,SAAS50F,UAE3CwH,EAC4D,oBAAhC2C,EAAQyqF,SAAUvf,SAC5C,+DAEFuf,EAAWzqF,EAAQyqF,gBAMM1yF,IAAzBiI,EAAQ20F,eACNvgG,MAAMC,QAAQ2L,EAAQ20F,cACxBA,EAAe,IAAIhqB,GAAW3qE,EAAQ20F,aAAa9+F,UAEnDwH,EAEI,oBADwB2C,EAAQ20F,aAAczpB,SAEhD,mEAEFypB,EAAe30F,EAAQ20F,oBAMF58F,IAArBiI,EAAQ03F,SACNtjG,MAAMC,QAAQ2L,EAAQ03F,UACxBA,EAAW,IAAI/sB,GAAW3qE,EAAQ03F,SAAS7hG,UAE3CwH,EAC4D,oBAAhC2C,EAAQ03F,SAAUxsB,SAC5C,+DAEFwsB,EAAW13F,EAAQ03F,UAGrBA,EAAW,IAAI/sB,GAGV,CACL8f,SAAUA,EACVkK,aAAcA,EACdsC,oBAAqBA,EACrBS,SAAUA,EACVp8F,OAAQA,EAEZ,CACA,UCzvDA,MAAMotD,GAAW,CACf+zC,QAAS,UACTr/F,IAAK,MACLs/F,OAAQ,SACRC,SAAU,WACVC,YAAa,eAoCf,MAAMC,WAAgBxhG,EAIpBvJ,WAAAA,CAAYkO,GACVzJ,QAKAzF,KAAKO,GAKLP,KAAK0I,KAKL1I,KAAKqJ,GAMLrJ,KAAKkP,QAAUA,EAMflP,KAAK6oC,GAAK35B,EAAQ25B,GAMlB7oC,KAAKgsG,iBACqB/kG,IAAxBiI,EAAQ88F,aAA4B98F,EAAQ88F,YAM9ChsG,KAAK86F,eAAkC7zF,IAAtBiI,EAAQ4rF,WAA0B5rF,EAAQ4rF,UAM3D96F,KAAK+jC,QAAU1c,SAASC,cAAc,OACtCtnB,KAAK+jC,QAAQ/zB,eACW/I,IAAtBiI,EAAQc,UACJd,EAAQc,UACR,wBAA0B2rC,GAChC37C,KAAK+jC,QAAQxc,MAAMqS,SAAW,WAC9B55B,KAAK+jC,QAAQxc,MAAMouE,cAAgB,OAMnC31F,KAAKisG,SAA8B,IAApB/8F,EAAQ+8F,QAAmB,CAAC,EAAI/8F,EAAQ+8F,cAAWhlG,EAOlEjH,KAAK68B,SAAW,CACdwyC,WAAY,GACZ7/D,SAAS,GAOXxP,KAAKksG,yBAA2B,KAEhClsG,KAAKsL,kBAAkBssD,GAAS+zC,QAAS3rG,KAAKmsG,sBAC9CnsG,KAAKsL,kBAAkBssD,GAAStrD,IAAKtM,KAAKosG,kBAC1CpsG,KAAKsL,kBAAkBssD,GAASg0C,OAAQ5rG,KAAKqsG,qBAC7CrsG,KAAKsL,kBAAkBssD,GAASi0C,SAAU7rG,KAAKssG,uBAC/CtsG,KAAKsL,kBAAkBssD,GAASk0C,YAAa9rG,KAAKusG,+BAE1BtlG,IAApBiI,EAAQ60B,SACV/jC,KAAKwsG,WAAWt9F,EAAQ60B,SAG1B/jC,KAAKysG,eAA6BxlG,IAAnBiI,EAAQ2J,OAAuB3J,EAAQ2J,OAAS,CAAC,EAAG,IAEnE7Y,KAAK0sG,eAAex9F,EAAQy9F,aAAe,iBAElB1lG,IAArBiI,EAAQ0qB,UACV55B,KAAK4sG,YAAY19F,EAAQ0qB,SAE7B,CAQAizE,UAAAA,GACE,OAA6C7sG,KAAK2K,IAAIitD,GAAS+zC,QACjE,CAOAvrB,KAAAA,GACE,OAAOpgF,KAAK6oC,EACd,CASA4jD,MAAAA,GACE,OACEzsF,KAAK2K,IAAIitD,GAAStrD,MAAQ,IAE9B,CAQAwgG,SAAAA,GACE,OAAqC9sG,KAAK2K,IAAIitD,GAASg0C,OACzD,CASAmB,WAAAA,GACE,OACE/sG,KAAK2K,IAAIitD,GAASi0C,SAEtB,CASAmB,cAAAA,GACE,OAAmChtG,KAAK2K,IAAIitD,GAASk0C,YACvD,CAKAK,oBAAAA,GACErnE,GAAe9kC,KAAK+jC,SACpB,MAAMA,EAAU/jC,KAAK6sG,aACjB9oE,GACF/jC,KAAK+jC,QAAQ5B,YAAY4B,EAE7B,CAKAqoE,gBAAAA,GACMpsG,KAAKksG,2BACPrnE,GAAW7kC,KAAK+jC,SAChBh7B,EAAc/I,KAAKksG,0BACnBlsG,KAAKksG,yBAA2B,MAElC,MAAMpvE,EAAM98B,KAAKysF,SACjB,GAAI3vD,EAAK,CACP98B,KAAKksG,yBAA2B1jG,EAC9Bs0B,EACAi5D,GAAa9jF,WACbjS,KAAKF,OACLE,MAEFA,KAAKitG,sBACL,MAAMtnE,EAAY3lC,KAAK86F,UACnBh+D,EAAIg5D,+BACJh5D,EAAIgiE,sBACJ9+F,KAAKgsG,YACPrmE,EAAUL,aAAatlC,KAAK+jC,QAAS4B,EAAUR,WAAW,IAAM,MAEhEQ,EAAUxD,YAAYniC,KAAK+jC,SAE7B/jC,KAAKktG,gBACP,CACF,CAKAptG,MAAAA,GACEE,KAAKitG,qBACP,CAKAZ,mBAAAA,GACErsG,KAAKitG,qBACP,CAKAX,qBAAAA,GACEtsG,KAAKitG,sBACLjtG,KAAKktG,gBACP,CAKAX,wBAAAA,GACEvsG,KAAKitG,qBACP,CAQAT,UAAAA,CAAWzoE,GACT/jC,KAAKwL,IAAIosD,GAAS+zC,QAAS5nE,EAC7B,CASAhH,MAAAA,CAAOD,GACL98B,KAAKwL,IAAIosD,GAAStrD,IAAKwwB,EACzB,CAQA2vE,SAAAA,CAAU5zF,GACR7Y,KAAKwL,IAAIosD,GAASg0C,OAAQ/yF,EAC5B,CAUA+zF,WAAAA,CAAYhzE,GACV55B,KAAKwL,IAAIosD,GAASi0C,SAAUjyE,EAC9B,CAOAszE,cAAAA,GACMltG,KAAKisG,SACPjsG,KAAKmtG,YAAYntG,KAAKisG,QAE1B,CAQAkB,WAAAA,CAAYC,GACV,MAAMtwE,EAAM98B,KAAKysF,SAEjB,IAAK3vD,IAAQA,EAAIw/D,qBAAuBt8F,KAAK2K,IAAIitD,GAASi0C,UACxD,OAGF,MAAMwB,EAAUrtG,KAAKstG,QAAQxwE,EAAIw/D,mBAAoBx/D,EAAIoX,WACnDnQ,EAAU/jC,KAAK6sG,aACfU,EAAcvtG,KAAKstG,QAAQvpE,EAAS,CACxCD,GAAWC,GACXI,GAAYJ,KAGdqpE,EAAqBA,GAAsB,CAAC,EAE5C,MAAMI,OAC0BvmG,IAA9BmmG,EAAmBK,OAAuB,GAAKL,EAAmBK,OACpE,IAAKt1F,GAAek1F,EAASE,GAAc,CAEzC,MAAMG,EAAaH,EAAY,GAAKF,EAAQ,GACtCM,EAAcN,EAAQ,GAAKE,EAAY,GACvCK,EAAYL,EAAY,GAAKF,EAAQ,GACrCQ,EAAeR,EAAQ,GAAKE,EAAY,GAExChxF,EAAQ,CAAC,EAAG,GAgBlB,GAfImxF,EAAa,EAEfnxF,EAAM,GAAKmxF,EAAaF,EACfG,EAAc,IAEvBpxF,EAAM,GAAK1P,KAAKgB,IAAI8/F,GAAeH,GAEjCI,EAAY,EAEdrxF,EAAM,GAAKqxF,EAAYJ,EACdK,EAAe,IAExBtxF,EAAM,GAAK1P,KAAKgB,IAAIggG,GAAgBL,GAGrB,IAAbjxF,EAAM,IAAyB,IAAbA,EAAM,GAAU,CACpC,MAAMvC,EACJ8iB,EAAIiB,UAAU7K,oBAEV46E,EAAWhxE,EAAIohE,+BAA+BlkF,GACpD,IAAK8zF,EACH,OAEF,MAAMC,EAAc,CAACD,EAAS,GAAKvxF,EAAM,GAAIuxF,EAAS,GAAKvxF,EAAM,IAE3DyxF,EAAaZ,EAAmB94E,WAAa,CAAC,EACpDwI,EAAIiB,UAAU/J,gBAAgB,CAC5Bha,OAAQ8iB,EAAIqhE,+BAA+B4P,GAC3Cv5E,SAAUw5E,EAAWx5E,SACrBC,OAAQu5E,EAAWv5E,QAEvB,CACF,CACF,CASA64E,OAAAA,CAAQvpE,EAAS7pB,GACf,MAAM6wD,EAAMhnC,EAAQ8kE,wBACdx1E,EAAU03C,EAAIpkC,KAAO1hB,OAAOgpF,YAC5B36E,EAAUy3C,EAAI8zB,IAAM55E,OAAOipF,YACjC,MAAO,CAAC76E,EAASC,EAASD,EAAUnZ,EAAK,GAAIoZ,EAAUpZ,EAAK,GAC9D,CASAwyF,cAAAA,CAAeC,GACb3sG,KAAKwL,IAAIosD,GAASk0C,YAAaa,EACjC,CAOA96F,UAAAA,CAAWrC,GACLxP,KAAK68B,SAASrtB,UAAYA,IAC5BxP,KAAK+jC,QAAQxc,MAAMg4B,QAAU/vC,EAAU,GAAK,OAC5CxP,KAAK68B,SAASrtB,QAAUA,EAE5B,CAMAy9F,mBAAAA,GACE,MAAMnwE,EAAM98B,KAAKysF,SACX7yD,EAAW55B,KAAK+sG,cACtB,IAAKjwE,IAAQA,EAAIytE,eAAiB3wE,EAEhC,YADA55B,KAAK6R,YAAW,GAIlB,MAAMyrB,EAAQR,EAAIwsE,uBAAuB1vE,GACnCu0E,EAAUrxE,EAAIoX,UACpBl0C,KAAKouG,uBAAuB9wE,EAAO6wE,EACrC,CAOAC,sBAAAA,CAAuB9wE,EAAO6wE,GAC5B,MAAM5mF,EAAQvnB,KAAK+jC,QAAQxc,MACrB1O,EAAS7Y,KAAK8sG,YAEdH,EAAc3sG,KAAKgtG,iBAEzBhtG,KAAK6R,YAAW,GAEhB,MAAM9E,EAAIF,KAAKiC,MAAMwuB,EAAM,GAAKzkB,EAAO,IAAM,KACvC7L,EAAIH,KAAKiC,MAAMwuB,EAAM,GAAKzkB,EAAO,IAAM,KAC7C,IAAIw1F,EAAO,KACPC,EAAO,KAEM,gBAAf3B,GACe,gBAAfA,GACe,aAAfA,EAEA0B,EAAO,QAEQ,iBAAf1B,GACe,iBAAfA,GACe,cAAfA,IAEA0B,EAAO,QAGQ,eAAf1B,GACe,iBAAfA,GACe,gBAAfA,EAEA2B,EAAO,QAEQ,eAAf3B,GACe,iBAAfA,GACe,gBAAfA,IAEA2B,EAAO,QAET,MAAM73F,EAAa,aAAY43F,MAASC,gBAAmBvhG,MAAMC,KAC7DhN,KAAK68B,SAASwyC,YAAc54D,IAC9BzW,KAAK68B,SAASwyC,WAAa54D,EAC3B8Q,EAAM9Q,UAAYA,EAEtB,CAMA83F,UAAAA,GACE,OAAOvuG,KAAKkP,OACd,EAGF,UCrjBO,SAASs/F,GACd51F,EACAC,EACA5V,EACA6V,EACA6c,EACApe,EACA5B,GAEA,IAAI0uD,EAAG92D,EACP,MAAM3K,GAAKK,EAAM4V,GAAUC,EAC3B,GAAU,IAANlW,EACFyhE,EAAIxrD,OACC,GAAU,IAANjW,EACTyhE,EAAIxrD,EACJtL,EAAIooB,OACC,GAAU,IAAN/yB,EAAS,CAClB,IAAIqK,EAAK2L,EAAgBC,GACrB3L,EAAK0L,EAAgBC,EAAS,GAC9BxW,EAAS,EACb,MAAMosG,EAAoB,CAAC,GAC3B,IAAK,IAAI5rG,EAAIgW,EAASC,EAAQjW,EAAII,EAAKJ,GAAKiW,EAAQ,CAClD,MAAM3L,EAAKyL,EAAgB/V,GACrBuK,EAAKwL,EAAgB/V,EAAI,GAC/BR,GAAUwK,KAAK8Q,MAAMxQ,EAAKF,IAAOE,EAAKF,IAAOG,EAAKF,IAAOE,EAAKF,IAC9DuhG,EAAkBtoG,KAAK9D,GACvB4K,EAAKE,EACLD,EAAKE,CACP,CACA,MAAMhM,EAASu0B,EAAWtzB,EACpB6B,EAAQtC,EAAa6sG,EAAmBrtG,GAC1C8C,EAAQ,GACVqJ,GACGnM,EAASqtG,GAAmBvqG,EAAQ,KACpCuqG,GAAmBvqG,EAAQ,GAAKuqG,GAAmBvqG,EAAQ,IAC9DmgE,EAAIxrD,IAAW3U,EAAQ,GAAK4U,GAE5BurD,EAAIxrD,EAAS3U,EAAQ4U,CAEzB,CACAnD,EAAYA,EAAY,EAAIA,EAAY,EACxC4B,EAAOA,GAAc,IAAIjU,MAAMqS,GAC/B,IAAK,IAAI9S,EAAI,EAAGA,EAAI8S,IAAa9S,EAC/B0U,EAAK1U,QACGoE,IAANo9D,EACIt7C,SACM9hB,IAANsG,EACAqL,EAAgByrD,EAAIxhE,GACpB4L,EAAKmK,EAAgByrD,EAAIxhE,GAAI+V,EAAgByrD,EAAIvrD,EAASjW,GAAI0K,GAEtE,OAAOgK,CACT,CAWO,SAASm3F,GACd91F,EACAC,EACA5V,EACA6V,EACA1K,EACAugG,GAEA,GAAI1rG,GAAO4V,EACT,OAAO,KAET,IAAIZ,EACJ,GAAI7J,EAAIwK,EAAgBC,EAASC,EAAS,GACxC,OAAI61F,GACF12F,EAAaW,EAAgB7T,MAAM8T,EAAQA,EAASC,GACpDb,EAAWa,EAAS,GAAK1K,EAClB6J,GAEF,KAET,GAAIW,EAAgB3V,EAAM,GAAKmL,EAC7B,OAAIugG,GACF12F,EAAaW,EAAgB7T,MAAM9B,EAAM6V,EAAQ7V,GACjDgV,EAAWa,EAAS,GAAK1K,EAClB6J,GAEF,KAGT,GAAI7J,GAAKwK,EAAgBC,EAASC,EAAS,GACzC,OAAOF,EAAgB7T,MAAM8T,EAAQA,EAASC,GAEhD,IAAI81F,EAAK/1F,EAASC,EACd+1F,EAAK5rG,EAAM6V,EACf,MAAO81F,EAAKC,EAAI,CACd,MAAM7sG,EAAO4sG,EAAKC,GAAO,EACrBzgG,EAAIwK,GAAiB5W,EAAM,GAAK8W,EAAS,GAC3C+1F,EAAK7sG,EAEL4sG,EAAK5sG,EAAM,CAEf,CACA,MAAM8sG,EAAKl2F,EAAgBg2F,EAAK91F,EAAS,GACzC,GAAI1K,GAAK0gG,EACP,OAAOl2F,EAAgB7T,OAAO6pG,EAAK,GAAK91F,GAAS81F,EAAK,GAAK91F,EAASA,GAEtE,MAAMi2F,EAAKn2F,GAAiBg2F,EAAK,GAAK91F,EAAS,GACzCvL,GAAKa,EAAI0gG,IAAOC,EAAKD,GAC3B72F,EAAa,GACb,IAAK,IAAIpV,EAAI,EAAGA,EAAIiW,EAAS,IAAKjW,EAChCoV,EAAW9R,KACTsI,EACEmK,GAAiBg2F,EAAK,GAAK91F,EAASjW,GACpC+V,EAAgBg2F,EAAK91F,EAASjW,GAC9B0K,IAKN,OADA0K,EAAW9R,KAAKiI,GACT6J,CACT,CCrHA,MAAM+2F,WAAmBnlF,GAMvB7oB,WAAAA,CAAYiW,EAAa6S,GACvBrkB,QAMAzF,KAAKivG,cAAgB,KAMrBjvG,KAAKkvG,uBAAyB,EAM9BlvG,KAAKutB,WAAa,EAMlBvtB,KAAKwtB,mBAAqB,OAEXvmB,IAAX6iB,GAAyBxmB,MAAMC,QAAQ0T,EAAY,IAMrDjX,KAAK0qB,eAEDzT,EAEF6S,GATF9pB,KAAKwqB,mBACHV,EAC8B7S,EAUpC,CAOAk4F,gBAAAA,CAAiBl3F,GACVjY,KAAK4Y,gBAGRzV,EAAOnD,KAAK4Y,gBAAiBX,GAF7BjY,KAAK4Y,gBAAkBX,EAAWlT,QAIpC/E,KAAKwJ,SACP,CAOAsO,KAAAA,GACE,MAAMs3F,EAAa,IAAIJ,GACrBhvG,KAAK4Y,gBAAgB7T,QACrB/E,KAAK8pB,QAGP,OADAslF,EAAW1jG,gBAAgB1L,MACpBovG,CACT,CASA1mF,cAAAA,CAAe3b,EAAGC,EAAG2b,EAAcC,GACjC,OAAIA,EAAqB7Q,GAAyB/X,KAAK4Q,YAAa7D,EAAGC,GAC9D4b,GAEL5oB,KAAKwtB,mBAAqBxtB,KAAK0J,gBACjC1J,KAAKutB,UAAY1gB,KAAK8Q,KACpBwN,GACEnrB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACL,IAGJ9Y,KAAKwtB,kBAAoBxtB,KAAK0J,eAEzB8hB,GACLxrB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACL9Y,KAAKutB,WACL,EACAxgB,EACAC,EACA2b,EACAC,GAEJ,CAaAgG,cAAAA,CAAe1V,GACb,OAAO0V,GACL5uB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACLI,EAEJ,CAgBAm2F,gBAAAA,CAAiBjhG,EAAGugG,GAClB,MAAmB,OAAf3uG,KAAK8pB,QAAkC,QAAf9pB,KAAK8pB,OACxB,MAET6kF,OAA8B1nG,IAAhB0nG,GAA4BA,EACnCD,GACL1uG,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACL1K,EACAugG,GAEJ,CAOA5kF,cAAAA,GACE,OAAO+C,GACL9sB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OAET,CAYAw2F,eAAAA,CAAgB35E,EAAUpe,GACxB,OAAOi3F,GACLxuG,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACL6c,EACApe,EACAvX,KAAK8Y,OAET,CAOAqhE,SAAAA,GACE,OAAOtS,GACL7nE,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OAET,CAKA0qD,eAAAA,GAKE,OAJIxjE,KAAKkvG,uBAAyBlvG,KAAK0J,gBACrC1J,KAAKivG,cAAgBjvG,KAAKsvG,gBAAgB,GAAKtvG,KAAKivG,eACpDjvG,KAAKkvG,sBAAwBlvG,KAAK0J,eAE7B1J,KAAKivG,aACd,CAOA5kF,6BAAAA,CAA8B9B,GAC5B,MAAM+B,EAA4B,GAUlC,OATAA,EAA0BjoB,OAAS6pB,GACjClsB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACLyP,EACA+B,EACA,GAEK,IAAI0kF,GAAW1kF,EAA2B,KACnD,CAOAlB,OAAAA,GACE,MAAO,YACT,CAQAC,gBAAAA,CAAiB1Y,GACf,OAAO+d,GACL1uB,KAAK4Y,gBACL,EACA5Y,KAAK4Y,gBAAgBvW,OACrBrC,KAAK8Y,OACLnI,EAEJ,CAQA+Z,cAAAA,CAAezT,EAAa6S,GAC1B9pB,KAAK2qB,UAAUb,EAAQ7S,EAAa,GAC/BjX,KAAK4Y,kBACR5Y,KAAK4Y,gBAAkB,IAEzB5Y,KAAK4Y,gBAAgBvW,OAASypB,GAC5B9rB,KAAK4Y,gBACL,EACA3B,EACAjX,KAAK8Y,QAEP9Y,KAAKwJ,SACP,EAGF,UC1NO,SAAS+lG,GAAiBlpG,GAC/B,KAAMA,EAAMs7B,mBAAmB6tE,0BAC7B,MAAM,IAAIzlG,MAAM,sDAIlB,MAAMxH,EAAI8D,EAAMq7B,sBAAsB,GAChCl/B,EAAI6D,EAAMq7B,sBAAsB,GAChC+tE,EAAmB5iG,KAAK8Q,KAAKpb,EAAIA,EAAIC,EAAIA,GACzCo7B,EAAav3B,EAAMu3B,WACnBnnB,EAAYi5F,GAChBrpG,EAAMq7B,sBAAsB38B,QAC5B64B,EAAWsJ,4BAEP3e,EAAmBwsD,GACvBn3C,EAAWtF,UAAUljB,WACrBq6F,GAEF,IAAItgC,EACJ,MAAM1uD,EAAiBC,KAQvB,OAPID,IACF0uD,EAAgB9vD,GACdoB,EACAmd,EAAWtF,UAAUniB,aAIlB,IAAI+4D,GACT7oE,EAAMs7B,QACN8tE,EACA7xE,EAAWjtB,OACX8F,EACAmnB,EAAWtF,UAAUre,SACrBsO,EACA4mD,EAEJ,CCzFA,QACA/rE,IAAAA,GACA,OACA05B,IAAA,GACA6yE,WAAA,GACAlvG,cAAA,EACAwX,WAAA,GACA23F,MAAA,IAAAZ,GAAA,mKACAa,aAAA,GACAC,YAAA,GACAppD,OAAA,CACAkpD,MAAA,IAAAtqD,GAAA,CACAxT,OAAA,IAAA4S,GAAA,CACA3oC,MAAA,EACAgmB,MAAA,mBAGAm1B,KAAA,IAAA5R,GAAA,CACAnkB,MAAA,IAAAonB,GAAA,CACA9gC,OAAA,OACAgiB,IAAA,0DACA3sB,MAAA,MAGAgzF,YAAA,IAAAxqD,GAAA,CACAnkB,MAAA,IAAAq2B,GAAA,CACAn6C,OAAA,EACAwjC,KAAA,IAAA0D,GAAA,CAAAxiB,MAAA,UACA+P,OAAA,IAAA4S,GAAA,CACA3iB,MAAA,QACAhmB,MAAA,SAKAm6D,YAAA,GACAlH,SAAA,EACA+gC,SAAA,EACAC,MAAA,GAEA,EACAC,OAAAA,GACA,KAAAC,UACA,KAAAC,UACA,EACAC,QAAA,CACAC,WAAAA,GACA,IAAAC,EAAA,8JACAnyF,QAAAlJ,IAAAq7F,EAEA,EACA3vG,iBAAAA,GACA,KAAAsX,WAAA,GACA,KAAA6kB,IAAA8tE,YAAA,KAAA+E,YACA,KAAAA,WAAA,GACA,GAAAxoG,OAAAC,KAAA,KAAAuoG,YAAAttG,SAEA,KAAAstG,WAAA,IAAAn2B,GAAA,CACA7tE,OAAA,IAAA6yE,KAGA,KAAA1hD,IAAAirE,SAAA,KAAA4H,YAEA,EACAO,OAAAA,GAEA,KAAAL,aAAA,IAAAniF,GAAA,KAAAkiF,MAAA5lF,sBAEA,KAAA8lF,YAAA,IAAA7kB,GAAA,CACAhqF,KAAA,cACA03B,SAAA,KAAAk3E,eAEA,KAAA35B,YAAA,IAAAsD,GAAA,CACA7tE,OAAA,IAAA6yE,GAAA,CACAtL,SAAA,CACA,IAAA+X,GAAA,CACAhqF,KAAA,QACA03B,SAAA,KAAAi3E,QAEA,KAAAE,YACA,IAAA7kB,GAAA,CACAhqF,KAAA,OACA03B,SAAA,IAAAjL,GAAA,KAAAkiF,MAAA5lF,wBAEA,IAAAihE,GAAA,CACAhqF,KAAA,OACA03B,SAAA,IAAAjL,GAAA,KAAAkiF,MAAA1lF,0BAIA3C,MAAAg/B,GACA,KAAAG,OAAAH,EAAA57C,IAAA,WAMA,KAAAmyB,IAAA,IAAA4nE,GAAA,CACAtjG,OAAA,MACAqsF,OAAA,CACA,IAAA3zC,GAAA,CACAnuC,OAAA,IAAAq/E,GAAA,CACA9N,IAAA,wGAIAv/C,KAAA,IAAA/M,GAAA,CACAza,WAAA,YACA6D,OAAA,uBACA+Y,KAAA,OAIA,KAAA+J,IAAAirE,SAAA,KAAA7xB,YACA,EAIAi6B,QAAAA,GAEA,KAAArzE,IAAAv8B,GAAA,SAAA2lB,IACA,KAAAzlB,cACA,KAAA8vG,UAAArqF,EAAAjO,WACA,GAEA,EAIAs4F,SAAAA,CAAAt4F,GACA,KAAAA,WAAA9R,KAAA8R,GACAkG,QAAAlJ,IAAAu7F,KAAAC,UAAA,KAAAx4F,aACA,GAAA9Q,OAAAC,KAAA,KAAAuoG,YAAAttG,SAEA,KAAAstG,WAAA,IAAAn2B,GAAA,CACA7tE,OAAA,IAAA6yE,KAGA,KAAA1hD,IAAAirE,SAAA,KAAA4H,aAIA,MAAAppD,EAAA,IAAA0kC,GAAA,CACAtyD,SAAA,IAAAjL,GAAAzV,KAGAsuC,EAAAgS,SACA,IAAAjT,GAAA,CAEAnkB,MAAA,IAAAonB,GAAA,CACA9e,IAAA,0EAEA3sB,MAAA,QAMA,KAAA6yF,WAAAzyE,YAAA0iD,WAAAr5B,EAIA,EACAmqD,OAAAA,CAAAz4F,GACA,MAAA04F,EAAAtpF,SAAA4uE,eAAA,eACA2a,EAAAvpF,SAAAC,cAAA,QACAspF,EAAAC,iBAAA,EACAD,EAAA/nE,GAAA5wB,EAAA,GACA,IAAA64F,EAAAzpF,SAAAgyE,eAAA,MAAAphF,EAAA,GAAAvJ,QAAA,IACAkiG,EAAAzuE,YAAA2uE,GACAH,EAAAxuE,YAAAyuE,GACA,IAAAG,EAAA,IAAAhF,GAAA,CACAnyE,SAAA3hB,EACA8rB,QAAA1c,SAAA4uE,eAAAh+E,EAAA,IACAY,OAAA,WAEA,KAAAikB,IAAAmrE,WAAA8I,EACA,EAEAC,WAAAA,CAAA9qF,GACA,IAAA4iB,EAAA5iB,EAAA0X,WAAAkL,KACA,KAAAkmC,UACA,KAAAA,SAAA,KAAAghC,OAAAlnE,EAAA,KAAAinE,UAAA,OAEA,KAAAA,SAAAjnE,EAEA,MAAAmoE,EAAA,KAAArB,MAAAN,gBACA,KAAAtgC,SAAA,SAAAA,SAAA,KAAAA,UAEA,KAAA6gC,aAAAnlF,eAAAumF,GACA,MAAAC,EAAA3B,GAAArpF,GACAgrF,EAAA34C,SAAA,KAAA7R,OAAAopD,aACAoB,EAAAt2C,aAAA,KAAAi1C,cACA,KAAA/yE,IAAAh9B,QACA,EACAc,cAAAA,GACA,KAAAmvG,SAAA57E,KAAAC,MACA,KAAA8hD,YAAA31E,GAAA,kBAAAywG,aACA,KAAAlB,YAAApqD,YAAA,KACA,EAEA7kD,aAAAA,GACA,KAAAivG,YAAApqD,YAAA,KAAAmqD,cACA,KAAA35B,YAAA7sE,GAAA,kBAAA2nG,YACA,ICnPiR,M,WCQ7QG,IAAY,QACd,GACArxG,EACAgB,GACA,EACA,KACA,KACA,MAIF,GAAeqwG,GAAiB,O,+BCnB/B,SAAS5jG,EAAE1K,GAAwDuuG,EAAOC,QAAQxuG,GAAyE,CAA3J,CAA6J7C,GAAK,WAAW,aAAa,SAASuN,EAAEA,EAAEO,EAAEoY,EAAE3jB,EAAEo0B,IAAI,SAASppB,EAAE3K,EAAEkL,EAAEoY,EAAE3jB,EAAEo0B,GAAG,KAAKp0B,EAAE2jB,GAAG,CAAC,GAAG3jB,EAAE2jB,EAAE,IAAI,CAAC,IAAIm+C,EAAE9hE,EAAE2jB,EAAE,EAAEwc,EAAE50B,EAAEoY,EAAE,EAAE/X,EAAEtB,KAAKoI,IAAIovD,GAAGl+C,EAAE,GAAGtZ,KAAKiJ,IAAI,EAAE3H,EAAE,GAAGmjG,EAAE,GAAGzkG,KAAK8Q,KAAKxP,EAAEgY,GAAGk+C,EAAEl+C,GAAGk+C,IAAI3hC,EAAE2hC,EAAE,EAAE,GAAG,EAAE,GAAGj2D,EAAEvB,KAAKD,IAAIsZ,EAAErZ,KAAKkC,MAAMjB,EAAE40B,EAAEvc,EAAEk+C,EAAEitC,IAAItrF,EAAEnZ,KAAKF,IAAIpK,EAAEsK,KAAKkC,MAAMjB,GAAGu2D,EAAE3hC,GAAGvc,EAAEk+C,EAAEitC,IAAI/jG,EAAE3K,EAAEkL,EAAEM,EAAE4X,EAAE2Q,EAAE,CAAC,IAAIwtC,EAAEvhE,EAAEkL,GAAGmY,EAAEC,EAAEnZ,EAAExK,EAAE,IAAIM,EAAED,EAAEsjB,EAAEpY,GAAG6oB,EAAE/zB,EAAEL,GAAG4hE,GAAG,GAAGthE,EAAED,EAAEsjB,EAAE3jB,GAAG0jB,EAAElZ,GAAG,CAAC,IAAIlK,EAAED,EAAEqjB,EAAElZ,GAAGkZ,IAAIlZ,IAAI4pB,EAAE/zB,EAAEqjB,GAAGk+C,GAAG,GAAGl+C,IAAI,KAAK0Q,EAAE/zB,EAAEmK,GAAGo3D,GAAG,GAAGp3D,GAAG,CAAC,IAAI4pB,EAAE/zB,EAAEsjB,GAAGi+C,GAAGthE,EAAED,EAAEsjB,EAAEnZ,GAAGlK,EAAED,IAAImK,EAAExK,GAAGwK,GAAGe,IAAIoY,EAAEnZ,EAAE,GAAGe,GAAGf,IAAIxK,EAAEwK,EAAE,EAAE,CAAC,CAA9Z,CAAgaQ,EAAEO,EAAEoY,GAAG,EAAE3jB,GAAGgL,EAAElL,OAAO,EAAEs0B,GAAG/zB,EAAE,CAAC,SAASC,EAAE0K,EAAE1K,EAAED,GAAG,IAAIkL,EAAEP,EAAE1K,GAAG0K,EAAE1K,GAAG0K,EAAE3K,GAAG2K,EAAE3K,GAAGkL,CAAC,CAAC,SAASlL,EAAE2K,EAAE1K,GAAG,OAAO0K,EAAE1K,GAAG,EAAE0K,EAAE1K,EAAE,EAAE,CAAC,CAAC,IAAIiL,EAAE,SAASP,QAAG,IAASA,IAAIA,EAAE,GAAGvN,KAAKuxG,YAAY1kG,KAAKD,IAAI,EAAEW,GAAGvN,KAAKwxG,YAAY3kG,KAAKD,IAAI,EAAEC,KAAKmC,KAAK,GAAGhP,KAAKuxG,cAAcvxG,KAAKoF,OAAO,EAAE,SAAS8gB,EAAE3Y,EAAE1K,EAAED,GAAG,IAAIA,EAAE,OAAOC,EAAEwE,QAAQkG,GAAG,IAAI,IAAIO,EAAE,EAAEA,EAAEjL,EAAER,OAAOyL,IAAI,GAAGlL,EAAE2K,EAAE1K,EAAEiL,IAAI,OAAOA,EAAE,OAAO,CAAC,CAAC,SAASvL,EAAEgL,EAAE1K,GAAG8zB,EAAEppB,EAAE,EAAEA,EAAE03B,SAAS5iC,OAAOQ,EAAE0K,EAAE,CAAC,SAASopB,EAAEppB,EAAE1K,EAAED,EAAEkL,EAAEoY,GAAGA,IAAIA,EAAEi+C,EAAE,OAAOj+C,EAAE1O,KAAK,IAAI0O,EAAEzO,KAAK,IAAIyO,EAAExO,MAAK,IAAKwO,EAAEvO,MAAK,IAAK,IAAI,IAAIpV,EAAEM,EAAEN,EAAEK,EAAEL,IAAI,CAAC,IAAIo0B,EAAEppB,EAAE03B,SAAS1iC,GAAG8hE,EAAEn+C,EAAE3Y,EAAEkkG,KAAK3jG,EAAE6oB,GAAGA,EAAE,CAAC,OAAOzQ,CAAC,CAAC,SAASm+C,EAAE92D,EAAE1K,GAAG,OAAO0K,EAAEiK,KAAK3K,KAAKF,IAAIY,EAAEiK,KAAK3U,EAAE2U,MAAMjK,EAAEkK,KAAK5K,KAAKF,IAAIY,EAAEkK,KAAK5U,EAAE4U,MAAMlK,EAAEmK,KAAK7K,KAAKD,IAAIW,EAAEmK,KAAK7U,EAAE6U,MAAMnK,EAAEoK,KAAK9K,KAAKD,IAAIW,EAAEoK,KAAK9U,EAAE8U,MAAMpK,CAAC,CAAC,SAASm1B,EAAEn1B,EAAE1K,GAAG,OAAO0K,EAAEiK,KAAK3U,EAAE2U,IAAI,CAAC,SAASrJ,EAAEZ,EAAE1K,GAAG,OAAO0K,EAAEkK,KAAK5U,EAAE4U,IAAI,CAAC,SAAS0O,EAAE5Y,GAAG,OAAOA,EAAEmK,KAAKnK,EAAEiK,OAAOjK,EAAEoK,KAAKpK,EAAEkK,KAAK,CAAC,SAAS65F,EAAE/jG,GAAG,OAAOA,EAAEmK,KAAKnK,EAAEiK,MAAMjK,EAAEoK,KAAKpK,EAAEkK,KAAK,CAAC,SAASrJ,EAAEb,EAAE1K,GAAG,OAAO0K,EAAEiK,MAAM3U,EAAE2U,MAAMjK,EAAEkK,MAAM5U,EAAE4U,MAAM5U,EAAE6U,MAAMnK,EAAEmK,MAAM7U,EAAE8U,MAAMpK,EAAEoK,IAAI,CAAC,SAASqO,EAAEzY,EAAE1K,GAAG,OAAOA,EAAE2U,MAAMjK,EAAEmK,MAAM7U,EAAE4U,MAAMlK,EAAEoK,MAAM9U,EAAE6U,MAAMnK,EAAEiK,MAAM3U,EAAE8U,MAAMpK,EAAEkK,IAAI,CAAC,SAAS0sD,EAAE52D,GAAG,MAAM,CAAC03B,SAAS13B,EAAEyO,OAAO,EAAEy1F,MAAK,EAAGj6F,KAAK,IAAIC,KAAK,IAAIC,MAAK,IAAKC,MAAK,IAAK,CAAC,SAASsO,EAAEpjB,EAAED,EAAEkL,EAAEoY,EAAE3jB,GAAG,IAAI,IAAIo0B,EAAE,CAAC/zB,EAAEkL,GAAG6oB,EAAEt0B,QAAQ,MAAMyL,EAAE6oB,EAAEpK,QAAQ3pB,EAAE+zB,EAAEpK,QAAQrG,GAAG,CAAC,IAAIm+C,EAAEzhE,EAAEiK,KAAKmC,MAAMlB,EAAElL,GAAGsjB,EAAE,GAAGA,EAAE3Y,EAAE1K,EAAEwhE,EAAEzhE,EAAEkL,EAAEvL,GAAGo0B,EAAExwB,KAAKvD,EAAEyhE,EAAEA,EAAEv2D,EAAE,CAAC,CAAC,OAAOA,EAAEhJ,UAAUozE,IAAI,WAAW,OAAOl4E,KAAK0xG,KAAK1xG,KAAKoD,KAAK,GAAG,EAAE0K,EAAEhJ,UAAUw2E,OAAO,SAAS/tE,GAAG,IAAI1K,EAAE7C,KAAKoD,KAAKR,EAAE,GAAG,IAAIojB,EAAEzY,EAAE1K,GAAG,OAAOD,EAAE,IAAI,IAAIkL,EAAE9N,KAAK2xG,OAAOzrF,EAAE,GAAGrjB,GAAG,CAAC,IAAI,IAAIN,EAAE,EAAEA,EAAEM,EAAEoiC,SAAS5iC,OAAOE,IAAI,CAAC,IAAIo0B,EAAE9zB,EAAEoiC,SAAS1iC,GAAG8hE,EAAExhE,EAAE4uG,KAAK3jG,EAAE6oB,GAAGA,EAAE3Q,EAAEzY,EAAE82D,KAAKxhE,EAAE4uG,KAAK7uG,EAAEuD,KAAKwwB,GAAGvoB,EAAEb,EAAE82D,GAAGrkE,KAAK0xG,KAAK/6E,EAAE/zB,GAAGsjB,EAAE/f,KAAKwwB,GAAG,CAAC9zB,EAAEqjB,EAAEqG,KAAK,CAAC,OAAO3pB,CAAC,EAAEkL,EAAEhJ,UAAU4nE,SAAS,SAASn/D,GAAG,IAAI1K,EAAE7C,KAAKoD,KAAK,IAAI4iB,EAAEzY,EAAE1K,GAAG,OAAM,EAAG,IAAI,IAAID,EAAE,GAAGC,GAAG,CAAC,IAAI,IAAIiL,EAAE,EAAEA,EAAEjL,EAAEoiC,SAAS5iC,OAAOyL,IAAI,CAAC,IAAIoY,EAAErjB,EAAEoiC,SAASn3B,GAAGvL,EAAEM,EAAE4uG,KAAKzxG,KAAK2xG,OAAOzrF,GAAGA,EAAE,GAAGF,EAAEzY,EAAEhL,GAAG,CAAC,GAAGM,EAAE4uG,MAAMrjG,EAAEb,EAAEhL,GAAG,OAAM,EAAGK,EAAEuD,KAAK+f,EAAE,CAAC,CAACrjB,EAAED,EAAE2pB,KAAK,CAAC,OAAM,CAAE,EAAEze,EAAEhJ,UAAU08B,KAAK,SAASj0B,GAAG,IAAIA,IAAIA,EAAElL,OAAO,OAAOrC,KAAK,GAAGuN,EAAElL,OAAOrC,KAAKwxG,YAAY,CAAC,IAAI,IAAI3uG,EAAE,EAAEA,EAAE0K,EAAElL,OAAOQ,IAAI7C,KAAKusE,OAAOh/D,EAAE1K,IAAI,OAAO7C,IAAI,CAAC,IAAI4C,EAAE5C,KAAK4xG,OAAOrkG,EAAExI,QAAQ,EAAEwI,EAAElL,OAAO,EAAE,GAAG,GAAGrC,KAAKoD,KAAK6hC,SAAS5iC,OAAO,GAAGrC,KAAKoD,KAAK4Y,SAASpZ,EAAEoZ,OAAOhc,KAAK6xG,WAAW7xG,KAAKoD,KAAKR,OAAO,CAAC,GAAG5C,KAAKoD,KAAK4Y,OAAOpZ,EAAEoZ,OAAO,CAAC,IAAIlO,EAAE9N,KAAKoD,KAAKpD,KAAKoD,KAAKR,EAAEA,EAAEkL,CAAC,CAAC9N,KAAK8xG,QAAQlvG,EAAE5C,KAAKoD,KAAK4Y,OAAOpZ,EAAEoZ,OAAO,GAAE,EAAG,MAAMhc,KAAKoD,KAAKR,EAAE,OAAO5C,IAAI,EAAE8N,EAAEhJ,UAAUynE,OAAO,SAASh/D,GAAG,OAAOA,GAAGvN,KAAK8xG,QAAQvkG,EAAEvN,KAAKoD,KAAK4Y,OAAO,GAAGhc,IAAI,EAAE8N,EAAEhJ,UAAUM,MAAM,WAAW,OAAOpF,KAAKoD,KAAK+gE,EAAE,IAAInkE,IAAI,EAAE8N,EAAEhJ,UAAU21E,OAAO,SAASltE,EAAE1K,GAAG,IAAI0K,EAAE,OAAOvN,KAAK,IAAI,IAAI4C,EAAEkL,EAAEvL,EAAEo0B,EAAE32B,KAAKoD,KAAKihE,EAAErkE,KAAK2xG,OAAOpkG,GAAGm1B,EAAE,GAAGv0B,EAAE,GAAGwoB,GAAG+L,EAAErgC,QAAQ,CAAC,GAAGs0B,IAAIA,EAAE+L,EAAEnW,MAAMze,EAAE40B,EAAEA,EAAErgC,OAAO,GAAGO,EAAEuL,EAAEoe,MAAMhqB,GAAE,GAAIo0B,EAAE86E,KAAK,CAAC,IAAItrF,EAAED,EAAE3Y,EAAEopB,EAAEsO,SAASpiC,GAAG,IAAI,IAAIsjB,EAAE,OAAOwQ,EAAEsO,SAAS39B,OAAO6e,EAAE,GAAGuc,EAAEv8B,KAAKwwB,GAAG32B,KAAK+xG,UAAUrvE,GAAG1iC,IAAI,CAACuC,GAAGo0B,EAAE86E,OAAOrjG,EAAEuoB,EAAE0tC,GAAGv2D,GAAGlL,IAAI+zB,EAAE7oB,EAAEm3B,SAASriC,GAAGL,GAAE,GAAIo0B,EAAE,MAAM+L,EAAEv8B,KAAKwwB,GAAGxoB,EAAEhI,KAAKvD,GAAGA,EAAE,EAAEkL,EAAE6oB,EAAEA,EAAEA,EAAEsO,SAAS,GAAG,CAAC,OAAOjlC,IAAI,EAAE8N,EAAEhJ,UAAU6sG,OAAO,SAASpkG,GAAG,OAAOA,CAAC,EAAEO,EAAEhJ,UAAUktG,YAAY,SAASzkG,EAAE1K,GAAG,OAAO0K,EAAEiK,KAAK3U,EAAE2U,IAAI,EAAE1J,EAAEhJ,UAAUmtG,YAAY,SAAS1kG,EAAE1K,GAAG,OAAO0K,EAAEkK,KAAK5U,EAAE4U,IAAI,EAAE3J,EAAEhJ,UAAU22E,OAAO,WAAW,OAAOz7E,KAAKoD,IAAI,EAAE0K,EAAEhJ,UAAUotG,SAAS,SAAS3kG,GAAG,OAAOvN,KAAKoD,KAAKmK,EAAEvN,IAAI,EAAE8N,EAAEhJ,UAAU4sG,KAAK,SAASnkG,EAAE1K,GAAG,IAAI,IAAID,EAAE,GAAG2K,GAAGA,EAAEkkG,KAAK5uG,EAAEsD,KAAKhB,MAAMtC,EAAE0K,EAAE03B,UAAUriC,EAAEuD,KAAKhB,MAAMvC,EAAE2K,EAAE03B,UAAU13B,EAAE3K,EAAE2pB,MAAM,OAAO1pB,CAAC,EAAEiL,EAAEhJ,UAAU8sG,OAAO,SAASrkG,EAAE1K,EAAED,EAAEkL,GAAG,IAAIoY,EAAEyQ,EAAE/zB,EAAEC,EAAE,EAAEwhE,EAAErkE,KAAKuxG,YAAY,GAAG56E,GAAG0tC,EAAE,OAAO9hE,EAAE2jB,EAAEi+C,EAAE52D,EAAExI,MAAMlC,EAAED,EAAE,IAAI5C,KAAK2xG,QAAQzrF,EAAEpY,IAAIA,EAAEjB,KAAKmC,KAAKnC,KAAKoI,IAAI0hB,GAAG9pB,KAAKoI,IAAIovD,IAAIA,EAAEx3D,KAAKmC,KAAK2nB,EAAE9pB,KAAKgC,IAAIw1D,EAAEv2D,EAAE,MAAMoY,EAAEi+C,EAAE,KAAKstC,MAAK,EAAGvrF,EAAElK,OAAOlO,EAAE,IAAI40B,EAAE71B,KAAKmC,KAAK2nB,EAAE0tC,GAAGl2D,EAAEu0B,EAAE71B,KAAKmC,KAAKnC,KAAK8Q,KAAK0mD,IAAIp+C,EAAE1Y,EAAE1K,EAAED,EAAEuL,EAAEnO,KAAKgyG,aAAa,IAAI,IAAI7rF,EAAEtjB,EAAEsjB,GAAGvjB,EAAEujB,GAAGhY,EAAE,CAAC,IAAImjG,EAAEzkG,KAAKF,IAAIwZ,EAAEhY,EAAE,EAAEvL,GAAGqjB,EAAE1Y,EAAE4Y,EAAEmrF,EAAE5uE,EAAE1iC,KAAKiyG,aAAa,IAAI,IAAI7jG,EAAE+X,EAAE/X,GAAGkjG,EAAEljG,GAAGs0B,EAAE,CAAC,IAAI1c,EAAEnZ,KAAKF,IAAIyB,EAAEs0B,EAAE,EAAE4uE,GAAGprF,EAAE+e,SAAS9+B,KAAKnG,KAAK4xG,OAAOrkG,EAAEa,EAAE4X,EAAElY,EAAE,GAAG,CAAC,CAAC,OAAOvL,EAAE2jB,EAAElmB,KAAK2xG,QAAQzrF,CAAC,EAAEpY,EAAEhJ,UAAUqtG,eAAe,SAAS5kG,EAAE1K,EAAED,EAAEkL,GAAG,KAAKA,EAAE3H,KAAKtD,IAAIA,EAAE4uG,MAAM3jG,EAAEzL,OAAO,IAAIO,GAAG,CAAC,IAAI,IAAIsjB,EAAE,IAAI3jB,EAAE,IAAIo0B,OAAE,EAAO0tC,EAAE,EAAEA,EAAExhE,EAAEoiC,SAAS5iC,OAAOgiE,IAAI,CAAC,IAAI3hC,EAAE7/B,EAAEoiC,SAASo/B,GAAGl2D,EAAEgY,EAAEuc,GAAG4uE,GAAGljG,EAAEb,EAAEyY,EAAE0c,GAAG71B,KAAKD,IAAIoZ,EAAEtO,KAAKtJ,EAAEsJ,MAAM7K,KAAKF,IAAIqZ,EAAExO,KAAKpJ,EAAEoJ,QAAQ3K,KAAKD,IAAIoZ,EAAErO,KAAKvJ,EAAEuJ,MAAM9K,KAAKF,IAAIqZ,EAAEvO,KAAKrJ,EAAEqJ,OAAOtJ,GAAGmjG,EAAE/uG,GAAGA,EAAE+uG,EAAEprF,EAAE/X,EAAE+X,EAAE/X,EAAE+X,EAAEyQ,EAAE+L,GAAG4uE,IAAI/uG,GAAG4L,EAAE+X,IAAIA,EAAE/X,EAAEwoB,EAAE+L,EAAE,CAAC7/B,EAAE8zB,GAAG9zB,EAAEoiC,SAAS,EAAE,CAAC,IAAI72B,EAAE4X,EAAE,OAAOnjB,CAAC,EAAEiL,EAAEhJ,UAAUgtG,QAAQ,SAASvkG,EAAE1K,EAAED,GAAG,IAAIkL,EAAElL,EAAE2K,EAAEvN,KAAK2xG,OAAOpkG,GAAG2Y,EAAE,GAAG3jB,EAAEvC,KAAKmyG,eAAerkG,EAAE9N,KAAKoD,KAAKP,EAAEqjB,GAAG,IAAI3jB,EAAE0iC,SAAS9+B,KAAKoH,GAAG82D,EAAE9hE,EAAEuL,GAAGjL,GAAG,GAAGqjB,EAAErjB,GAAGoiC,SAAS5iC,OAAOrC,KAAKuxG,aAAavxG,KAAKoyG,OAAOlsF,EAAErjB,GAAGA,IAAI7C,KAAKqyG,oBAAoBvkG,EAAEoY,EAAErjB,EAAE,EAAEiL,EAAEhJ,UAAUstG,OAAO,SAAS7kG,EAAE1K,GAAG,IAAID,EAAE2K,EAAE1K,GAAGiL,EAAElL,EAAEqiC,SAAS5iC,OAAO6jB,EAAElmB,KAAKwxG,YAAYxxG,KAAKsyG,iBAAiB1vG,EAAEsjB,EAAEpY,GAAG,IAAI6oB,EAAE32B,KAAKuyG,kBAAkB3vG,EAAEsjB,EAAEpY,GAAGu2D,EAAEF,EAAEvhE,EAAEqiC,SAAS39B,OAAOqvB,EAAE/zB,EAAEqiC,SAAS5iC,OAAOs0B,IAAI0tC,EAAEroD,OAAOpZ,EAAEoZ,OAAOqoD,EAAEotC,KAAK7uG,EAAE6uG,KAAKlvG,EAAEK,EAAE5C,KAAK2xG,QAAQpvG,EAAE8hE,EAAErkE,KAAK2xG,QAAQ9uG,EAAE0K,EAAE1K,EAAE,GAAGoiC,SAAS9+B,KAAKk+D,GAAGrkE,KAAK6xG,WAAWjvG,EAAEyhE,EAAE,EAAEv2D,EAAEhJ,UAAU+sG,WAAW,SAAStkG,EAAE1K,GAAG7C,KAAKoD,KAAK+gE,EAAE,CAAC52D,EAAE1K,IAAI7C,KAAKoD,KAAK4Y,OAAOzO,EAAEyO,OAAO,EAAEhc,KAAKoD,KAAKquG,MAAK,EAAGlvG,EAAEvC,KAAKoD,KAAKpD,KAAK2xG,OAAO,EAAE7jG,EAAEhJ,UAAUytG,kBAAkB,SAAShlG,EAAE1K,EAAED,GAAG,IAAI,IAAIkL,EAAEoY,EAAE3jB,EAAE8hE,EAAE3hC,EAAEv0B,EAAEmjG,EAAEljG,EAAE,IAAI4X,EAAE,IAAIm+C,EAAEthE,EAAEshE,GAAGvhE,EAAEC,EAAEshE,IAAI,CAAC,IAAIl+C,EAAE0Q,EAAEppB,EAAE,EAAE42D,EAAEnkE,KAAK2xG,QAAQ5kG,EAAE4pB,EAAEppB,EAAE42D,EAAEvhE,EAAE5C,KAAK2xG,QAAQa,GAAGtsF,EAAED,EAAE1jB,EAAEwK,EAAEs3D,OAAE,EAAO3hC,OAAE,EAAOv0B,OAAE,EAAOmjG,OAAE,EAAOjtC,EAAEx3D,KAAKD,IAAIsZ,EAAE1O,KAAKjV,EAAEiV,MAAMkrB,EAAE71B,KAAKD,IAAIsZ,EAAEzO,KAAKlV,EAAEkV,MAAMtJ,EAAEtB,KAAKF,IAAIuZ,EAAExO,KAAKnV,EAAEmV,MAAM45F,EAAEzkG,KAAKF,IAAIuZ,EAAEvO,KAAKpV,EAAEoV,MAAM9K,KAAKD,IAAI,EAAEuB,EAAEk2D,GAAGx3D,KAAKD,IAAI,EAAE0kG,EAAE5uE,IAAI+vE,EAAEtsF,EAAEF,GAAGE,EAAEpZ,GAAGylG,EAAEpkG,GAAGA,EAAEokG,EAAE1kG,EAAEq2D,EAAEn+C,EAAEysF,EAAEzsF,EAAEysF,EAAEzsF,GAAGwsF,IAAIpkG,GAAGqkG,EAAEzsF,IAAIA,EAAEysF,EAAE3kG,EAAEq2D,EAAE,CAAC,OAAOr2D,GAAGlL,EAAEC,CAAC,EAAEiL,EAAEhJ,UAAUwtG,iBAAiB,SAAS/kG,EAAE1K,EAAED,GAAG,IAAIkL,EAAEP,EAAEkkG,KAAKzxG,KAAKgyG,YAAYtvE,EAAExc,EAAE3Y,EAAEkkG,KAAKzxG,KAAKiyG,YAAY9jG,EAAEnO,KAAK0yG,eAAenlG,EAAE1K,EAAED,EAAEkL,GAAG9N,KAAK0yG,eAAenlG,EAAE1K,EAAED,EAAEsjB,IAAI3Y,EAAE03B,SAAS1W,KAAKzgB,EAAE,EAAEA,EAAEhJ,UAAU4tG,eAAe,SAASnlG,EAAE1K,EAAED,EAAEkL,GAAGP,EAAE03B,SAAS1W,KAAKzgB,GAAG,IAAI,IAAIoY,EAAElmB,KAAK2xG,OAAOpvG,EAAEo0B,EAAEppB,EAAE,EAAE1K,EAAEqjB,GAAGwc,EAAE/L,EAAEppB,EAAE3K,EAAEC,EAAED,EAAEsjB,GAAG/X,EAAEmjG,EAAE/uG,GAAG+uG,EAAE5uE,GAAGvc,EAAEtjB,EAAEsjB,EAAEvjB,EAAEC,EAAEsjB,IAAI,CAAC,IAAI/X,EAAEb,EAAE03B,SAAS9e,GAAGk+C,EAAE9hE,EAAEgL,EAAEkkG,KAAKvrF,EAAE9X,GAAGA,GAAGD,GAAGmjG,EAAE/uG,EAAE,CAAC,IAAI,IAAIyjB,EAAEpjB,EAAEC,EAAE,EAAEmjB,GAAGnjB,EAAEmjB,IAAI,CAAC,IAAIm+C,EAAE52D,EAAE03B,SAASjf,GAAGq+C,EAAE3hC,EAAEn1B,EAAEkkG,KAAKvrF,EAAEi+C,GAAGA,GAAGh2D,GAAGmjG,EAAE5uE,EAAE,CAAC,OAAOv0B,CAAC,EAAEL,EAAEhJ,UAAUutG,oBAAoB,SAAS9kG,EAAE1K,EAAED,GAAG,IAAI,IAAIkL,EAAElL,EAAEkL,GAAG,EAAEA,IAAIu2D,EAAExhE,EAAEiL,GAAGP,EAAE,EAAEO,EAAEhJ,UAAUitG,UAAU,SAASxkG,GAAG,IAAI,IAAI1K,EAAE0K,EAAElL,OAAO,EAAEO,OAAE,EAAOC,GAAG,EAAEA,IAAI,IAAI0K,EAAE1K,GAAGoiC,SAAS5iC,OAAOQ,EAAE,GAAGD,EAAE2K,EAAE1K,EAAE,GAAGoiC,UAAU39B,OAAO1E,EAAEyE,QAAQkG,EAAE1K,IAAI,GAAG7C,KAAKoF,QAAQ7C,EAAEgL,EAAE1K,GAAG7C,KAAK2xG,OAAO,EAAE7jG,CAAC,G","sources":["webpack://hd-glasses-app/./src/pages/map.vue","webpack://hd-glasses-app/./node_modules/ol/events/Event.js","webpack://hd-glasses-app/./node_modules/ol/ObjectEventType.js","webpack://hd-glasses-app/./node_modules/ol/Disposable.js","webpack://hd-glasses-app/./node_modules/ol/array.js","webpack://hd-glasses-app/./node_modules/ol/functions.js","webpack://hd-glasses-app/./node_modules/ol/obj.js","webpack://hd-glasses-app/./node_modules/ol/events/Target.js","webpack://hd-glasses-app/./node_modules/ol/events/EventType.js","webpack://hd-glasses-app/./node_modules/ol/events.js","webpack://hd-glasses-app/./node_modules/ol/Observable.js","webpack://hd-glasses-app/./node_modules/ol/util.js","webpack://hd-glasses-app/./node_modules/ol/Object.js","webpack://hd-glasses-app/./node_modules/ol/layer/Property.js","webpack://hd-glasses-app/./node_modules/ol/asserts.js","webpack://hd-glasses-app/./node_modules/ol/math.js","webpack://hd-glasses-app/./node_modules/ol/layer/Base.js","webpack://hd-glasses-app/./node_modules/ol/render/EventType.js","webpack://hd-glasses-app/./node_modules/ol/ViewHint.js","webpack://hd-glasses-app/./node_modules/ol/ViewProperty.js","webpack://hd-glasses-app/./node_modules/ol/tilegrid/common.js","webpack://hd-glasses-app/./node_modules/ol/proj/Units.js","webpack://hd-glasses-app/./node_modules/ol/proj/Projection.js","webpack://hd-glasses-app/./node_modules/ol/proj/epsg3857.js","webpack://hd-glasses-app/./node_modules/ol/proj/epsg4326.js","webpack://hd-glasses-app/./node_modules/ol/proj/projections.js","webpack://hd-glasses-app/./node_modules/ol/proj/transforms.js","webpack://hd-glasses-app/./node_modules/ol/extent/Relationship.js","webpack://hd-glasses-app/./node_modules/ol/extent.js","webpack://hd-glasses-app/./node_modules/ol/coordinate.js","webpack://hd-glasses-app/./node_modules/ol/sphere.js","webpack://hd-glasses-app/./node_modules/ol/console.js","webpack://hd-glasses-app/./node_modules/ol/proj.js","webpack://hd-glasses-app/./node_modules/ol/centerconstraint.js","webpack://hd-glasses-app/./node_modules/ol/resolutionconstraint.js","webpack://hd-glasses-app/./node_modules/ol/rotationconstraint.js","webpack://hd-glasses-app/./node_modules/ol/easing.js","webpack://hd-glasses-app/./node_modules/ol/has.js","webpack://hd-glasses-app/./node_modules/ol/transform.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/transform.js","webpack://hd-glasses-app/./node_modules/ol/geom/Geometry.js","webpack://hd-glasses-app/./node_modules/ol/geom/SimpleGeometry.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/closest.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/deflate.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/simplify.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/inflate.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/area.js","webpack://hd-glasses-app/./node_modules/ol/geom/LinearRing.js","webpack://hd-glasses-app/./node_modules/ol/geom/Point.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/contains.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/interiorpoint.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/segments.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/intersectsextent.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/reverse.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/orient.js","webpack://hd-glasses-app/./node_modules/ol/geom/Polygon.js","webpack://hd-glasses-app/./node_modules/ol/View.js","webpack://hd-glasses-app/./node_modules/ol/layer/Layer.js","webpack://hd-glasses-app/./node_modules/ol/layer/TileProperty.js","webpack://hd-glasses-app/./node_modules/ol/layer/BaseTile.js","webpack://hd-glasses-app/./node_modules/ol/ImageState.js","webpack://hd-glasses-app/./node_modules/ol/renderer/Layer.js","webpack://hd-glasses-app/./node_modules/ol/render/Event.js","webpack://hd-glasses-app/./node_modules/ol/color.js","webpack://hd-glasses-app/./node_modules/ol/dom.js","webpack://hd-glasses-app/./node_modules/ol/renderer/canvas/Layer.js","webpack://hd-glasses-app/./node_modules/ol/TileState.js","webpack://hd-glasses-app/./node_modules/ol/Tile.js","webpack://hd-glasses-app/./node_modules/ol/Image.js","webpack://hd-glasses-app/./node_modules/ol/ImageTile.js","webpack://hd-glasses-app/./node_modules/ol/reproj/common.js","webpack://hd-glasses-app/./node_modules/ol/reproj/Triangulation.js","webpack://hd-glasses-app/./node_modules/ol/reproj.js","webpack://hd-glasses-app/./node_modules/ol/reproj/Tile.js","webpack://hd-glasses-app/./node_modules/ol/TileRange.js","webpack://hd-glasses-app/./node_modules/ol/size.js","webpack://hd-glasses-app/./node_modules/ol/renderer/canvas/TileLayer.js","webpack://hd-glasses-app/./node_modules/ol/layer/Tile.js","webpack://hd-glasses-app/./node_modules/ol/style/Image.js","webpack://hd-glasses-app/./node_modules/ol/colorlike.js","webpack://hd-glasses-app/./node_modules/ol/css.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas.js","webpack://hd-glasses-app/./node_modules/ol/style/RegularShape.js","webpack://hd-glasses-app/./node_modules/ol/style/Circle.js","webpack://hd-glasses-app/./node_modules/ol/style/Fill.js","webpack://hd-glasses-app/./node_modules/ol/style/Stroke.js","webpack://hd-glasses-app/./node_modules/ol/style/Style.js","webpack://hd-glasses-app/./node_modules/ol/style/IconImageCache.js","webpack://hd-glasses-app/./node_modules/ol/style/IconImage.js","webpack://hd-glasses-app/./node_modules/ol/style/Icon.js","webpack://hd-glasses-app/./node_modules/ol/style/Text.js","webpack://hd-glasses-app/./node_modules/ol/expr/expression.js","webpack://hd-glasses-app/./node_modules/ol/expr/cpu.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/style.js","webpack://hd-glasses-app/./node_modules/ol/layer/BaseVector.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Instruction.js","webpack://hd-glasses-app/./node_modules/ol/render/VectorContext.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Builder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/ImageBuilder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/LineStringBuilder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/PolygonBuilder.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/linechunk.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/straightchunk.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/TextBuilder.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/BuilderGroup.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/textpath.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/length.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Executor.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/ExecutorGroup.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/Immediate.js","webpack://hd-glasses-app/./node_modules/ol/render/canvas/hitdetect.js","webpack://hd-glasses-app/./node_modules/ol/renderer/vector.js","webpack://hd-glasses-app/./node_modules/ol/renderer/canvas/VectorLayer.js","webpack://hd-glasses-app/./node_modules/ol/layer/Vector.js","webpack://hd-glasses-app/./node_modules/ol/CollectionEventType.js","webpack://hd-glasses-app/./node_modules/ol/Collection.js","webpack://hd-glasses-app/./node_modules/ol/structs/RBush.js","webpack://hd-glasses-app/./node_modules/ol/source/Source.js","webpack://hd-glasses-app/./node_modules/ol/source/VectorEventType.js","webpack://hd-glasses-app/./node_modules/ol/loadingstrategy.js","webpack://hd-glasses-app/./node_modules/ol/featureloader.js","webpack://hd-glasses-app/./node_modules/ol/source/Vector.js","webpack://hd-glasses-app/./node_modules/ol/structs/LRUCache.js","webpack://hd-glasses-app/./node_modules/ol/tilecoord.js","webpack://hd-glasses-app/./node_modules/ol/TileCache.js","webpack://hd-glasses-app/./node_modules/ol/source/TileEventType.js","webpack://hd-glasses-app/./node_modules/ol/tilegrid/TileGrid.js","webpack://hd-glasses-app/./node_modules/ol/tilegrid.js","webpack://hd-glasses-app/./node_modules/ol/source/Tile.js","webpack://hd-glasses-app/./node_modules/ol/tileurlfunction.js","webpack://hd-glasses-app/./node_modules/ol/source/UrlTile.js","webpack://hd-glasses-app/./node_modules/ol/source/TileImage.js","webpack://hd-glasses-app/./node_modules/ol/source/XYZ.js","webpack://hd-glasses-app/./node_modules/ol/Feature.js","webpack://hd-glasses-app/./node_modules/ol/renderer/Map.js","webpack://hd-glasses-app/./node_modules/ol/renderer/Composite.js","webpack://hd-glasses-app/./node_modules/ol/layer/Group.js","webpack://hd-glasses-app/./node_modules/ol/MapEvent.js","webpack://hd-glasses-app/./node_modules/ol/MapBrowserEvent.js","webpack://hd-glasses-app/./node_modules/ol/MapBrowserEventType.js","webpack://hd-glasses-app/./node_modules/ol/pointer/EventType.js","webpack://hd-glasses-app/./node_modules/ol/MapBrowserEventHandler.js","webpack://hd-glasses-app/./node_modules/ol/MapEventType.js","webpack://hd-glasses-app/./node_modules/ol/MapProperty.js","webpack://hd-glasses-app/./node_modules/ol/structs/PriorityQueue.js","webpack://hd-glasses-app/./node_modules/ol/TileQueue.js","webpack://hd-glasses-app/./node_modules/ol/control/Control.js","webpack://hd-glasses-app/./node_modules/ol/control/Attribution.js","webpack://hd-glasses-app/./node_modules/ol/control/Rotate.js","webpack://hd-glasses-app/./node_modules/ol/control/Zoom.js","webpack://hd-glasses-app/./node_modules/ol/control/defaults.js","webpack://hd-glasses-app/./node_modules/ol/interaction/Property.js","webpack://hd-glasses-app/./node_modules/ol/interaction/Interaction.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DoubleClickZoom.js","webpack://hd-glasses-app/./node_modules/ol/interaction/Pointer.js","webpack://hd-glasses-app/./node_modules/ol/events/condition.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragPan.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragRotate.js","webpack://hd-glasses-app/./node_modules/ol/render/Box.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragBox.js","webpack://hd-glasses-app/./node_modules/ol/interaction/DragZoom.js","webpack://hd-glasses-app/./node_modules/ol/events/Key.js","webpack://hd-glasses-app/./node_modules/ol/interaction/KeyboardPan.js","webpack://hd-glasses-app/./node_modules/ol/interaction/KeyboardZoom.js","webpack://hd-glasses-app/./node_modules/ol/Kinetic.js","webpack://hd-glasses-app/./node_modules/ol/interaction/MouseWheelZoom.js","webpack://hd-glasses-app/./node_modules/ol/interaction/PinchRotate.js","webpack://hd-glasses-app/./node_modules/ol/interaction/PinchZoom.js","webpack://hd-glasses-app/./node_modules/ol/interaction/defaults.js","webpack://hd-glasses-app/./node_modules/ol/Map.js","webpack://hd-glasses-app/./node_modules/ol/Overlay.js","webpack://hd-glasses-app/./node_modules/ol/geom/flat/interpolate.js","webpack://hd-glasses-app/./node_modules/ol/geom/LineString.js","webpack://hd-glasses-app/./node_modules/ol/render.js","webpack://hd-glasses-app/src/pages/map.vue","webpack://hd-glasses-app/./src/pages/map.vue?6ecf","webpack://hd-glasses-app/./src/pages/map.vue?6c6a","webpack://hd-glasses-app/./node_modules/rbush/rbush.min.js"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"content\"}},[_c('div',{ref:\"map\",staticStyle:{\"width\":\"100vw\",\"height\":\"100vh\"},attrs:{\"id\":\"map\"}}),_c('div',{attrs:{\"id\":\"overlay-box\"}}),_c('div',{staticClass:\"actionList\"},[_c('van-grid',{attrs:{\"column-num\":3}},[_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.canAddPoints=true}}},[_vm._v(\"开始新增点位\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){_vm.canAddPoints=false}}},[_vm._v(\"结束新增点位\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":_vm.clearPointsLayers}},[_vm._v(\"清除点位\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){return _vm.startAnimation()}}},[_vm._v(\"开始沿轨迹运动\")])],1),_c('van-grid-item',[_c('van-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\"},on:{\"click\":function($event){return _vm.stopAnimation()}}},[_vm._v(\"结束沿轨迹运动\")])],1)],1),_c('br')],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @module ol/events/Event\n */\n\n/**\n * @classdesc\n * Stripped down implementation of the W3C DOM Level 2 Event interface.\n * See https://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-interface.\n *\n * This implementation only provides `type` and `target` properties, and\n * `stopPropagation` and `preventDefault` methods. It is meant as base class\n * for higher level events defined in the library, and works with\n * {@link module:ol/events/Target~Target}.\n */\nclass BaseEvent {\n /**\n * @param {string} type Type.\n */\n constructor(type) {\n /**\n * @type {boolean}\n */\n this.propagationStopped;\n\n /**\n * @type {boolean}\n */\n this.defaultPrevented;\n\n /**\n * The event type.\n * @type {string}\n * @api\n */\n this.type = type;\n\n /**\n * The event target.\n * @type {Object}\n * @api\n */\n this.target = null;\n }\n\n /**\n * Prevent default. This means that no emulated `click`, `singleclick` or `doubleclick` events\n * will be fired.\n * @api\n */\n preventDefault() {\n this.defaultPrevented = true;\n }\n\n /**\n * Stop event propagation.\n * @api\n */\n stopPropagation() {\n this.propagationStopped = true;\n }\n}\n\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function stopPropagation(evt) {\n evt.stopPropagation();\n}\n\n/**\n * @param {Event|import(\"./Event.js\").default} evt Event\n */\nexport function preventDefault(evt) {\n evt.preventDefault();\n}\n\nexport default BaseEvent;\n","/**\n * @module ol/ObjectEventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered when a property is changed.\n * @event module:ol/Object.ObjectEvent#propertychange\n * @api\n */\n PROPERTYCHANGE: 'propertychange',\n};\n\n/**\n * @typedef {'propertychange'} Types\n */\n","/**\n * @module ol/Disposable\n */\n\n/**\n * @classdesc\n * Objects that need to clean up after themselves.\n */\nclass Disposable {\n constructor() {\n /**\n * The object has already been disposed.\n * @type {boolean}\n * @protected\n */\n this.disposed = false;\n }\n\n /**\n * Clean up.\n */\n dispose() {\n if (!this.disposed) {\n this.disposed = true;\n this.disposeInternal();\n }\n }\n\n /**\n * Extension point for disposable objects.\n * @protected\n */\n disposeInternal() {}\n}\n\nexport default Disposable;\n","/**\n * @module ol/array\n */\n\n/**\n * Performs a binary search on the provided sorted list and returns the index of the item if found. If it can't be found it'll return -1.\n * https://github.com/darkskyapp/binary-search\n *\n * @param {Array<*>} haystack Items to search through.\n * @param {*} needle The item to look for.\n * @param {Function} [comparator] Comparator function.\n * @return {number} The index of the item if found, -1 if not.\n */\nexport function binarySearch(haystack, needle, comparator) {\n let mid, cmp;\n comparator = comparator || ascending;\n let low = 0;\n let high = haystack.length;\n let found = false;\n\n while (low < high) {\n /* Note that \"(low + high) >>> 1\" may overflow, and results in a typecast\n * to double (which gives the wrong results). */\n mid = low + ((high - low) >> 1);\n cmp = +comparator(haystack[mid], needle);\n\n if (cmp < 0.0) {\n /* Too low. */\n low = mid + 1;\n } else {\n /* Key found or too high */\n high = mid;\n found = !cmp;\n }\n }\n\n /* Key not found. */\n return found ? low : ~low;\n}\n\n/**\n * Compare function sorting arrays in ascending order. Safe to use for numeric values.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is less than, equal to, or greater than the second.\n */\nexport function ascending(a, b) {\n return a > b ? 1 : a < b ? -1 : 0;\n}\n\n/**\n * Compare function sorting arrays in descending order. Safe to use for numeric values.\n * @param {*} a The first object to be compared.\n * @param {*} b The second object to be compared.\n * @return {number} A negative number, zero, or a positive number as the first\n * argument is greater than, equal to, or less than the second.\n */\nexport function descending(a, b) {\n return a < b ? 1 : a > b ? -1 : 0;\n}\n\n/**\n * {@link module:ol/tilegrid/TileGrid~TileGrid#getZForResolution} can use a function\n * of this type to determine which nearest resolution to use.\n *\n * This function takes a `{number}` representing a value between two array entries,\n * a `{number}` representing the value of the nearest higher entry and\n * a `{number}` representing the value of the nearest lower entry\n * as arguments and returns a `{number}`. If a negative number or zero is returned\n * the lower value will be used, if a positive number is returned the higher value\n * will be used.\n * @typedef {function(number, number, number): number} NearestDirectionFunction\n * @api\n */\n\n/**\n * @param {Array} arr Array in descending order.\n * @param {number} target Target.\n * @param {number|NearestDirectionFunction} direction\n * 0 means return the nearest,\n * > 0 means return the largest nearest,\n * < 0 means return the smallest nearest.\n * @return {number} Index.\n */\nexport function linearFindNearest(arr, target, direction) {\n if (arr[0] <= target) {\n return 0;\n }\n\n const n = arr.length;\n if (target <= arr[n - 1]) {\n return n - 1;\n }\n\n if (typeof direction === 'function') {\n for (let i = 1; i < n; ++i) {\n const candidate = arr[i];\n if (candidate === target) {\n return i;\n }\n if (candidate < target) {\n if (direction(target, arr[i - 1], candidate) > 0) {\n return i - 1;\n }\n return i;\n }\n }\n return n - 1;\n }\n\n if (direction > 0) {\n for (let i = 1; i < n; ++i) {\n if (arr[i] < target) {\n return i - 1;\n }\n }\n return n - 1;\n }\n\n if (direction < 0) {\n for (let i = 1; i < n; ++i) {\n if (arr[i] <= target) {\n return i;\n }\n }\n return n - 1;\n }\n\n for (let i = 1; i < n; ++i) {\n if (arr[i] == target) {\n return i;\n }\n if (arr[i] < target) {\n if (arr[i - 1] - target < target - arr[i]) {\n return i - 1;\n }\n return i;\n }\n }\n return n - 1;\n}\n\n/**\n * @param {Array<*>} arr Array.\n * @param {number} begin Begin index.\n * @param {number} end End index.\n */\nexport function reverseSubArray(arr, begin, end) {\n while (begin < end) {\n const tmp = arr[begin];\n arr[begin] = arr[end];\n arr[end] = tmp;\n ++begin;\n --end;\n }\n}\n\n/**\n * @param {Array} arr The array to modify.\n * @param {!Array|VALUE} data The elements or arrays of elements to add to arr.\n * @template VALUE\n */\nexport function extend(arr, data) {\n const extension = Array.isArray(data) ? data : [data];\n const length = extension.length;\n for (let i = 0; i < length; i++) {\n arr[arr.length] = extension[i];\n }\n}\n\n/**\n * @param {Array} arr The array to modify.\n * @param {VALUE} obj The element to remove.\n * @template VALUE\n * @return {boolean} If the element was removed.\n */\nexport function remove(arr, obj) {\n const i = arr.indexOf(obj);\n const found = i > -1;\n if (found) {\n arr.splice(i, 1);\n }\n return found;\n}\n\n/**\n * @param {Array|Uint8ClampedArray} arr1 The first array to compare.\n * @param {Array|Uint8ClampedArray} arr2 The second array to compare.\n * @return {boolean} Whether the two arrays are equal.\n */\nexport function equals(arr1, arr2) {\n const len1 = arr1.length;\n if (len1 !== arr2.length) {\n return false;\n }\n for (let i = 0; i < len1; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Sort the passed array such that the relative order of equal elements is preserved.\n * See https://en.wikipedia.org/wiki/Sorting_algorithm#Stability for details.\n * @param {Array<*>} arr The array to sort (modifies original).\n * @param {!function(*, *): number} compareFnc Comparison function.\n * @api\n */\nexport function stableSort(arr, compareFnc) {\n const length = arr.length;\n const tmp = Array(arr.length);\n let i;\n for (i = 0; i < length; i++) {\n tmp[i] = {index: i, value: arr[i]};\n }\n tmp.sort(function (a, b) {\n return compareFnc(a.value, b.value) || a.index - b.index;\n });\n for (i = 0; i < arr.length; i++) {\n arr[i] = tmp[i].value;\n }\n}\n\n/**\n * @param {Array<*>} arr The array to test.\n * @param {Function} [func] Comparison function.\n * @param {boolean} [strict] Strictly sorted (default false).\n * @return {boolean} Return index.\n */\nexport function isSorted(arr, func, strict) {\n const compare = func || ascending;\n return arr.every(function (currentVal, index) {\n if (index === 0) {\n return true;\n }\n const res = compare(arr[index - 1], currentVal);\n return !(res > 0 || (strict && res === 0));\n });\n}\n","/**\n * @module ol/functions\n */\n\nimport {equals as arrayEquals} from './array.js';\n\n/**\n * Always returns true.\n * @return {boolean} true.\n */\nexport function TRUE() {\n return true;\n}\n\n/**\n * Always returns false.\n * @return {boolean} false.\n */\nexport function FALSE() {\n return false;\n}\n\n/**\n * A reusable function, used e.g. as a default for callbacks.\n *\n * @return {void} Nothing.\n */\nexport function VOID() {}\n\n/**\n * Wrap a function in another function that remembers the last return. If the\n * returned function is called twice in a row with the same arguments and the same\n * this object, it will return the value from the first call in the second call.\n *\n * @param {function(...any): ReturnType} fn The function to memoize.\n * @return {function(...any): ReturnType} The memoized function.\n * @template ReturnType\n */\nexport function memoizeOne(fn) {\n let called = false;\n\n /** @type {ReturnType} */\n let lastResult;\n\n /** @type {Array} */\n let lastArgs;\n\n let lastThis;\n\n return function () {\n const nextArgs = Array.prototype.slice.call(arguments);\n if (!called || this !== lastThis || !arrayEquals(nextArgs, lastArgs)) {\n called = true;\n lastThis = this;\n lastArgs = nextArgs;\n lastResult = fn.apply(this, arguments);\n }\n return lastResult;\n };\n}\n\n/**\n * @template T\n * @param {function(): (T | Promise)} getter A function that returns a value or a promise for a value.\n * @return {Promise} A promise for the value.\n */\nexport function toPromise(getter) {\n function promiseGetter() {\n let value;\n try {\n value = getter();\n } catch (err) {\n return Promise.reject(err);\n }\n if (value instanceof Promise) {\n return value;\n }\n return Promise.resolve(value);\n }\n return promiseGetter();\n}\n","/**\n * @module ol/obj\n */\n\n/**\n * Removes all properties from an object.\n * @param {Object} object The object to clear.\n */\nexport function clear(object) {\n for (const property in object) {\n delete object[property];\n }\n}\n\n/**\n * Determine if an object has any properties.\n * @param {Object} object The object to check.\n * @return {boolean} The object is empty.\n */\nexport function isEmpty(object) {\n let property;\n for (property in object) {\n return false;\n }\n return !property;\n}\n","/**\n * @module ol/events/Target\n */\nimport Disposable from '../Disposable.js';\nimport Event from './Event.js';\nimport {VOID} from '../functions.js';\nimport {clear} from '../obj.js';\n\n/**\n * @typedef {EventTarget|Target} EventTargetLike\n */\n\n/**\n * @classdesc\n * A simplified implementation of the W3C DOM Level 2 EventTarget interface.\n * See https://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/events.html#Events-EventTarget.\n *\n * There are two important simplifications compared to the specification:\n *\n * 1. The handling of `useCapture` in `addEventListener` and\n * `removeEventListener`. There is no real capture model.\n * 2. The handling of `stopPropagation` and `preventDefault` on `dispatchEvent`.\n * There is no event target hierarchy. When a listener calls\n * `stopPropagation` or `preventDefault` on an event object, it means that no\n * more listeners after this one will be called. Same as when the listener\n * returns false.\n */\nclass Target extends Disposable {\n /**\n * @param {*} [target] Default event target for dispatched events.\n */\n constructor(target) {\n super();\n\n /**\n * @private\n * @type {*}\n */\n this.eventTarget_ = target;\n\n /**\n * @private\n * @type {Object}\n */\n this.pendingRemovals_ = null;\n\n /**\n * @private\n * @type {Object}\n */\n this.dispatching_ = null;\n\n /**\n * @private\n * @type {Object>}\n */\n this.listeners_ = null;\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n addEventListener(type, listener) {\n if (!type || !listener) {\n return;\n }\n const listeners = this.listeners_ || (this.listeners_ = {});\n const listenersForType = listeners[type] || (listeners[type] = []);\n if (!listenersForType.includes(listener)) {\n listenersForType.push(listener);\n }\n }\n\n /**\n * Dispatches an event and calls all listeners listening for events\n * of this type. The event parameter can either be a string or an\n * Object with a `type` property.\n *\n * @param {import(\"./Event.js\").default|string} event Event object.\n * @return {boolean|undefined} `false` if anyone called preventDefault on the\n * event object or if any of the listeners returned false.\n * @api\n */\n dispatchEvent(event) {\n const isString = typeof event === 'string';\n const type = isString ? event : event.type;\n const listeners = this.listeners_ && this.listeners_[type];\n if (!listeners) {\n return;\n }\n\n const evt = isString ? new Event(event) : /** @type {Event} */ (event);\n if (!evt.target) {\n evt.target = this.eventTarget_ || this;\n }\n const dispatching = this.dispatching_ || (this.dispatching_ = {});\n const pendingRemovals =\n this.pendingRemovals_ || (this.pendingRemovals_ = {});\n if (!(type in dispatching)) {\n dispatching[type] = 0;\n pendingRemovals[type] = 0;\n }\n ++dispatching[type];\n let propagate;\n for (let i = 0, ii = listeners.length; i < ii; ++i) {\n if ('handleEvent' in listeners[i]) {\n propagate = /** @type {import(\"../events.js\").ListenerObject} */ (\n listeners[i]\n ).handleEvent(evt);\n } else {\n propagate = /** @type {import(\"../events.js\").ListenerFunction} */ (\n listeners[i]\n ).call(this, evt);\n }\n if (propagate === false || evt.propagationStopped) {\n propagate = false;\n break;\n }\n }\n if (--dispatching[type] === 0) {\n let pr = pendingRemovals[type];\n delete pendingRemovals[type];\n while (pr--) {\n this.removeEventListener(type, VOID);\n }\n delete dispatching[type];\n }\n return propagate;\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n this.listeners_ && clear(this.listeners_);\n }\n\n /**\n * Get the listeners for a specified event type. Listeners are returned in the\n * order that they will be called in.\n *\n * @param {string} type Type.\n * @return {Array|undefined} Listeners.\n */\n getListeners(type) {\n return (this.listeners_ && this.listeners_[type]) || undefined;\n }\n\n /**\n * @param {string} [type] Type. If not provided,\n * `true` will be returned if this event target has any listeners.\n * @return {boolean} Has listeners.\n */\n hasListener(type) {\n if (!this.listeners_) {\n return false;\n }\n return type\n ? type in this.listeners_\n : Object.keys(this.listeners_).length > 0;\n }\n\n /**\n * @param {string} type Type.\n * @param {import(\"../events.js\").Listener} listener Listener.\n */\n removeEventListener(type, listener) {\n const listeners = this.listeners_ && this.listeners_[type];\n if (listeners) {\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n if (this.pendingRemovals_ && type in this.pendingRemovals_) {\n // make listener a no-op, and remove later in #dispatchEvent()\n listeners[index] = VOID;\n ++this.pendingRemovals_[type];\n } else {\n listeners.splice(index, 1);\n if (listeners.length === 0) {\n delete this.listeners_[type];\n }\n }\n }\n }\n }\n}\n\nexport default Target;\n","/**\n * @module ol/events/EventType\n */\n\n/**\n * @enum {string}\n * @const\n */\nexport default {\n /**\n * Generic change event. Triggered when the revision counter is increased.\n * @event module:ol/events/Event~BaseEvent#change\n * @api\n */\n CHANGE: 'change',\n\n /**\n * Generic error event. Triggered when an error occurs.\n * @event module:ol/events/Event~BaseEvent#error\n * @api\n */\n ERROR: 'error',\n\n BLUR: 'blur',\n CLEAR: 'clear',\n CONTEXTMENU: 'contextmenu',\n CLICK: 'click',\n DBLCLICK: 'dblclick',\n DRAGENTER: 'dragenter',\n DRAGOVER: 'dragover',\n DROP: 'drop',\n FOCUS: 'focus',\n KEYDOWN: 'keydown',\n KEYPRESS: 'keypress',\n LOAD: 'load',\n RESIZE: 'resize',\n TOUCHMOVE: 'touchmove',\n WHEEL: 'wheel',\n};\n","/**\n * @module ol/events\n */\nimport {clear} from './obj.js';\n\n/**\n * Key to use with {@link module:ol/Observable.unByKey}.\n * @typedef {Object} EventsKey\n * @property {ListenerFunction} listener Listener.\n * @property {import(\"./events/Target.js\").EventTargetLike} target Target.\n * @property {string} type Type.\n * @api\n */\n\n/**\n * Listener function. This function is called with an event object as argument.\n * When the function returns `false`, event propagation will stop.\n *\n * @typedef {function((Event|import(\"./events/Event.js\").default)): (void|boolean)} ListenerFunction\n * @api\n */\n\n/**\n * @typedef {Object} ListenerObject\n * @property {ListenerFunction} handleEvent HandleEvent listener function.\n */\n\n/**\n * @typedef {ListenerFunction|ListenerObject} Listener\n */\n\n/**\n * Registers an event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` to a `this` object, and returns\n * a key for use with {@link module:ol/events.unlistenByKey}.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [thisArg] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @param {boolean} [once] If true, add the listener as one-off listener.\n * @return {EventsKey} Unique key for the listener.\n */\nexport function listen(target, type, listener, thisArg, once) {\n if (thisArg && thisArg !== target) {\n listener = listener.bind(thisArg);\n }\n if (once) {\n const originalListener = listener;\n listener = function () {\n target.removeEventListener(type, listener);\n originalListener.apply(this, arguments);\n };\n }\n const eventsKey = {\n target: target,\n type: type,\n listener: listener,\n };\n target.addEventListener(type, listener);\n return eventsKey;\n}\n\n/**\n * Registers a one-off event listener on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * This function efficiently binds a `listener` as self-unregistering listener\n * to a `this` object, and returns a key for use with\n * {@link module:ol/events.unlistenByKey} in case the listener needs to be\n * unregistered before it is called.\n *\n * When {@link module:ol/events.listen} is called with the same arguments after this\n * function, the self-unregistering listener will be turned into a permanent\n * listener.\n *\n * @param {import(\"./events/Target.js\").EventTargetLike} target Event target.\n * @param {string} type Event type.\n * @param {ListenerFunction} listener Listener.\n * @param {Object} [thisArg] Object referenced by the `this` keyword in the\n * listener. Default is the `target`.\n * @return {EventsKey} Key for unlistenByKey.\n */\nexport function listenOnce(target, type, listener, thisArg) {\n return listen(target, type, listener, thisArg, true);\n}\n\n/**\n * Unregisters event listeners on an event target. Inspired by\n * https://google.github.io/closure-library/api/source/closure/goog/events/events.js.src.html\n *\n * The argument passed to this function is the key returned from\n * {@link module:ol/events.listen} or {@link module:ol/events.listenOnce}.\n *\n * @param {EventsKey} key The key.\n */\nexport function unlistenByKey(key) {\n if (key && key.target) {\n key.target.removeEventListener(key.type, key.listener);\n clear(key);\n }\n}\n","/**\n * @module ol/Observable\n */\nimport EventTarget from './events/Target.js';\nimport EventType from './events/EventType.js';\nimport {listen, listenOnce, unlistenByKey} from './events.js';\n\n/***\n * @template {string} Type\n * @template {Event|import(\"./events/Event.js\").default} EventClass\n * @template Return\n * @typedef {(type: Type, listener: (event: EventClass) => ?) => Return} OnSignature\n */\n\n/***\n * @template {string} Type\n * @template Return\n * @typedef {(type: Type[], listener: (event: Event|import(\"./events/Event\").default) => ?) => Return extends void ? void : Return[]} CombinedOnSignature\n */\n\n/**\n * @typedef {'change'|'error'} EventTypes\n */\n\n/***\n * @template Return\n * @typedef {OnSignature & CombinedOnSignature} ObservableOnSignature\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * An event target providing convenient methods for listener registration\n * and unregistration. A generic `change` event is always available through\n * {@link module:ol/Observable~Observable#changed}.\n *\n * @fires import(\"./events/Event.js\").default\n * @api\n */\nclass Observable extends EventTarget {\n constructor() {\n super();\n\n this.on =\n /** @type {ObservableOnSignature} */ (\n this.onInternal\n );\n\n this.once =\n /** @type {ObservableOnSignature} */ (\n this.onceInternal\n );\n\n this.un = /** @type {ObservableOnSignature} */ (this.unInternal);\n\n /**\n * @private\n * @type {number}\n */\n this.revision_ = 0;\n }\n\n /**\n * Increases the revision counter and dispatches a 'change' event.\n * @api\n */\n changed() {\n ++this.revision_;\n this.dispatchEvent(EventType.CHANGE);\n }\n\n /**\n * Get the version number for this object. Each time the object is modified,\n * its version number will be incremented.\n * @return {number} Revision.\n * @api\n */\n getRevision() {\n return this.revision_;\n }\n\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n onInternal(type, listener) {\n if (Array.isArray(type)) {\n const len = type.length;\n const keys = new Array(len);\n for (let i = 0; i < len; ++i) {\n keys[i] = listen(this, type[i], listener);\n }\n return keys;\n }\n return listen(this, /** @type {string} */ (type), listener);\n }\n\n /**\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @return {import(\"./events.js\").EventsKey|Array} Event key.\n * @protected\n */\n onceInternal(type, listener) {\n let key;\n if (Array.isArray(type)) {\n const len = type.length;\n key = new Array(len);\n for (let i = 0; i < len; ++i) {\n key[i] = listenOnce(this, type[i], listener);\n }\n } else {\n key = listenOnce(this, /** @type {string} */ (type), listener);\n }\n /** @type {Object} */ (listener).ol_key = key;\n return key;\n }\n\n /**\n * Unlisten for a certain type of event.\n * @param {string|Array} type Type.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener Listener.\n * @protected\n */\n unInternal(type, listener) {\n const key = /** @type {Object} */ (listener).ol_key;\n if (key) {\n unByKey(key);\n } else if (Array.isArray(type)) {\n for (let i = 0, ii = type.length; i < ii; ++i) {\n this.removeEventListener(type[i], listener);\n }\n } else {\n this.removeEventListener(type, listener);\n }\n }\n}\n\n/**\n * Listen for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.on;\n\n/**\n * Listen once for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @return {import(\"./events.js\").EventsKey|Array} Unique key for the listener. If\n * called with an array of event types as the first argument, the return\n * will be an array of keys.\n * @api\n */\nObservable.prototype.once;\n\n/**\n * Unlisten for a certain type of event.\n * @function\n * @param {string|Array} type The event type or array of event types.\n * @param {function((Event|import(\"./events/Event\").default)): ?} listener The listener function.\n * @api\n */\nObservable.prototype.un;\n\n/**\n * Removes an event listener using the key returned by `on()` or `once()`.\n * @param {import(\"./events.js\").EventsKey|Array} key The key returned by `on()`\n * or `once()` (or an array of keys).\n * @api\n */\nexport function unByKey(key) {\n if (Array.isArray(key)) {\n for (let i = 0, ii = key.length; i < ii; ++i) {\n unlistenByKey(key[i]);\n }\n } else {\n unlistenByKey(/** @type {import(\"./events.js\").EventsKey} */ (key));\n }\n}\n\nexport default Observable;\n","/**\n * @module ol/util\n */\n\n/**\n * @return {never} Any return.\n */\nexport function abstract() {\n throw new Error('Unimplemented abstract method.');\n}\n\n/**\n * Counter for getUid.\n * @type {number}\n * @private\n */\nlet uidCounter_ = 0;\n\n/**\n * Gets a unique ID for an object. This mutates the object so that further calls\n * with the same object as a parameter returns the same value. Unique IDs are generated\n * as a strictly increasing sequence. Adapted from goog.getUid.\n *\n * @param {Object} obj The object to get the unique ID for.\n * @return {string} The unique ID for the object.\n * @api\n */\nexport function getUid(obj) {\n return obj.ol_uid || (obj.ol_uid = String(++uidCounter_));\n}\n\n/**\n * OpenLayers version.\n * @type {string}\n */\nexport const VERSION = '8.1.0';\n","/**\n * @module ol/Object\n */\nimport Event from './events/Event.js';\nimport ObjectEventType from './ObjectEventType.js';\nimport Observable from './Observable.js';\nimport {getUid} from './util.js';\nimport {isEmpty} from './obj.js';\n\n/**\n * @classdesc\n * Events emitted by {@link module:ol/Object~BaseObject} instances are instances of this type.\n */\nexport class ObjectEvent extends Event {\n /**\n * @param {string} type The event type.\n * @param {string} key The property name.\n * @param {*} oldValue The old value for `key`.\n */\n constructor(type, key, oldValue) {\n super(type);\n\n /**\n * The name of the property whose value is changing.\n * @type {string}\n * @api\n */\n this.key = key;\n\n /**\n * The old value. To get the new value use `e.target.get(e.key)` where\n * `e` is the event object.\n * @type {*}\n * @api\n */\n this.oldValue = oldValue;\n }\n}\n\n/***\n * @template Return\n * @typedef {import(\"./Observable\").OnSignature &\n * import(\"./Observable\").OnSignature &\n * import(\"./Observable\").CombinedOnSignature} ObjectOnSignature\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Most non-trivial classes inherit from this.\n *\n * This extends {@link module:ol/Observable~Observable} with observable\n * properties, where each property is observable as well as the object as a\n * whole.\n *\n * Classes that inherit from this have pre-defined properties, to which you can\n * add your owns. The pre-defined properties are listed in this documentation as\n * 'Observable Properties', and have their own accessors; for example,\n * {@link module:ol/Map~Map} has a `target` property, accessed with\n * `getTarget()` and changed with `setTarget()`. Not all properties are however\n * settable. There are also general-purpose accessors `get()` and `set()`. For\n * example, `get('target')` is equivalent to `getTarget()`.\n *\n * The `set` accessors trigger a change event, and you can monitor this by\n * registering a listener. For example, {@link module:ol/View~View} has a\n * `center` property, so `view.on('change:center', function(evt) {...});` would\n * call the function whenever the value of the center property changes. Within\n * the function, `evt.target` would be the view, so `evt.target.getCenter()`\n * would return the new center.\n *\n * You can add your own observable properties with\n * `object.set('prop', 'value')`, and retrieve that with `object.get('prop')`.\n * You can listen for changes on that property value with\n * `object.on('change:prop', listener)`. You can get a list of all\n * properties with {@link module:ol/Object~BaseObject#getProperties}.\n *\n * Note that the observable properties are separate from standard JS properties.\n * You can, for example, give your map object a title with\n * `map.title='New title'` and with `map.set('title', 'Another title')`. The\n * first will be a `hasOwnProperty`; the second will appear in\n * `getProperties()`. Only the second is observable.\n *\n * Properties can be deleted by using the unset method. E.g.\n * object.unset('foo').\n *\n * @fires ObjectEvent\n * @api\n */\nclass BaseObject extends Observable {\n /**\n * @param {Object} [values] An object with key-value pairs.\n */\n constructor(values) {\n super();\n\n /***\n * @type {ObjectOnSignature}\n */\n this.on;\n\n /***\n * @type {ObjectOnSignature}\n */\n this.once;\n\n /***\n * @type {ObjectOnSignature}\n */\n this.un;\n\n // Call {@link module:ol/util.getUid} to ensure that the order of objects' ids is\n // the same as the order in which they were created. This also helps to\n // ensure that object properties are always added in the same order, which\n // helps many JavaScript engines generate faster code.\n getUid(this);\n\n /**\n * @private\n * @type {Object}\n */\n this.values_ = null;\n\n if (values !== undefined) {\n this.setProperties(values);\n }\n }\n\n /**\n * Gets a value.\n * @param {string} key Key name.\n * @return {*} Value.\n * @api\n */\n get(key) {\n let value;\n if (this.values_ && this.values_.hasOwnProperty(key)) {\n value = this.values_[key];\n }\n return value;\n }\n\n /**\n * Get a list of object property names.\n * @return {Array} List of property names.\n * @api\n */\n getKeys() {\n return (this.values_ && Object.keys(this.values_)) || [];\n }\n\n /**\n * Get an object of all property names and values.\n * @return {Object} Object.\n * @api\n */\n getProperties() {\n return (this.values_ && Object.assign({}, this.values_)) || {};\n }\n\n /**\n * Get an object of all property names and values.\n * @return {Object?} Object.\n */\n getPropertiesInternal() {\n return this.values_;\n }\n\n /**\n * @return {boolean} The object has properties.\n */\n hasProperties() {\n return !!this.values_;\n }\n\n /**\n * @param {string} key Key name.\n * @param {*} oldValue Old value.\n */\n notify(key, oldValue) {\n let eventType;\n eventType = `change:${key}`;\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n eventType = ObjectEventType.PROPERTYCHANGE;\n if (this.hasListener(eventType)) {\n this.dispatchEvent(new ObjectEvent(eventType, key, oldValue));\n }\n }\n\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n addChangeListener(key, listener) {\n this.addEventListener(`change:${key}`, listener);\n }\n\n /**\n * @param {string} key Key name.\n * @param {import(\"./events.js\").Listener} listener Listener.\n */\n removeChangeListener(key, listener) {\n this.removeEventListener(`change:${key}`, listener);\n }\n\n /**\n * Sets a value.\n * @param {string} key Key name.\n * @param {*} value Value.\n * @param {boolean} [silent] Update without triggering an event.\n * @api\n */\n set(key, value, silent) {\n const values = this.values_ || (this.values_ = {});\n if (silent) {\n values[key] = value;\n } else {\n const oldValue = values[key];\n values[key] = value;\n if (oldValue !== value) {\n this.notify(key, oldValue);\n }\n }\n }\n\n /**\n * Sets a collection of key-value pairs. Note that this changes any existing\n * properties and adds new ones (it does not remove any existing properties).\n * @param {Object} values Values.\n * @param {boolean} [silent] Update without triggering an event.\n * @api\n */\n setProperties(values, silent) {\n for (const key in values) {\n this.set(key, values[key], silent);\n }\n }\n\n /**\n * Apply any properties from another object without triggering events.\n * @param {BaseObject} source The source object.\n * @protected\n */\n applyProperties(source) {\n if (!source.values_) {\n return;\n }\n Object.assign(this.values_ || (this.values_ = {}), source.values_);\n }\n\n /**\n * Unsets a property.\n * @param {string} key Key name.\n * @param {boolean} [silent] Unset without triggering an event.\n * @api\n */\n unset(key, silent) {\n if (this.values_ && key in this.values_) {\n const oldValue = this.values_[key];\n delete this.values_[key];\n if (isEmpty(this.values_)) {\n this.values_ = null;\n }\n if (!silent) {\n this.notify(key, oldValue);\n }\n }\n }\n}\n\nexport default BaseObject;\n","/**\n * @module ol/layer/Property\n */\n\n/**\n * @enum {string}\n */\nexport default {\n OPACITY: 'opacity',\n VISIBLE: 'visible',\n EXTENT: 'extent',\n Z_INDEX: 'zIndex',\n MAX_RESOLUTION: 'maxResolution',\n MIN_RESOLUTION: 'minResolution',\n MAX_ZOOM: 'maxZoom',\n MIN_ZOOM: 'minZoom',\n SOURCE: 'source',\n MAP: 'map',\n};\n","/**\n * @module ol/asserts\n */\n\n/**\n * @param {*} assertion Assertion we expected to be truthy.\n * @param {string} errorMessage Error message.\n */\nexport function assert(assertion, errorMessage) {\n if (!assertion) {\n throw new Error(errorMessage);\n }\n}\n","/**\n * @module ol/math\n */\n\n/**\n * Takes a number and clamps it to within the provided bounds.\n * @param {number} value The input number.\n * @param {number} min The minimum value to return.\n * @param {number} max The maximum value to return.\n * @return {number} The input number if it is within bounds, or the nearest\n * number within the bounds.\n */\nexport function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n}\n\n/**\n * Returns the square of the closest distance between the point (x, y) and the\n * line segment (x1, y1) to (x2, y2).\n * @param {number} x X.\n * @param {number} y Y.\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredSegmentDistance(x, y, x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n if (dx !== 0 || dy !== 0) {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n x1 = x2;\n y1 = y2;\n } else if (t > 0) {\n x1 += dx * t;\n y1 += dy * t;\n }\n }\n return squaredDistance(x, y, x1, y1);\n}\n\n/**\n * Returns the square of the distance between the points (x1, y1) and (x2, y2).\n * @param {number} x1 X1.\n * @param {number} y1 Y1.\n * @param {number} x2 X2.\n * @param {number} y2 Y2.\n * @return {number} Squared distance.\n */\nexport function squaredDistance(x1, y1, x2, y2) {\n const dx = x2 - x1;\n const dy = y2 - y1;\n return dx * dx + dy * dy;\n}\n\n/**\n * Solves system of linear equations using Gaussian elimination method.\n *\n * @param {Array>} mat Augmented matrix (n x n + 1 column)\n * in row-major order.\n * @return {Array} The resulting vector.\n */\nexport function solveLinearSystem(mat) {\n const n = mat.length;\n\n for (let i = 0; i < n; i++) {\n // Find max in the i-th column (ignoring i - 1 first rows)\n let maxRow = i;\n let maxEl = Math.abs(mat[i][i]);\n for (let r = i + 1; r < n; r++) {\n const absValue = Math.abs(mat[r][i]);\n if (absValue > maxEl) {\n maxEl = absValue;\n maxRow = r;\n }\n }\n\n if (maxEl === 0) {\n return null; // matrix is singular\n }\n\n // Swap max row with i-th (current) row\n const tmp = mat[maxRow];\n mat[maxRow] = mat[i];\n mat[i] = tmp;\n\n // Subtract the i-th row to make all the remaining rows 0 in the i-th column\n for (let j = i + 1; j < n; j++) {\n const coef = -mat[j][i] / mat[i][i];\n for (let k = i; k < n + 1; k++) {\n if (i == k) {\n mat[j][k] = 0;\n } else {\n mat[j][k] += coef * mat[i][k];\n }\n }\n }\n }\n\n // Solve Ax=b for upper triangular matrix A (mat)\n const x = new Array(n);\n for (let l = n - 1; l >= 0; l--) {\n x[l] = mat[l][n] / mat[l][l];\n for (let m = l - 1; m >= 0; m--) {\n mat[m][n] -= mat[m][l] * x[l];\n }\n }\n return x;\n}\n\n/**\n * Converts radians to to degrees.\n *\n * @param {number} angleInRadians Angle in radians.\n * @return {number} Angle in degrees.\n */\nexport function toDegrees(angleInRadians) {\n return (angleInRadians * 180) / Math.PI;\n}\n\n/**\n * Converts degrees to radians.\n *\n * @param {number} angleInDegrees Angle in degrees.\n * @return {number} Angle in radians.\n */\nexport function toRadians(angleInDegrees) {\n return (angleInDegrees * Math.PI) / 180;\n}\n\n/**\n * Returns the modulo of a / b, depending on the sign of b.\n *\n * @param {number} a Dividend.\n * @param {number} b Divisor.\n * @return {number} Modulo.\n */\nexport function modulo(a, b) {\n const r = a % b;\n return r * b < 0 ? r + b : r;\n}\n\n/**\n * Calculates the linearly interpolated value of x between a and b.\n *\n * @param {number} a Number\n * @param {number} b Number\n * @param {number} x Value to be interpolated.\n * @return {number} Interpolated value.\n */\nexport function lerp(a, b, x) {\n return a + x * (b - a);\n}\n\n/**\n * Returns a number with a limited number of decimal digits.\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The input number with a limited number of decimal digits.\n */\nexport function toFixed(n, decimals) {\n const factor = Math.pow(10, decimals);\n return Math.round(n * factor) / factor;\n}\n\n/**\n * Rounds a number to the nearest integer value considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The nearest integer.\n */\nexport function round(n, decimals) {\n return Math.round(toFixed(n, decimals));\n}\n\n/**\n * Rounds a number to the next smaller integer considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The next smaller integer.\n */\nexport function floor(n, decimals) {\n return Math.floor(toFixed(n, decimals));\n}\n\n/**\n * Rounds a number to the next bigger integer considering only the given number\n * of decimal digits (with rounding on the final digit).\n * @param {number} n The input number.\n * @param {number} decimals The maximum number of decimal digits.\n * @return {number} The next bigger integer.\n */\nexport function ceil(n, decimals) {\n return Math.ceil(toFixed(n, decimals));\n}\n","/**\n * @module ol/layer/Base\n */\nimport BaseObject from '../Object.js';\nimport LayerProperty from './Property.js';\nimport {abstract} from '../util.js';\nimport {assert} from '../asserts.js';\nimport {clamp} from '../math.js';\n\n/**\n * A css color, or a function called with a view resolution returning a css color.\n *\n * @typedef {string|function(number):string} BackgroundColor\n * @api\n */\n\n/**\n * @typedef {import(\"../ObjectEventType\").Types|'change:extent'|'change:maxResolution'|'change:maxZoom'|\n * 'change:minResolution'|'change:minZoom'|'change:opacity'|'change:visible'|'change:zIndex'} BaseLayerObjectEventTypes\n */\n\n/***\n * @template Return\n * @typedef {import(\"../Observable\").OnSignature &\n * import(\"../Observable\").OnSignature &\n * import(\"../Observable\").CombinedOnSignature} BaseLayerOnSignature\n */\n\n/**\n * @typedef {Object} Options\n * @property {string} [className='ol-layer'] A CSS class name to set to the layer element.\n * @property {number} [opacity=1] Opacity (0, 1).\n * @property {boolean} [visible=true] Visibility.\n * @property {import(\"../extent.js\").Extent} [extent] The bounding extent for layer rendering. The layer will not be\n * rendered outside of this extent.\n * @property {number | undefined} [zIndex] The z-index for layer rendering. At rendering time, the layers\n * will be ordered, first by Z-index and then by position. When `undefined`, a `zIndex` of 0 is assumed\n * for layers that are added to the map's `layers` collection, or `Infinity` when the layer's `setMap()`\n * method was used.\n * @property {number} [minResolution] The minimum resolution (inclusive) at which this layer will be\n * visible.\n * @property {number} [maxResolution] The maximum resolution (exclusive) below which this layer will\n * be visible.\n * @property {number} [minZoom] The minimum view zoom level (exclusive) above which this layer will be\n * visible.\n * @property {number} [maxZoom] The maximum view zoom level (inclusive) at which this layer will\n * be visible.\n * @property {BackgroundColor} [background] Background color for the layer. If not specified, no background\n * will be rendered.\n * @property {Object} [properties] Arbitrary observable properties. Can be accessed with `#get()` and `#set()`.\n */\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Note that with {@link module:ol/layer/Base~BaseLayer} and all its subclasses, any property set in\n * the options is set as a {@link module:ol/Object~BaseObject} property on the layer object, so\n * is observable, and has get/set accessors.\n *\n * @api\n */\nclass BaseLayer extends BaseObject {\n /**\n * @param {Options} options Layer options.\n */\n constructor(options) {\n super();\n\n /***\n * @type {BaseLayerOnSignature}\n */\n this.on;\n\n /***\n * @type {BaseLayerOnSignature}\n */\n this.once;\n\n /***\n * @type {BaseLayerOnSignature}\n */\n this.un;\n\n /**\n * @type {BackgroundColor|false}\n * @private\n */\n this.background_ = options.background;\n\n /**\n * @type {Object}\n */\n const properties = Object.assign({}, options);\n if (typeof options.properties === 'object') {\n delete properties.properties;\n Object.assign(properties, options.properties);\n }\n\n properties[LayerProperty.OPACITY] =\n options.opacity !== undefined ? options.opacity : 1;\n assert(\n typeof properties[LayerProperty.OPACITY] === 'number',\n 'Layer opacity must be a number'\n );\n\n properties[LayerProperty.VISIBLE] =\n options.visible !== undefined ? options.visible : true;\n properties[LayerProperty.Z_INDEX] = options.zIndex;\n properties[LayerProperty.MAX_RESOLUTION] =\n options.maxResolution !== undefined ? options.maxResolution : Infinity;\n properties[LayerProperty.MIN_RESOLUTION] =\n options.minResolution !== undefined ? options.minResolution : 0;\n properties[LayerProperty.MIN_ZOOM] =\n options.minZoom !== undefined ? options.minZoom : -Infinity;\n properties[LayerProperty.MAX_ZOOM] =\n options.maxZoom !== undefined ? options.maxZoom : Infinity;\n\n /**\n * @type {string}\n * @private\n */\n this.className_ =\n properties.className !== undefined ? properties.className : 'ol-layer';\n delete properties.className;\n\n this.setProperties(properties);\n\n /**\n * @type {import(\"./Layer.js\").State}\n * @private\n */\n this.state_ = null;\n }\n\n /**\n * Get the background for this layer.\n * @return {BackgroundColor|false} Layer background.\n */\n getBackground() {\n return this.background_;\n }\n\n /**\n * @return {string} CSS class name.\n */\n getClassName() {\n return this.className_;\n }\n\n /**\n * This method is not meant to be called by layers or layer renderers because the state\n * is incorrect if the layer is included in a layer group.\n *\n * @param {boolean} [managed] Layer is managed.\n * @return {import(\"./Layer.js\").State} Layer state.\n */\n getLayerState(managed) {\n /** @type {import(\"./Layer.js\").State} */\n const state =\n this.state_ ||\n /** @type {?} */ ({\n layer: this,\n managed: managed === undefined ? true : managed,\n });\n const zIndex = this.getZIndex();\n state.opacity = clamp(Math.round(this.getOpacity() * 100) / 100, 0, 1);\n state.visible = this.getVisible();\n state.extent = this.getExtent();\n state.zIndex = zIndex === undefined && !state.managed ? Infinity : zIndex;\n state.maxResolution = this.getMaxResolution();\n state.minResolution = Math.max(this.getMinResolution(), 0);\n state.minZoom = this.getMinZoom();\n state.maxZoom = this.getMaxZoom();\n this.state_ = state;\n\n return state;\n }\n\n /**\n * @abstract\n * @param {Array} [array] Array of layers (to be\n * modified in place).\n * @return {Array} Array of layers.\n */\n getLayersArray(array) {\n return abstract();\n }\n\n /**\n * @abstract\n * @param {Array} [states] Optional list of layer\n * states (to be modified in place).\n * @return {Array} List of layer states.\n */\n getLayerStatesArray(states) {\n return abstract();\n }\n\n /**\n * Return the {@link module:ol/extent~Extent extent} of the layer or `undefined` if it\n * will be visible regardless of extent.\n * @return {import(\"../extent.js\").Extent|undefined} The layer extent.\n * @observable\n * @api\n */\n getExtent() {\n return /** @type {import(\"../extent.js\").Extent|undefined} */ (\n this.get(LayerProperty.EXTENT)\n );\n }\n\n /**\n * Return the maximum resolution of the layer. Returns Infinity if\n * the layer has no maximum resolution set.\n * @return {number} The maximum resolution of the layer.\n * @observable\n * @api\n */\n getMaxResolution() {\n return /** @type {number} */ (this.get(LayerProperty.MAX_RESOLUTION));\n }\n\n /**\n * Return the minimum resolution of the layer. Returns 0 if\n * the layer has no minimum resolution set.\n * @return {number} The minimum resolution of the layer.\n * @observable\n * @api\n */\n getMinResolution() {\n return /** @type {number} */ (this.get(LayerProperty.MIN_RESOLUTION));\n }\n\n /**\n * Return the minimum zoom level of the layer. Returns -Infinity if\n * the layer has no minimum zoom set.\n * @return {number} The minimum zoom level of the layer.\n * @observable\n * @api\n */\n getMinZoom() {\n return /** @type {number} */ (this.get(LayerProperty.MIN_ZOOM));\n }\n\n /**\n * Return the maximum zoom level of the layer. Returns Infinity if\n * the layer has no maximum zoom set.\n * @return {number} The maximum zoom level of the layer.\n * @observable\n * @api\n */\n getMaxZoom() {\n return /** @type {number} */ (this.get(LayerProperty.MAX_ZOOM));\n }\n\n /**\n * Return the opacity of the layer (between 0 and 1).\n * @return {number} The opacity of the layer.\n * @observable\n * @api\n */\n getOpacity() {\n return /** @type {number} */ (this.get(LayerProperty.OPACITY));\n }\n\n /**\n * @abstract\n * @return {import(\"../source/Source.js\").State} Source state.\n */\n getSourceState() {\n return abstract();\n }\n\n /**\n * Return the value of this layer's `visible` property. To find out whether the layer\n * is visible on a map, use `isVisible()` instead.\n * @return {boolean} The value of the `visible` property of the layer.\n * @observable\n * @api\n */\n getVisible() {\n return /** @type {boolean} */ (this.get(LayerProperty.VISIBLE));\n }\n\n /**\n * Return the Z-index of the layer, which is used to order layers before\n * rendering. Returns undefined if the layer is unmanaged.\n * @return {number|undefined} The Z-index of the layer.\n * @observable\n * @api\n */\n getZIndex() {\n return /** @type {number|undefined} */ (this.get(LayerProperty.Z_INDEX));\n }\n\n /**\n * Sets the background color.\n * @param {BackgroundColor} [background] Background color.\n */\n setBackground(background) {\n this.background_ = background;\n this.changed();\n }\n\n /**\n * Set the extent at which the layer is visible. If `undefined`, the layer\n * will be visible at all extents.\n * @param {import(\"../extent.js\").Extent|undefined} extent The extent of the layer.\n * @observable\n * @api\n */\n setExtent(extent) {\n this.set(LayerProperty.EXTENT, extent);\n }\n\n /**\n * Set the maximum resolution at which the layer is visible.\n * @param {number} maxResolution The maximum resolution of the layer.\n * @observable\n * @api\n */\n setMaxResolution(maxResolution) {\n this.set(LayerProperty.MAX_RESOLUTION, maxResolution);\n }\n\n /**\n * Set the minimum resolution at which the layer is visible.\n * @param {number} minResolution The minimum resolution of the layer.\n * @observable\n * @api\n */\n setMinResolution(minResolution) {\n this.set(LayerProperty.MIN_RESOLUTION, minResolution);\n }\n\n /**\n * Set the maximum zoom (exclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} maxZoom The maximum zoom of the layer.\n * @observable\n * @api\n */\n setMaxZoom(maxZoom) {\n this.set(LayerProperty.MAX_ZOOM, maxZoom);\n }\n\n /**\n * Set the minimum zoom (inclusive) at which the layer is visible.\n * Note that the zoom levels for layer visibility are based on the\n * view zoom level, which may be different from a tile source zoom level.\n * @param {number} minZoom The minimum zoom of the layer.\n * @observable\n * @api\n */\n setMinZoom(minZoom) {\n this.set(LayerProperty.MIN_ZOOM, minZoom);\n }\n\n /**\n * Set the opacity of the layer, allowed values range from 0 to 1.\n * @param {number} opacity The opacity of the layer.\n * @observable\n * @api\n */\n setOpacity(opacity) {\n assert(typeof opacity === 'number', 'Layer opacity must be a number');\n this.set(LayerProperty.OPACITY, opacity);\n }\n\n /**\n * Set the visibility of the layer (`true` or `false`).\n * @param {boolean} visible The visibility of the layer.\n * @observable\n * @api\n */\n setVisible(visible) {\n this.set(LayerProperty.VISIBLE, visible);\n }\n\n /**\n * Set Z-index of the layer, which is used to order layers before rendering.\n * The default Z-index is 0.\n * @param {number} zindex The z-index of the layer.\n * @observable\n * @api\n */\n setZIndex(zindex) {\n this.set(LayerProperty.Z_INDEX, zindex);\n }\n\n /**\n * Clean up.\n */\n disposeInternal() {\n if (this.state_) {\n this.state_.layer = null;\n this.state_ = null;\n }\n super.disposeInternal();\n }\n}\n\nexport default BaseLayer;\n","/**\n * @module ol/render/EventType\n */\n\n/**\n * @enum {string}\n */\nexport default {\n /**\n * Triggered before a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#prerender\n * @api\n */\n PRERENDER: 'prerender',\n\n /**\n * Triggered after a layer is rendered.\n * @event module:ol/render/Event~RenderEvent#postrender\n * @api\n */\n POSTRENDER: 'postrender',\n\n /**\n * Triggered before layers are composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\n * @event module:ol/render/Event~RenderEvent#precompose\n * @api\n */\n PRECOMPOSE: 'precompose',\n\n /**\n * Triggered after layers are composed. When dispatched by the map, the event object will not have\n * a `context` set. When dispatched by a layer, the event object will have a `context` set. Only\n * WebGL layers currently dispatch this event.\n * @event module:ol/render/Event~RenderEvent#postcompose\n * @api\n */\n POSTCOMPOSE: 'postcompose',\n\n /**\n * Triggered when rendering is complete, i.e. all sources and tiles have\n * finished loading for the current viewport, and all tiles are faded in.\n * The event object will not have a `context` set.\n * @event module:ol/render/Event~RenderEvent#rendercomplete\n * @api\n */\n RENDERCOMPLETE: 'rendercomplete',\n};\n\n/**\n * @typedef {'postrender'|'precompose'|'postcompose'|'rendercomplete'} MapRenderEventTypes\n */\n\n/**\n * @typedef {'postrender'|'prerender'} LayerRenderEventTypes\n */\n","/**\n * @module ol/ViewHint\n */\n\n/**\n * @enum {number}\n */\nexport default {\n ANIMATING: 0,\n INTERACTING: 1,\n};\n","/**\n * @module ol/ViewProperty\n */\n\n/**\n * @enum {string}\n */\nexport default {\n CENTER: 'center',\n RESOLUTION: 'resolution',\n ROTATION: 'rotation',\n};\n","/**\n * @module ol/tilegrid/common\n */\n\n/**\n * Default maximum zoom for default tile grids.\n * @type {number}\n */\nexport const DEFAULT_MAX_ZOOM = 42;\n\n/**\n * Default tile size.\n * @type {number}\n */\nexport const DEFAULT_TILE_SIZE = 256;\n","/**\n * @module ol/proj/Units\n */\n\n/**\n * @typedef {'radians' | 'degrees' | 'ft' | 'm' | 'pixels' | 'tile-pixels' | 'us-ft'} Units\n * Projection units.\n */\n\n/**\n * See http://duff.ess.washington.edu/data/raster/drg/docs/geotiff.txt\n * @type {Object}\n */\nconst unitByCode = {\n '9001': 'm',\n '9002': 'ft',\n '9003': 'us-ft',\n '9101': 'radians',\n '9102': 'degrees',\n};\n\n/**\n * @param {number} code Unit code.\n * @return {Units} Units.\n */\nexport function fromCode(code) {\n return unitByCode[code];\n}\n\n/**\n * @typedef {Object} MetersPerUnitLookup\n * @property {number} radians Radians\n * @property {number} degrees Degrees\n * @property {number} ft Feet\n * @property {number} m Meters\n * @property {number} us-ft US feet\n */\n\n/**\n * Meters per unit lookup table.\n * @const\n * @type {MetersPerUnitLookup}\n * @api\n */\nexport const METERS_PER_UNIT = {\n // use the radius of the Normal sphere\n 'radians': 6370997 / (2 * Math.PI),\n 'degrees': (2 * Math.PI * 6370997) / 360,\n 'ft': 0.3048,\n 'm': 1,\n 'us-ft': 1200 / 3937,\n};\n","/**\n * @module ol/proj/Projection\n */\nimport {METERS_PER_UNIT} from './Units.js';\n\n/**\n * @typedef {Object} Options\n * @property {string} code The SRS identifier code, e.g. `EPSG:4326`.\n * @property {import(\"./Units.js\").Units} [units] Units. Required unless a\n * proj4 projection is defined for `code`.\n * @property {import(\"../extent.js\").Extent} [extent] The validity extent for the SRS.\n * @property {string} [axisOrientation='enu'] The axis orientation as specified in Proj4.\n * @property {boolean} [global=false] Whether the projection is valid for the whole globe.\n * @property {number} [metersPerUnit] The meters per unit for the SRS.\n * If not provided, the `units` are used to get the meters per unit from the {@link METERS_PER_UNIT}\n * lookup table.\n * @property {import(\"../extent.js\").Extent} [worldExtent] The world extent for the SRS.\n * @property {function(number, import(\"../coordinate.js\").Coordinate):number} [getPointResolution]\n * Function to determine resolution at a point. The function is called with a\n * `number` view resolution and a {@link module:ol/coordinate~Coordinate} as arguments, and returns\n * the `number` resolution in projection units at the passed coordinate. If this is `undefined`,\n * the default {@link module:ol/proj.getPointResolution} function will be used.\n */\n\n/**\n * @classdesc\n * Projection definition class. One of these is created for each projection\n * supported in the application and stored in the {@link module:ol/proj} namespace.\n * You can use these in applications, but this is not required, as API params\n * and options use {@link module:ol/proj~ProjectionLike} which means the simple string\n * code will suffice.\n *\n * You can use {@link module:ol/proj.get} to retrieve the object for a particular\n * projection.\n *\n * The library includes definitions for `EPSG:4326` and `EPSG:3857`, together\n * with the following aliases:\n * * `EPSG:4326`: CRS:84, urn:ogc:def:crs:EPSG:6.6:4326,\n * urn:ogc:def:crs:OGC:1.3:CRS84, urn:ogc:def:crs:OGC:2:84,\n * http://www.opengis.net/gml/srs/epsg.xml#4326,\n * urn:x-ogc:def:crs:EPSG:4326\n * * `EPSG:3857`: EPSG:102100, EPSG:102113, EPSG:900913,\n * urn:ogc:def:crs:EPSG:6.18:3:3857,\n * http://www.opengis.net/gml/srs/epsg.xml#3857\n *\n * If you use [proj4js](https://github.com/proj4js/proj4js), aliases can\n * be added using `proj4.defs()`. After all required projection definitions are\n * added, call the {@link module:ol/proj/proj4.register} function.\n *\n * @api\n */\nclass Projection {\n /**\n * @param {Options} options Projection options.\n */\n constructor(options) {\n /**\n * @private\n * @type {string}\n */\n this.code_ = options.code;\n\n /**\n * Units of projected coordinates. When set to `TILE_PIXELS`, a\n * `this.extent_` and `this.worldExtent_` must be configured properly for each\n * tile.\n * @private\n * @type {import(\"./Units.js\").Units}\n */\n this.units_ = /** @type {import(\"./Units.js\").Units} */ (options.units);\n\n /**\n * Validity extent of the projection in projected coordinates. For projections\n * with `TILE_PIXELS` units, this is the extent of the tile in\n * tile pixel space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = options.extent !== undefined ? options.extent : null;\n\n /**\n * Extent of the world in EPSG:4326. For projections with\n * `TILE_PIXELS` units, this is the extent of the tile in\n * projected coordinate space.\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.worldExtent_ =\n options.worldExtent !== undefined ? options.worldExtent : null;\n\n /**\n * @private\n * @type {string}\n */\n this.axisOrientation_ =\n options.axisOrientation !== undefined ? options.axisOrientation : 'enu';\n\n /**\n * @private\n * @type {boolean}\n */\n this.global_ = options.global !== undefined ? options.global : false;\n\n /**\n * @private\n * @type {boolean}\n */\n this.canWrapX_ = !!(this.global_ && this.extent_);\n\n /**\n * @private\n * @type {function(number, import(\"../coordinate.js\").Coordinate):number|undefined}\n */\n this.getPointResolutionFunc_ = options.getPointResolution;\n\n /**\n * @private\n * @type {import(\"../tilegrid/TileGrid.js\").default}\n */\n this.defaultTileGrid_ = null;\n\n /**\n * @private\n * @type {number|undefined}\n */\n this.metersPerUnit_ = options.metersPerUnit;\n }\n\n /**\n * @return {boolean} The projection is suitable for wrapping the x-axis\n */\n canWrapX() {\n return this.canWrapX_;\n }\n\n /**\n * Get the code for this projection, e.g. 'EPSG:4326'.\n * @return {string} Code.\n * @api\n */\n getCode() {\n return this.code_;\n }\n\n /**\n * Get the validity extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getExtent() {\n return this.extent_;\n }\n\n /**\n * Get the units of this projection.\n * @return {import(\"./Units.js\").Units} Units.\n * @api\n */\n getUnits() {\n return this.units_;\n }\n\n /**\n * Get the amount of meters per unit of this projection. If the projection is\n * not configured with `metersPerUnit` or a units identifier, the return is\n * `undefined`.\n * @return {number|undefined} Meters.\n * @api\n */\n getMetersPerUnit() {\n return this.metersPerUnit_ || METERS_PER_UNIT[this.units_];\n }\n\n /**\n * Get the world extent for this projection.\n * @return {import(\"../extent.js\").Extent} Extent.\n * @api\n */\n getWorldExtent() {\n return this.worldExtent_;\n }\n\n /**\n * Get the axis orientation of this projection.\n * Example values are:\n * enu - the default easting, northing, elevation.\n * neu - northing, easting, up - useful for \"lat/long\" geographic coordinates,\n * or south orientated transverse mercator.\n * wnu - westing, northing, up - some planetary coordinate systems have\n * \"west positive\" coordinate systems\n * @return {string} Axis orientation.\n * @api\n */\n getAxisOrientation() {\n return this.axisOrientation_;\n }\n\n /**\n * Is this projection a global projection which spans the whole world?\n * @return {boolean} Whether the projection is global.\n * @api\n */\n isGlobal() {\n return this.global_;\n }\n\n /**\n * Set if the projection is a global projection which spans the whole world\n * @param {boolean} global Whether the projection is global.\n * @api\n */\n setGlobal(global) {\n this.global_ = global;\n this.canWrapX_ = !!(global && this.extent_);\n }\n\n /**\n * @return {import(\"../tilegrid/TileGrid.js\").default} The default tile grid.\n */\n getDefaultTileGrid() {\n return this.defaultTileGrid_;\n }\n\n /**\n * @param {import(\"../tilegrid/TileGrid.js\").default} tileGrid The default tile grid.\n */\n setDefaultTileGrid(tileGrid) {\n this.defaultTileGrid_ = tileGrid;\n }\n\n /**\n * Set the validity extent for this projection.\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n setExtent(extent) {\n this.extent_ = extent;\n this.canWrapX_ = !!(this.global_ && extent);\n }\n\n /**\n * Set the world extent for this projection.\n * @param {import(\"../extent.js\").Extent} worldExtent World extent\n * [minlon, minlat, maxlon, maxlat].\n * @api\n */\n setWorldExtent(worldExtent) {\n this.worldExtent_ = worldExtent;\n }\n\n /**\n * Set the getPointResolution function (see {@link module:ol/proj.getPointResolution}\n * for this projection.\n * @param {function(number, import(\"../coordinate.js\").Coordinate):number} func Function\n * @api\n */\n setGetPointResolution(func) {\n this.getPointResolutionFunc_ = func;\n }\n\n /**\n * Get the custom point resolution function for this projection (if set).\n * @return {function(number, import(\"../coordinate.js\").Coordinate):number|undefined} The custom point\n * resolution function (if set).\n */\n getPointResolutionFunc() {\n return this.getPointResolutionFunc_;\n }\n}\n\nexport default Projection;\n","/**\n * @module ol/proj/epsg3857\n */\nimport Projection from './Projection.js';\n\n/**\n * Radius of WGS84 sphere\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n/**\n * @const\n * @type {number}\n */\nexport const HALF_SIZE = Math.PI * RADIUS;\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [-HALF_SIZE, -HALF_SIZE, HALF_SIZE, HALF_SIZE];\n\n/**\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const WORLD_EXTENT = [-180, -85, 180, 85];\n\n/**\n * Maximum safe value in y direction\n * @const\n * @type {number}\n */\nexport const MAX_SAFE_Y = RADIUS * Math.log(Math.tan(Math.PI / 2));\n\n/**\n * @classdesc\n * Projection object for web/spherical Mercator (EPSG:3857).\n */\nclass EPSG3857Projection extends Projection {\n /**\n * @param {string} code Code.\n */\n constructor(code) {\n super({\n code: code,\n units: 'm',\n extent: EXTENT,\n global: true,\n worldExtent: WORLD_EXTENT,\n getPointResolution: function (resolution, point) {\n return resolution / Math.cosh(point[1] / RADIUS);\n },\n });\n }\n}\n\n/**\n * Projections equal to EPSG:3857.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG3857Projection('EPSG:3857'),\n new EPSG3857Projection('EPSG:102100'),\n new EPSG3857Projection('EPSG:102113'),\n new EPSG3857Projection('EPSG:900913'),\n new EPSG3857Projection('http://www.opengis.net/def/crs/EPSG/0/3857'),\n new EPSG3857Projection('http://www.opengis.net/gml/srs/epsg.xml#3857'),\n];\n\n/**\n * Transformation from EPSG:4326 to EPSG:3857.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [output] Output array of coordinate values.\n * @param {number} [dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function fromEPSG4326(input, output, dimension) {\n const length = input.length;\n dimension = dimension > 1 ? dimension : 2;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n for (let i = 0; i < length; i += dimension) {\n output[i] = (HALF_SIZE * input[i]) / 180;\n let y = RADIUS * Math.log(Math.tan((Math.PI * (+input[i + 1] + 90)) / 360));\n if (y > MAX_SAFE_Y) {\n y = MAX_SAFE_Y;\n } else if (y < -MAX_SAFE_Y) {\n y = -MAX_SAFE_Y;\n }\n output[i + 1] = y;\n }\n return output;\n}\n\n/**\n * Transformation from EPSG:3857 to EPSG:4326.\n *\n * @param {Array} input Input array of coordinate values.\n * @param {Array} [output] Output array of coordinate values.\n * @param {number} [dimension] Dimension (default is `2`).\n * @return {Array} Output array of coordinate values.\n */\nexport function toEPSG4326(input, output, dimension) {\n const length = input.length;\n dimension = dimension > 1 ? dimension : 2;\n if (output === undefined) {\n if (dimension > 2) {\n // preserve values beyond second dimension\n output = input.slice();\n } else {\n output = new Array(length);\n }\n }\n for (let i = 0; i < length; i += dimension) {\n output[i] = (180 * input[i]) / HALF_SIZE;\n output[i + 1] =\n (360 * Math.atan(Math.exp(input[i + 1] / RADIUS))) / Math.PI - 90;\n }\n return output;\n}\n","/**\n * @module ol/proj/epsg4326\n */\nimport Projection from './Projection.js';\n\n/**\n * Semi-major radius of the WGS84 ellipsoid.\n *\n * @const\n * @type {number}\n */\nexport const RADIUS = 6378137;\n\n/**\n * Extent of the EPSG:4326 projection which is the whole world.\n *\n * @const\n * @type {import(\"../extent.js\").Extent}\n */\nexport const EXTENT = [-180, -90, 180, 90];\n\n/**\n * @const\n * @type {number}\n */\nexport const METERS_PER_UNIT = (Math.PI * RADIUS) / 180;\n\n/**\n * @classdesc\n * Projection object for WGS84 geographic coordinates (EPSG:4326).\n *\n * Note that OpenLayers does not strictly comply with the EPSG definition.\n * The EPSG registry defines 4326 as a CRS for Latitude,Longitude (y,x).\n * OpenLayers treats EPSG:4326 as a pseudo-projection, with x,y coordinates.\n */\nclass EPSG4326Projection extends Projection {\n /**\n * @param {string} code Code.\n * @param {string} [axisOrientation] Axis orientation.\n */\n constructor(code, axisOrientation) {\n super({\n code: code,\n units: 'degrees',\n extent: EXTENT,\n axisOrientation: axisOrientation,\n global: true,\n metersPerUnit: METERS_PER_UNIT,\n worldExtent: EXTENT,\n });\n }\n}\n\n/**\n * Projections equal to EPSG:4326.\n *\n * @const\n * @type {Array}\n */\nexport const PROJECTIONS = [\n new EPSG4326Projection('CRS:84'),\n new EPSG4326Projection('EPSG:4326', 'neu'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:1.3:CRS84'),\n new EPSG4326Projection('urn:ogc:def:crs:OGC:2:84'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/OGC/1.3/CRS84'),\n new EPSG4326Projection('http://www.opengis.net/gml/srs/epsg.xml#4326', 'neu'),\n new EPSG4326Projection('http://www.opengis.net/def/crs/EPSG/0/4326', 'neu'),\n];\n","/**\n * @module ol/proj/projections\n */\n\n/**\n * @type {Object}\n */\nlet cache = {};\n\n/**\n * Clear the projections cache.\n */\nexport function clear() {\n cache = {};\n}\n\n/**\n * Get a cached projection by code.\n * @param {string} code The code for the projection.\n * @return {import(\"./Projection.js\").default} The projection (if cached).\n */\nexport function get(code) {\n return (\n cache[code] ||\n cache[code.replace(/urn:(x-)?ogc:def:crs:EPSG:(.*:)?(\\w+)$/, 'EPSG:$3')] ||\n null\n );\n}\n\n/**\n * Add a projection to the cache.\n * @param {string} code The projection code.\n * @param {import(\"./Projection.js\").default} projection The projection to cache.\n */\nexport function add(code, projection) {\n cache[code] = projection;\n}\n","/**\n * @module ol/proj/transforms\n */\nimport {isEmpty} from '../obj.js';\n\n/**\n * @private\n * @type {!Object>}\n */\nlet transforms = {};\n\n/**\n * Clear the transform cache.\n */\nexport function clear() {\n transforms = {};\n}\n\n/**\n * Registers a conversion function to convert coordinates from the source\n * projection to the destination projection.\n *\n * @param {import(\"./Projection.js\").default} source Source.\n * @param {import(\"./Projection.js\").default} destination Destination.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform.\n */\nexport function add(source, destination, transformFn) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n if (!(sourceCode in transforms)) {\n transforms[sourceCode] = {};\n }\n transforms[sourceCode][destinationCode] = transformFn;\n}\n\n/**\n * Unregisters the conversion function to convert coordinates from the source\n * projection to the destination projection. This method is used to clean up\n * cached transforms during testing.\n *\n * @param {import(\"./Projection.js\").default} source Source projection.\n * @param {import(\"./Projection.js\").default} destination Destination projection.\n * @return {import(\"../proj.js\").TransformFunction} transformFn The unregistered transform.\n */\nexport function remove(source, destination) {\n const sourceCode = source.getCode();\n const destinationCode = destination.getCode();\n const transform = transforms[sourceCode][destinationCode];\n delete transforms[sourceCode][destinationCode];\n if (isEmpty(transforms[sourceCode])) {\n delete transforms[sourceCode];\n }\n return transform;\n}\n\n/**\n * Get a transform given a source code and a destination code.\n * @param {string} sourceCode The code for the source projection.\n * @param {string} destinationCode The code for the destination projection.\n * @return {import(\"../proj.js\").TransformFunction|undefined} The transform function (if found).\n */\nexport function get(sourceCode, destinationCode) {\n let transform;\n if (sourceCode in transforms && destinationCode in transforms[sourceCode]) {\n transform = transforms[sourceCode][destinationCode];\n }\n return transform;\n}\n","/**\n * @module ol/extent/Relationship\n */\n\n/**\n * Relationship to an extent.\n * @enum {number}\n */\nexport default {\n UNKNOWN: 0,\n INTERSECTING: 1,\n ABOVE: 2,\n RIGHT: 4,\n BELOW: 8,\n LEFT: 16,\n};\n","/**\n * @module ol/extent\n */\nimport Relationship from './extent/Relationship.js';\n\n/**\n * An array of numbers representing an extent: `[minx, miny, maxx, maxy]`.\n * @typedef {Array} Extent\n * @api\n */\n\n/**\n * Extent corner.\n * @typedef {'bottom-left' | 'bottom-right' | 'top-left' | 'top-right'} Corner\n */\n\n/**\n * Build an extent that includes all given coordinates.\n *\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Bounding extent.\n * @api\n */\nexport function boundingExtent(coordinates) {\n const extent = createEmpty();\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n/**\n * @param {Array} xs Xs.\n * @param {Array} ys Ys.\n * @param {Extent} [dest] Destination extent.\n * @private\n * @return {Extent} Extent.\n */\nfunction _boundingExtentXYs(xs, ys, dest) {\n const minX = Math.min.apply(null, xs);\n const minY = Math.min.apply(null, ys);\n const maxX = Math.max.apply(null, xs);\n const maxY = Math.max.apply(null, ys);\n return createOrUpdate(minX, minY, maxX, maxY, dest);\n}\n\n/**\n * Return extent increased by the provided value.\n * @param {Extent} extent Extent.\n * @param {number} value The amount by which the extent should be buffered.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n * @api\n */\nexport function buffer(extent, value, dest) {\n if (dest) {\n dest[0] = extent[0] - value;\n dest[1] = extent[1] - value;\n dest[2] = extent[2] + value;\n dest[3] = extent[3] + value;\n return dest;\n }\n return [\n extent[0] - value,\n extent[1] - value,\n extent[2] + value,\n extent[3] + value,\n ];\n}\n\n/**\n * Creates a clone of an extent.\n *\n * @param {Extent} extent Extent to clone.\n * @param {Extent} [dest] Extent.\n * @return {Extent} The clone.\n */\nexport function clone(extent, dest) {\n if (dest) {\n dest[0] = extent[0];\n dest[1] = extent[1];\n dest[2] = extent[2];\n dest[3] = extent[3];\n return dest;\n }\n return extent.slice();\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n * @return {number} Closest squared distance.\n */\nexport function closestSquaredDistanceXY(extent, x, y) {\n let dx, dy;\n if (x < extent[0]) {\n dx = extent[0] - x;\n } else if (extent[2] < x) {\n dx = x - extent[2];\n } else {\n dx = 0;\n }\n if (y < extent[1]) {\n dy = extent[1] - y;\n } else if (extent[3] < y) {\n dy = y - extent[3];\n } else {\n dy = 0;\n }\n return dx * dx + dy * dy;\n}\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} The coordinate is contained in the extent.\n * @api\n */\nexport function containsCoordinate(extent, coordinate) {\n return containsXY(extent, coordinate[0], coordinate[1]);\n}\n\n/**\n * Check if one extent contains another.\n *\n * An extent is deemed contained if it lies completely within the other extent,\n * including if they share one or more edges.\n *\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The second extent is contained by or on the edge of the\n * first.\n * @api\n */\nexport function containsExtent(extent1, extent2) {\n return (\n extent1[0] <= extent2[0] &&\n extent2[2] <= extent1[2] &&\n extent1[1] <= extent2[1] &&\n extent2[3] <= extent1[3]\n );\n}\n\n/**\n * Check if the passed coordinate is contained or on the edge of the extent.\n *\n * @param {Extent} extent Extent.\n * @param {number} x X coordinate.\n * @param {number} y Y coordinate.\n * @return {boolean} The x, y values are contained in the extent.\n * @api\n */\nexport function containsXY(extent, x, y) {\n return extent[0] <= x && x <= extent[2] && extent[1] <= y && y <= extent[3];\n}\n\n/**\n * Get the relationship between a coordinate and extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate The coordinate.\n * @return {import(\"./extent/Relationship.js\").default} The relationship (bitwise compare with\n * import(\"./extent/Relationship.js\").Relationship).\n */\nexport function coordinateRelationship(extent, coordinate) {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const x = coordinate[0];\n const y = coordinate[1];\n let relationship = Relationship.UNKNOWN;\n if (x < minX) {\n relationship = relationship | Relationship.LEFT;\n } else if (x > maxX) {\n relationship = relationship | Relationship.RIGHT;\n }\n if (y < minY) {\n relationship = relationship | Relationship.BELOW;\n } else if (y > maxY) {\n relationship = relationship | Relationship.ABOVE;\n }\n if (relationship === Relationship.UNKNOWN) {\n relationship = Relationship.INTERSECTING;\n }\n return relationship;\n}\n\n/**\n * Create an empty extent.\n * @return {Extent} Empty extent.\n * @api\n */\nexport function createEmpty() {\n return [Infinity, Infinity, -Infinity, -Infinity];\n}\n\n/**\n * Create a new extent or update the provided extent.\n * @param {number} minX Minimum X.\n * @param {number} minY Minimum Y.\n * @param {number} maxX Maximum X.\n * @param {number} maxY Maximum Y.\n * @param {Extent} [dest] Destination extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdate(minX, minY, maxX, maxY, dest) {\n if (dest) {\n dest[0] = minX;\n dest[1] = minY;\n dest[2] = maxX;\n dest[3] = maxY;\n return dest;\n }\n return [minX, minY, maxX, maxY];\n}\n\n/**\n * Create a new empty extent or make the provided one empty.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateEmpty(dest) {\n return createOrUpdate(Infinity, Infinity, -Infinity, -Infinity, dest);\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinate(coordinate, dest) {\n const x = coordinate[0];\n const y = coordinate[1];\n return createOrUpdate(x, y, x, y, dest);\n}\n\n/**\n * @param {Array} coordinates Coordinates.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromCoordinates(coordinates, dest) {\n const extent = createOrUpdateEmpty(dest);\n return extendCoordinates(extent, coordinates);\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromFlatCoordinates(\n flatCoordinates,\n offset,\n end,\n stride,\n dest\n) {\n const extent = createOrUpdateEmpty(dest);\n return extendFlatCoordinates(extent, flatCoordinates, offset, end, stride);\n}\n\n/**\n * @param {Array>} rings Rings.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function createOrUpdateFromRings(rings, dest) {\n const extent = createOrUpdateEmpty(dest);\n return extendRings(extent, rings);\n}\n\n/**\n * Determine if two extents are equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {boolean} The two extents are equivalent.\n * @api\n */\nexport function equals(extent1, extent2) {\n return (\n extent1[0] == extent2[0] &&\n extent1[2] == extent2[2] &&\n extent1[1] == extent2[1] &&\n extent1[3] == extent2[3]\n );\n}\n\n/**\n * Determine if two extents are approximately equivalent.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {number} tolerance Tolerance in extent coordinate units.\n * @return {boolean} The two extents differ by less than the tolerance.\n */\nexport function approximatelyEquals(extent1, extent2, tolerance) {\n return (\n Math.abs(extent1[0] - extent2[0]) < tolerance &&\n Math.abs(extent1[2] - extent2[2]) < tolerance &&\n Math.abs(extent1[1] - extent2[1]) < tolerance &&\n Math.abs(extent1[3] - extent2[3]) < tolerance\n );\n}\n\n/**\n * Modify an extent to include another extent.\n * @param {Extent} extent1 The extent to be modified.\n * @param {Extent} extent2 The extent that will be included in the first.\n * @return {Extent} A reference to the first (extended) extent.\n * @api\n */\nexport function extend(extent1, extent2) {\n if (extent2[0] < extent1[0]) {\n extent1[0] = extent2[0];\n }\n if (extent2[2] > extent1[2]) {\n extent1[2] = extent2[2];\n }\n if (extent2[1] < extent1[1]) {\n extent1[1] = extent2[1];\n }\n if (extent2[3] > extent1[3]) {\n extent1[3] = extent2[3];\n }\n return extent1;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n */\nexport function extendCoordinate(extent, coordinate) {\n if (coordinate[0] < extent[0]) {\n extent[0] = coordinate[0];\n }\n if (coordinate[0] > extent[2]) {\n extent[2] = coordinate[0];\n }\n if (coordinate[1] < extent[1]) {\n extent[1] = coordinate[1];\n }\n if (coordinate[1] > extent[3]) {\n extent[3] = coordinate[1];\n }\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} coordinates Coordinates.\n * @return {Extent} Extent.\n */\nexport function extendCoordinates(extent, coordinates) {\n for (let i = 0, ii = coordinates.length; i < ii; ++i) {\n extendCoordinate(extent, coordinates[i]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @return {Extent} Extent.\n */\nexport function extendFlatCoordinates(\n extent,\n flatCoordinates,\n offset,\n end,\n stride\n) {\n for (; offset < end; offset += stride) {\n extendXY(extent, flatCoordinates[offset], flatCoordinates[offset + 1]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Array>} rings Rings.\n * @return {Extent} Extent.\n */\nexport function extendRings(extent, rings) {\n for (let i = 0, ii = rings.length; i < ii; ++i) {\n extendCoordinates(extent, rings[i]);\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} x X.\n * @param {number} y Y.\n */\nexport function extendXY(extent, x, y) {\n extent[0] = Math.min(extent[0], x);\n extent[1] = Math.min(extent[1], y);\n extent[2] = Math.max(extent[2], x);\n extent[3] = Math.max(extent[3], y);\n}\n\n/**\n * This function calls `callback` for each corner of the extent. If the\n * callback returns a truthy value the function returns that value\n * immediately. Otherwise the function returns `false`.\n * @param {Extent} extent Extent.\n * @param {function(import(\"./coordinate.js\").Coordinate): S} callback Callback.\n * @return {S|boolean} Value.\n * @template S\n */\nexport function forEachCorner(extent, callback) {\n let val;\n val = callback(getBottomLeft(extent));\n if (val) {\n return val;\n }\n val = callback(getBottomRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopRight(extent));\n if (val) {\n return val;\n }\n val = callback(getTopLeft(extent));\n if (val) {\n return val;\n }\n return false;\n}\n\n/**\n * Get the size of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Area.\n * @api\n */\nexport function getArea(extent) {\n let area = 0;\n if (!isEmpty(extent)) {\n area = getWidth(extent) * getHeight(extent);\n }\n return area;\n}\n\n/**\n * Get the bottom left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom left coordinate.\n * @api\n */\nexport function getBottomLeft(extent) {\n return [extent[0], extent[1]];\n}\n\n/**\n * Get the bottom right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Bottom right coordinate.\n * @api\n */\nexport function getBottomRight(extent) {\n return [extent[2], extent[1]];\n}\n\n/**\n * Get the center coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Center.\n * @api\n */\nexport function getCenter(extent) {\n return [(extent[0] + extent[2]) / 2, (extent[1] + extent[3]) / 2];\n}\n\n/**\n * Get a corner coordinate of an extent.\n * @param {Extent} extent Extent.\n * @param {Corner} corner Corner.\n * @return {import(\"./coordinate.js\").Coordinate} Corner coordinate.\n */\nexport function getCorner(extent, corner) {\n let coordinate;\n if (corner === 'bottom-left') {\n coordinate = getBottomLeft(extent);\n } else if (corner === 'bottom-right') {\n coordinate = getBottomRight(extent);\n } else if (corner === 'top-left') {\n coordinate = getTopLeft(extent);\n } else if (corner === 'top-right') {\n coordinate = getTopRight(extent);\n } else {\n throw new Error('Invalid corner');\n }\n return coordinate;\n}\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Enlarged area.\n */\nexport function getEnlargedArea(extent1, extent2) {\n const minX = Math.min(extent1[0], extent2[0]);\n const minY = Math.min(extent1[1], extent2[1]);\n const maxX = Math.max(extent1[2], extent2[2]);\n const maxY = Math.max(extent1[3], extent2[3]);\n return (maxX - minX) * (maxY - minY);\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @param {Extent} [dest] Destination extent.\n * @return {Extent} Extent.\n */\nexport function getForViewAndSize(center, resolution, rotation, size, dest) {\n const [x0, y0, x1, y1, x2, y2, x3, y3] = getRotatedViewport(\n center,\n resolution,\n rotation,\n size\n );\n return createOrUpdate(\n Math.min(x0, x1, x2, x3),\n Math.min(y0, y1, y2, y3),\n Math.max(x0, x1, x2, x3),\n Math.max(y0, y1, y2, y3),\n dest\n );\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} center Center.\n * @param {number} resolution Resolution.\n * @param {number} rotation Rotation.\n * @param {import(\"./size.js\").Size} size Size.\n * @return {Array} Linear ring representing the viewport.\n */\nexport function getRotatedViewport(center, resolution, rotation, size) {\n const dx = (resolution * size[0]) / 2;\n const dy = (resolution * size[1]) / 2;\n const cosRotation = Math.cos(rotation);\n const sinRotation = Math.sin(rotation);\n const xCos = dx * cosRotation;\n const xSin = dx * sinRotation;\n const yCos = dy * cosRotation;\n const ySin = dy * sinRotation;\n const x = center[0];\n const y = center[1];\n return [\n x - xCos + ySin,\n y - xSin - yCos,\n x - xCos - ySin,\n y - xSin + yCos,\n x + xCos - ySin,\n y + xSin + yCos,\n x + xCos + ySin,\n y + xSin - yCos,\n x - xCos + ySin,\n y - xSin - yCos,\n ];\n}\n\n/**\n * Get the height of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Height.\n * @api\n */\nexport function getHeight(extent) {\n return extent[3] - extent[1];\n}\n\n/**\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @return {number} Intersection area.\n */\nexport function getIntersectionArea(extent1, extent2) {\n const intersection = getIntersection(extent1, extent2);\n return getArea(intersection);\n}\n\n/**\n * Get the intersection of two extents.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent 2.\n * @param {Extent} [dest] Optional extent to populate with intersection.\n * @return {Extent} Intersecting extent.\n * @api\n */\nexport function getIntersection(extent1, extent2, dest) {\n const intersection = dest ? dest : createEmpty();\n if (intersects(extent1, extent2)) {\n if (extent1[0] > extent2[0]) {\n intersection[0] = extent1[0];\n } else {\n intersection[0] = extent2[0];\n }\n if (extent1[1] > extent2[1]) {\n intersection[1] = extent1[1];\n } else {\n intersection[1] = extent2[1];\n }\n if (extent1[2] < extent2[2]) {\n intersection[2] = extent1[2];\n } else {\n intersection[2] = extent2[2];\n }\n if (extent1[3] < extent2[3]) {\n intersection[3] = extent1[3];\n } else {\n intersection[3] = extent2[3];\n }\n } else {\n createOrUpdateEmpty(intersection);\n }\n return intersection;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @return {number} Margin.\n */\nexport function getMargin(extent) {\n return getWidth(extent) + getHeight(extent);\n}\n\n/**\n * Get the size (width, height) of an extent.\n * @param {Extent} extent The extent.\n * @return {import(\"./size.js\").Size} The extent size.\n * @api\n */\nexport function getSize(extent) {\n return [extent[2] - extent[0], extent[3] - extent[1]];\n}\n\n/**\n * Get the top left coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top left coordinate.\n * @api\n */\nexport function getTopLeft(extent) {\n return [extent[0], extent[3]];\n}\n\n/**\n * Get the top right coordinate of an extent.\n * @param {Extent} extent Extent.\n * @return {import(\"./coordinate.js\").Coordinate} Top right coordinate.\n * @api\n */\nexport function getTopRight(extent) {\n return [extent[2], extent[3]];\n}\n\n/**\n * Get the width of an extent.\n * @param {Extent} extent Extent.\n * @return {number} Width.\n * @api\n */\nexport function getWidth(extent) {\n return extent[2] - extent[0];\n}\n\n/**\n * Determine if one extent intersects another.\n * @param {Extent} extent1 Extent 1.\n * @param {Extent} extent2 Extent.\n * @return {boolean} The two extents intersect.\n * @api\n */\nexport function intersects(extent1, extent2) {\n return (\n extent1[0] <= extent2[2] &&\n extent1[2] >= extent2[0] &&\n extent1[1] <= extent2[3] &&\n extent1[3] >= extent2[1]\n );\n}\n\n/**\n * Determine if an extent is empty.\n * @param {Extent} extent Extent.\n * @return {boolean} Is empty.\n * @api\n */\nexport function isEmpty(extent) {\n return extent[2] < extent[0] || extent[3] < extent[1];\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {Extent} [dest] Extent.\n * @return {Extent} Extent.\n */\nexport function returnOrUpdate(extent, dest) {\n if (dest) {\n dest[0] = extent[0];\n dest[1] = extent[1];\n dest[2] = extent[2];\n dest[3] = extent[3];\n return dest;\n }\n return extent;\n}\n\n/**\n * @param {Extent} extent Extent.\n * @param {number} value Value.\n */\nexport function scaleFromCenter(extent, value) {\n const deltaX = ((extent[2] - extent[0]) / 2) * (value - 1);\n const deltaY = ((extent[3] - extent[1]) / 2) * (value - 1);\n extent[0] -= deltaX;\n extent[2] += deltaX;\n extent[1] -= deltaY;\n extent[3] += deltaY;\n}\n\n/**\n * Determine if the segment between two coordinates intersects (crosses,\n * touches, or is contained by) the provided extent.\n * @param {Extent} extent The extent.\n * @param {import(\"./coordinate.js\").Coordinate} start Segment start coordinate.\n * @param {import(\"./coordinate.js\").Coordinate} end Segment end coordinate.\n * @return {boolean} The segment intersects the extent.\n */\nexport function intersectsSegment(extent, start, end) {\n let intersects = false;\n const startRel = coordinateRelationship(extent, start);\n const endRel = coordinateRelationship(extent, end);\n if (\n startRel === Relationship.INTERSECTING ||\n endRel === Relationship.INTERSECTING\n ) {\n intersects = true;\n } else {\n const minX = extent[0];\n const minY = extent[1];\n const maxX = extent[2];\n const maxY = extent[3];\n const startX = start[0];\n const startY = start[1];\n const endX = end[0];\n const endY = end[1];\n const slope = (endY - startY) / (endX - startX);\n let x, y;\n if (!!(endRel & Relationship.ABOVE) && !(startRel & Relationship.ABOVE)) {\n // potentially intersects top\n x = endX - (endY - maxY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.RIGHT) &&\n !(startRel & Relationship.RIGHT)\n ) {\n // potentially intersects right\n y = endY - (endX - maxX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.BELOW) &&\n !(startRel & Relationship.BELOW)\n ) {\n // potentially intersects bottom\n x = endX - (endY - minY) / slope;\n intersects = x >= minX && x <= maxX;\n }\n if (\n !intersects &&\n !!(endRel & Relationship.LEFT) &&\n !(startRel & Relationship.LEFT)\n ) {\n // potentially intersects left\n y = endY - (endX - minX) * slope;\n intersects = y >= minY && y <= maxY;\n }\n }\n return intersects;\n}\n\n/**\n * Apply a transform function to the extent.\n * @param {Extent} extent Extent.\n * @param {import(\"./proj.js\").TransformFunction} transformFn Transform function.\n * Called with `[minX, minY, maxX, maxY]` extent coordinates.\n * @param {Extent} [dest] Destination extent.\n * @param {number} [stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {Extent} Extent.\n * @api\n */\nexport function applyTransform(extent, transformFn, dest, stops) {\n if (isEmpty(extent)) {\n return createOrUpdateEmpty(dest);\n }\n let coordinates = [];\n if (stops > 1) {\n const width = extent[2] - extent[0];\n const height = extent[3] - extent[1];\n for (let i = 0; i < stops; ++i) {\n coordinates.push(\n extent[0] + (width * i) / stops,\n extent[1],\n extent[2],\n extent[1] + (height * i) / stops,\n extent[2] - (width * i) / stops,\n extent[3],\n extent[0],\n extent[3] - (height * i) / stops\n );\n }\n } else {\n coordinates = [\n extent[0],\n extent[1],\n extent[2],\n extent[1],\n extent[2],\n extent[3],\n extent[0],\n extent[3],\n ];\n }\n transformFn(coordinates, coordinates, 2);\n const xs = [];\n const ys = [];\n for (let i = 0, l = coordinates.length; i < l; i += 2) {\n xs.push(coordinates[i]);\n ys.push(coordinates[i + 1]);\n }\n return _boundingExtentXYs(xs, ys, dest);\n}\n\n/**\n * Modifies the provided extent in-place to be within the real world\n * extent.\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Extent} The extent within the real world extent.\n */\nexport function wrapX(extent, projection) {\n const projectionExtent = projection.getExtent();\n const center = getCenter(extent);\n if (\n projection.canWrapX() &&\n (center[0] < projectionExtent[0] || center[0] >= projectionExtent[2])\n ) {\n const worldWidth = getWidth(projectionExtent);\n const worldsAway = Math.floor(\n (center[0] - projectionExtent[0]) / worldWidth\n );\n const offset = worldsAway * worldWidth;\n extent[0] -= offset;\n extent[2] -= offset;\n }\n return extent;\n}\n\n/**\n * Fits the extent to the real world\n *\n * If the extent does not cross the anti meridian, this will return the extent in an array\n * If the extent crosses the anti meridian, the extent will be sliced, so each part fits within the\n * real world\n *\n *\n * @param {Extent} extent Extent.\n * @param {import(\"./proj/Projection.js\").default} projection Projection\n * @return {Array} The extent within the real world extent.\n */\nexport function wrapAndSliceX(extent, projection) {\n if (projection.canWrapX()) {\n const projectionExtent = projection.getExtent();\n\n if (!isFinite(extent[0]) || !isFinite(extent[2])) {\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n\n wrapX(extent, projection);\n const worldWidth = getWidth(projectionExtent);\n\n if (getWidth(extent) > worldWidth) {\n // the extent wraps around on itself\n return [[projectionExtent[0], extent[1], projectionExtent[2], extent[3]]];\n }\n if (extent[0] < projectionExtent[0]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0] + worldWidth, extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2], extent[3]],\n ];\n }\n if (extent[2] > projectionExtent[2]) {\n // the extent crosses the anti meridian, so it needs to be sliced\n return [\n [extent[0], extent[1], projectionExtent[2], extent[3]],\n [projectionExtent[0], extent[1], extent[2] - worldWidth, extent[3]],\n ];\n }\n }\n\n return [extent];\n}\n","/**\n * @module ol/coordinate\n */\nimport {getWidth} from './extent.js';\nimport {modulo, toFixed} from './math.js';\nimport {padNumber} from './string.js';\n\n/**\n * An array of numbers representing an `xy`, `xyz` or `xyzm` coordinate.\n * Example: `[16, 48]`.\n * @typedef {Array} Coordinate\n * @api\n */\n\n/**\n * A function that takes a {@link module:ol/coordinate~Coordinate} and\n * transforms it into a `{string}`.\n *\n * @typedef {function((Coordinate|undefined)): string} CoordinateFormat\n * @api\n */\n\n/**\n * Add `delta` to `coordinate`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {add} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * add(coord, [-2, 4]);\n * // coord is now [5.85, 51.983333]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {Coordinate} delta Delta.\n * @return {Coordinate} The input coordinate adjusted by\n * the given delta.\n * @api\n */\nexport function add(coordinate, delta) {\n coordinate[0] += +delta[0];\n coordinate[1] += +delta[1];\n return coordinate;\n}\n\n/**\n * Calculates the point closest to the passed coordinate on the passed circle.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {import(\"./geom/Circle.js\").default} circle The circle.\n * @return {Coordinate} Closest point on the circumference.\n */\nexport function closestOnCircle(coordinate, circle) {\n const r = circle.getRadius();\n const center = circle.getCenter();\n const x0 = center[0];\n const y0 = center[1];\n const x1 = coordinate[0];\n const y1 = coordinate[1];\n\n let dx = x1 - x0;\n const dy = y1 - y0;\n if (dx === 0 && dy === 0) {\n dx = 1;\n }\n const d = Math.sqrt(dx * dx + dy * dy);\n\n const x = x0 + (r * dx) / d;\n const y = y0 + (r * dy) / d;\n\n return [x, y];\n}\n\n/**\n * Calculates the point closest to the passed coordinate on the passed segment.\n * This is the foot of the perpendicular of the coordinate to the segment when\n * the foot is on the segment, or the closest segment coordinate when the foot\n * is outside the segment.\n *\n * @param {Coordinate} coordinate The coordinate.\n * @param {Array} segment The two coordinates\n * of the segment.\n * @return {Coordinate} The foot of the perpendicular of\n * the coordinate to the segment.\n */\nexport function closestOnSegment(coordinate, segment) {\n const x0 = coordinate[0];\n const y0 = coordinate[1];\n const start = segment[0];\n const end = segment[1];\n const x1 = start[0];\n const y1 = start[1];\n const x2 = end[0];\n const y2 = end[1];\n const dx = x2 - x1;\n const dy = y2 - y1;\n const along =\n dx === 0 && dy === 0\n ? 0\n : (dx * (x0 - x1) + dy * (y0 - y1)) / (dx * dx + dy * dy || 0);\n let x, y;\n if (along <= 0) {\n x = x1;\n y = y1;\n } else if (along >= 1) {\n x = x2;\n y = y2;\n } else {\n x = x1 + along * dx;\n y = y1 + along * dy;\n }\n return [x, y];\n}\n\n/**\n * Returns a {@link module:ol/coordinate~CoordinateFormat} function that can be\n * used to format\n * a {Coordinate} to a string.\n *\n * Example without specifying the fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const stringifyFunc = createStringXY();\n * const out = stringifyFunc(coord);\n * // out is now '8, 48'\n *\n * Example with explicitly specifying 2 fractional digits:\n *\n * import {createStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const stringifyFunc = createStringXY(2);\n * const out = stringifyFunc(coord);\n * // out is now '7.85, 47.98'\n *\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {CoordinateFormat} Coordinate format.\n * @api\n */\nexport function createStringXY(fractionDigits) {\n return (\n /**\n * @param {Coordinate} coordinate Coordinate.\n * @return {string} String XY.\n */\n function (coordinate) {\n return toStringXY(coordinate, fractionDigits);\n }\n );\n}\n\n/**\n * @param {string} hemispheres Hemispheres.\n * @param {number} degrees Degrees.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} String.\n */\nexport function degreesToStringHDMS(hemispheres, degrees, fractionDigits) {\n const normalizedDegrees = modulo(degrees + 180, 360) - 180;\n const x = Math.abs(3600 * normalizedDegrees);\n const decimals = fractionDigits || 0;\n\n let deg = Math.floor(x / 3600);\n let min = Math.floor((x - deg * 3600) / 60);\n let sec = toFixed(x - deg * 3600 - min * 60, decimals);\n\n if (sec >= 60) {\n sec = 0;\n min += 1;\n }\n\n if (min >= 60) {\n min = 0;\n deg += 1;\n }\n\n let hdms = deg + '\\u00b0';\n if (min !== 0 || sec !== 0) {\n hdms += ' ' + padNumber(min, 2) + '\\u2032';\n }\n if (sec !== 0) {\n hdms += ' ' + padNumber(sec, 2, decimals) + '\\u2033';\n }\n if (normalizedDegrees !== 0) {\n hdms += ' ' + hemispheres.charAt(normalizedDegrees < 0 ? 1 : 0);\n }\n\n return hdms;\n}\n\n/**\n * Transforms the given {@link module:ol/coordinate~Coordinate} to a string\n * using the given string template. The strings `{x}` and `{y}` in the template\n * will be replaced with the first and second coordinate values respectively.\n *\n * Example without specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const template = 'Coordinate is ({x}|{y}).';\n * const out = format(coord, template);\n * // out is now 'Coordinate is (8|48).'\n *\n * Example explicitly specifying the fractional digits:\n *\n * import {format} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const template = 'Coordinate is ({x}|{y}).';\n * const out = format(coord, template, 2);\n * // out is now 'Coordinate is (7.85|47.98).'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {string} template A template string with `{x}` and `{y}` placeholders\n * that will be replaced by first and second coordinate values.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Formatted coordinate.\n * @api\n */\nexport function format(coordinate, template, fractionDigits) {\n if (coordinate) {\n return template\n .replace('{x}', coordinate[0].toFixed(fractionDigits))\n .replace('{y}', coordinate[1].toFixed(fractionDigits));\n }\n return '';\n}\n\n/**\n * @param {Coordinate} coordinate1 First coordinate.\n * @param {Coordinate} coordinate2 Second coordinate.\n * @return {boolean} The two coordinates are equal.\n */\nexport function equals(coordinate1, coordinate2) {\n let equals = true;\n for (let i = coordinate1.length - 1; i >= 0; --i) {\n if (coordinate1[i] != coordinate2[i]) {\n equals = false;\n break;\n }\n }\n return equals;\n}\n\n/**\n * Rotate `coordinate` by `angle`. `coordinate` is modified in place and\n * returned by the function.\n *\n * Example:\n *\n * import {rotate} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const rotateRadians = Math.PI / 2; // 90 degrees\n * rotate(coord, rotateRadians);\n * // coord is now [-47.983333, 7.85]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} angle Angle in radian.\n * @return {Coordinate} Coordinate.\n * @api\n */\nexport function rotate(coordinate, angle) {\n const cosAngle = Math.cos(angle);\n const sinAngle = Math.sin(angle);\n const x = coordinate[0] * cosAngle - coordinate[1] * sinAngle;\n const y = coordinate[1] * cosAngle + coordinate[0] * sinAngle;\n coordinate[0] = x;\n coordinate[1] = y;\n return coordinate;\n}\n\n/**\n * Scale `coordinate` by `scale`. `coordinate` is modified in place and returned\n * by the function.\n *\n * Example:\n *\n * import {scale as scaleCoordinate} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const scale = 1.2;\n * scaleCoordinate(coord, scale);\n * // coord is now [9.42, 57.5799996]\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} scale Scale factor.\n * @return {Coordinate} Coordinate.\n */\nexport function scale(coordinate, scale) {\n coordinate[0] *= scale;\n coordinate[1] *= scale;\n return coordinate;\n}\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Squared distance between coord1 and coord2.\n */\nexport function squaredDistance(coord1, coord2) {\n const dx = coord1[0] - coord2[0];\n const dy = coord1[1] - coord2[1];\n return dx * dx + dy * dy;\n}\n\n/**\n * @param {Coordinate} coord1 First coordinate.\n * @param {Coordinate} coord2 Second coordinate.\n * @return {number} Distance between coord1 and coord2.\n */\nexport function distance(coord1, coord2) {\n return Math.sqrt(squaredDistance(coord1, coord2));\n}\n\n/**\n * Calculate the squared distance from a coordinate to a line segment.\n *\n * @param {Coordinate} coordinate Coordinate of the point.\n * @param {Array} segment Line segment (2\n * coordinates).\n * @return {number} Squared distance from the point to the line segment.\n */\nexport function squaredDistanceToSegment(coordinate, segment) {\n return squaredDistance(coordinate, closestOnSegment(coordinate, segment));\n}\n\n/**\n * Format a geographic coordinate with the hemisphere, degrees, minutes, and\n * seconds.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringHDMS} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringHDMS(coord);\n * // out is now '47° 58′ 60″ N 7° 50′ 60″ E'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringHDMS} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringHDMS(coord, 1);\n * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} Hemisphere, degrees, minutes and seconds.\n * @api\n */\nexport function toStringHDMS(coordinate, fractionDigits) {\n if (coordinate) {\n return (\n degreesToStringHDMS('NS', coordinate[1], fractionDigits) +\n ' ' +\n degreesToStringHDMS('EW', coordinate[0], fractionDigits)\n );\n }\n return '';\n}\n\n/**\n * Format a coordinate as a comma delimited string.\n *\n * Example without specifying fractional digits:\n *\n * import {toStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringXY(coord);\n * // out is now '8, 48'\n *\n * Example explicitly specifying 1 fractional digit:\n *\n * import {toStringXY} from 'ol/coordinate.js';\n *\n * const coord = [7.85, 47.983333];\n * const out = toStringXY(coord, 1);\n * // out is now '7.8, 48.0'\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {number} [fractionDigits] The number of digits to include\n * after the decimal point. Default is `0`.\n * @return {string} XY.\n * @api\n */\nexport function toStringXY(coordinate, fractionDigits) {\n return format(coordinate, '{x}, {y}', fractionDigits);\n}\n\n/**\n * Modifies the provided coordinate in-place to be within the real world\n * extent. The lower projection extent boundary is inclusive, the upper one\n * exclusive.\n *\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @return {Coordinate} The coordinate within the real world extent.\n */\nexport function wrapX(coordinate, projection) {\n if (projection.canWrapX()) {\n const worldWidth = getWidth(projection.getExtent());\n const worldsAway = getWorldsAway(coordinate, projection, worldWidth);\n if (worldsAway) {\n coordinate[0] -= worldsAway * worldWidth;\n }\n }\n return coordinate;\n}\n/**\n * @param {Coordinate} coordinate Coordinate.\n * @param {import(\"./proj/Projection.js\").default} projection Projection.\n * @param {number} [sourceExtentWidth] Width of the source extent.\n * @return {number} Offset in world widths.\n */\nexport function getWorldsAway(coordinate, projection, sourceExtentWidth) {\n const projectionExtent = projection.getExtent();\n let worldsAway = 0;\n if (\n projection.canWrapX() &&\n (coordinate[0] < projectionExtent[0] || coordinate[0] > projectionExtent[2])\n ) {\n sourceExtentWidth = sourceExtentWidth || getWidth(projectionExtent);\n worldsAway = Math.floor(\n (coordinate[0] - projectionExtent[0]) / sourceExtentWidth\n );\n }\n return worldsAway;\n}\n","/**\n * @module ol/sphere\n */\nimport {toDegrees, toRadians} from './math.js';\n\n/**\n * Object literal with options for the {@link getLength} or {@link getArea}\n * functions.\n * @typedef {Object} SphereMetricOptions\n * @property {import(\"./proj.js\").ProjectionLike} [projection='EPSG:3857']\n * Projection of the geometry. By default, the geometry is assumed to be in\n * Web Mercator.\n * @property {number} [radius=6371008.8] Sphere radius. By default, the\n * [mean Earth radius](https://en.wikipedia.org/wiki/Earth_radius#Mean_radius)\n * for the WGS84 ellipsoid is used.\n */\n\n/**\n * The mean Earth radius (1/3 * (2a + b)) for the WGS84 ellipsoid.\n * https://en.wikipedia.org/wiki/Earth_radius#Mean_radius\n * @type {number}\n */\nexport const DEFAULT_RADIUS = 6371008.8;\n\n/**\n * Get the great circle distance (in meters) between two geographic coordinates.\n * @param {Array} c1 Starting coordinate.\n * @param {Array} c2 Ending coordinate.\n * @param {number} [radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {number} The great circle distance between the points (in meters).\n * @api\n */\nexport function getDistance(c1, c2, radius) {\n radius = radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lat2 = toRadians(c2[1]);\n const deltaLatBy2 = (lat2 - lat1) / 2;\n const deltaLonBy2 = toRadians(c2[0] - c1[0]) / 2;\n const a =\n Math.sin(deltaLatBy2) * Math.sin(deltaLatBy2) +\n Math.sin(deltaLonBy2) *\n Math.sin(deltaLonBy2) *\n Math.cos(lat1) *\n Math.cos(lat2);\n return 2 * radius * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n}\n\n/**\n * Get the cumulative great circle length of linestring coordinates (geographic).\n * @param {Array} coordinates Linestring coordinates.\n * @param {number} radius The sphere radius to use.\n * @return {number} The length (in meters).\n */\nfunction getLengthInternal(coordinates, radius) {\n let length = 0;\n for (let i = 0, ii = coordinates.length; i < ii - 1; ++i) {\n length += getDistance(coordinates[i], coordinates[i + 1], radius);\n }\n return length;\n}\n\n/**\n * Get the spherical length of a geometry. This length is the sum of the\n * great circle distances between coordinates. For polygons, the length is\n * the sum of all rings. For points, the length is zero. For multi-part\n * geometries, the length is the sum of the length of each part.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [options] Options for the\n * length calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical length (in meters).\n * @api\n */\nexport function getLength(geometry, options) {\n options = options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== 'GeometryCollection') {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let length = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case 'Point':\n case 'MultiPoint': {\n break;\n }\n case 'LineString':\n case 'LinearRing': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n length = getLengthInternal(coordinates, radius);\n break;\n }\n case 'MultiLineString':\n case 'Polygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n length += getLengthInternal(coordinates[i], radius);\n }\n break;\n }\n case 'MultiPolygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n for (j = 0, jj = coords.length; j < jj; ++j) {\n length += getLengthInternal(coords[j], radius);\n }\n }\n break;\n }\n case 'GeometryCollection': {\n const geometries =\n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (\n geometry\n ).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n length += getLength(geometries[i], options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return length;\n}\n\n/**\n * Returns the spherical area for a list of coordinates.\n *\n * [Reference](https://trs.jpl.nasa.gov/handle/2014/40409)\n * Robert. G. Chamberlain and William H. Duquette, \"Some Algorithms for\n * Polygons on a Sphere\", JPL Publication 07-03, Jet Propulsion\n * Laboratory, Pasadena, CA, June 2007\n *\n * @param {Array} coordinates List of coordinates of a linear\n * ring. If the ring is oriented clockwise, the area will be positive,\n * otherwise it will be negative.\n * @param {number} radius The sphere radius.\n * @return {number} Area (in square meters).\n */\nfunction getAreaInternal(coordinates, radius) {\n let area = 0;\n const len = coordinates.length;\n let x1 = coordinates[len - 1][0];\n let y1 = coordinates[len - 1][1];\n for (let i = 0; i < len; i++) {\n const x2 = coordinates[i][0];\n const y2 = coordinates[i][1];\n area +=\n toRadians(x2 - x1) *\n (2 + Math.sin(toRadians(y1)) + Math.sin(toRadians(y2)));\n x1 = x2;\n y1 = y2;\n }\n return (area * radius * radius) / 2.0;\n}\n\n/**\n * Get the spherical area of a geometry. This is the area (in meters) assuming\n * that polygon edges are segments of great circles on a sphere.\n * @param {import(\"./geom/Geometry.js\").default} geometry A geometry.\n * @param {SphereMetricOptions} [options] Options for the area\n * calculation. By default, geometries are assumed to be in 'EPSG:3857'.\n * You can change this by providing a `projection` option.\n * @return {number} The spherical area (in square meters).\n * @api\n */\nexport function getArea(geometry, options) {\n options = options || {};\n const radius = options.radius || DEFAULT_RADIUS;\n const projection = options.projection || 'EPSG:3857';\n const type = geometry.getType();\n if (type !== 'GeometryCollection') {\n geometry = geometry.clone().transform(projection, 'EPSG:4326');\n }\n let area = 0;\n let coordinates, coords, i, ii, j, jj;\n switch (type) {\n case 'Point':\n case 'MultiPoint':\n case 'LineString':\n case 'MultiLineString':\n case 'LinearRing': {\n break;\n }\n case 'Polygon': {\n coordinates = /** @type {import(\"./geom/Polygon.js\").default} */ (\n geometry\n ).getCoordinates();\n area = Math.abs(getAreaInternal(coordinates[0], radius));\n for (i = 1, ii = coordinates.length; i < ii; ++i) {\n area -= Math.abs(getAreaInternal(coordinates[i], radius));\n }\n break;\n }\n case 'MultiPolygon': {\n coordinates = /** @type {import(\"./geom/SimpleGeometry.js\").default} */ (\n geometry\n ).getCoordinates();\n for (i = 0, ii = coordinates.length; i < ii; ++i) {\n coords = coordinates[i];\n area += Math.abs(getAreaInternal(coords[0], radius));\n for (j = 1, jj = coords.length; j < jj; ++j) {\n area -= Math.abs(getAreaInternal(coords[j], radius));\n }\n }\n break;\n }\n case 'GeometryCollection': {\n const geometries =\n /** @type {import(\"./geom/GeometryCollection.js\").default} */ (\n geometry\n ).getGeometries();\n for (i = 0, ii = geometries.length; i < ii; ++i) {\n area += getArea(geometries[i], options);\n }\n break;\n }\n default: {\n throw new Error('Unsupported geometry type: ' + type);\n }\n }\n return area;\n}\n\n/**\n * Returns the coordinate at the given distance and bearing from `c1`.\n *\n * @param {import(\"./coordinate.js\").Coordinate} c1 The origin point (`[lon, lat]` in degrees).\n * @param {number} distance The great-circle distance between the origin\n * point and the target point.\n * @param {number} bearing The bearing (in radians).\n * @param {number} [radius] The sphere radius to use. Defaults to the Earth's\n * mean radius using the WGS84 ellipsoid.\n * @return {import(\"./coordinate.js\").Coordinate} The target point.\n */\nexport function offset(c1, distance, bearing, radius) {\n radius = radius || DEFAULT_RADIUS;\n const lat1 = toRadians(c1[1]);\n const lon1 = toRadians(c1[0]);\n const dByR = distance / radius;\n const lat = Math.asin(\n Math.sin(lat1) * Math.cos(dByR) +\n Math.cos(lat1) * Math.sin(dByR) * Math.cos(bearing)\n );\n const lon =\n lon1 +\n Math.atan2(\n Math.sin(bearing) * Math.sin(dByR) * Math.cos(lat1),\n Math.cos(dByR) - Math.sin(lat1) * Math.sin(lat)\n );\n return [toDegrees(lon), toDegrees(lat)];\n}\n","/**\n * @module ol/console\n */\n\n/**\n * @typedef {'info'|'warn'|'error'|'none'} Level\n */\n\n/**\n * @type {Object}\n */\nconst levels = {\n info: 1,\n warn: 2,\n error: 3,\n none: 4,\n};\n\n/**\n * @type {number}\n */\nlet level = levels.info;\n\n/**\n * Set the logging level. By default, the level is set to 'info' and all\n * messages will be logged. Set to 'warn' to only display warnings and errors.\n * Set to 'error' to only display errors. Set to 'none' to silence all messages.\n *\n * @param {Level} l The new level.\n */\nexport function setLevel(l) {\n level = levels[l];\n}\n\nexport function log(...args) {\n if (level > levels.info) {\n return;\n }\n console.log(...args); // eslint-disable-line no-console\n}\n\nexport function warn(...args) {\n if (level > levels.warn) {\n return;\n }\n console.warn(...args); // eslint-disable-line no-console\n}\n\nexport function error(...args) {\n if (level > levels.error) {\n return;\n }\n console.error(...args); // eslint-disable-line no-console\n}\n","/**\n * @module ol/proj\n */\n\n/**\n * The ol/proj module stores:\n * * a list of {@link module:ol/proj/Projection~Projection}\n * objects, one for each projection supported by the application\n * * a list of transform functions needed to convert coordinates in one projection\n * into another.\n *\n * The static functions are the methods used to maintain these.\n * Each transform function can handle not only simple coordinate pairs, but also\n * large arrays of coordinates such as vector geometries.\n *\n * When loaded, the library adds projection objects for EPSG:4326 (WGS84\n * geographic coordinates) and EPSG:3857 (Web or Spherical Mercator, as used\n * for example by Bing Maps or OpenStreetMap), together with the relevant\n * transform functions.\n *\n * Additional transforms may be added by using the http://proj4js.org/\n * library (version 2.2 or later). You can use the full build supplied by\n * Proj4js, or create a custom build to support those projections you need; see\n * the Proj4js website for how to do this. You also need the Proj4js definitions\n * for the required projections. These definitions can be obtained from\n * https://epsg.io/, and are a JS function, so can be loaded in a script\n * tag (as in the examples) or pasted into your application.\n *\n * After all required projection definitions are added to proj4's registry (by\n * using `proj4.defs()`), simply call `register(proj4)` from the `ol/proj/proj4`\n * package. Existing transforms are not changed by this function. See\n * examples/wms-image-custom-proj for an example of this.\n *\n * Additional projection definitions can be registered with `proj4.defs()` any\n * time. Just make sure to call `register(proj4)` again; for example, with user-supplied data where you don't\n * know in advance what projections are needed, you can initially load minimal\n * support and then load whichever are requested.\n *\n * Note that Proj4js does not support projection extents. If you want to add\n * one for creating default tile grids, you can add it after the Projection\n * object has been created with `setExtent`, for example,\n * `get('EPSG:1234').setExtent(extent)`.\n *\n * In addition to Proj4js support, any transform functions can be added with\n * {@link module:ol/proj.addCoordinateTransforms}. To use this, you must first create\n * a {@link module:ol/proj/Projection~Projection} object for the new projection and add it with\n * {@link module:ol/proj.addProjection}. You can then add the forward and inverse\n * functions with {@link module:ol/proj.addCoordinateTransforms}. See\n * examples/wms-custom-proj for an example of this.\n *\n * Note that if no transforms are needed and you only need to define the\n * projection, just add a {@link module:ol/proj/Projection~Projection} with\n * {@link module:ol/proj.addProjection}. See examples/wms-no-proj for an example of\n * this.\n */\nimport Projection from './proj/Projection.js';\nimport {\n PROJECTIONS as EPSG3857_PROJECTIONS,\n fromEPSG4326,\n toEPSG4326,\n} from './proj/epsg3857.js';\nimport {PROJECTIONS as EPSG4326_PROJECTIONS} from './proj/epsg4326.js';\nimport {METERS_PER_UNIT} from './proj/Units.js';\nimport {\n add as addProj,\n clear as clearProj,\n get as getProj,\n} from './proj/projections.js';\nimport {\n add as addTransformFunc,\n clear as clearTransformFuncs,\n get as getTransformFunc,\n} from './proj/transforms.js';\nimport {applyTransform, getWidth} from './extent.js';\nimport {clamp, modulo} from './math.js';\nimport {equals, getWorldsAway} from './coordinate.js';\nimport {getDistance} from './sphere.js';\nimport {warn} from './console.js';\n\n/**\n * A projection as {@link module:ol/proj/Projection~Projection}, SRS identifier\n * string or undefined.\n * @typedef {Projection|string|undefined} ProjectionLike\n * @api\n */\n\n/**\n * A transform function accepts an array of input coordinate values, an optional\n * output array, and an optional dimension (default should be 2). The function\n * transforms the input coordinate values, populates the output array, and\n * returns the output array.\n *\n * @typedef {function(Array, Array=, number=): Array} TransformFunction\n * @api\n */\n\nexport {METERS_PER_UNIT};\n\nexport {Projection};\n\nlet showCoordinateWarning = true;\n\n/**\n * @param {boolean} [disable = true] Disable console info about `useGeographic()`\n */\nexport function disableCoordinateWarning(disable) {\n const hide = disable === undefined ? true : disable;\n showCoordinateWarning = !hide;\n}\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [output] Output array of coordinate values.\n * @return {Array} Output coordinate array (new array, same coordinate\n * values).\n */\nexport function cloneTransform(input, output) {\n if (output !== undefined) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n output[i] = input[i];\n }\n output = output;\n } else {\n output = input.slice();\n }\n return output;\n}\n\n/**\n * @param {Array} input Input coordinate array.\n * @param {Array} [output] Output array of coordinate values.\n * @return {Array} Input coordinate array (same array as input).\n */\nexport function identityTransform(input, output) {\n if (output !== undefined && input !== output) {\n for (let i = 0, ii = input.length; i < ii; ++i) {\n output[i] = input[i];\n }\n input = output;\n }\n return input;\n}\n\n/**\n * Add a Projection object to the list of supported projections that can be\n * looked up by their code.\n *\n * @param {Projection} projection Projection instance.\n * @api\n */\nexport function addProjection(projection) {\n addProj(projection.getCode(), projection);\n addTransformFunc(projection, projection, cloneTransform);\n}\n\n/**\n * @param {Array} projections Projections.\n */\nexport function addProjections(projections) {\n projections.forEach(addProjection);\n}\n\n/**\n * Fetches a Projection object for the code specified.\n *\n * @param {ProjectionLike} projectionLike Either a code string which is\n * a combination of authority and identifier such as \"EPSG:4326\", or an\n * existing projection object, or undefined.\n * @return {Projection|null} Projection object, or null if not in list.\n * @api\n */\nexport function get(projectionLike) {\n return typeof projectionLike === 'string'\n ? getProj(/** @type {string} */ (projectionLike))\n : /** @type {Projection} */ (projectionLike) || null;\n}\n\n/**\n * Get the resolution of the point in degrees or distance units.\n * For projections with degrees as the unit this will simply return the\n * provided resolution. For other projections the point resolution is\n * by default estimated by transforming the `point` pixel to EPSG:4326,\n * measuring its width and height on the normal sphere,\n * and taking the average of the width and height.\n * A custom function can be provided for a specific projection, either\n * by setting the `getPointResolution` option in the\n * {@link module:ol/proj/Projection~Projection} constructor or by using\n * {@link module:ol/proj/Projection~Projection#setGetPointResolution} to change an existing\n * projection object.\n * @param {ProjectionLike} projection The projection.\n * @param {number} resolution Nominal resolution in projection units.\n * @param {import(\"./coordinate.js\").Coordinate} point Point to find adjusted resolution at.\n * @param {import(\"./proj/Units.js\").Units} [units] Units to get the point resolution in.\n * Default is the projection's units.\n * @return {number} Point resolution.\n * @api\n */\nexport function getPointResolution(projection, resolution, point, units) {\n projection = get(projection);\n let pointResolution;\n const getter = projection.getPointResolutionFunc();\n if (getter) {\n pointResolution = getter(resolution, point);\n if (units && units !== projection.getUnits()) {\n const metersPerUnit = projection.getMetersPerUnit();\n if (metersPerUnit) {\n pointResolution =\n (pointResolution * metersPerUnit) / METERS_PER_UNIT[units];\n }\n }\n } else {\n const projUnits = projection.getUnits();\n if ((projUnits == 'degrees' && !units) || units == 'degrees') {\n pointResolution = resolution;\n } else {\n // Estimate point resolution by transforming the center pixel to EPSG:4326,\n // measuring its width and height on the normal sphere, and taking the\n // average of the width and height.\n const toEPSG4326 = getTransformFromProjections(\n projection,\n get('EPSG:4326')\n );\n if (toEPSG4326 === identityTransform && projUnits !== 'degrees') {\n // no transform is available\n pointResolution = resolution * projection.getMetersPerUnit();\n } else {\n let vertices = [\n point[0] - resolution / 2,\n point[1],\n point[0] + resolution / 2,\n point[1],\n point[0],\n point[1] - resolution / 2,\n point[0],\n point[1] + resolution / 2,\n ];\n vertices = toEPSG4326(vertices, vertices, 2);\n const width = getDistance(vertices.slice(0, 2), vertices.slice(2, 4));\n const height = getDistance(vertices.slice(4, 6), vertices.slice(6, 8));\n pointResolution = (width + height) / 2;\n }\n const metersPerUnit = units\n ? METERS_PER_UNIT[units]\n : projection.getMetersPerUnit();\n if (metersPerUnit !== undefined) {\n pointResolution /= metersPerUnit;\n }\n }\n }\n return pointResolution;\n}\n\n/**\n * Registers transformation functions that don't alter coordinates. Those allow\n * to transform between projections with equal meaning.\n *\n * @param {Array} projections Projections.\n * @api\n */\nexport function addEquivalentProjections(projections) {\n addProjections(projections);\n projections.forEach(function (source) {\n projections.forEach(function (destination) {\n if (source !== destination) {\n addTransformFunc(source, destination, cloneTransform);\n }\n });\n });\n}\n\n/**\n * Registers transformation functions to convert coordinates in any projection\n * in projection1 to any projection in projection2.\n *\n * @param {Array} projections1 Projections with equal\n * meaning.\n * @param {Array} projections2 Projections with equal\n * meaning.\n * @param {TransformFunction} forwardTransform Transformation from any\n * projection in projection1 to any projection in projection2.\n * @param {TransformFunction} inverseTransform Transform from any projection\n * in projection2 to any projection in projection1..\n */\nexport function addEquivalentTransforms(\n projections1,\n projections2,\n forwardTransform,\n inverseTransform\n) {\n projections1.forEach(function (projection1) {\n projections2.forEach(function (projection2) {\n addTransformFunc(projection1, projection2, forwardTransform);\n addTransformFunc(projection2, projection1, inverseTransform);\n });\n });\n}\n\n/**\n * Clear all cached projections and transforms.\n */\nexport function clearAllProjections() {\n clearProj();\n clearTransformFuncs();\n}\n\n/**\n * @param {Projection|string|undefined} projection Projection.\n * @param {string} defaultCode Default code.\n * @return {Projection} Projection.\n */\nexport function createProjection(projection, defaultCode) {\n if (!projection) {\n return get(defaultCode);\n }\n if (typeof projection === 'string') {\n return get(projection);\n }\n return /** @type {Projection} */ (projection);\n}\n\n/**\n * Creates a {@link module:ol/proj~TransformFunction} from a simple 2D coordinate transform\n * function.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} coordTransform Coordinate\n * transform.\n * @return {TransformFunction} Transform function.\n */\nexport function createTransformFromCoordinateTransform(coordTransform) {\n return (\n /**\n * @param {Array} input Input.\n * @param {Array} [output] Output.\n * @param {number} [dimension] Dimension.\n * @return {Array} Output.\n */\n function (input, output, dimension) {\n const length = input.length;\n dimension = dimension !== undefined ? dimension : 2;\n output = output !== undefined ? output : new Array(length);\n for (let i = 0; i < length; i += dimension) {\n const point = coordTransform(input.slice(i, i + dimension));\n const pointLength = point.length;\n for (let j = 0, jj = dimension; j < jj; ++j) {\n output[i + j] = j >= pointLength ? input[i + j] : point[j];\n }\n }\n return output;\n }\n );\n}\n\n/**\n * Registers coordinate transform functions to convert coordinates between the\n * source projection and the destination projection.\n * The forward and inverse functions convert coordinate pairs; this function\n * converts these into the functions used internally which also handle\n * extents and coordinate arrays.\n *\n * @param {ProjectionLike} source Source projection.\n * @param {ProjectionLike} destination Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} forward The forward transform\n * function (that is, from the source projection to the destination\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} inverse The inverse transform\n * function (that is, from the destination projection to the source\n * projection) that takes a {@link module:ol/coordinate~Coordinate} as argument and returns\n * the transformed {@link module:ol/coordinate~Coordinate}. If the transform function can only\n * transform less dimensions than the input coordinate, it is supposeed to return a coordinate\n * with only the length it can transform. The other dimensions will be taken unchanged from the\n * source.\n * @api\n */\nexport function addCoordinateTransforms(source, destination, forward, inverse) {\n const sourceProj = get(source);\n const destProj = get(destination);\n addTransformFunc(\n sourceProj,\n destProj,\n createTransformFromCoordinateTransform(forward)\n );\n addTransformFunc(\n destProj,\n sourceProj,\n createTransformFromCoordinateTransform(inverse)\n );\n}\n\n/**\n * Transforms a coordinate from longitude/latitude to a different projection.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate as longitude and latitude, i.e.\n * an array with longitude as 1st and latitude as 2nd element.\n * @param {ProjectionLike} [projection] Target projection. The\n * default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate projected to the target projection.\n * @api\n */\nexport function fromLonLat(coordinate, projection) {\n disableCoordinateWarning();\n return transform(\n coordinate,\n 'EPSG:4326',\n projection !== undefined ? projection : 'EPSG:3857'\n );\n}\n\n/**\n * Transforms a coordinate to longitude/latitude.\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Projected coordinate.\n * @param {ProjectionLike} [projection] Projection of the coordinate.\n * The default is Web Mercator, i.e. 'EPSG:3857'.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate as longitude and latitude, i.e. an array\n * with longitude as 1st and latitude as 2nd element.\n * @api\n */\nexport function toLonLat(coordinate, projection) {\n const lonLat = transform(\n coordinate,\n projection !== undefined ? projection : 'EPSG:3857',\n 'EPSG:4326'\n );\n const lon = lonLat[0];\n if (lon < -180 || lon > 180) {\n lonLat[0] = modulo(lon + 180, 360) - 180;\n }\n return lonLat;\n}\n\n/**\n * Checks if two projections are the same, that is every coordinate in one\n * projection does represent the same geographic point as the same coordinate in\n * the other projection.\n *\n * @param {Projection} projection1 Projection 1.\n * @param {Projection} projection2 Projection 2.\n * @return {boolean} Equivalent.\n * @api\n */\nexport function equivalent(projection1, projection2) {\n if (projection1 === projection2) {\n return true;\n }\n const equalUnits = projection1.getUnits() === projection2.getUnits();\n if (projection1.getCode() === projection2.getCode()) {\n return equalUnits;\n }\n const transformFunc = getTransformFromProjections(projection1, projection2);\n return transformFunc === cloneTransform && equalUnits;\n}\n\n/**\n * Searches in the list of transform functions for the function for converting\n * coordinates from the source projection to the destination projection.\n *\n * @param {Projection} sourceProjection Source Projection object.\n * @param {Projection} destinationProjection Destination Projection\n * object.\n * @return {TransformFunction} Transform function.\n */\nexport function getTransformFromProjections(\n sourceProjection,\n destinationProjection\n) {\n const sourceCode = sourceProjection.getCode();\n const destinationCode = destinationProjection.getCode();\n let transformFunc = getTransformFunc(sourceCode, destinationCode);\n if (!transformFunc) {\n transformFunc = identityTransform;\n }\n return transformFunc;\n}\n\n/**\n * Given the projection-like objects, searches for a transformation\n * function to convert a coordinates array from the source projection to the\n * destination projection.\n *\n * @param {ProjectionLike} source Source.\n * @param {ProjectionLike} destination Destination.\n * @return {TransformFunction} Transform function.\n * @api\n */\nexport function getTransform(source, destination) {\n const sourceProjection = get(source);\n const destinationProjection = get(destination);\n return getTransformFromProjections(sourceProjection, destinationProjection);\n}\n\n/**\n * Transforms a coordinate from source projection to destination projection.\n * This returns a new coordinate (and does not modify the original).\n *\n * See {@link module:ol/proj.transformExtent} for extent transformation.\n * See the transform method of {@link module:ol/geom/Geometry~Geometry} and its\n * subclasses for geometry transforms.\n *\n * @param {import(\"./coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @return {import(\"./coordinate.js\").Coordinate} Coordinate.\n * @api\n */\nexport function transform(coordinate, source, destination) {\n const transformFunc = getTransform(source, destination);\n return transformFunc(coordinate, undefined, coordinate.length);\n}\n\n/**\n * Transforms an extent from source projection to destination projection. This\n * returns a new extent (and does not modify the original).\n *\n * @param {import(\"./extent.js\").Extent} extent The extent to transform.\n * @param {ProjectionLike} source Source projection-like.\n * @param {ProjectionLike} destination Destination projection-like.\n * @param {number} [stops] Number of stops per side used for the transform.\n * By default only the corners are used.\n * @return {import(\"./extent.js\").Extent} The transformed extent.\n * @api\n */\nexport function transformExtent(extent, source, destination, stops) {\n const transformFunc = getTransform(source, destination);\n return applyTransform(extent, transformFunc, undefined, stops);\n}\n\n/**\n * Transforms the given point to the destination projection.\n *\n * @param {import(\"./coordinate.js\").Coordinate} point Point.\n * @param {Projection} sourceProjection Source projection.\n * @param {Projection} destinationProjection Destination projection.\n * @return {import(\"./coordinate.js\").Coordinate} Point.\n */\nexport function transformWithProjections(\n point,\n sourceProjection,\n destinationProjection\n) {\n const transformFunc = getTransformFromProjections(\n sourceProjection,\n destinationProjection\n );\n return transformFunc(point);\n}\n\n/**\n * @type {Projection|null}\n */\nlet userProjection = null;\n\n/**\n * Set the projection for coordinates supplied from and returned by API methods.\n * This includes all API methods except for those interacting with tile grids,\n * plus {@link import(\"./Map.js\").FrameState} and {@link import(\"./View.js\").State}.\n * @param {ProjectionLike} projection The user projection.\n * @api\n */\nexport function setUserProjection(projection) {\n userProjection = get(projection);\n}\n\n/**\n * Clear the user projection if set.\n * @api\n */\nexport function clearUserProjection() {\n userProjection = null;\n}\n\n/**\n * Get the projection for coordinates supplied from and returned by API methods.\n * @return {Projection|null} The user projection (or null if not set).\n * @api\n */\nexport function getUserProjection() {\n return userProjection;\n}\n\n/**\n * Use geographic coordinates (WGS-84 datum) in API methods.\n * This includes all API methods except for those interacting with tile grids,\n * plus {@link import(\"./Map.js\").FrameState} and {@link import(\"./View.js\").State}.\n * @api\n */\nexport function useGeographic() {\n setUserProjection('EPSG:4326');\n}\n\n/**\n * Return a coordinate transformed into the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} sourceProjection The input coordinate projection.\n * @return {Array} The input coordinate in the user projection.\n */\nexport function toUserCoordinate(coordinate, sourceProjection) {\n if (!userProjection) {\n return coordinate;\n }\n return transform(coordinate, sourceProjection, userProjection);\n}\n\n/**\n * Return a coordinate transformed from the user projection. If no user projection\n * is set, the original coordinate is returned.\n * @param {Array} coordinate Input coordinate.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {Array} The input coordinate transformed.\n */\nexport function fromUserCoordinate(coordinate, destProjection) {\n if (!userProjection) {\n if (\n showCoordinateWarning &&\n !equals(coordinate, [0, 0]) &&\n coordinate[0] >= -180 &&\n coordinate[0] <= 180 &&\n coordinate[1] >= -90 &&\n coordinate[1] <= 90\n ) {\n showCoordinateWarning = false;\n warn(\n 'Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.'\n );\n }\n return coordinate;\n }\n return transform(coordinate, userProjection, destProjection);\n}\n\n/**\n * Return an extent transformed into the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} sourceProjection The input extent projection.\n * @return {import(\"./extent.js\").Extent} The input extent in the user projection.\n */\nexport function toUserExtent(extent, sourceProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, sourceProjection, userProjection);\n}\n\n/**\n * Return an extent transformed from the user projection. If no user projection\n * is set, the original extent is returned.\n * @param {import(\"./extent.js\").Extent} extent Input extent.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {import(\"./extent.js\").Extent} The input extent transformed.\n */\nexport function fromUserExtent(extent, destProjection) {\n if (!userProjection) {\n return extent;\n }\n return transformExtent(extent, userProjection, destProjection);\n}\n\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in input projection units per pixel.\n * @param {ProjectionLike} sourceProjection The input projection.\n * @return {number} Resolution in user projection units per pixel.\n */\nexport function toUserResolution(resolution, sourceProjection) {\n if (!userProjection) {\n return resolution;\n }\n const sourceUnits = get(sourceProjection).getUnits();\n const userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[sourceUnits]) / METERS_PER_UNIT[userUnits]\n : resolution;\n}\n\n/**\n * Return the resolution in user projection units per pixel. If no user projection\n * is set, or source or user projection are missing units, the original resolution\n * is returned.\n * @param {number} resolution Resolution in user projection units per pixel.\n * @param {ProjectionLike} destProjection The destination projection.\n * @return {number} Resolution in destination projection units per pixel.\n */\nexport function fromUserResolution(resolution, destProjection) {\n if (!userProjection) {\n return resolution;\n }\n const sourceUnits = get(destProjection).getUnits();\n const userUnits = userProjection.getUnits();\n return sourceUnits && userUnits\n ? (resolution * METERS_PER_UNIT[userUnits]) / METERS_PER_UNIT[sourceUnits]\n : resolution;\n}\n\n/**\n * Creates a safe coordinate transform function from a coordinate transform function.\n * \"Safe\" means that it can handle wrapping of x-coordinates for global projections,\n * and that coordinates exceeding the source projection validity extent's range will be\n * clamped to the validity range.\n * @param {Projection} sourceProj Source projection.\n * @param {Projection} destProj Destination projection.\n * @param {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} transform Transform function (source to destination).\n * @return {function(import(\"./coordinate.js\").Coordinate): import(\"./coordinate.js\").Coordinate} Safe transform function (source to destination).\n */\nexport function createSafeCoordinateTransform(sourceProj, destProj, transform) {\n return function (coord) {\n let transformed, worldsAway;\n if (sourceProj.canWrapX()) {\n const sourceExtent = sourceProj.getExtent();\n const sourceExtentWidth = getWidth(sourceExtent);\n coord = coord.slice(0);\n worldsAway = getWorldsAway(coord, sourceProj, sourceExtentWidth);\n if (worldsAway) {\n // Move x to the real world\n coord[0] = coord[0] - worldsAway * sourceExtentWidth;\n }\n coord[0] = clamp(coord[0], sourceExtent[0], sourceExtent[2]);\n coord[1] = clamp(coord[1], sourceExtent[1], sourceExtent[3]);\n transformed = transform(coord);\n } else {\n transformed = transform(coord);\n }\n if (worldsAway && destProj.canWrapX()) {\n // Move transformed coordinate back to the offset world\n transformed[0] += worldsAway * getWidth(destProj.getExtent());\n }\n return transformed;\n };\n}\n\n/**\n * Add transforms to and from EPSG:4326 and EPSG:3857. This function is called\n * by when this module is executed and should only need to be called again after\n * `clearAllProjections()` is called (e.g. in tests).\n */\nexport function addCommon() {\n // Add transformations that don't alter coordinates to convert within set of\n // projections with equal meaning.\n addEquivalentProjections(EPSG3857_PROJECTIONS);\n addEquivalentProjections(EPSG4326_PROJECTIONS);\n // Add transformations to convert EPSG:4326 like coordinates to EPSG:3857 like\n // coordinates and back.\n addEquivalentTransforms(\n EPSG4326_PROJECTIONS,\n EPSG3857_PROJECTIONS,\n fromEPSG4326,\n toEPSG4326\n );\n}\n\naddCommon();\n","/**\n * @module ol/centerconstraint\n */\nimport {clamp} from './math.js';\n\n/**\n * @typedef {function((import(\"./coordinate.js\").Coordinate|undefined), number, import(\"./size.js\").Size, boolean=, Array=): (import(\"./coordinate.js\").Coordinate|undefined)} Type\n */\n\n/**\n * @param {import(\"./extent.js\").Extent} extent Extent.\n * @param {boolean} onlyCenter If true, the constraint will only apply to the view center.\n * @param {boolean} smooth If true, the view will be able to go slightly out of the given extent\n * (only during interaction and animation).\n * @return {Type} The constraint.\n */\nexport function createExtent(extent, onlyCenter, smooth) {\n return (\n /**\n * @param {import(\"./coordinate.js\").Coordinate|undefined} center Center.\n * @param {number|undefined} resolution Resolution.\n * @param {import(\"./size.js\").Size} size Viewport size; unused if `onlyCenter` was specified.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @param {Array} [centerShift] Shift between map center and viewport center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\n function (center, resolution, size, isMoving, centerShift) {\n if (!center) {\n return undefined;\n }\n if (!resolution && !onlyCenter) {\n return center;\n }\n const viewWidth = onlyCenter ? 0 : size[0] * resolution;\n const viewHeight = onlyCenter ? 0 : size[1] * resolution;\n const shiftX = centerShift ? centerShift[0] : 0;\n const shiftY = centerShift ? centerShift[1] : 0;\n let minX = extent[0] + viewWidth / 2 + shiftX;\n let maxX = extent[2] - viewWidth / 2 + shiftX;\n let minY = extent[1] + viewHeight / 2 + shiftY;\n let maxY = extent[3] - viewHeight / 2 + shiftY;\n\n // note: when zooming out of bounds, min and max values for x and y may\n // end up inverted (min > max); this has to be accounted for\n if (minX > maxX) {\n minX = (maxX + minX) / 2;\n maxX = minX;\n }\n if (minY > maxY) {\n minY = (maxY + minY) / 2;\n maxY = minY;\n }\n\n let x = clamp(center[0], minX, maxX);\n let y = clamp(center[1], minY, maxY);\n\n // during an interaction, allow some overscroll\n if (isMoving && smooth && resolution) {\n const ratio = 30 * resolution;\n x +=\n -ratio * Math.log(1 + Math.max(0, minX - center[0]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[0] - maxX) / ratio);\n y +=\n -ratio * Math.log(1 + Math.max(0, minY - center[1]) / ratio) +\n ratio * Math.log(1 + Math.max(0, center[1] - maxY) / ratio);\n }\n\n return [x, y];\n }\n );\n}\n\n/**\n * @param {import(\"./coordinate.js\").Coordinate} [center] Center.\n * @return {import(\"./coordinate.js\").Coordinate|undefined} Center.\n */\nexport function none(center) {\n return center;\n}\n","/**\n * @module ol/resolutionconstraint\n */\nimport {clamp} from './math.js';\nimport {getHeight, getWidth} from './extent.js';\nimport {linearFindNearest} from './array.js';\n\n/**\n * @typedef {function((number|undefined), number, import(\"./size.js\").Size, boolean=): (number|undefined)} Type\n */\n\n/**\n * Returns a modified resolution taking into account the viewport size and maximum\n * allowed extent.\n * @param {number} resolution Resolution\n * @param {import(\"./extent.js\").Extent} maxExtent Maximum allowed extent.\n * @param {import(\"./size.js\").Size} viewportSize Viewport size.\n * @param {boolean} showFullExtent Whether to show the full extent.\n * @return {number} Capped resolution.\n */\nfunction getViewportClampedResolution(\n resolution,\n maxExtent,\n viewportSize,\n showFullExtent\n) {\n const xResolution = getWidth(maxExtent) / viewportSize[0];\n const yResolution = getHeight(maxExtent) / viewportSize[1];\n\n if (showFullExtent) {\n return Math.min(resolution, Math.max(xResolution, yResolution));\n }\n return Math.min(resolution, Math.min(xResolution, yResolution));\n}\n\n/**\n * Returns a modified resolution to be between maxResolution and minResolution while\n * still allowing the value to be slightly out of bounds.\n * Note: the computation is based on the logarithm function (ln):\n * - at 1, ln(x) is 0\n * - above 1, ln(x) keeps increasing but at a much slower pace than x\n * The final result is clamped to prevent getting too far away from bounds.\n * @param {number} resolution Resolution.\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @return {number} Smoothed resolution.\n */\nfunction getSmoothClampedResolution(resolution, maxResolution, minResolution) {\n let result = Math.min(resolution, maxResolution);\n const ratio = 50;\n\n result *=\n Math.log(1 + ratio * Math.max(0, resolution / maxResolution - 1)) / ratio +\n 1;\n if (minResolution) {\n result = Math.max(result, minResolution);\n result /=\n Math.log(1 + ratio * Math.max(0, minResolution / resolution - 1)) /\n ratio +\n 1;\n }\n return clamp(result, minResolution / 2, maxResolution * 2);\n}\n\n/**\n * @param {Array} resolutions Resolutions.\n * @param {boolean} [smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [maxExtent] Maximum allowed extent.\n * @param {boolean} [showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToResolutions(\n resolutions,\n smooth,\n maxExtent,\n showFullExtent\n) {\n smooth = smooth !== undefined ? smooth : true;\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, isMoving) {\n if (resolution !== undefined) {\n const maxResolution = resolutions[0];\n const minResolution = resolutions[resolutions.length - 1];\n const cappedMaxRes = maxExtent\n ? getViewportClampedResolution(\n maxResolution,\n maxExtent,\n size,\n showFullExtent\n )\n : maxResolution;\n\n // during interacting or animating, allow intermediary values\n if (isMoving) {\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(\n resolution,\n cappedMaxRes,\n minResolution\n );\n }\n\n const capped = Math.min(cappedMaxRes, resolution);\n const z = Math.floor(linearFindNearest(resolutions, capped, direction));\n if (resolutions[z] > cappedMaxRes && z < resolutions.length - 1) {\n return resolutions[z + 1];\n }\n return resolutions[z];\n }\n return undefined;\n }\n );\n}\n\n/**\n * @param {number} power Power.\n * @param {number} maxResolution Maximum resolution.\n * @param {number} [minResolution] Minimum resolution.\n * @param {boolean} [smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [maxExtent] Maximum allowed extent.\n * @param {boolean} [showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createSnapToPower(\n power,\n maxResolution,\n minResolution,\n smooth,\n maxExtent,\n showFullExtent\n) {\n smooth = smooth !== undefined ? smooth : true;\n minResolution = minResolution !== undefined ? minResolution : 0;\n\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, isMoving) {\n if (resolution !== undefined) {\n const cappedMaxRes = maxExtent\n ? getViewportClampedResolution(\n maxResolution,\n maxExtent,\n size,\n showFullExtent\n )\n : maxResolution;\n\n // during interacting or animating, allow intermediary values\n if (isMoving) {\n if (!smooth) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(\n resolution,\n cappedMaxRes,\n minResolution\n );\n }\n\n const tolerance = 1e-9;\n const minZoomLevel = Math.ceil(\n Math.log(maxResolution / cappedMaxRes) / Math.log(power) - tolerance\n );\n const offset = -direction * (0.5 - tolerance) + 0.5;\n const capped = Math.min(cappedMaxRes, resolution);\n const cappedZoomLevel = Math.floor(\n Math.log(maxResolution / capped) / Math.log(power) + offset\n );\n const zoomLevel = Math.max(minZoomLevel, cappedZoomLevel);\n const newResolution = maxResolution / Math.pow(power, zoomLevel);\n return clamp(newResolution, minResolution, cappedMaxRes);\n }\n return undefined;\n }\n );\n}\n\n/**\n * @param {number} maxResolution Max resolution.\n * @param {number} minResolution Min resolution.\n * @param {boolean} [smooth] If true, the view will be able to slightly exceed resolution limits. Default: true.\n * @param {import(\"./extent.js\").Extent} [maxExtent] Maximum allowed extent.\n * @param {boolean} [showFullExtent] If true, allows us to show the full extent. Default: false.\n * @return {Type} Zoom function.\n */\nexport function createMinMaxResolution(\n maxResolution,\n minResolution,\n smooth,\n maxExtent,\n showFullExtent\n) {\n smooth = smooth !== undefined ? smooth : true;\n\n return (\n /**\n * @param {number|undefined} resolution Resolution.\n * @param {number} direction Direction.\n * @param {import(\"./size.js\").Size} size Viewport size.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Resolution.\n */\n function (resolution, direction, size, isMoving) {\n if (resolution !== undefined) {\n const cappedMaxRes = maxExtent\n ? getViewportClampedResolution(\n maxResolution,\n maxExtent,\n size,\n showFullExtent\n )\n : maxResolution;\n\n if (!smooth || !isMoving) {\n return clamp(resolution, minResolution, cappedMaxRes);\n }\n return getSmoothClampedResolution(\n resolution,\n cappedMaxRes,\n minResolution\n );\n }\n return undefined;\n }\n );\n}\n","/**\n * @module ol/rotationconstraint\n */\nimport {toRadians} from './math.js';\n\n/**\n * @typedef {function((number|undefined), boolean=): (number|undefined)} Type\n */\n\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function disable(rotation) {\n if (rotation !== undefined) {\n return 0;\n }\n return undefined;\n}\n\n/**\n * @param {number|undefined} rotation Rotation.\n * @return {number|undefined} Rotation.\n */\nexport function none(rotation) {\n if (rotation !== undefined) {\n return rotation;\n }\n return undefined;\n}\n\n/**\n * @param {number} n N.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToN(n) {\n const theta = (2 * Math.PI) / n;\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, isMoving) {\n if (isMoving) {\n return rotation;\n }\n\n if (rotation !== undefined) {\n rotation = Math.floor(rotation / theta + 0.5) * theta;\n return rotation;\n }\n return undefined;\n }\n );\n}\n\n/**\n * @param {number} [tolerance] Tolerance.\n * @return {Type} Rotation constraint.\n */\nexport function createSnapToZero(tolerance) {\n tolerance = tolerance || toRadians(5);\n return (\n /**\n * @param {number|undefined} rotation Rotation.\n * @param {boolean} [isMoving] True if an interaction or animation is in progress.\n * @return {number|undefined} Rotation.\n */\n function (rotation, isMoving) {\n if (isMoving) {\n return rotation;\n }\n\n if (rotation !== undefined) {\n if (Math.abs(rotation) <= tolerance) {\n return 0;\n }\n return rotation;\n }\n return undefined;\n }\n );\n}\n","/**\n * @module ol/easing\n */\n\n/**\n * Start slow and speed up.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeIn(t) {\n return Math.pow(t, 3);\n}\n\n/**\n * Start fast and slow down.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function easeOut(t) {\n return 1 - easeIn(1 - t);\n}\n\n/**\n * Start slow, speed up, and then slow down again.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function inAndOut(t) {\n return 3 * t * t - 2 * t * t * t;\n}\n\n/**\n * Maintain a constant speed over time.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function linear(t) {\n return t;\n}\n\n/**\n * Start slow, speed up, and at the very end slow down again. This has the\n * same general behavior as {@link module:ol/easing.inAndOut}, but the final\n * slowdown is delayed.\n * @param {number} t Input between 0 and 1.\n * @return {number} Output between 0 and 1.\n * @api\n */\nexport function upAndDown(t) {\n if (t < 0.5) {\n return inAndOut(2 * t);\n }\n return 1 - inAndOut(2 * (t - 0.5));\n}\n","/**\n * @module ol/has\n */\n\nconst ua =\n typeof navigator !== 'undefined' && typeof navigator.userAgent !== 'undefined'\n ? navigator.userAgent.toLowerCase()\n : '';\n\n/**\n * User agent string says we are dealing with Firefox as browser.\n * @type {boolean}\n */\nexport const FIREFOX = ua.includes('firefox');\n\n/**\n * User agent string says we are dealing with Safari as browser.\n * @type {boolean}\n */\nexport const SAFARI = ua.includes('safari') && !ua.includes('chrom');\n\n/**\n * https://bugs.webkit.org/show_bug.cgi?id=237906\n * @type {boolean}\n */\nexport const SAFARI_BUG_237906 =\n SAFARI &&\n (ua.includes('version/15.4') ||\n /cpu (os|iphone os) 15_4 like mac os x/.test(ua));\n\n/**\n * User agent string says we are dealing with a WebKit engine.\n * @type {boolean}\n */\nexport const WEBKIT = ua.includes('webkit') && !ua.includes('edge');\n\n/**\n * User agent string says we are dealing with a Mac as platform.\n * @type {boolean}\n */\nexport const MAC = ua.includes('macintosh');\n\n/**\n * The ratio between physical pixels and device-independent pixels\n * (dips) on the device (`window.devicePixelRatio`).\n * @const\n * @type {number}\n * @api\n */\nexport const DEVICE_PIXEL_RATIO =\n typeof devicePixelRatio !== 'undefined' ? devicePixelRatio : 1;\n\n/**\n * The execution context is a worker with OffscreenCanvas available.\n * @const\n * @type {boolean}\n */\nexport const WORKER_OFFSCREEN_CANVAS =\n typeof WorkerGlobalScope !== 'undefined' &&\n typeof OffscreenCanvas !== 'undefined' &&\n self instanceof WorkerGlobalScope; //eslint-disable-line\n\n/**\n * Image.prototype.decode() is supported.\n * @type {boolean}\n */\nexport const IMAGE_DECODE =\n typeof Image !== 'undefined' && Image.prototype.decode;\n\n/**\n * createImageBitmap() is supported.\n * @type {boolean}\n */\nexport const CREATE_IMAGE_BITMAP = typeof createImageBitmap === 'function';\n\n/**\n * @type {boolean}\n */\nexport const PASSIVE_EVENT_LISTENERS = (function () {\n let passive = false;\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passive = true;\n },\n });\n\n window.addEventListener('_', null, options);\n window.removeEventListener('_', null, options);\n } catch (error) {\n // passive not supported\n }\n return passive;\n})();\n","/**\n * @module ol/transform\n */\nimport {WORKER_OFFSCREEN_CANVAS} from './has.js';\nimport {assert} from './asserts.js';\n\n/**\n * An array representing an affine 2d transformation for use with\n * {@link module:ol/transform} functions. The array has 6 elements.\n * @typedef {!Array} Transform\n * @api\n */\n\n/**\n * Collection of affine 2d transformation functions. The functions work on an\n * array of 6 elements. The element order is compatible with the [SVGMatrix\n * interface](https://developer.mozilla.org/en-US/docs/Web/API/SVGMatrix) and is\n * a subset (elements a to f) of a 3×3 matrix:\n * ```\n * [ a c e ]\n * [ b d f ]\n * [ 0 0 1 ]\n * ```\n */\n\n/**\n * @private\n * @type {Transform}\n */\nconst tmp_ = new Array(6);\n\n/**\n * Create an identity transform.\n * @return {!Transform} Identity transform.\n */\nexport function create() {\n return [1, 0, 0, 1, 0, 0];\n}\n\n/**\n * Resets the given transform to an identity transform.\n * @param {!Transform} transform Transform.\n * @return {!Transform} Transform.\n */\nexport function reset(transform) {\n return set(transform, 1, 0, 0, 1, 0, 0);\n}\n\n/**\n * Multiply the underlying matrices of two transforms and return the result in\n * the first transform.\n * @param {!Transform} transform1 Transform parameters of matrix 1.\n * @param {!Transform} transform2 Transform parameters of matrix 2.\n * @return {!Transform} transform1 multiplied with transform2.\n */\nexport function multiply(transform1, transform2) {\n const a1 = transform1[0];\n const b1 = transform1[1];\n const c1 = transform1[2];\n const d1 = transform1[3];\n const e1 = transform1[4];\n const f1 = transform1[5];\n const a2 = transform2[0];\n const b2 = transform2[1];\n const c2 = transform2[2];\n const d2 = transform2[3];\n const e2 = transform2[4];\n const f2 = transform2[5];\n\n transform1[0] = a1 * a2 + c1 * b2;\n transform1[1] = b1 * a2 + d1 * b2;\n transform1[2] = a1 * c2 + c1 * d2;\n transform1[3] = b1 * c2 + d1 * d2;\n transform1[4] = a1 * e2 + c1 * f2 + e1;\n transform1[5] = b1 * e2 + d1 * f2 + f1;\n\n return transform1;\n}\n\n/**\n * Set the transform components a-f on a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} a The a component of the transform.\n * @param {number} b The b component of the transform.\n * @param {number} c The c component of the transform.\n * @param {number} d The d component of the transform.\n * @param {number} e The e component of the transform.\n * @param {number} f The f component of the transform.\n * @return {!Transform} Matrix with transform applied.\n */\nexport function set(transform, a, b, c, d, e, f) {\n transform[0] = a;\n transform[1] = b;\n transform[2] = c;\n transform[3] = d;\n transform[4] = e;\n transform[5] = f;\n return transform;\n}\n\n/**\n * Set transform on one matrix from another matrix.\n * @param {!Transform} transform1 Matrix to set transform to.\n * @param {!Transform} transform2 Matrix to set transform from.\n * @return {!Transform} transform1 with transform from transform2 applied.\n */\nexport function setFromArray(transform1, transform2) {\n transform1[0] = transform2[0];\n transform1[1] = transform2[1];\n transform1[2] = transform2[2];\n transform1[3] = transform2[3];\n transform1[4] = transform2[4];\n transform1[5] = transform2[5];\n return transform1;\n}\n\n/**\n * Transforms the given coordinate with the given transform returning the\n * resulting, transformed coordinate. The coordinate will be modified in-place.\n *\n * @param {Transform} transform The transformation.\n * @param {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} coordinate The coordinate to transform.\n * @return {import(\"./coordinate.js\").Coordinate|import(\"./pixel.js\").Pixel} return coordinate so that operations can be\n * chained together.\n */\nexport function apply(transform, coordinate) {\n const x = coordinate[0];\n const y = coordinate[1];\n coordinate[0] = transform[0] * x + transform[2] * y + transform[4];\n coordinate[1] = transform[1] * x + transform[3] * y + transform[5];\n return coordinate;\n}\n\n/**\n * Applies rotation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} angle Angle in radians.\n * @return {!Transform} The rotated transform.\n */\nexport function rotate(transform, angle) {\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n return multiply(transform, set(tmp_, cos, sin, -sin, cos, 0, 0));\n}\n\n/**\n * Applies scale to a given transform.\n * @param {!Transform} transform Transform.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scaled transform.\n */\nexport function scale(transform, x, y) {\n return multiply(transform, set(tmp_, x, 0, 0, y, 0, 0));\n}\n\n/**\n * Creates a scale transform.\n * @param {!Transform} target Transform to overwrite.\n * @param {number} x Scale factor x.\n * @param {number} y Scale factor y.\n * @return {!Transform} The scale transform.\n */\nexport function makeScale(target, x, y) {\n return set(target, x, 0, 0, y, 0, 0);\n}\n\n/**\n * Applies translation to the given transform.\n * @param {!Transform} transform Transform.\n * @param {number} dx Translation x.\n * @param {number} dy Translation y.\n * @return {!Transform} The translated transform.\n */\nexport function translate(transform, dx, dy) {\n return multiply(transform, set(tmp_, 1, 0, 0, 1, dx, dy));\n}\n\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative).\n * @param {!Transform} transform The transform (will be modified in place).\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {!Transform} The composite transform.\n */\nexport function compose(transform, dx1, dy1, sx, sy, angle, dx2, dy2) {\n const sin = Math.sin(angle);\n const cos = Math.cos(angle);\n transform[0] = sx * cos;\n transform[1] = sy * sin;\n transform[2] = -sx * sin;\n transform[3] = sy * cos;\n transform[4] = dx2 * sx * cos - dy2 * sx * sin + dx1;\n transform[5] = dx2 * sy * sin + dy2 * sy * cos + dy1;\n return transform;\n}\n\n/**\n * Creates a composite transform given an initial translation, scale, rotation, and\n * final translation (in that order only, not commutative). The resulting transform\n * string can be applied as `transform` property of an HTMLElement's style.\n * @param {number} dx1 Initial translation x.\n * @param {number} dy1 Initial translation y.\n * @param {number} sx Scale factor x.\n * @param {number} sy Scale factor y.\n * @param {number} angle Rotation (in counter-clockwise radians).\n * @param {number} dx2 Final translation x.\n * @param {number} dy2 Final translation y.\n * @return {string} The composite css transform.\n * @api\n */\nexport function composeCssTransform(dx1, dy1, sx, sy, angle, dx2, dy2) {\n return toString(compose(create(), dx1, dy1, sx, sy, angle, dx2, dy2));\n}\n\n/**\n * Invert the given transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (source) transform.\n */\nexport function invert(source) {\n return makeInverse(source, source);\n}\n\n/**\n * Invert the given transform.\n * @param {!Transform} target Transform to be set as the inverse of\n * the source transform.\n * @param {!Transform} source The source transform to invert.\n * @return {!Transform} The inverted (target) transform.\n */\nexport function makeInverse(target, source) {\n const det = determinant(source);\n assert(det !== 0, 'Transformation matrix cannot be inverted');\n\n const a = source[0];\n const b = source[1];\n const c = source[2];\n const d = source[3];\n const e = source[4];\n const f = source[5];\n\n target[0] = d / det;\n target[1] = -b / det;\n target[2] = -c / det;\n target[3] = a / det;\n target[4] = (c * f - d * e) / det;\n target[5] = -(a * f - b * e) / det;\n\n return target;\n}\n\n/**\n * Returns the determinant of the given matrix.\n * @param {!Transform} mat Matrix.\n * @return {number} Determinant.\n */\nexport function determinant(mat) {\n return mat[0] * mat[3] - mat[1] * mat[2];\n}\n\n/**\n * @type {HTMLElement}\n * @private\n */\nlet transformStringDiv;\n\n/**\n * A rounded string version of the transform. This can be used\n * for CSS transforms.\n * @param {!Transform} mat Matrix.\n * @return {string} The transform as a string.\n */\nexport function toString(mat) {\n const transformString = 'matrix(' + mat.join(', ') + ')';\n if (WORKER_OFFSCREEN_CANVAS) {\n return transformString;\n }\n const node =\n transformStringDiv || (transformStringDiv = document.createElement('div'));\n node.style.transform = transformString;\n return node.style.transform;\n}\n","/**\n * @module ol/geom/flat/transform\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {import(\"../../transform.js\").Transform} transform Transform.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function transform2D(\n flatCoordinates,\n offset,\n end,\n stride,\n transform,\n dest\n) {\n dest = dest ? dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const x = flatCoordinates[j];\n const y = flatCoordinates[j + 1];\n dest[i++] = transform[0] * x + transform[2] * y + transform[4];\n dest[i++] = transform[1] * x + transform[3] * y + transform[5];\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} angle Angle.\n * @param {Array} anchor Rotation anchor point.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function rotate(\n flatCoordinates,\n offset,\n end,\n stride,\n angle,\n anchor,\n dest\n) {\n dest = dest ? dest : [];\n const cos = Math.cos(angle);\n const sin = Math.sin(angle);\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + deltaX * cos - deltaY * sin;\n dest[i++] = anchorY + deltaX * sin + deltaY * cos;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * Scale the coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} sx Scale factor in the x-direction.\n * @param {number} sy Scale factor in the y-direction.\n * @param {Array} anchor Scale anchor point.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function scale(\n flatCoordinates,\n offset,\n end,\n stride,\n sx,\n sy,\n anchor,\n dest\n) {\n dest = dest ? dest : [];\n const anchorX = anchor[0];\n const anchorY = anchor[1];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n const deltaX = flatCoordinates[j] - anchorX;\n const deltaY = flatCoordinates[j + 1] - anchorY;\n dest[i++] = anchorX + sx * deltaX;\n dest[i++] = anchorY + sy * deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed coordinates.\n */\nexport function translate(\n flatCoordinates,\n offset,\n end,\n stride,\n deltaX,\n deltaY,\n dest\n) {\n dest = dest ? dest : [];\n let i = 0;\n for (let j = offset; j < end; j += stride) {\n dest[i++] = flatCoordinates[j] + deltaX;\n dest[i++] = flatCoordinates[j + 1] + deltaY;\n for (let k = j + 2; k < j + stride; ++k) {\n dest[i++] = flatCoordinates[k];\n }\n }\n if (dest && dest.length != i) {\n dest.length = i;\n }\n return dest;\n}\n","/**\n * @module ol/geom/Geometry\n */\nimport BaseObject from '../Object.js';\nimport {abstract} from '../util.js';\nimport {\n compose as composeTransform,\n create as createTransform,\n} from '../transform.js';\nimport {\n createEmpty,\n createOrUpdateEmpty,\n getHeight,\n returnOrUpdate,\n} from '../extent.js';\nimport {get as getProjection, getTransform} from '../proj.js';\nimport {memoizeOne} from '../functions.js';\nimport {transform2D} from './flat/transform.js';\n\n/**\n * @typedef {'XY' | 'XYZ' | 'XYM' | 'XYZM'} GeometryLayout\n * The coordinate layout for geometries, indicating whether a 3rd or 4th z ('Z')\n * or measure ('M') coordinate is available.\n */\n\n/**\n * @typedef {'Point' | 'LineString' | 'LinearRing' | 'Polygon' | 'MultiPoint' | 'MultiLineString' | 'MultiPolygon' | 'GeometryCollection' | 'Circle'} Type\n * The geometry type. One of `'Point'`, `'LineString'`, `'LinearRing'`,\n * `'Polygon'`, `'MultiPoint'`, `'MultiLineString'`, `'MultiPolygon'`,\n * `'GeometryCollection'`, or `'Circle'`.\n */\n\n/**\n * @type {import(\"../transform.js\").Transform}\n */\nconst tmpTransform = createTransform();\n\n/**\n * @classdesc\n * Abstract base class; normally only used for creating subclasses and not\n * instantiated in apps.\n * Base class for vector geometries.\n *\n * To get notified of changes to the geometry, register a listener for the\n * generic `change` event on your geometry instance.\n *\n * @abstract\n * @api\n */\nclass Geometry extends BaseObject {\n constructor() {\n super();\n\n /**\n * @private\n * @type {import(\"../extent.js\").Extent}\n */\n this.extent_ = createEmpty();\n\n /**\n * @private\n * @type {number}\n */\n this.extentRevision_ = -1;\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n\n /**\n * @protected\n * @type {number}\n */\n this.simplifiedGeometryRevision = 0;\n\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} revision The geometry revision.\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n this.simplifyTransformedInternal = memoizeOne(function (\n revision,\n squaredTolerance,\n transform\n ) {\n if (!transform) {\n return this.getSimplifiedGeometry(squaredTolerance);\n }\n const clone = this.clone();\n clone.applyTransform(transform);\n return clone.getSimplifiedGeometry(squaredTolerance);\n });\n }\n\n /**\n * Get a transformed and simplified version of the geometry.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @param {import(\"../proj.js\").TransformFunction} [transform] Optional transform function.\n * @return {Geometry} Simplified geometry.\n */\n simplifyTransformed(squaredTolerance, transform) {\n return this.simplifyTransformedInternal(\n this.getRevision(),\n squaredTolerance,\n transform\n );\n }\n\n /**\n * Make a complete copy of the geometry.\n * @abstract\n * @return {!Geometry} Clone.\n */\n clone() {\n return abstract();\n }\n\n /**\n * @abstract\n * @param {number} x X.\n * @param {number} y Y.\n * @param {import(\"../coordinate.js\").Coordinate} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @return {number} Minimum squared distance.\n */\n closestPointXY(x, y, closestPoint, minSquaredDistance) {\n return abstract();\n }\n\n /**\n * @param {number} x X.\n * @param {number} y Y.\n * @return {boolean} Contains (x, y).\n */\n containsXY(x, y) {\n const coord = this.getClosestPoint([x, y]);\n return coord[0] === x && coord[1] === y;\n }\n\n /**\n * Return the closest point of the geometry to the passed point as\n * {@link module:ol/coordinate~Coordinate coordinate}.\n * @param {import(\"../coordinate.js\").Coordinate} point Point.\n * @param {import(\"../coordinate.js\").Coordinate} [closestPoint] Closest point.\n * @return {import(\"../coordinate.js\").Coordinate} Closest point.\n * @api\n */\n getClosestPoint(point, closestPoint) {\n closestPoint = closestPoint ? closestPoint : [NaN, NaN];\n this.closestPointXY(point[0], point[1], closestPoint, Infinity);\n return closestPoint;\n }\n\n /**\n * Returns true if this geometry includes the specified coordinate. If the\n * coordinate is on the boundary of the geometry, returns false.\n * @param {import(\"../coordinate.js\").Coordinate} coordinate Coordinate.\n * @return {boolean} Contains coordinate.\n * @api\n */\n intersectsCoordinate(coordinate) {\n return this.containsXY(coordinate[0], coordinate[1]);\n }\n\n /**\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return abstract();\n }\n\n /**\n * Get the extent of the geometry.\n * @param {import(\"../extent.js\").Extent} [extent] Extent.\n * @return {import(\"../extent.js\").Extent} extent Extent.\n * @api\n */\n getExtent(extent) {\n if (this.extentRevision_ != this.getRevision()) {\n const extent = this.computeExtent(this.extent_);\n if (isNaN(extent[0]) || isNaN(extent[1])) {\n createOrUpdateEmpty(extent);\n }\n this.extentRevision_ = this.getRevision();\n }\n return returnOrUpdate(this.extent_, extent);\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} angle Rotation angle in radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n abstract();\n }\n\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @abstract\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n scale(sx, sy, anchor) {\n abstract();\n }\n\n /**\n * Create a simplified version of this geometry. For linestrings, this uses\n * the [Douglas Peucker](https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm)\n * algorithm. For polygons, a quantization-based\n * simplification is used to preserve topology.\n * @param {number} tolerance The tolerance distance for simplification.\n * @return {Geometry} A new, simplified version of the original geometry.\n * @api\n */\n simplify(tolerance) {\n return this.getSimplifiedGeometry(tolerance * tolerance);\n }\n\n /**\n * Create a simplified version of this geometry using the Douglas Peucker\n * algorithm.\n * See https://en.wikipedia.org/wiki/Ramer-Douglas-Peucker_algorithm.\n * @abstract\n * @param {number} squaredTolerance Squared tolerance.\n * @return {Geometry} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n return abstract();\n }\n\n /**\n * Get the type of this geometry.\n * @abstract\n * @return {Type} Geometry type.\n */\n getType() {\n return abstract();\n }\n\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @abstract\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n */\n applyTransform(transformFn) {\n abstract();\n }\n\n /**\n * Test if the geometry and the passed extent intersect.\n * @abstract\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @return {boolean} `true` if the geometry and the extent intersect.\n */\n intersectsExtent(extent) {\n return abstract();\n }\n\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @abstract\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n translate(deltaX, deltaY) {\n abstract();\n }\n\n /**\n * Transform each coordinate of the geometry from one coordinate reference\n * system to another. The geometry is modified in place.\n * For example, a line will be transformed to a line and a circle to a circle.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n *\n * @param {import(\"../proj.js\").ProjectionLike} source The current projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @param {import(\"../proj.js\").ProjectionLike} destination The desired projection. Can be a\n * string identifier or a {@link module:ol/proj/Projection~Projection} object.\n * @return {Geometry} This geometry. Note that original geometry is\n * modified in place.\n * @api\n */\n transform(source, destination) {\n /** @type {import(\"../proj/Projection.js\").default} */\n const sourceProj = getProjection(source);\n const transformFn =\n sourceProj.getUnits() == 'tile-pixels'\n ? function (inCoordinates, outCoordinates, stride) {\n const pixelExtent = sourceProj.getExtent();\n const projectedExtent = sourceProj.getWorldExtent();\n const scale = getHeight(projectedExtent) / getHeight(pixelExtent);\n composeTransform(\n tmpTransform,\n projectedExtent[0],\n projectedExtent[3],\n scale,\n -scale,\n 0,\n 0,\n 0\n );\n transform2D(\n inCoordinates,\n 0,\n inCoordinates.length,\n stride,\n tmpTransform,\n outCoordinates\n );\n return getTransform(sourceProj, destination)(\n inCoordinates,\n outCoordinates,\n stride\n );\n }\n : getTransform(sourceProj, destination);\n this.applyTransform(transformFn);\n return this;\n }\n}\n\nexport default Geometry;\n","/**\n * @module ol/geom/SimpleGeometry\n */\nimport Geometry from './Geometry.js';\nimport {abstract} from '../util.js';\nimport {createOrUpdateFromFlatCoordinates, getCenter} from '../extent.js';\nimport {rotate, scale, transform2D, translate} from './flat/transform.js';\n\n/**\n * @classdesc\n * Abstract base class; only used for creating subclasses; do not instantiate\n * in apps, as cannot be rendered.\n *\n * @abstract\n * @api\n */\nclass SimpleGeometry extends Geometry {\n constructor() {\n super();\n\n /**\n * @protected\n * @type {import(\"./Geometry.js\").GeometryLayout}\n */\n this.layout = 'XY';\n\n /**\n * @protected\n * @type {number}\n */\n this.stride = 2;\n\n /**\n * @protected\n * @type {Array}\n */\n this.flatCoordinates = null;\n }\n\n /**\n * @param {import(\"../extent.js\").Extent} extent Extent.\n * @protected\n * @return {import(\"../extent.js\").Extent} extent Extent.\n */\n computeExtent(extent) {\n return createOrUpdateFromFlatCoordinates(\n this.flatCoordinates,\n 0,\n this.flatCoordinates.length,\n this.stride,\n extent\n );\n }\n\n /**\n * @abstract\n * @return {Array<*> | null} Coordinates.\n */\n getCoordinates() {\n return abstract();\n }\n\n /**\n * Return the first coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} First coordinate.\n * @api\n */\n getFirstCoordinate() {\n return this.flatCoordinates.slice(0, this.stride);\n }\n\n /**\n * @return {Array} Flat coordinates.\n */\n getFlatCoordinates() {\n return this.flatCoordinates;\n }\n\n /**\n * Return the last coordinate of the geometry.\n * @return {import(\"../coordinate.js\").Coordinate} Last point.\n * @api\n */\n getLastCoordinate() {\n return this.flatCoordinates.slice(\n this.flatCoordinates.length - this.stride\n );\n }\n\n /**\n * Return the {@link import(\"./Geometry.js\").GeometryLayout layout} of the geometry.\n * @return {import(\"./Geometry.js\").GeometryLayout} Layout.\n * @api\n */\n getLayout() {\n return this.layout;\n }\n\n /**\n * Create a simplified version of this geometry using the Douglas Peucker algorithm.\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n */\n getSimplifiedGeometry(squaredTolerance) {\n if (this.simplifiedGeometryRevision !== this.getRevision()) {\n this.simplifiedGeometryMaxMinSquaredTolerance = 0;\n this.simplifiedGeometryRevision = this.getRevision();\n }\n // If squaredTolerance is negative or if we know that simplification will not\n // have any effect then just return this.\n if (\n squaredTolerance < 0 ||\n (this.simplifiedGeometryMaxMinSquaredTolerance !== 0 &&\n squaredTolerance <= this.simplifiedGeometryMaxMinSquaredTolerance)\n ) {\n return this;\n }\n\n const simplifiedGeometry =\n this.getSimplifiedGeometryInternal(squaredTolerance);\n const simplifiedFlatCoordinates = simplifiedGeometry.getFlatCoordinates();\n if (simplifiedFlatCoordinates.length < this.flatCoordinates.length) {\n return simplifiedGeometry;\n }\n // Simplification did not actually remove any coordinates. We now know\n // that any calls to getSimplifiedGeometry with a squaredTolerance less\n // than or equal to the current squaredTolerance will also not have any\n // effect. This allows us to short circuit simplification (saving CPU\n // cycles) and prevents the cache of simplified geometries from filling\n // up with useless identical copies of this geometry (saving memory).\n this.simplifiedGeometryMaxMinSquaredTolerance = squaredTolerance;\n return this;\n }\n\n /**\n * @param {number} squaredTolerance Squared tolerance.\n * @return {SimpleGeometry} Simplified geometry.\n * @protected\n */\n getSimplifiedGeometryInternal(squaredTolerance) {\n return this;\n }\n\n /**\n * @return {number} Stride.\n */\n getStride() {\n return this.stride;\n }\n\n /**\n * @param {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n * @param {Array} flatCoordinates Flat coordinates.\n */\n setFlatCoordinates(layout, flatCoordinates) {\n this.stride = getStrideForLayout(layout);\n this.layout = layout;\n this.flatCoordinates = flatCoordinates;\n }\n\n /**\n * @abstract\n * @param {!Array<*>} coordinates Coordinates.\n * @param {import(\"./Geometry.js\").GeometryLayout} [layout] Layout.\n */\n setCoordinates(coordinates, layout) {\n abstract();\n }\n\n /**\n * @param {import(\"./Geometry.js\").GeometryLayout|undefined} layout Layout.\n * @param {Array<*>} coordinates Coordinates.\n * @param {number} nesting Nesting.\n * @protected\n */\n setLayout(layout, coordinates, nesting) {\n /** @type {number} */\n let stride;\n if (layout) {\n stride = getStrideForLayout(layout);\n } else {\n for (let i = 0; i < nesting; ++i) {\n if (coordinates.length === 0) {\n this.layout = 'XY';\n this.stride = 2;\n return;\n }\n coordinates = /** @type {Array} */ (coordinates[0]);\n }\n stride = coordinates.length;\n layout = getLayoutForStride(stride);\n }\n this.layout = layout;\n this.stride = stride;\n }\n\n /**\n * Apply a transform function to the coordinates of the geometry.\n * The geometry is modified in place.\n * If you do not want the geometry modified in place, first `clone()` it and\n * then use this function on the clone.\n * @param {import(\"../proj.js\").TransformFunction} transformFn Transform function.\n * Called with a flat array of geometry coordinates.\n * @api\n */\n applyTransform(transformFn) {\n if (this.flatCoordinates) {\n transformFn(this.flatCoordinates, this.flatCoordinates, this.stride);\n this.changed();\n }\n }\n\n /**\n * Rotate the geometry around a given coordinate. This modifies the geometry\n * coordinates in place.\n * @param {number} angle Rotation angle in counter-clockwise radians.\n * @param {import(\"../coordinate.js\").Coordinate} anchor The rotation center.\n * @api\n */\n rotate(angle, anchor) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n rotate(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n angle,\n anchor,\n flatCoordinates\n );\n this.changed();\n }\n }\n\n /**\n * Scale the geometry (with an optional origin). This modifies the geometry\n * coordinates in place.\n * @param {number} sx The scaling factor in the x-direction.\n * @param {number} [sy] The scaling factor in the y-direction (defaults to sx).\n * @param {import(\"../coordinate.js\").Coordinate} [anchor] The scale origin (defaults to the center\n * of the geometry extent).\n * @api\n */\n scale(sx, sy, anchor) {\n if (sy === undefined) {\n sy = sx;\n }\n if (!anchor) {\n anchor = getCenter(this.getExtent());\n }\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n scale(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n sx,\n sy,\n anchor,\n flatCoordinates\n );\n this.changed();\n }\n }\n\n /**\n * Translate the geometry. This modifies the geometry coordinates in place. If\n * instead you want a new geometry, first `clone()` this geometry.\n * @param {number} deltaX Delta X.\n * @param {number} deltaY Delta Y.\n * @api\n */\n translate(deltaX, deltaY) {\n const flatCoordinates = this.getFlatCoordinates();\n if (flatCoordinates) {\n const stride = this.getStride();\n translate(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n deltaX,\n deltaY,\n flatCoordinates\n );\n this.changed();\n }\n }\n}\n\n/**\n * @param {number} stride Stride.\n * @return {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n */\nfunction getLayoutForStride(stride) {\n let layout;\n if (stride == 2) {\n layout = 'XY';\n } else if (stride == 3) {\n layout = 'XYZ';\n } else if (stride == 4) {\n layout = 'XYZM';\n }\n return /** @type {import(\"./Geometry.js\").GeometryLayout} */ (layout);\n}\n\n/**\n * @param {import(\"./Geometry.js\").GeometryLayout} layout Layout.\n * @return {number} Stride.\n */\nexport function getStrideForLayout(layout) {\n let stride;\n if (layout == 'XY') {\n stride = 2;\n } else if (layout == 'XYZ' || layout == 'XYM') {\n stride = 3;\n } else if (layout == 'XYZM') {\n stride = 4;\n }\n return /** @type {number} */ (stride);\n}\n\n/**\n * @param {SimpleGeometry} simpleGeometry Simple geometry.\n * @param {import(\"../transform.js\").Transform} transform Transform.\n * @param {Array} [dest] Destination.\n * @return {Array} Transformed flat coordinates.\n */\nexport function transformGeom2D(simpleGeometry, transform, dest) {\n const flatCoordinates = simpleGeometry.getFlatCoordinates();\n if (!flatCoordinates) {\n return null;\n }\n const stride = simpleGeometry.getStride();\n return transform2D(\n flatCoordinates,\n 0,\n flatCoordinates.length,\n stride,\n transform,\n dest\n );\n}\n\nexport default SimpleGeometry;\n","/**\n * @module ol/geom/flat/closest\n */\nimport {lerp, squaredDistance as squaredDx} from '../../math.js';\n\n/**\n * Returns the point on the 2D line segment flatCoordinates[offset1] to\n * flatCoordinates[offset2] that is closest to the point (x, y). Extra\n * dimensions are linearly interpolated.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset1 Offset 1.\n * @param {number} offset2 Offset 2.\n * @param {number} stride Stride.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n */\nfunction assignClosest(\n flatCoordinates,\n offset1,\n offset2,\n stride,\n x,\n y,\n closestPoint\n) {\n const x1 = flatCoordinates[offset1];\n const y1 = flatCoordinates[offset1 + 1];\n const dx = flatCoordinates[offset2] - x1;\n const dy = flatCoordinates[offset2 + 1] - y1;\n let offset;\n if (dx === 0 && dy === 0) {\n offset = offset1;\n } else {\n const t = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n if (t > 1) {\n offset = offset2;\n } else if (t > 0) {\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = lerp(\n flatCoordinates[offset1 + i],\n flatCoordinates[offset2 + i],\n t\n );\n }\n closestPoint.length = stride;\n return;\n } else {\n offset = offset1;\n }\n }\n for (let i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n}\n\n/**\n * Return the squared of the largest distance between any pair of consecutive\n * coordinates.\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function maxSquaredDelta(flatCoordinates, offset, end, stride, max) {\n let x1 = flatCoordinates[offset];\n let y1 = flatCoordinates[offset + 1];\n for (offset += stride; offset < end; offset += stride) {\n const x2 = flatCoordinates[offset];\n const y2 = flatCoordinates[offset + 1];\n const squaredDelta = squaredDx(x1, y1, x2, y2);\n if (squaredDelta > max) {\n max = squaredDelta;\n }\n x1 = x2;\n y1 = y2;\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function arrayMaxSquaredDelta(\n flatCoordinates,\n offset,\n ends,\n stride,\n max\n) {\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n max = maxSquaredDelta(flatCoordinates, offset, end, stride, max);\n offset = end;\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} max Max squared delta.\n * @return {number} Max squared delta.\n */\nexport function multiArrayMaxSquaredDelta(\n flatCoordinates,\n offset,\n endss,\n stride,\n max\n) {\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n max = arrayMaxSquaredDelta(flatCoordinates, offset, ends, stride, max);\n offset = ends[ends.length - 1];\n }\n return max;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {number} end End.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestPoint(\n flatCoordinates,\n offset,\n end,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n if (offset == end) {\n return minSquaredDistance;\n }\n let i, squaredDistance;\n if (maxDelta === 0) {\n // All points are identical, so just test the first point.\n squaredDistance = squaredDx(\n x,\n y,\n flatCoordinates[offset],\n flatCoordinates[offset + 1]\n );\n if (squaredDistance < minSquaredDistance) {\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = flatCoordinates[offset + i];\n }\n closestPoint.length = stride;\n return squaredDistance;\n }\n return minSquaredDistance;\n }\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n let index = offset + stride;\n while (index < end) {\n assignClosest(\n flatCoordinates,\n index - stride,\n index,\n stride,\n x,\n y,\n tmpPoint\n );\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n index += stride;\n } else {\n // Skip ahead multiple points, because we know that all the skipped\n // points cannot be any closer than the closest point we have found so\n // far. We know this because we know how close the current point is, how\n // close the closest point we have found so far is, and the maximum\n // distance between consecutive points. For example, if we're currently\n // at distance 10, the best we've found so far is 3, and that the maximum\n // distance between consecutive points is 2, then we'll need to skip at\n // least (10 - 3) / 2 == 3 (rounded down) points to have any chance of\n // finding a closer point. We use Math.max(..., 1) to ensure that we\n // always advance at least one point, to avoid an infinite loop.\n index +=\n stride *\n Math.max(\n ((Math.sqrt(squaredDistance) - Math.sqrt(minSquaredDistance)) /\n maxDelta) |\n 0,\n 1\n );\n }\n }\n if (isRing) {\n // Check the closing segment.\n assignClosest(\n flatCoordinates,\n end - stride,\n offset,\n stride,\n x,\n y,\n tmpPoint\n );\n squaredDistance = squaredDx(x, y, tmpPoint[0], tmpPoint[1]);\n if (squaredDistance < minSquaredDistance) {\n minSquaredDistance = squaredDistance;\n for (i = 0; i < stride; ++i) {\n closestPoint[i] = tmpPoint[i];\n }\n closestPoint.length = stride;\n }\n }\n return minSquaredDistance;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array} ends Ends.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestArrayPoint(\n flatCoordinates,\n offset,\n ends,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n for (let i = 0, ii = ends.length; i < ii; ++i) {\n const end = ends[i];\n minSquaredDistance = assignClosestPoint(\n flatCoordinates,\n offset,\n end,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n );\n offset = end;\n }\n return minSquaredDistance;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array>} endss Endss.\n * @param {number} stride Stride.\n * @param {number} maxDelta Max delta.\n * @param {boolean} isRing Is ring.\n * @param {number} x X.\n * @param {number} y Y.\n * @param {Array} closestPoint Closest point.\n * @param {number} minSquaredDistance Minimum squared distance.\n * @param {Array} [tmpPoint] Temporary point object.\n * @return {number} Minimum squared distance.\n */\nexport function assignClosestMultiArrayPoint(\n flatCoordinates,\n offset,\n endss,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n) {\n tmpPoint = tmpPoint ? tmpPoint : [NaN, NaN];\n for (let i = 0, ii = endss.length; i < ii; ++i) {\n const ends = endss[i];\n minSquaredDistance = assignClosestArrayPoint(\n flatCoordinates,\n offset,\n ends,\n stride,\n maxDelta,\n isRing,\n x,\n y,\n closestPoint,\n minSquaredDistance,\n tmpPoint\n );\n offset = ends[ends.length - 1];\n }\n return minSquaredDistance;\n}\n","/**\n * @module ol/geom/flat/deflate\n */\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {import(\"../../coordinate.js\").Coordinate} coordinate Coordinate.\n * @param {number} stride Stride.\n * @return {number} offset Offset.\n */\nexport function deflateCoordinate(flatCoordinates, offset, coordinate, stride) {\n for (let i = 0, ii = coordinate.length; i < ii; ++i) {\n flatCoordinates[offset++] = coordinate[i];\n }\n return offset;\n}\n\n/**\n * @param {Array} flatCoordinates Flat coordinates.\n * @param {number} offset Offset.\n * @param {Array