shiraha-colors
Version:
Browser script to generate colors for Shiraha.
1 lines • 166 kB
JavaScript
function X(I){return I<0?-1:I===0?0:1}function sg(I,g,C){return (1-C)*I+C*g}function Xg(I,g,C){return C<I?I:C>g?g:C}function $(I,g,C){return C<I?I:C>g?g:C}function Qg(I){return I=I%360,I<0&&(I=I+360),I}function Gg(I,g){let C=I[0]*g[0][0]+I[1]*g[0][1]+I[2]*g[0][2],A=I[0]*g[1][0]+I[1]*g[1][1]+I[2]*g[1][2],o=I[0]*g[2][0]+I[1]*g[2][1]+I[2]*g[2][2];return [C,A,o]}var kg=[[.41233895,.35762064,.18051042],[.2126,.7152,.0722],[.01932141,.11916382,.95034478]],Fg=[[3.2413774792388685,-1.5376652402851851,-.49885366846268053],[-.9691452513005321,1.8758853451067872,.04156585616912061],[.05562093689691305,-.20395524564742123,1.0571799111220335]],zg=[95.047,100,108.883];function lg(I,g,C){return (255<<24|(I&255)<<16|(g&255)<<8|C&255)>>>0}function hg(I){let g=E(I[0]),C=E(I[1]),A=E(I[2]);return lg(g,C,A)}function Jg(I){return I>>24&255}function dg(I){return I>>16&255}function tg(I){return I>>8&255}function ag(I){return I&255}function vg(I,g,C){let A=Fg,o=A[0][0]*I+A[0][1]*g+A[0][2]*C,B=A[1][0]*I+A[1][1]*g+A[1][2]*C,b=A[2][0]*I+A[2][1]*g+A[2][2]*C,c=E(o),l=E(B),d=E(b);return lg(c,l,d)}function Ug(I){let g=O(dg(I)),C=O(tg(I)),A=O(ag(I));return Gg([g,C,A],kg)}function Tg(I){let g=T(I),C=E(g);return lg(C,C,C)}function eg(I){let g=Ug(I)[1];return 116*Hg(g/100)-16}function T(I){return 100*Eg((I+16)/116)}function cg(I){return Hg(I/100)*116-16}function O(I){let g=I/255;return g<=.040449936?g/12.92*100:Math.pow((g+.055)/1.055,2.4)*100}function E(I){let g=I/100,C=0;return g<=.0031308?C=g*12.92:C=1.055*Math.pow(g,1/2.4)-.055,Xg(0,255,Math.round(C*255))}function jg(){return zg}function Yg(I){let g=dg(I),C=tg(I),A=ag(I),o=Jg(I);return {r:g,g:C,b:A,a:o}}function Hg(I){let g=.008856451679035631,C=24389/27;return I>g?Math.pow(I,1/3):(C*I+16)/116}function Eg(I){let g=.008856451679035631,C=24389/27,A=I*I*I;return A>g?A:(116*I-16)/C}var Q=class{static make(g=jg(),C=200/Math.PI*T(50)/100,A=50,o=2,B=!1){let b=g,c=b[0]*.401288+b[1]*.650173+b[2]*-.051461,l=b[0]*-.250268+b[1]*1.204414+b[2]*.045854,d=b[0]*-.002079+b[1]*.048952+b[2]*.953127,t=.8+o/10,y=t>=.9?sg(.59,.69,(t-.9)*10):sg(.525,.59,(t-.8)*10),Z=B?1:t*(1-1/3.6*Math.exp((-C-42)/92));Z=Z>1?1:Z<0?0:Z;let h=t,n=[Z*(100/c)+1-Z,Z*(100/l)+1-Z,Z*(100/d)+1-Z],m=1/(5*C+1),e=m*m*m*m,Y=1-e,M=e*C+.1*Y*Y*Math.cbrt(5*C),L=T(A)/g[1],k=1.48+Math.sqrt(L),H=.725/Math.pow(L,.2),W=H,K=[Math.pow(M*n[0]*c/100,.42),Math.pow(M*n[1]*l/100,.42),Math.pow(M*n[2]*d/100,.42)],u=[400*K[0]/(K[0]+27.13),400*K[1]/(K[1]+27.13),400*K[2]/(K[2]+27.13)],S=(2*u[0]+u[1]+.05*u[2])*H;return new Q(L,S,H,W,y,h,n,M,Math.pow(M,.25),k)}constructor(g,C,A,o,B,b,c,l,d,t){this.n=g,this.aw=C,this.nbb=A,this.ncb=o,this.c=B,this.nc=b,this.rgbD=c,this.fl=l,this.fLRoot=d,this.z=t;}};Q.DEFAULT=Q.make();var p=class{constructor(g,C,A,o,B,b,c,l,d){this.hue=g,this.chroma=C,this.j=A,this.q=o,this.m=B,this.s=b,this.jstar=c,this.astar=l,this.bstar=d;}distance(g){let C=this.jstar-g.jstar,A=this.astar-g.astar,o=this.bstar-g.bstar,B=Math.sqrt(C*C+A*A+o*o);return 1.41*Math.pow(B,.63)}static fromInt(g){return p.fromIntInViewingConditions(g,Q.DEFAULT)}static fromIntInViewingConditions(g,C){let A=(g&16711680)>>16,o=(g&65280)>>8,B=g&255,b=O(A),c=O(o),l=O(B),d=.41233895*b+.35762064*c+.18051042*l,t=.2126*b+.7152*c+.0722*l,y=.01932141*b+.11916382*c+.95034478*l,Z=.401288*d+.650173*t-.051461*y,h=-.250268*d+1.204414*t+.045854*y,n=-.002079*d+.048952*t+.953127*y,m=C.rgbD[0]*Z,e=C.rgbD[1]*h,Y=C.rgbD[2]*n,M=Math.pow(C.fl*Math.abs(m)/100,.42),L=Math.pow(C.fl*Math.abs(e)/100,.42),k=Math.pow(C.fl*Math.abs(Y)/100,.42),H=X(m)*400*M/(M+27.13),W=X(e)*400*L/(L+27.13),K=X(Y)*400*k/(k+27.13),u=(11*H+-12*W+K)/11,S=(H+W-2*K)/9,J=(20*H+20*W+21*K)/20,v=(40*H+20*W+K)/20,R=Math.atan2(S,u)*180/Math.PI,j=R<0?R+360:R>=360?R-360:R,q=j*Math.PI/180,Ig=v*C.nbb,U=100*Math.pow(Ig/C.aw,C.c*C.z),og=4/C.c*Math.sqrt(U/100)*(C.aw+4)*C.fLRoot,ig=j<20.14?j+360:j,Cg=.25*(Math.cos(ig*Math.PI/180+2)+3.8),Bg=5e4/13*Cg*C.nc*C.ncb*Math.sqrt(u*u+S*S)/(J+.305),Ag=Math.pow(Bg,.9)*Math.pow(1.64-Math.pow(.29,C.n),.73),ng=Ag*Math.sqrt(U/100),ug=ng*C.fLRoot,Vg=50*Math.sqrt(Ag*C.c/(C.aw+4)),Lg=(1+100*.007)*U/(1+.007*U),mg=1/.0228*Math.log(1+.0228*ug),Rg=mg*Math.cos(q),pg=mg*Math.sin(q);return new p(j,ng,U,og,ug,Vg,Lg,Rg,pg)}static fromJch(g,C,A){return p.fromJchInViewingConditions(g,C,A,Q.DEFAULT)}static fromJchInViewingConditions(g,C,A,o){let B=4/o.c*Math.sqrt(g/100)*(o.aw+4)*o.fLRoot,b=C*o.fLRoot,c=C/Math.sqrt(g/100),l=50*Math.sqrt(c*o.c/(o.aw+4)),d=A*Math.PI/180,t=(1+100*.007)*g/(1+.007*g),y=1/.0228*Math.log(1+.0228*b),Z=y*Math.cos(d),h=y*Math.sin(d);return new p(A,C,g,B,b,l,t,Z,h)}static fromUcs(g,C,A){return p.fromUcsInViewingConditions(g,C,A,Q.DEFAULT)}static fromUcsInViewingConditions(g,C,A,o){let B=C,b=A,c=Math.sqrt(B*B+b*b),l=(Math.exp(c*.0228)-1)/.0228/o.fLRoot,d=Math.atan2(b,B)*(180/Math.PI);d<0&&(d+=360);let t=g/(1-(g-100)*.007);return p.fromJchInViewingConditions(t,l,d,o)}toInt(){return this.viewed(Q.DEFAULT)}viewed(g){let C=this.chroma===0||this.j===0?0:this.chroma/Math.sqrt(this.j/100),A=Math.pow(C/Math.pow(1.64-Math.pow(.29,g.n),.73),1/.9),o=this.hue*Math.PI/180,B=.25*(Math.cos(o+2)+3.8),b=g.aw*Math.pow(this.j/100,1/g.c/g.z),c=B*(5e4/13)*g.nc*g.ncb,l=b/g.nbb,d=Math.sin(o),t=Math.cos(o),y=23*(l+.305)*A/(23*c+11*A*t+108*A*d),Z=y*t,h=y*d,n=(460*l+451*Z+288*h)/1403,m=(460*l-891*Z-261*h)/1403,e=(460*l-220*Z-6300*h)/1403,Y=Math.max(0,27.13*Math.abs(n)/(400-Math.abs(n))),M=X(n)*(100/g.fl)*Math.pow(Y,1/.42),L=Math.max(0,27.13*Math.abs(m)/(400-Math.abs(m))),k=X(m)*(100/g.fl)*Math.pow(L,1/.42),H=Math.max(0,27.13*Math.abs(e)/(400-Math.abs(e))),W=X(e)*(100/g.fl)*Math.pow(H,1/.42),K=M/g.rgbD[0],u=k/g.rgbD[1],S=W/g.rgbD[2],J=1.86206786*K-1.01125463*u+.14918677*S,v=.38752654*K+.62144744*u-.00897398*S,R=-.0158415*K-.03412294*u+1.04996444*S;return vg(J,v,R)}static fromXyzInViewingConditions(g,C,A,o){let B=.401288*g+.650173*C-.051461*A,b=-.250268*g+1.204414*C+.045854*A,c=-.002079*g+.048952*C+.953127*A,l=o.rgbD[0]*B,d=o.rgbD[1]*b,t=o.rgbD[2]*c,y=Math.pow(o.fl*Math.abs(l)/100,.42),Z=Math.pow(o.fl*Math.abs(d)/100,.42),h=Math.pow(o.fl*Math.abs(t)/100,.42),n=X(l)*400*y/(y+27.13),m=X(d)*400*Z/(Z+27.13),e=X(t)*400*h/(h+27.13),Y=(11*n+-12*m+e)/11,M=(n+m-2*e)/9,L=(20*n+20*m+21*e)/20,k=(40*n+20*m+e)/20,H=Math.atan2(M,Y)*180/Math.PI,W=H<0?H+360:H>=360?H-360:H,K=W*Math.PI/180,u=k*o.nbb,S=100*Math.pow(u/o.aw,o.c*o.z),J=4/o.c*Math.sqrt(S/100)*(o.aw+4)*o.fLRoot,v=W<20.14?W+360:W,R=1/4*(Math.cos(v*Math.PI/180+2)+3.8),j=5e4/13*R*o.nc*o.ncb*Math.sqrt(Y*Y+M*M)/(L+.305),q=Math.pow(j,.9)*Math.pow(1.64-Math.pow(.29,o.n),.73),Ig=q*Math.sqrt(S/100),U=Ig*o.fLRoot,og=50*Math.sqrt(q*o.c/(o.aw+4)),ig=(1+100*.007)*S/(1+.007*S),Cg=Math.log(1+.0228*U)/.0228,Bg=Cg*Math.cos(K),Ag=Cg*Math.sin(K);return new p(W,Ig,S,J,U,og,ig,Bg,Ag)}xyzInViewingConditions(g){let C=this.chroma===0||this.j===0?0:this.chroma/Math.sqrt(this.j/100),A=Math.pow(C/Math.pow(1.64-Math.pow(.29,g.n),.73),1/.9),o=this.hue*Math.PI/180,B=.25*(Math.cos(o+2)+3.8),b=g.aw*Math.pow(this.j/100,1/g.c/g.z),c=B*(5e4/13)*g.nc*g.ncb,l=b/g.nbb,d=Math.sin(o),t=Math.cos(o),y=23*(l+.305)*A/(23*c+11*A*t+108*A*d),Z=y*t,h=y*d,n=(460*l+451*Z+288*h)/1403,m=(460*l-891*Z-261*h)/1403,e=(460*l-220*Z-6300*h)/1403,Y=Math.max(0,27.13*Math.abs(n)/(400-Math.abs(n))),M=X(n)*(100/g.fl)*Math.pow(Y,1/.42),L=Math.max(0,27.13*Math.abs(m)/(400-Math.abs(m))),k=X(m)*(100/g.fl)*Math.pow(L,1/.42),H=Math.max(0,27.13*Math.abs(e)/(400-Math.abs(e))),W=X(e)*(100/g.fl)*Math.pow(H,1/.42),K=M/g.rgbD[0],u=k/g.rgbD[1],S=W/g.rgbD[2],J=1.86206786*K-1.01125463*u+.14918677*S,v=.38752654*K+.62144744*u-.00897398*S,R=-.0158415*K-.03412294*u+1.04996444*S;return [J,v,R]}},a=class{static sanitizeRadians(g){return (g+Math.PI*8)%(Math.PI*2)}static trueDelinearized(g){let C=g/100,A=0;return C<=.0031308?A=C*12.92:A=1.055*Math.pow(C,1/2.4)-.055,A*255}static chromaticAdaptation(g){let C=Math.pow(Math.abs(g),.42);return X(g)*400*C/(C+27.13)}static hueOf(g){let C=Gg(g,a.SCALED_DISCOUNT_FROM_LINRGB),A=a.chromaticAdaptation(C[0]),o=a.chromaticAdaptation(C[1]),B=a.chromaticAdaptation(C[2]),b=(11*A+-12*o+B)/11,c=(A+o-2*B)/9;return Math.atan2(c,b)}static areInCyclicOrder(g,C,A){let o=a.sanitizeRadians(C-g),B=a.sanitizeRadians(A-g);return o<B}static intercept(g,C,A){return (C-g)/(A-g)}static lerpPoint(g,C,A){return [g[0]+(A[0]-g[0])*C,g[1]+(A[1]-g[1])*C,g[2]+(A[2]-g[2])*C]}static setCoordinate(g,C,A,o){let B=a.intercept(g[o],C,A[o]);return a.lerpPoint(g,B,A)}static isBounded(g){return 0<=g&&g<=100}static nthVertex(g,C){let A=a.Y_FROM_LINRGB[0],o=a.Y_FROM_LINRGB[1],B=a.Y_FROM_LINRGB[2],b=C%4<=1?0:100,c=C%2===0?0:100;if(C<4){let l=b,d=c,t=(g-l*o-d*B)/A;return a.isBounded(t)?[t,l,d]:[-1,-1,-1]}else if(C<8){let l=b,d=c,t=(g-d*A-l*B)/o;return a.isBounded(t)?[d,t,l]:[-1,-1,-1]}else {let l=b,d=c,t=(g-l*A-d*o)/B;return a.isBounded(t)?[l,d,t]:[-1,-1,-1]}}static bisectToSegment(g,C){let A=[-1,-1,-1],o=A,B=0,b=0,c=!1,l=!0;for(let d=0;d<12;d++){let t=a.nthVertex(g,d);if(t[0]<0)continue;let y=a.hueOf(t);if(!c){A=t,o=t,B=y,b=y,c=!0;continue}(l||a.areInCyclicOrder(B,y,b))&&(l=!1,a.areInCyclicOrder(B,C,y)?(o=t,b=y):(A=t,B=y));}return [A,o]}static midpoint(g,C){return [(g[0]+C[0])/2,(g[1]+C[1])/2,(g[2]+C[2])/2]}static criticalPlaneBelow(g){return Math.floor(g-.5)}static criticalPlaneAbove(g){return Math.ceil(g-.5)}static bisectToLimit(g,C){let A=a.bisectToSegment(g,C),o=A[0],B=a.hueOf(o),b=A[1];for(let c=0;c<3;c++)if(o[c]!==b[c]){let l=-1,d=255;o[c]<b[c]?(l=a.criticalPlaneBelow(a.trueDelinearized(o[c])),d=a.criticalPlaneAbove(a.trueDelinearized(b[c]))):(l=a.criticalPlaneAbove(a.trueDelinearized(o[c])),d=a.criticalPlaneBelow(a.trueDelinearized(b[c])));for(let t=0;t<8&&!(Math.abs(d-l)<=1);t++){let y=Math.floor((l+d)/2),Z=a.CRITICAL_PLANES[y],h=a.setCoordinate(o,Z,b,c),n=a.hueOf(h);a.areInCyclicOrder(B,C,n)?(b=h,d=y):(o=h,B=n,l=y);}}return a.midpoint(o,b)}static inverseChromaticAdaptation(g){let C=Math.abs(g),A=Math.max(0,27.13*C/(400-C));return X(g)*Math.pow(A,1/.42)}static findResultByJ(g,C,A){let o=Math.sqrt(A)*11,B=Q.DEFAULT,b=1/Math.pow(1.64-Math.pow(.29,B.n),.73),c=.25*(Math.cos(g+2)+3.8)*(5e4/13)*B.nc*B.ncb,l=Math.sin(g),d=Math.cos(g);for(let t=0;t<5;t++){let y=o/100,Z=C===0||o===0?0:C/Math.sqrt(y),h=Math.pow(Z*b,1/.9),n=B.aw*Math.pow(y,1/B.c/B.z)/B.nbb,m=23*(n+.305)*h/(23*c+11*h*d+108*h*l),e=m*d,Y=m*l,M=(460*n+451*e+288*Y)/1403,L=(460*n-891*e-261*Y)/1403,k=(460*n-220*e-6300*Y)/1403,H=a.inverseChromaticAdaptation(M),W=a.inverseChromaticAdaptation(L),K=a.inverseChromaticAdaptation(k),u=Gg([H,W,K],a.LINRGB_FROM_SCALED_DISCOUNT);if(u[0]<0||u[1]<0||u[2]<0)return 0;let S=a.Y_FROM_LINRGB[0],J=a.Y_FROM_LINRGB[1],v=a.Y_FROM_LINRGB[2],R=S*u[0]+J*u[1]+v*u[2];if(R<=0)return 0;if(t===4||Math.abs(R-A)<.002)return u[0]>100.01||u[1]>100.01||u[2]>100.01?0:hg(u);o=o-(R-A)*o/(2*R);}return 0}static solveToInt(g,C,A){if(C<1e-4||A<1e-4||A>99.9999)return Tg(A);g=Qg(g);let o=g/180*Math.PI,B=T(A),b=a.findResultByJ(o,C,B);if(b!==0)return b;let c=a.bisectToLimit(B,o);return hg(c)}static solveToCam(g,C,A){return p.fromInt(a.solveToInt(g,C,A))}};a.SCALED_DISCOUNT_FROM_LINRGB=[[.001200833568784504,.002389694492170889,.0002795742885861124],[.0005891086651375999,.0029785502573438758,.0003270666104008398],[.00010146692491640572,.0005364214359186694,.0032979401770712076]];a.LINRGB_FROM_SCALED_DISCOUNT=[[1373.2198709594231,-1100.4251190754821,-7.278681089101213],[-271.815969077903,559.6580465940733,-32.46047482791194],[1.9622899599665666,-57.173814538844006,308.7233197812385]];a.Y_FROM_LINRGB=[.2126,.7152,.0722];a.CRITICAL_PLANES=[.015176349177441876,.045529047532325624,.07588174588720938,.10623444424209313,.13658714259697685,.16693984095186062,.19729253930674434,.2276452376616281,.2579979360165119,.28835063437139563,.3188300904430532,.350925934958123,.3848314933096426,.42057480301049466,.458183274052838,.4976837250274023,.5391024159806381,.5824650784040898,.6277969426914107,.6751227633498623,.7244668422128921,.775853049866786,.829304845476233,.8848452951698498,.942497089126609,1.0022825574869039,1.0642236851973577,1.1283421258858297,1.1946592148522128,1.2631959812511864,1.3339731595349034,1.407011200216447,1.4823302800086415,1.5599503113873272,1.6398909516233677,1.7221716113234105,1.8068114625156377,1.8938294463134073,1.9832442801866852,2.075074464868551,2.1693382909216234,2.2660538449872063,2.36523901573795,2.4669114995532007,2.5710888059345764,2.6777882626779785,2.7870270208169257,2.898822059350997,3.0131901897720907,3.1301480604002863,3.2497121605402226,3.3718988244681087,3.4967242352587946,3.624204428461639,3.754355295633311,3.887192587735158,4.022731918402185,4.160988767090289,4.301978482107941,4.445716283538092,4.592217266055746,4.741496401646282,4.893568542229298,5.048448422192488,5.20615066083972,5.3666897647573375,5.5300801301023865,5.696336044816294,5.865471690767354,6.037501145825082,6.212438385869475,6.390297286737924,6.571091626112461,6.7548350853498045,6.941541251256611,7.131223617812143,7.323895587840543,7.5195704746346665,7.7182615035334345,7.919981813454504,8.124744458384042,8.332562408825165,8.543448553206703,8.757415699253682,8.974476575321063,9.194643831691977,9.417930041841839,9.644347703669503,9.873909240696694,10.106627003236781,10.342513269534024,10.58158024687427,10.8238400726681,11.069304815507364,11.317986476196008,11.569896988756009,11.825048221409341,12.083451977536606,12.345119996613247,12.610063955123938,12.878295467455942,13.149826086772048,13.42466730586372,13.702830557985108,13.984327217668513,14.269168601521828,14.55736596900856,14.848930523210871,15.143873411576273,15.44220572664832,15.743938506781891,16.04908273684337,16.35764934889634,16.66964922287304,16.985093187232053,17.30399201960269,17.62635644741625,17.95219714852476,18.281524751807332,18.614349837764564,18.95068293910138,19.290534541298456,19.633915083172692,19.98083495742689,20.331304511189067,20.685334046541502,21.042933821039977,21.404114048223256,21.76888489811322,22.137256497705877,22.50923893145328,22.884842241736916,23.264076429332462,23.6469514538663,24.033477234264016,24.42366364919083,24.817520537484558,25.21505769858089,25.61628489293138,26.021211842414342,26.429848230738664,26.842203703840827,27.258287870275353,27.678110301598522,28.10168053274597,28.529008062403893,28.96010235337422,29.39497283293396,29.83362889318845,30.276079891419332,30.722335150426627,31.172403958865512,31.62629557157785,32.08401920991837,32.54558406207592,33.010999283389665,33.4802739966603,33.953417292456834,34.430438229418264,34.911345834551085,35.39614910352207,35.88485700094671,36.37747846067349,36.87402238606382,37.37449765026789,37.87891309649659,38.38727753828926,38.89959975977785,39.41588851594697,39.93615253289054,40.460400508064545,40.98864111053629,41.520882981230194,42.05713473317016,42.597404951718396,43.141702194811224,43.6900349931913,44.24241185063697,44.798841244188324,45.35933162437017,45.92389141541209,46.49252901546552,47.065252796817916,47.64207110610409,48.22299226451468,48.808024568002054,49.3971762874833,49.9904556690408,50.587870934119984,51.189430279724725,51.79514187861014,52.40501387947288,53.0190544071392,53.637271562750364,54.259673423945976,54.88626804504493,55.517063457223934,56.15206766869424,56.79128866487574,57.43473440856916,58.08241284012621,58.734331877617365,59.39049941699807,60.05092333227251,60.715611475655585,61.38457167773311,62.057811747619894,62.7353394731159,63.417162620860914,64.10328893648692,64.79372614476921,65.48848194977529,66.18756403501224,66.89098006357258,67.59873767827808,68.31084450182222,69.02730813691093,69.74813616640164,70.47333615344107,71.20291564160104,71.93688215501312,72.67524319850172,73.41800625771542,74.16517879925733,74.9167682708136,75.67278210128072,76.43322770089146,77.1981124613393,77.96744375590167,78.74122893956174,79.51947534912904,80.30219030335869,81.08938110306934,81.88105503125999,82.67721935322541,83.4778813166706,84.28304815182372,85.09272707154808,85.90692527145302,86.72564993000343,87.54890820862819,88.3767072518277,89.2090541872801,90.04595612594655,90.88742016217518,91.73345337380438,92.58406282226491,93.43925555268066,94.29903859396902,95.16341895893969,96.03240364439274,96.9059996312159,97.78421388448044,98.6670533535366,99.55452497210776];var N=class{static from(g,C,A){return new N(a.solveToInt(g,C,A))}static fromInt(g){return new N(g)}toInt(){return this.argb}get hue(){return this.internalHue}set hue(g){this.setInternalState(a.solveToInt(g,this.internalChroma,this.internalTone));}get chroma(){return this.internalChroma}set chroma(g){this.setInternalState(a.solveToInt(this.internalHue,g,this.internalTone));}get tone(){return this.internalTone}set tone(g){this.setInternalState(a.solveToInt(this.internalHue,this.internalChroma,g));}constructor(g){this.argb=g;let C=p.fromInt(g);this.internalHue=C.hue,this.internalChroma=C.chroma,this.internalTone=eg(g),this.argb=g;}setInternalState(g){let C=p.fromInt(g);this.internalHue=C.hue,this.internalChroma=C.chroma,this.internalTone=eg(g),this.argb=g;}inViewingConditions(g){let C=p.fromInt(this.toInt()).xyzInViewingConditions(g),A=p.fromXyzInViewingConditions(C[0],C[1],C[2],Q.make());return N.from(A.hue,A.chroma,cg(C[1]))}},V=class{static ratioOfTones(g,C){return g=$(0,100,g),C=$(0,100,C),V.ratioOfYs(T(g),T(C))}static ratioOfYs(g,C){let A=g>C?g:C,o=A===C?g:C;return (A+5)/(o+5)}static lighter(g,C){if(g<0||g>100)return -1;let A=T(g),o=C*(A+5)-5,B=V.ratioOfYs(o,A),b=Math.abs(B-C);if(B<C&&b>.04)return -1;let c=cg(o)+.4;return c<0||c>100?-1:c}static darker(g,C){if(g<0||g>100)return -1;let A=T(g),o=(A+5)/C-5,B=V.ratioOfYs(A,o),b=Math.abs(B-C);if(B<C&&b>.04)return -1;let c=cg(o)-.4;return c<0||c>100?-1:c}static lighterUnsafe(g,C){let A=V.lighter(g,C);return A<0?100:A}static darkerUnsafe(g,C){let A=V.darker(g,C);return A<0?0:A}},_=class{static isDisliked(g){let C=Math.round(g.hue)>=90&&Math.round(g.hue)<=111,A=Math.round(g.chroma)>16,o=Math.round(g.tone)<65;return C&&A&&o}static fixIfDisliked(g){return _.isDisliked(g)?N.from(g.hue,g.chroma,70):g}},G=class{static fromPalette(g){return new G(C=>g.palette(C).hue,C=>g.palette(C).chroma,g.tone,C=>G.toneMinContrastDefault({tone:g.tone,scheme:C,background:g.background,toneDeltaConstraint:g.toneDeltaConstraint}),C=>G.toneMaxContrastDefault({tone:g.tone,scheme:C,background:g.background,toneDeltaConstraint:g.toneDeltaConstraint}),g.background,g.toneDeltaConstraint)}static fromHueAndChroma(g){return new G(g.hue,g.chroma,g.tone,C=>G.toneMinContrastDefault({tone:g.tone,scheme:C,background:g.background,toneDeltaConstraint:g.toneDeltaConstraint}),C=>G.toneMaxContrastDefault({tone:g.tone,scheme:C,background:g.background,toneDeltaConstraint:g.toneDeltaConstraint}),g.background,g.toneDeltaConstraint)}static fromArgb(g){return new G(C=>N.fromInt(g.argb(C)).hue,C=>N.fromInt(g.argb(C)).chroma,C=>g.tone?.(C)??N.fromInt(g.argb(C)).tone,C=>G.toneMinContrastDefault({tone:A=>g.tone?.(A)??N.fromInt(g.argb(A)).tone,scheme:C,background:g.background,toneDeltaConstraint:g.toneDeltaConstraint}),C=>G.toneMaxContrastDefault({tone:A=>g.tone?.(A)??N.fromInt(g.argb(A)).tone,scheme:C,background:g.background,toneDeltaConstraint:g.toneDeltaConstraint}),g.background,g.toneDeltaConstraint)}constructor(g,C,A,o,B,b,c){this.hue=g,this.chroma=C,this.tone=A,this.toneMinContrast=o,this.toneMaxContrast=B,this.background=b,this.toneDeltaConstraint=c,this.hctCache=new Map;}getArgb(g){return this.getHct(g).toInt()}getHct(g){let C=this.hctCache.get(g);if(C!=null)return C;let A=N.from(this.hue(g),this.chroma(g),this.getTone(g));return this.hctCache.size>4&&this.hctCache.clear(),this.hctCache.set(g,A),A}getTone(g){let C=this.tone(g),A=g.contrastLevel<0;if(g.contrastLevel!==0){let l=this.tone(g);C=((A?this.toneMinContrast(g):this.toneMaxContrast(g))-l)*Math.abs(g.contrastLevel)+l;}let o=this.background?.(g),B,b,c;if(o!=null){let l=o?.background?.(g)!=null;if(B=V.ratioOfTones(this.tone(g),o.tone(g)),A){let d=V.ratioOfTones(this.toneMinContrast(g),o.toneMinContrast(g));b=l?d:null,c=B;}else {let d=V.ratioOfTones(this.toneMaxContrast(g),o.toneMaxContrast(g));b=l?Math.min(d,B):null,c=l?Math.max(d,B):null;}}return C=G.calculateDynamicTone({scheme:g,toneStandard:this.tone,toneToJudge:l=>l.getTone(g),desiredTone:(l,d)=>C,background:o!=null?l=>o:void 0,toneDeltaConstraint:this.toneDeltaConstraint,minRatio:l=>b??1,maxRatio:l=>c??21}),C}static ensureToneDelta(g,C,A,o,B){let b=o?o(A):null;if(b==null||B==null)return g;let c=b.delta,l=B(b.keepAway),d=Math.abs(g-l);if(d>c)return g;switch(b.keepAwayPolarity){case"darker":return $(0,100,l+c);case"lighter":return $(0,100,l-c);case"no-preference":let t=b.keepAway.tone(A),y=C>t,Z=Math.abs(d-c);return (y?g+Z<=100:g<Z)?g+Z:g-Z;default:return g}}static foregroundTone(g,C){let A=V.lighterUnsafe(g,C),o=V.darkerUnsafe(g,C),B=V.ratioOfTones(A,g),b=V.ratioOfTones(o,g);if(G.tonePrefersLightForeground(g)){let c=Math.abs(B-b)<.1&&B<C&&b<C;return B>=C||B>=b||c?A:o}else return b>=C||b>=B?o:A}static calculateDynamicTone(g){let C=g.background,A=g.scheme,o=g.toneStandard,B=g.toneToJudge,b=g.desiredTone,c=g.minRatio,l=g.maxRatio,d=g.toneDeltaConstraint,t=o(A),y=t,Z=C?.(A);if(Z==null)return y;let h=Z.tone(A),n=V.ratioOfTones(t,h),m=B(Z),e=b(n,m),Y=V.ratioOfTones(m,e),M=$(c?.(n)??1,l?.(n)??21,Y);return M===Y?y=e:y=G.foregroundTone(m,M),Z.background?.(A)==null&&(y=G.enableLightForeground(y)),y=G.ensureToneDelta(y,t,A,d,L=>B(L)),y}static toneMaxContrastDefault(g){return G.calculateDynamicTone({scheme:g.scheme,toneStandard:g.tone,toneToJudge:C=>C.toneMaxContrast(g.scheme),desiredTone:(C,A)=>g.background?.(g.scheme)?.background?.(g.scheme)!=null?G.foregroundTone(A,7):G.foregroundTone(A,Math.max(7,C)),background:g.background,toneDeltaConstraint:g.toneDeltaConstraint})}static toneMinContrastDefault(g){return G.calculateDynamicTone({scheme:g.scheme,toneStandard:g.tone,toneToJudge:C=>C.toneMinContrast(g.scheme),desiredTone:(C,A)=>{let o=g.tone(g.scheme);return C>=7?o=G.foregroundTone(A,4.5):C>=3?o=G.foregroundTone(A,3):g.background?.(g.scheme)?.background?.(g.scheme)!=null&&(o=G.foregroundTone(A,C)),o},background:g.background,toneDeltaConstraint:g.toneDeltaConstraint,minRatio:C=>1,maxRatio:C=>C})}static tonePrefersLightForeground(g){return Math.round(g)<60}static toneAllowsLightForeground(g){return Math.round(g)<=49}static enableLightForeground(g){return G.tonePrefersLightForeground(g)&&!G.toneAllowsLightForeground(g)?49:g}},gg;(function(I){I[I.MONOCHROME=0]="MONOCHROME",I[I.NEUTRAL=1]="NEUTRAL",I[I.TONAL_SPOT=2]="TONAL_SPOT",I[I.VIBRANT=3]="VIBRANT",I[I.EXPRESSIVE=4]="EXPRESSIVE",I[I.FIDELITY=5]="FIDELITY",I[I.CONTENT=6]="CONTENT";})(gg||(gg={}));var P=class{constructor(g,C,A){this.delta=g,this.keepAway=C,this.keepAwayPolarity=A;}};function f(I){return I.variant===gg.FIDELITY||I.variant===gg.CONTENT}function r(I){return I.variant===gg.MONOCHROME}function xg(I,g,C,A){let o=C,B=N.from(I,g,C);if(B.chroma<g){let b=B.chroma;for(;B.chroma<g;){o+=A?-1:1;let c=N.from(I,g,o);if(b>c.chroma||Math.abs(c.chroma-g)<.4)break;let l=Math.abs(c.chroma-g),d=Math.abs(B.chroma-g);l<d&&(B=c),b=Math.max(b,c.chroma);}}return o}function Og(I){return Q.make(void 0,void 0,I.isDark?30:80,void 0,void 0)}function yg(I,g){let C=I.inViewingConditions(Og(g));return G.tonePrefersLightForeground(I.tone)&&!G.toneAllowsLightForeground(C.tone)?G.enableLightForeground(I.tone):G.enableLightForeground(C.tone)}var i=class{static highestSurface(g){return g.isDark?i.surfaceBright:i.surfaceDim}};i.contentAccentToneDelta=15;i.background=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?6:98});i.onBackground=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?90:10,background:I=>i.background});i.surface=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?6:98});i.surfaceDim=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?6:87});i.surfaceBright=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?24:98});i.surfaceContainerLowest=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?4:100});i.surfaceContainerLow=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?10:96});i.surfaceContainer=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?12:94});i.surfaceContainerHigh=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?17:92});i.surfaceContainerHighest=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?22:90});i.onSurface=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?90:10,background:I=>i.highestSurface(I)});i.surfaceVariant=G.fromPalette({palette:I=>I.neutralVariantPalette,tone:I=>I.isDark?30:90});i.onSurfaceVariant=G.fromPalette({palette:I=>I.neutralVariantPalette,tone:I=>I.isDark?80:30,background:I=>i.surfaceVariant});i.inverseSurface=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?90:20});i.inverseOnSurface=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>I.isDark?20:95,background:I=>i.inverseSurface});i.outline=G.fromPalette({palette:I=>I.neutralVariantPalette,tone:I=>50,background:I=>i.highestSurface(I)});i.outlineVariant=G.fromPalette({palette:I=>I.neutralVariantPalette,tone:I=>I.isDark?30:80,background:I=>i.highestSurface(I)});i.shadow=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>0});i.scrim=G.fromPalette({palette:I=>I.neutralPalette,tone:I=>0});i.surfaceTintColor=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>I.isDark?80:40});i.primary=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?100:0:I.isDark?80:40,background:I=>i.highestSurface(I),toneDeltaConstraint:I=>new P(i.contentAccentToneDelta,i.primaryContainer,I.isDark?"darker":"lighter")});i.onPrimary=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?10:90:I.isDark?20:100,background:I=>i.primary});i.primaryContainer=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?85:25:f(I)?yg(I.sourceColorHct,I):I.isDark?30:90,background:I=>i.highestSurface(I)});i.onPrimaryContainer=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?0:100:f(I)?G.foregroundTone(i.primaryContainer.tone(I),4.5):I.isDark?90:10,background:I=>i.primaryContainer});i.inversePrimary=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>I.isDark?40:80,background:I=>i.inverseSurface});i.inverseOnPrimary=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>I.isDark?100:20,background:I=>i.inversePrimary});i.secondary=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>I.isDark?80:40,background:I=>i.highestSurface(I),toneDeltaConstraint:I=>new P(i.contentAccentToneDelta,i.secondaryContainer,I.isDark?"darker":"lighter")});i.onSecondary=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>r(I)?I.isDark?10:100:I.isDark?20:100,background:I=>i.secondary});i.secondaryContainer=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>{let g=I.isDark?30:90;if(r(I))return I.isDark?30:85;if(!f(I))return g;let C=xg(I.secondaryPalette.hue,I.secondaryPalette.chroma,g,!I.isDark);return C=yg(I.secondaryPalette.getHct(C),I),C},background:I=>i.highestSurface(I)});i.onSecondaryContainer=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>f(I)?G.foregroundTone(i.secondaryContainer.tone(I),4.5):I.isDark?90:10,background:I=>i.secondaryContainer});i.tertiary=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>r(I)?I.isDark?90:25:I.isDark?80:40,background:I=>i.highestSurface(I),toneDeltaConstraint:I=>new P(i.contentAccentToneDelta,i.tertiaryContainer,I.isDark?"darker":"lighter")});i.onTertiary=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>r(I)?I.isDark?10:90:I.isDark?20:100,background:I=>i.tertiary});i.tertiaryContainer=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>{if(r(I))return I.isDark?60:49;if(!f(I))return I.isDark?30:90;let g=yg(I.tertiaryPalette.getHct(I.sourceColorHct.tone),I),C=I.tertiaryPalette.getHct(g);return _.fixIfDisliked(C).tone},background:I=>i.highestSurface(I)});i.onTertiaryContainer=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>r(I)?I.isDark?0:100:f(I)?G.foregroundTone(i.tertiaryContainer.tone(I),4.5):I.isDark?90:10,background:I=>i.tertiaryContainer});i.error=G.fromPalette({palette:I=>I.errorPalette,tone:I=>I.isDark?80:40,background:I=>i.highestSurface(I),toneDeltaConstraint:I=>new P(i.contentAccentToneDelta,i.errorContainer,I.isDark?"darker":"lighter")});i.onError=G.fromPalette({palette:I=>I.errorPalette,tone:I=>I.isDark?20:100,background:I=>i.error});i.errorContainer=G.fromPalette({palette:I=>I.errorPalette,tone:I=>I.isDark?30:90,background:I=>i.highestSurface(I)});i.onErrorContainer=G.fromPalette({palette:I=>I.errorPalette,tone:I=>I.isDark?90:10,background:I=>i.errorContainer});i.primaryFixed=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?100:10:90,background:I=>i.highestSurface(I)});i.primaryFixedDim=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?90:20:80,background:I=>i.highestSurface(I)});i.onPrimaryFixed=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?10:90:10,background:I=>i.primaryFixedDim});i.onPrimaryFixedVariant=G.fromPalette({palette:I=>I.primaryPalette,tone:I=>r(I)?I.isDark?30:70:30,background:I=>i.primaryFixedDim});i.secondaryFixed=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>r(I)?80:90,background:I=>i.highestSurface(I)});i.secondaryFixedDim=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>r(I)?70:80,background:I=>i.highestSurface(I)});i.onSecondaryFixed=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>10,background:I=>i.secondaryFixedDim});i.onSecondaryFixedVariant=G.fromPalette({palette:I=>I.secondaryPalette,tone:I=>r(I)?25:30,background:I=>i.secondaryFixedDim});i.tertiaryFixed=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>r(I)?40:90,background:I=>i.highestSurface(I)});i.tertiaryFixedDim=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>r(I)?30:80,background:I=>i.highestSurface(I)});i.onTertiaryFixed=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>r(I)?90:10,background:I=>i.tertiaryFixedDim});i.onTertiaryFixedVariant=G.fromPalette({palette:I=>I.tertiaryPalette,tone:I=>r(I)?70:30,background:I=>i.tertiaryFixedDim});var s=class{static fromInt(g){let C=N.fromInt(g);return s.fromHueAndChroma(C.hue,C.chroma)}static fromHueAndChroma(g,C){return new s(g,C)}constructor(g,C){this.hue=g,this.chroma=C,this.cache=new Map;}tone(g){let C=this.cache.get(g);return C===void 0&&(C=N.from(this.hue,this.chroma,g).toInt(),this.cache.set(g,C)),C}getHct(g){return N.fromInt(this.tone(g))}},w=class{static of(g){return new w(g,!1)}static contentOf(g){return new w(g,!0)}static fromColors(g){return w.createPaletteFromColors(!1,g)}static contentFromColors(g){return w.createPaletteFromColors(!0,g)}static createPaletteFromColors(g,C){let A=new w(C.primary,g);if(C.secondary){let o=new w(C.secondary,g);A.a2=o.a1;}if(C.tertiary){let o=new w(C.tertiary,g);A.a3=o.a1;}if(C.error){let o=new w(C.error,g);A.error=o.a1;}if(C.neutral){let o=new w(C.neutral,g);A.n1=o.n1;}if(C.neutralVariant){let o=new w(C.neutralVariant,g);A.n2=o.n2;}return A}constructor(g,C){let A=N.fromInt(g),o=A.hue,B=A.chroma;C?(this.a1=s.fromHueAndChroma(o,B),this.a2=s.fromHueAndChroma(o,B/3),this.a3=s.fromHueAndChroma(o+60,B/2),this.n1=s.fromHueAndChroma(o,Math.min(B/12,4)),this.n2=s.fromHueAndChroma(o,Math.min(B/6,8))):(this.a1=s.fromHueAndChroma(o,Math.max(48,B)),this.a2=s.fromHueAndChroma(o,16),this.a3=s.fromHueAndChroma(o+60,24),this.n1=s.fromHueAndChroma(o,4),this.n2=s.fromHueAndChroma(o,8)),this.error=s.fromHueAndChroma(25,84);}},F=class{get primary(){return this.props.primary}get onPrimary(){return this.props.onPrimary}get primaryContainer(){return this.props.primaryContainer}get onPrimaryContainer(){return this.props.onPrimaryContainer}get secondary(){return this.props.secondary}get onSecondary(){return this.props.onSecondary}get secondaryContainer(){return this.props.secondaryContainer}get onSecondaryContainer(){return this.props.onSecondaryContainer}get tertiary(){return this.props.tertiary}get onTertiary(){return this.props.onTertiary}get tertiaryContainer(){return this.props.tertiaryContainer}get onTertiaryContainer(){return this.props.onTertiaryContainer}get error(){return this.props.error}get onError(){return this.props.onError}get errorContainer(){return this.props.errorContainer}get onErrorContainer(){return this.props.onErrorContainer}get background(){return this.props.background}get onBackground(){return this.props.onBackground}get surface(){return this.props.surface}get onSurface(){return this.props.onSurface}get surfaceVariant(){return this.props.surfaceVariant}get onSurfaceVariant(){return this.props.onSurfaceVariant}get outline(){return this.props.outline}get outlineVariant(){return this.props.outlineVariant}get shadow(){return this.props.shadow}get scrim(){return this.props.scrim}get inverseSurface(){return this.props.inverseSurface}get inverseOnSurface(){return this.props.inverseOnSurface}get inversePrimary(){return this.props.inversePrimary}static light(g){return F.lightFromCorePalette(w.of(g))}static dark(g){return F.darkFromCorePalette(w.of(g))}static lightContent(g){return F.lightFromCorePalette(w.contentOf(g))}static darkContent(g){return F.darkFromCorePalette(w.contentOf(g))}static lightFromCorePalette(g){return new F({primary:g.a1.tone(40),onPrimary:g.a1.tone(100),primaryContainer:g.a1.tone(90),onPrimaryContainer:g.a1.tone(10),secondary:g.a2.tone(40),onSecondary:g.a2.tone(100),secondaryContainer:g.a2.tone(90),onSecondaryContainer:g.a2.tone(10),tertiary:g.a3.tone(40),onTertiary:g.a3.tone(100),tertiaryContainer:g.a3.tone(90),onTertiaryContainer:g.a3.tone(10),error:g.error.tone(40),onError:g.error.tone(100),errorContainer:g.error.tone(90),onErrorContainer:g.error.tone(10),background:g.n1.tone(99),onBackground:g.n1.tone(10),surface:g.n1.tone(99),onSurface:g.n1.tone(10),surfaceVariant:g.n2.tone(90),onSurfaceVariant:g.n2.tone(30),outline:g.n2.tone(50),outlineVariant:g.n2.tone(80),shadow:g.n1.tone(0),scrim:g.n1.tone(0),inverseSurface:g.n1.tone(20),inverseOnSurface:g.n1.tone(95),inversePrimary:g.a1.tone(80)})}static darkFromCorePalette(g){return new F({primary:g.a1.tone(80),onPrimary:g.a1.tone(20),primaryContainer:g.a1.tone(30),onPrimaryContainer:g.a1.tone(90),secondary:g.a2.tone(80),onSecondary:g.a2.tone(20),secondaryContainer:g.a2.tone(30),onSecondaryContainer:g.a2.tone(90),tertiary:g.a3.tone(80),onTertiary:g.a3.tone(20),tertiaryContainer:g.a3.tone(30),onTertiaryContainer:g.a3.tone(90),error:g.error.tone(80),onError:g.error.tone(20),errorContainer:g.error.tone(30),onErrorContainer:g.error.tone(80),background:g.n1.tone(10),onBackground:g.n1.tone(90),surface:g.n1.tone(10),onSurface:g.n1.tone(90),surfaceVariant:g.n2.tone(30),onSurfaceVariant:g.n2.tone(80),outline:g.n2.tone(60),outlineVariant:g.n2.tone(30),shadow:g.n1.tone(0),scrim:g.n1.tone(0),inverseSurface:g.n1.tone(90),inverseOnSurface:g.n1.tone(20),inversePrimary:g.a1.tone(40)})}constructor(g){this.props=g;}toJSON(){return {...this.props}}};function Zg(I){let g=dg(I),C=tg(I),A=ag(I),o=[g.toString(16),C.toString(16),A.toString(16)];for(let[B,b]of o.entries())b.length===1&&(o[B]="0"+b);return "#"+o.join("")}var Pg=Object.defineProperty,fg=(I,g,C)=>g in I?Pg(I,g,{enumerable:!0,configurable:!0,writable:!0,value:C}):I[g]=C,x=(I,g,C)=>(fg(I,typeof g!="symbol"?g+"":g,C),C),bg=(I,g,C="",A)=>{for(let[o,B]of Object.entries(g.toJSON())){let b=o.replaceAll(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),c=A==="rgb"?Object.values(Yg(B)).slice(0,-1).join(" "):Zg(B);I.style.setProperty(`--md-sys-color-${b}${C}`,c);}},qg=(I,g)=>{let C=g?.target||document.body,A=g?.dark??!1?I.schemes.dark:I.schemes.light;if(g!=null&&g.brightnessSuffix?(bg(C,I.schemes.dark,"-dark",g?.colorFormat),bg(C,I.schemes.light,"-light",g?.colorFormat)):bg(C,A,"",g?.colorFormat),g!=null&&g.paletteTones){let o=g?.paletteTones??[];for(let[B,b]of Object.entries(I.palettes)){let c=B.replaceAll(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();for(let l of o){let d=`--md-ref-palette-${c}${l}`,t=g?.colorFormat==="rgb"?Object.values(Yg(b.tone(l))).slice(0,-1).join(" "):Zg(b.tone(l));C.style.setProperty(d,t);}}}},D=class{constructor(g,C){x(this,"a1"),x(this,"a2"),x(this,"a3"),x(this,"n1"),x(this,"n2"),x(this,"error");let{hue:A,chroma:o}=N.fromInt(g);C?(this.a1=s.fromHueAndChroma(A,o),this.a2=s.fromHueAndChroma(A,o/3),this.a3=s.fromHueAndChroma(A+60,o/2),this.n1=s.fromHueAndChroma(A,Math.min(o/12,4)),this.n2=s.fromHueAndChroma(A,Math.min(o/6,8))):(this.a1=s.fromHueAndChroma(A,Math.max(48,o)),this.a2=s.fromHueAndChroma(A,16),this.a3=s.fromHueAndChroma(A+60,24),this.n1=s.fromHueAndChroma(A,6),this.n2=s.fromHueAndChroma(A,8)),this.error=s.fromHueAndChroma(25,84);}static of(g){return new D(g,!1)}static contentOf(g){return new D(g,!0)}static fromColors(g){return D.createPaletteFromColors(!1,g)}static contentFromColors(g){return D.createPaletteFromColors(!0,g)}static createPaletteFromColors(g,C){let A=new D(C.primary,g);if(C.secondary){let o=new D(C.secondary,g);A.a2=o.a1;}if(C.tertiary){let o=new D(C.tertiary,g);A.a3=o.a1;}if(C.error){let o=new D(C.error,g);A.error=o.a1;}if(C.neutral){let o=new D(C.neutral,g);A.n1=o.n1;}if(C.neutralVariant){let o=new D(C.neutralVariant,g);A.n2=o.n2;}return A}},z=class{constructor(g){this.props=g;}get primary(){return this.props.primary}get onPrimary(){return this.props.onPrimary}get primaryContainer(){return this.props.primaryContainer}get onPrimaryContainer(){return this.props.onPrimaryContainer}get secondary(){return this.props.secondary}get onSecondary(){return this.props.onSecondary}get secondaryContainer(){return this.props.secondaryContainer}get onSecondaryContainer(){return this.props.onSecondaryContainer}get tertiary(){return this.props.tertiary}get onTertiary(){return this.props.onTertiary}get tertiaryContainer(){return this.props.tertiaryContainer}get onTertiaryContainer(){return this.props.onTertiaryContainer}get error(){return this.props.error}get onError(){return this.props.onError}get errorContainer(){return this.props.errorContainer}get onErrorContainer(){return this.props.onErrorContainer}get background(){return this.props.background}get onBackground(){return this.props.onBackground}get surface(){return this.props.surface}get onSurface(){return this.props.onSurface}get surfaceVariant(){return this.props.surfaceVariant}get onSurfaceVariant(){return this.props.onSurfaceVariant}get outline(){return this.props.outline}get outlineVariant(){return this.props.outlineVariant}get shadow(){return this.props.shadow}get scrim(){return this.props.scrim}get inverseSurface(){return this.props.inverseSurface}get inverseOnSurface(){return this.props.inverseOnSurface}get inversePrimary(){return this.props.inversePrimary}get surfaceBright(){return this.props.surfaceBright}get surfaceContainer(){return this.props.surfaceContainer}get surfaceContainerHigh(){return this.props.surfaceContainerHigh}get surfaceContainerHighest(){return this.props.surfaceContainerHighest}get surfaceContainerLow(){return this.props.surfaceContainerLow}get surfaceContainerLowest(){return this.props.surfaceContainerLowest}get surfaceTint(){return this.props.surfaceTint}static light(g){return z.lightFromCorePalette(D.of(g))}static dark(g){return z.darkFromCorePalette(D.of(g))}static lightContent(g){return z.lightFromCorePalette(D.contentOf(g))}static darkContent(g){return z.darkFromCorePalette(D.contentOf(g))}static lightFromCorePalette(g){return new z({...F.lightFromCorePalette(g).toJSON(),background:g.n1.tone(98),surface:g.n1.tone(98),surfaceBright:g.n1.tone(98),surfaceContainer:g.n1.tone(94),surfaceContainerHigh:g.n1.tone(92),surfaceContainerHighest:g.n1.tone(90),surfaceContainerLow:g.n1.tone(96),surfaceContainerLowest:g.n1.tone(100),surfaceDim:g.n1.tone(87),surfaceTint:g.a1.tone(40)})}static darkFromCorePalette(g){return new z({...F.darkFromCorePalette(g).toJSON(),onErrorContainer:g.error.tone(90),background:g.n1.tone(6),surface:g.n1.tone(6),surfaceBright:g.n1.tone(24),surfaceContainer:g.n1.tone(12),surfaceContainerHigh:g.n1.tone(17),surfaceContainerHighest:g.n1.tone(22),surfaceContainerLow:g.n1.tone(10),surfaceContainerLowest:g.n1.tone(4),surfaceDim:g.n1.tone(6),surfaceTint:g.a1.tone(80)})}toJSON(){return this.props}},Kg=([I,g,C])=>(I.width+(C-g)*10)*(I.classList.contains("u-photo")?1.2:1),Ng=()=>[...document.images].filter(({width:I})=>I>=128).map((I,g,C)=>[I,g,C.length]).sort((I,g)=>Kg(g)-Kg(I))[0][0]??null,$g=(I,g={})=>{if(qg(I,{brightnessSuffix:g.brightnessSuffix??!1,dark:!!(g.dark??globalThis.matchMedia("(prefers-color-scheme: dark)").matches),paletteTones:g.paletteTones,target:g.target??document.body}),g.themeColor){for(let C of document.querySelectorAll('meta[name="theme-color"]'))C.remove();for(let C of ["light","dark"]){let A=document.createElement("meta");A.name="theme-color",A.media=`(prefers-color-scheme: ${C})`,A.content=Zg(I.schemes[C][g.themeColor.replaceAll(/([_-][a-z])/g,o=>o.slice(1).toUpperCase())]),document.head.append(A);}}},Wg="ZnVuY3Rpb24gcShlKSB7CiAgcmV0dXJuIGUgPCAwID8gLTEgOiBlID09PSAwID8gMCA6IDE7Cn0KZnVuY3Rpb24gRnQoZSwgdCwgbikgewogIHJldHVybiAoMSAtIG4pICogZSArIG4gKiB0Owp9CmZ1bmN0aW9uIEh0KGUsIHQsIG4pIHsKICByZXR1cm4gbiA8IGUgPyBlIDogbiA+IHQgPyB0IDogbjsKfQpmdW5jdGlvbiBudChlLCB0LCBuKSB7CiAgcmV0dXJuIG4gPCBlID8gZSA6IG4gPiB0ID8gdCA6IG47Cn0KZnVuY3Rpb24gVnQoZSkgewogIHJldHVybiBlID0gZSAlIDM2MCwgZSA8IDAgJiYgKGUgPSBlICsgMzYwKSwgZTsKfQpmdW5jdGlvbiBDdChlKSB7CiAgcmV0dXJuIGUgPSBlICUgMzYwLCBlIDwgMCAmJiAoZSA9IGUgKyAzNjApLCBlOwp9CmZ1bmN0aW9uIFV0KGUsIHQpIHsKICByZXR1cm4gQ3QodCAtIGUpIDw9IDE4MCA/IDEgOiAtMTsKfQpmdW5jdGlvbiBFdChlLCB0KSB7CiAgcmV0dXJuIDE4MCAtIE1hdGguYWJzKE1hdGguYWJzKGUgLSB0KSAtIDE4MCk7Cn0KZnVuY3Rpb24gTXQoZSwgdCkgewogIGNvbnN0IG4gPSBlWzBdICogdFswXVswXSArIGVbMV0gKiB0WzBdWzFdICsgZVsyXSAqIHRbMF1bMl0sIHIgPSBlWzBdICogdFsxXVswXSArIGVbMV0gKiB0WzFdWzFdICsgZVsyXSAqIHRbMV1bMl0sIG8gPSBlWzBdICogdFsyXVswXSArIGVbMV0gKiB0WzJdWzFdICsgZVsyXSAqIHRbMl1bMl07CiAgcmV0dXJuIFtuLCByLCBvXTsKfQpjb25zdCBCdCA9IFsKICBbMC40MTIzMzg5NSwgMC4zNTc2MjA2NCwgMC4xODA1MTA0Ml0sCiAgWzAuMjEyNiwgMC43MTUyLCAwLjA3MjJdLAogIFswLjAxOTMyMTQxLCAwLjExOTE2MzgyLCAwLjk1MDM0NDc4XQpdLCBxdCA9IFsKICBbCiAgICAzLjI0MTM3NzQ3OTIzODg2ODUsCiAgICAtMS41Mzc2NjUyNDAyODUxODUxLAogICAgLTAuNDk4ODUzNjY4NDYyNjgwNTMKICBdLAogIFsKICAgIC0wLjk2OTE0NTI1MTMwMDUzMjEsCiAgICAxLjg3NTg4NTM0NTEwNjc4NzIsCiAgICAwLjA0MTU2NTg1NjE2OTEyMDYxCiAgXSwKICBbCiAgICAwLjA1NTYyMDkzNjg5NjkxMzA1LAogICAgLTAuMjAzOTU1MjQ1NjQ3NDIxMjMsCiAgICAxLjA1NzE3OTkxMTEyMjAzMzUKICBdCl0sIHl0ID0gWzk1LjA0NywgMTAwLCAxMDguODgzXTsKZnVuY3Rpb24gbHQoZSwgdCwgbikgewogIHJldHVybiAoMjU1IDw8IDI0IHwgKGUgJiAyNTUpIDw8IDE2IHwgKHQgJiAyNTUpIDw8IDggfCBuICYgMjU1KSA+Pj4gMDsKfQpmdW5jdGlvbiBPdChlKSB7CiAgY29uc3QgdCA9IHYoZVswXSksIG4gPSB2KGVbMV0pLCByID0gdihlWzJdKTsKICByZXR1cm4gbHQodCwgbiwgcik7Cn0KZnVuY3Rpb24ganQoZSkgewogIHJldHVybiBlID4+IDI0ICYgMjU1Owp9CmZ1bmN0aW9uIGt0KGUpIHsKICByZXR1cm4gZSA+PiAxNiAmIDI1NTsKfQpmdW5jdGlvbiBQdChlKSB7CiAgcmV0dXJuIGUgPj4gOCAmIDI1NTsKfQpmdW5jdGlvbiBJdChlKSB7CiAgcmV0dXJuIGUgJiAyNTU7Cn0KZnVuY3Rpb24gTHQoZSwgdCwgbikgewogIGNvbnN0IHIgPSBxdCwgbyA9IHJbMF1bMF0gKiBlICsgclswXVsxXSAqIHQgKyByWzBdWzJdICogbiwgYSA9IHJbMV1bMF0gKiBlICsgclsxXVsxXSAqIHQgKyByWzFdWzJdICogbiwgcyA9IHJbMl1bMF0gKiBlICsgclsyXVsxXSAqIHQgKyByWzJdWzJdICogbiwgaSA9IHYobyksIGMgPSB2KGEpLCBsID0gdihzKTsKICByZXR1cm4gbHQoaSwgYywgbCk7Cn0KZnVuY3Rpb24gWXQoZSkgewogIGNvbnN0IHQgPSBRKGt0KGUpKSwgbiA9IFEoUHQoZSkpLCByID0gUShJdChlKSk7CiAgcmV0dXJuIE10KFt0LCBuLCByXSwgQnQpOwp9CmZ1bmN0aW9uIEp0KGUsIHQsIG4pIHsKICBjb25zdCByID0geXQsIG8gPSAoZSArIDE2KSAvIDExNiwgYSA9IHQgLyA1MDAgKyBvLCBzID0gbyAtIG4gLyAyMDAsIGkgPSBodChhKSwgYyA9IGh0KG8pLCBsID0gaHQocyksIHUgPSBpICogclswXSwgbSA9IGMgKiByWzFdLCBnID0gbCAqIHJbMl07CiAgcmV0dXJuIEx0KHUsIG0sIGcpOwp9CmZ1bmN0aW9uIFd0KGUpIHsKICBjb25zdCB0ID0gUShrdChlKSksIG4gPSBRKFB0KGUpKSwgciA9IFEoSXQoZSkpLCBvID0gQnQsIGEgPSBvWzBdWzBdICogdCArIG9bMF1bMV0gKiBuICsgb1swXVsyXSAqIHIsIHMgPSBvWzFdWzBdICogdCArIG9bMV1bMV0gKiBuICsgb1sxXVsyXSAqIHIsIGkgPSBvWzJdWzBdICogdCArIG9bMl1bMV0gKiBuICsgb1syXVsyXSAqIHIsIGMgPSB5dCwgbCA9IGEgLyBjWzBdLCB1ID0gcyAvIGNbMV0sIG0gPSBpIC8gY1syXSwgZyA9IHJ0KGwpLCBkID0gcnQodSksIE0gPSBydChtKSwgQyA9IDExNiAqIGQgLSAxNiwgeSA9IDUwMCAqIChnIC0gZCksIEQgPSAyMDAgKiAoZCAtIE0pOwogIHJldHVybiBbQywgeSwgRF07Cn0KZnVuY3Rpb24gWHQoZSkgewogIGNvbnN0IHQgPSAkKGUpLCBuID0gdih0KTsKICByZXR1cm4gbHQobiwgbiwgbik7Cn0KZnVuY3Rpb24gdXQoZSkgewogIGNvbnN0IHQgPSBZdChlKVsxXTsKICByZXR1cm4gMTE2ICogcnQodCAvIDEwMCkgLSAxNjsKfQpmdW5jdGlvbiAkKGUpIHsKICByZXR1cm4gMTAwICogaHQoKGUgKyAxNikgLyAxMTYpOwp9CmZ1bmN0aW9uIGJ0KGUpIHsKICByZXR1cm4gcnQoZSAvIDEwMCkgKiAxMTYgLSAxNjsKfQpmdW5jdGlvbiBRKGUpIHsKICBjb25zdCB0ID0gZSAvIDI1NTsKICByZXR1cm4gdCA8PSAwLjA0MDQ0OTkzNiA/IHQgLyAxMi45MiAqIDEwMCA6IE1hdGgucG93KCh0ICsgMC4wNTUpIC8gMS4wNTUsIDIuNCkgKiAxMDA7Cn0KZnVuY3Rpb24gdihlKSB7CiAgY29uc3QgdCA9IGUgLyAxMDA7CiAgbGV0IG4gPSAwOwogIHJldHVybiB0IDw9IDMxMzA4ZS03ID8gbiA9IHQgKiAxMi45MiA6IG4gPSAxLjA1NSAqIE1hdGgucG93KHQsIDEgLyAyLjQpIC0gMC4wNTUsIEh0KDAsIDI1NSwgTWF0aC5yb3VuZChuICogMjU1KSk7Cn0KZnVuY3Rpb24gUXQoKSB7CiAgcmV0dXJuIHl0Owp9CmZ1bmN0aW9uIHJ0KGUpIHsKICBjb25zdCB0ID0gMC4wMDg4NTY0NTE2NzkwMzU2MzEsIG4gPSAyNDM4OSAvIDI3OwogIHJldHVybiBlID4gdCA/IE1hdGgucG93KGUsIDEgLyAzKSA6IChuICogZSArIDE2KSAvIDExNjsKfQpmdW5jdGlvbiBodChlKSB7CiAgY29uc3QgdCA9IDAuMDA4ODU2NDUxNjc5MDM1NjMxLCBuID0gMjQzODkgLyAyNywgciA9IGUgKiBlICogZTsKICByZXR1cm4gciA+IHQgPyByIDogKDExNiAqIGUgLSAxNikgLyBuOwp9CmNsYXNzIEogewogIC8qKgogICAqIENyZWF0ZSBWaWV3aW5nQ29uZGl0aW9ucyBmcm9tIGEgc2ltcGxlLCBwaHlzaWNhbGx5IHJlbGV2YW50LCBzZXQgb2YKICAgKiBwYXJhbWV0ZXJzLgogICAqCiAgICogQHBhcmFtIHdoaXRlUG9pbnQgV2hpdGUgcG9pbnQsIG1lYXN1cmVkIGluIHRoZSBYWVogY29sb3Igc3BhY2UuCiAgICogICAgIGRlZmF1bHQgPSBENjUsIG9yIHN1bm55IGRheSBhZnRlcm5vb24KICAgKiBAcGFyYW0gYWRhcHRpbmdMdW1pbmFuY2UgVGhlIGx1bWluYW5jZSBvZiB0aGUgYWRhcHRpbmcgZmllbGQuIEluZm9ybWFsbHksCiAgICogICAgIGhvdyBicmlnaHQgaXQgaXMgaW4gdGhlIHJvb20gd2hlcmUgdGhlIGNvbG9yIGlzIHZpZXdlZC4gQ2FuIGJlCiAgICogICAgIGNhbGN1bGF0ZWQgZnJvbSBsdXggYnkgbXVsdGlwbHlpbmcgbHV4IGJ5IDAuMDU4Ni4gZGVmYXVsdCA9IDExLjcyLAogICAqICAgICBvciAyMDAgbHV4LgogICAqIEBwYXJhbSBiYWNrZ3JvdW5kTHN0YXIgVGhlIGxpZ2h0bmVzcyBvZiB0aGUgYXJlYSBzdXJyb3VuZGluZyB0aGUgY29sb3IuCiAgICogICAgIG1lYXN1cmVkIGJ5IEwqIGluIEwqYSpiKi4gZGVmYXVsdCA9IDUwLjAKICAgKiBAcGFyYW0gc3Vycm91bmQgQSBnZW5lcmFsIGRlc2NyaXB0aW9uIG9mIHRoZSBsaWdodGluZyBzdXJyb3VuZGluZyB0aGUKICAgKiAgICAgY29sb3IuIDAgaXMgcGl0Y2ggZGFyaywgbGlrZSB3YXRjaGluZyBhIG1vdmllIGluIGEgdGhlYXRlci4gMS4wIGlzIGEKICAgKiAgICAgZGltbHkgbGlnaHQgcm9vbSwgbGlrZSB3YXRjaGluZyBUViBhdCBob21lIGF0IG5pZ2h0LiAyLjAgbWVhbnMgdGhlcmUKICAgKiAgICAgaXMgbm8gZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBsaWdodGluZyBvbiB0aGUgY29sb3IgYW5kIGFyb3VuZCBpdC4KICAgKiAgICAgZGVmYXVsdCA9IDIuMAogICAqIEBwYXJhbSBkaXNjb3VudGluZ0lsbHVtaW5hbnQgV2hldGhlciB0aGUgZXllIGFjY291bnRzIGZvciB0aGUgdGludCBvZiB0aGUKICAgKiAgICAgYW1iaWVudCBsaWdodGluZywgc3VjaCBhcyBrbm93aW5nIGFuIGFwcGxlIGlzIHN0aWxsIHJlZCBpbiBncmVlbiBsaWdodC4KICAgKiAgICAgZGVmYXVsdCA9IGZhbHNlLCB0aGUgZXllIGRvZXMgbm90IHBlcmZvcm0gdGhpcyBwcm9jZXNzIG9uCiAgICogICAgICAgc2VsZi1sdW1pbm91cyBvYmplY3RzIGxpa2UgZGlzcGxheXMuCiAgICovCiAgc3RhdGljIG1ha2UodCA9IFF0KCksIG4gPSAyMDAgLyBNYXRoLlBJICogJCg1MCkgLyAxMDAsIHIgPSA1MCwgbyA9IDIsIGEgPSAhMSkgewogICAgY29uc3QgcyA9IHQsIGkgPSBzWzBdICogMC40MDEyODggKyBzWzFdICogMC42NTAxNzMgKyBzWzJdICogLTAuMDUxNDYxLCBjID0gc1swXSAqIC0wLjI1MDI2OCArIHNbMV0gKiAxLjIwNDQxNCArIHNbMl0gKiAwLjA0NTg1NCwgbCA9IHNbMF0gKiAtMjA3OWUtNiArIHNbMV0gKiAwLjA0ODk1MiArIHNbMl0gKiAwLjk1MzEyNywgdSA9IDAuOCArIG8gLyAxMCwgbSA9IHUgPj0gMC45ID8gRnQoMC41OSwgMC42OSwgKHUgLSAwLjkpICogMTApIDogRnQoMC41MjUsIDAuNTksICh1IC0gMC44KSAqIDEwKTsKICAgIGxldCBnID0gYSA/IDEgOiB1ICogKDEgLSAxIC8gMy42ICogTWF0aC5leHAoKC1uIC0gNDIpIC8gOTIpKTsKICAgIGcgPSBnID4gMSA/IDEgOiBnIDwgMCA/IDAgOiBnOwogICAgY29uc3QgZCA9IHUsIE0gPSBbCiAgICAgIGcgKiAoMTAwIC8gaSkgKyAxIC0gZywKICAgICAgZyAqICgxMDAgLyBjKSArIDEgLSBnLAogICAgICBnICogKDEwMCAvIGwpICsgMSAtIGcKICAgIF0sIEMgPSAxIC8gKDUgKiBuICsgMSksIHkgPSBDICogQyAqIEMgKiBDLCBEID0gMSAtIHksIHAgPSB5ICogbiArIDAuMSAqIEQgKiBEICogTWF0aC5jYnJ0KDUgKiBuKSwgUCA9ICQocikgLyB0WzFdLCBUID0gMS40OCArIE1hdGguc3FydChQKSwgRiA9IDAuNzI1IC8gTWF0aC5wb3coUCwgMC4yKSwgUiA9IEYsIGIgPSBbCiAgICAgIE1hdGgucG93KHAgKiBNWzBdICogaSAvIDEwMCwgMC40MiksCiAgICAgIE1hdGgucG93KHAgKiBNWzFdICogYyAvIDEwMCwgMC40MiksCiAgICAgIE1hdGgucG93KHAgKiBNWzJdICogbCAvIDEwMCwgMC40MikKICAgIF0sIEkgPSBbCiAgICAgIDQwMCAqIGJbMF0gLyAoYlswXSArIDI3LjEzKSwKICAgICAgNDAwICogYlsxXSAvIChiWzFdICsgMjcuMTMpLAogICAgICA0MDAgKiBiWzJdIC8gKGJbMl0gKyAyNy4xMykKICAgIF0sIHggPSAoMiAqIElbMF0gKyBJWzFdICsgMC4wNSAqIElbMl0pICogRjsKICAgIHJldHVybiBuZXcgSihQLCB4LCBGLCBSLCBtLCBkLCBNLCBwLCBNYXRoLnBvdyhwLCAwLjI1KSwgVCk7CiAgfQogIC8qKgogICAqIFBhcmFtZXRlcnMgYXJlIGludGVybWVkaWF0ZSB2YWx1ZXMgb2YgdGhlIENBTTE2IGNvbnZlcnNpb24gcHJvY2Vzcy4gVGhlaXIKICAgKiBuYW1lcyBhcmUgc2hvcnRoYW5kIGZvciB0ZWNobmljYWwgY29sb3Igc2NpZW5jZSB0ZXJtaW5vbG9neSwgdGhpcyBjbGFzcwogICAqIHdvdWxkIG5vdCBiZW5lZml0IGZyb20gZG9jdW1lbnRpbmcgdGhlbSBpbmRpdmlkdWFsbHkuIEEgYnJpZWYgb3ZlcnZpZXcKICAgKiBpcyBhdmFpbGFibGUgaW4gdGhlIENBTTE2IHNwZWNpZmljYXRpb24sIGFuZCBhIGNvbXBsZXRlIG92ZXJ2aWV3IHJlcXVpcmVzCiAgICogYSBjb2xvciBzY2llbmNlIHRleHRib29rLCBzdWNoIGFzIEZhaXJjaGlsZCdzIENvbG9yIEFwcGVhcmFuY2UgTW9kZWxzLgogICAqLwogIGNvbnN0cnVjdG9yKHQsIG4sIHIsIG8sIGEsIHMsIGksIGMsIGwsIHUpIHsKICAgIHRoaXMubiA9IHQsIHRoaXMuYXcgPSBuLCB0aGlzLm5iYiA9IHIsIHRoaXMubmNiID0gbywgdGhpcy5jID0gYSwgdGhpcy5uYyA9IHMsIHRoaXMucmdiRCA9IGksIHRoaXMuZmwgPSBjLCB0aGlzLmZMUm9vdCA9IGwsIHRoaXMueiA9IHU7CiAgfQp9CkouREVGQVVMVCA9IEoubWFrZSgpOwpjbGFzcyBMIHsKICAvKioKICAgKiBBbGwgb2YgdGhlIENBTTE2IGRpbWVuc2lvbnMgY2FuIGJlIGNhbGN1bGF0ZWQgZnJvbSAzIG9mIHRoZSBkaW1lbnNpb25zLCBpbgogICAqIHRoZSBmb2xsb3dpbmcgY29tYmluYXRpb25zOgogICAqICAgICAgLSAge2ogb3IgcX0gYW5kIHtjLCBtLCBvciBzfSBhbmQgaHVlCiAgICogICAgICAtIGpzdGFyLCBhc3RhciwgYnN0YXIKICAgKiBQcmVmZXIgdXNpbmcgYSBzdGF0aWMgbWV0aG9kIHRoYXQgY29uc3RydWN0cyBmcm9tIDMgb2YgdGhvc2UgZGltZW5zaW9ucy4KICAgKiBUaGlzIGNvbnN0cnVjdG9yIGlzIGludGVuZGVkIGZvciB0aG9zZSBtZXRob2RzIHRvIHVzZSB0byByZXR1cm4gYWxsCiAgICogcG9zc2libGUgZGltZW5zaW9ucy4KICAgKgogICAqIEBwYXJhbSBodWUKICAgKiBAcGFyYW0gY2hyb21hIGluZm9ybWFsbHksIGNvbG9yZnVsbmVzcyAvIGNvbG9yIGludGVuc2l0eS4gbGlrZSBzYXR1cmF0aW9uCiAgICogICAgIGluIEhTTCwgZXhjZXB0IHBlcmNlcHR1YWxseSBhY2N1cmF0ZS4KICAgKiBAcGFyYW0gaiBsaWdodG5lc3MKICAgKiBAcGFyYW0gcSBicmlnaHRuZXNzOyByYXRpbyBvZiBsaWdodG5lc3MgdG8gd2hpdGUgcG9pbnQncyBsaWdodG5lc3MKICAgKiBAcGFyYW0gbSBjb2xvcmZ1bG5lc3MKICAgKiBAcGFyYW0gcyBzYXR1cmF0aW9uOyByYXRpbyBvZiBjaHJvbWEgdG8gd2hpdGUgcG9pbnQncyBjaHJvbWEKICAgKiBAcGFyYW0ganN0YXIgQ0FNMTYtVUNTIEogY29vcmRpbmF0ZQogICAqIEBwYXJhbSBhc3RhciBDQU0xNi1VQ1MgYSBjb29yZGluYXRlCiAgICogQHBhcmFtIGJzdGFyIENBTTE2LVVDUyBiIGNvb3JkaW5hdGUKICAgKi8KICBjb25zdHJ1Y3Rvcih0LCBuLCByLCBvLCBhLCBzLCBpLCBjLCBsKSB7