24 lines
169 KiB
JavaScript
24 lines
169 KiB
JavaScript
/*
|
|
* ATTENTION: An "eval-source-map" devtool has been used.
|
|
* This devtool is neither made for production nor for readable output files.
|
|
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
|
|
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
|
|
* or disable the default devtool with "devtool: false".
|
|
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
|
|
*/
|
|
exports.id = "vendor-chunks/qr-code-styling";
|
|
exports.ids = ["vendor-chunks/qr-code-styling"];
|
|
exports.modules = {
|
|
|
|
/***/ "(ssr)/./node_modules/qr-code-styling/lib/qr-code-styling.js":
|
|
/*!*************************************************************!*\
|
|
!*** ./node_modules/qr-code-styling/lib/qr-code-styling.js ***!
|
|
\*************************************************************/
|
|
/***/ ((module) => {
|
|
|
|
eval("!function(t,e){ true?module.exports=e():0}(self,(function(){return(()=>{var t={192:(t,e)=>{var r,n,o=function(){var t=function(t,e){var r=t,n=a[e],o=null,i=0,u=null,v=[],y={},_=function(t,e){o=function(t){for(var e=new Array(t),r=0;r<t;r+=1){e[r]=new Array(t);for(var n=0;n<t;n+=1)e[r][n]=null}return e}(i=4*r+17),m(0,0),m(i-7,0),m(0,i-7),x(),b(),S(t,e),r>=7&&M(t),null==u&&(u=P(r,n,v)),C(u,e)},m=function(t,e){for(var r=-1;r<=7;r+=1)if(!(t+r<=-1||i<=t+r))for(var n=-1;n<=7;n+=1)e+n<=-1||i<=e+n||(o[t+r][e+n]=0<=r&&r<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=n&&n<=4)},b=function(){for(var t=8;t<i-8;t+=1)null==o[t][6]&&(o[t][6]=t%2==0);for(var e=8;e<i-8;e+=1)null==o[6][e]&&(o[6][e]=e%2==0)},x=function(){for(var t=s.getPatternPosition(r),e=0;e<t.length;e+=1)for(var n=0;n<t.length;n+=1){var i=t[e],a=t[n];if(null==o[i][a])for(var u=-2;u<=2;u+=1)for(var c=-2;c<=2;c+=1)o[i+u][a+c]=-2==u||2==u||-2==c||2==c||0==u&&0==c}},M=function(t){for(var e=s.getBCHTypeNumber(r),n=0;n<18;n+=1){var a=!t&&1==(e>>n&1);o[Math.floor(n/3)][n%3+i-8-3]=a}for(n=0;n<18;n+=1)a=!t&&1==(e>>n&1),o[n%3+i-8-3][Math.floor(n/3)]=a},S=function(t,e){for(var r=n<<3|e,a=s.getBCHTypeInfo(r),u=0;u<15;u+=1){var c=!t&&1==(a>>u&1);u<6?o[u][8]=c:u<8?o[u+1][8]=c:o[i-15+u][8]=c}for(u=0;u<15;u+=1)c=!t&&1==(a>>u&1),u<8?o[8][i-u-1]=c:u<9?o[8][15-u-1+1]=c:o[8][15-u-1]=c;o[i-8][8]=!t},C=function(t,e){for(var r=-1,n=i-1,a=7,u=0,c=s.getMaskFunction(e),h=i-1;h>0;h-=2)for(6==h&&(h-=1);;){for(var d=0;d<2;d+=1)if(null==o[n][h-d]){var l=!1;u<t.length&&(l=1==(t[u]>>>a&1)),c(n,h-d)&&(l=!l),o[n][h-d]=l,-1==(a-=1)&&(u+=1,a=7)}if((n+=r)<0||i<=n){n-=r,r=-r;break}}},P=function(t,e,r){for(var n=h.getRSBlocks(t,e),o=d(),i=0;i<r.length;i+=1){var a=r[i];o.put(a.getMode(),4),o.put(a.getLength(),s.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<n.length;i+=1)u+=n[i].dataCount;if(o.getLengthInBits()>8*u)throw\"code length overflow. (\"+o.getLengthInBits()+\">\"+8*u+\")\";for(o.getLengthInBits()+4<=8*u&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*u||(o.put(236,8),o.getLengthInBits()>=8*u));)o.put(17,8);return function(t,e){for(var r=0,n=0,o=0,i=new Array(e.length),a=new Array(e.length),u=0;u<e.length;u+=1){var h=e[u].dataCount,d=e[u].totalCount-h;n=Math.max(n,h),o=Math.max(o,d),i[u]=new Array(h);for(var l=0;l<i[u].length;l+=1)i[u][l]=255&t.getBuffer()[l+r];r+=h;var f=s.getErrorCorrectPolynomial(d),p=c(i[u],f.getLength()-1).mod(f);for(a[u]=new Array(f.getLength()-1),l=0;l<a[u].length;l+=1){var g=l+p.getLength()-a[u].length;a[u][l]=g>=0?p.getAt(g):0}}var v=0;for(l=0;l<e.length;l+=1)v+=e[l].totalCount;var y=new Array(v),w=0;for(l=0;l<n;l+=1)for(u=0;u<e.length;u+=1)l<i[u].length&&(y[w]=i[u][l],w+=1);for(l=0;l<o;l+=1)for(u=0;u<e.length;u+=1)l<a[u].length&&(y[w]=a[u][l],w+=1);return y}(o,n)};y.addData=function(t,e){var r=null;switch(e=e||\"Byte\"){case\"Numeric\":r=l(t);break;case\"Alphanumeric\":r=f(t);break;case\"Byte\":r=p(t);break;case\"Kanji\":r=g(t);break;default:throw\"mode:\"+e}v.push(r),u=null},y.isDark=function(t,e){if(t<0||i<=t||e<0||i<=e)throw t+\",\"+e;return o[t][e]},y.getModuleCount=function(){return i},y.make=function(){if(r<1){for(var t=1;t<40;t++){for(var e=h.getRSBlocks(t,n),o=d(),i=0;i<v.length;i++){var a=v[i];o.put(a.getMode(),4),o.put(a.getLength(),s.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<e.length;i++)u+=e[i].dataCount;if(o.getLengthInBits()<=8*u)break}r=t}_(!1,function(){for(var t=0,e=0,r=0;r<8;r+=1){_(!0,r);var n=s.getLostPoint(y);(0==r||t>n)&&(t=n,e=r)}return e}())},y.createTableTag=function(t,e){t=t||2;var r=\"\";r+='<table style=\"',r+=\" border-width: 0px; border-style: none;\",r+=\" border-collapse: collapse;\",r+=\" padding: 0px; margin: \"+(e=void 0===e?4*t:e)+\"px;\",r+='\">',r+=\"<tbody>\";for(var n=0;n<y.getModuleCount();n+=1){r+=\"<tr>\";for(var o=0;o<y.getModuleCount();o+=1)r+='<td style=\"',r+=\" border-width: 0px; border-style: none;\",r+=\" border-collapse: collapse;\",r+=\" padding: 0px; margin: 0px;\",r+=\" width: \"+t+\"px;\",r+=\" height: \"+t+\"px;\",r+=\" background-color: \",r+=y.isDark(n,o)?\"#000000\":\"#ffffff\",r+=\";\",r+='\"/>';r+=\"</tr>\"}return(r+=\"</tbody>\")+\"</table>\"},y.createSvgTag=function(t,e,r,n){var o={};\"object\"==typeof arguments[0]&&(t=(o=arguments[0]).cellSize,e=o.margin,r=o.alt,n=o.title),t=t||2,e=void 0===e?4*t:e,(r=\"string\"==typeof r?{text:r}:r||{}).text=r.text||null,r.id=r.text?r.id||\"qrcode-description\":null,(n=\"string\"==typeof n?{text:n}:n||{}).text=n.text||null,n.id=n.text?n.id||\"qrcode-title\":null;var i,a,s,u,c=y.getModuleCount()*t+2*e,h=\"\";for(u=\"l\"+t+\",0 0,\"+t+\" -\"+t+\",0 0,-\"+t+\"z \",h+='<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"',h+=o.scalable?\"\":' width=\"'+c+'px\" height=\"'+c+'px\"',h+=' viewBox=\"0 0 '+c+\" \"+c+'\" ',h+=' preserveAspectRatio=\"xMinYMin meet\"',h+=n.text||r.text?' role=\"img\" aria-labelledby=\"'+O([n.id,r.id].join(\" \").trim())+'\"':\"\",h+=\">\",h+=n.text?'<title id=\"'+O(n.id)+'\">'+O(n.text)+\"</title>\":\"\",h+=r.text?'<description id=\"'+O(r.id)+'\">'+O(r.text)+\"</description>\":\"\",h+='<rect width=\"100%\" height=\"100%\" fill=\"white\" cx=\"0\" cy=\"0\"/>',h+='<path d=\"',a=0;a<y.getModuleCount();a+=1)for(s=a*t+e,i=0;i<y.getModuleCount();i+=1)y.isDark(a,i)&&(h+=\"M\"+(i*t+e)+\",\"+s+u);return(h+='\" stroke=\"transparent\" fill=\"black\"/>')+\"</svg>\"},y.createDataURL=function(t,e){t=t||2,e=void 0===e?4*t:e;var r=y.getModuleCount()*t+2*e,n=e,o=r-e;return w(r,r,(function(e,r){if(n<=e&&e<o&&n<=r&&r<o){var i=Math.floor((e-n)/t),a=Math.floor((r-n)/t);return y.isDark(a,i)?0:1}return 1}))},y.createImgTag=function(t,e,r){t=t||2,e=void 0===e?4*t:e;var n=y.getModuleCount()*t+2*e,o=\"\";return o+=\"<img\",o+=' src=\"',o+=y.createDataURL(t,e),o+='\"',o+=' width=\"',o+=n,o+='\"',o+=' height=\"',o+=n,o+='\"',r&&(o+=' alt=\"',o+=O(r),o+='\"'),o+\"/>\"};var O=function(t){for(var e=\"\",r=0;r<t.length;r+=1){var n=t.charAt(r);switch(n){case\"<\":e+=\"<\";break;case\">\":e+=\">\";break;case\"&\":e+=\"&\";break;case'\"':e+=\""\";break;default:e+=n}}return e};return y.createASCII=function(t,e){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var e,r,n,o,i,a=1*y.getModuleCount()+2*t,s=t,u=a-t,c={\"██\":\"█\",\"█ \":\"▀\",\" █\":\"▄\",\" \":\" \"},h={\"██\":\"▀\",\"█ \":\"▀\",\" █\":\" \",\" \":\" \"},d=\"\";for(e=0;e<a;e+=2){for(n=Math.floor((e-s)/1),o=Math.floor((e+1-s)/1),r=0;r<a;r+=1)i=\"█\",s<=r&&r<u&&s<=e&&e<u&&y.isDark(n,Math.floor((r-s)/1))&&(i=\" \"),s<=r&&r<u&&s<=e+1&&e+1<u&&y.isDark(o,Math.floor((r-s)/1))?i+=\" \":i+=\"█\",d+=t<1&&e+1>=u?h[i]:c[i];d+=\"\\n\"}return a%2&&t>0?d.substring(0,d.length-a-1)+Array(a+1).join(\"▀\"):d.substring(0,d.length-1)}(e);t-=1,e=void 0===e?2*t:e;var r,n,o,i,a=y.getModuleCount()*t+2*e,s=e,u=a-e,c=Array(t+1).join(\"██\"),h=Array(t+1).join(\" \"),d=\"\",l=\"\";for(r=0;r<a;r+=1){for(o=Math.floor((r-s)/t),l=\"\",n=0;n<a;n+=1)i=1,s<=n&&n<u&&s<=r&&r<u&&y.isDark(o,Math.floor((n-s)/t))&&(i=0),l+=i?c:h;for(o=0;o<t;o+=1)d+=l+\"\\n\"}return d.substring(0,d.length-1)},y.renderTo2dContext=function(t,e){e=e||2;for(var r=y.getModuleCount(),n=0;n<r;n++)for(var o=0;o<r;o++)t.fillStyle=y.isDark(n,o)?\"black\":\"white\",t.fillRect(n*e,o*e,e,e)},y};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var e=[],r=0;r<t.length;r+=1){var n=t.charCodeAt(r);e.push(255&n)}return e}}).default,t.createStringToBytes=function(t,e){var r=function(){for(var r=y(t),n=function(){var t=r.read();if(-1==t)throw\"eof\";return t},o=0,i={};;){var a=r.read();if(-1==a)break;var s=n(),u=n()<<8|n();i[String.fromCharCode(a<<8|s)]=u,o+=1}if(o!=e)throw o+\" != \"+e;return i}(),n=\"?\".charCodeAt(0);return function(t){for(var e=[],o=0;o<t.length;o+=1){var i=t.charCodeAt(o);if(i<128)e.push(i);else{var a=r[t.charAt(o)];\"number\"==typeof a?(255&a)==a?e.push(a):(e.push(a>>>8),e.push(255&a)):e.push(n)}}return e}};var e,r,n,o,i,a={L:1,M:0,Q:3,H:2},s=(e=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],r=1335,n=7973,i=function(t){for(var e=0;0!=t;)e+=1,t>>>=1;return e},(o={}).getBCHTypeInfo=function(t){for(var e=t<<10;i(e)-i(r)>=0;)e^=r<<i(e)-i(r);return 21522^(t<<10|e)},o.getBCHTypeNumber=function(t){for(var e=t<<12;i(e)-i(n)>=0;)e^=n<<i(e)-i(n);return t<<12|e},o.getPatternPosition=function(t){return e[t-1]},o.getMaskFunction=function(t){switch(t){case 0:return function(t,e){return(t+e)%2==0};case 1:return function(t,e){return t%2==0};case 2:return function(t,e){return e%3==0};case 3:return function(t,e){return(t+e)%3==0};case 4:return function(t,e){return(Math.floor(t/2)+Math.floor(e/3))%2==0};case 5:return function(t,e){return t*e%2+t*e%3==0};case 6:return function(t,e){return(t*e%2+t*e%3)%2==0};case 7:return function(t,e){return(t*e%3+(t+e)%2)%2==0};default:throw\"bad maskPattern:\"+t}},o.getErrorCorrectPolynomial=function(t){for(var e=c([1],0),r=0;r<t;r+=1)e=e.multiply(c([1,u.gexp(r)],0));return e},o.getLengthInBits=function(t,e){if(1<=e&&e<10)switch(t){case 1:return 10;case 2:return 9;case 4:case 8:return 8;default:throw\"mode:\"+t}else if(e<27)switch(t){case 1:return 12;case 2:return 11;case 4:return 16;case 8:return 10;default:throw\"mode:\"+t}else{if(!(e<41))throw\"type:\"+e;switch(t){case 1:return 14;case 2:return 13;case 4:return 16;case 8:return 12;default:throw\"mode:\"+t}}},o.getLostPoint=function(t){for(var e=t.getModuleCount(),r=0,n=0;n<e;n+=1)for(var o=0;o<e;o+=1){for(var i=0,a=t.isDark(n,o),s=-1;s<=1;s+=1)if(!(n+s<0||e<=n+s))for(var u=-1;u<=1;u+=1)o+u<0||e<=o+u||0==s&&0==u||a==t.isDark(n+s,o+u)&&(i+=1);i>5&&(r+=3+i-5)}for(n=0;n<e-1;n+=1)for(o=0;o<e-1;o+=1){var c=0;t.isDark(n,o)&&(c+=1),t.isDark(n+1,o)&&(c+=1),t.isDark(n,o+1)&&(c+=1),t.isDark(n+1,o+1)&&(c+=1),0!=c&&4!=c||(r+=3)}for(n=0;n<e;n+=1)for(o=0;o<e-6;o+=1)t.isDark(n,o)&&!t.isDark(n,o+1)&&t.isDark(n,o+2)&&t.isDark(n,o+3)&&t.isDark(n,o+4)&&!t.isDark(n,o+5)&&t.isDark(n,o+6)&&(r+=40);for(o=0;o<e;o+=1)for(n=0;n<e-6;n+=1)t.isDark(n,o)&&!t.isDark(n+1,o)&&t.isDark(n+2,o)&&t.isDark(n+3,o)&&t.isDark(n+4,o)&&!t.isDark(n+5,o)&&t.isDark(n+6,o)&&(r+=40);var h=0;for(o=0;o<e;o+=1)for(n=0;n<e;n+=1)t.isDark(n,o)&&(h+=1);return r+Math.abs(100*h/e/e-50)/5*10},o),u=function(){for(var t=new Array(256),e=new Array(256),r=0;r<8;r+=1)t[r]=1<<r;for(r=8;r<256;r+=1)t[r]=t[r-4]^t[r-5]^t[r-6]^t[r-8];for(r=0;r<255;r+=1)e[t[r]]=r;return{glog:function(t){if(t<1)throw\"glog(\"+t+\")\";return e[t]},gexp:function(e){for(;e<0;)e+=255;for(;e>=256;)e-=255;return t[e]}}}();function c(t,e){if(void 0===t.length)throw t.length+\"/\"+e;var r=function(){for(var r=0;r<t.length&&0==t[r];)r+=1;for(var n=new Array(t.length-r+e),o=0;o<t.length-r;o+=1)n[o]=t[o+r];return n}(),n={getAt:function(t){return r[t]},getLength:function(){return r.length},multiply:function(t){for(var e=new Array(n.getLength()+t.getLength()-1),r=0;r<n.getLength();r+=1)for(var o=0;o<t.getLength();o+=1)e[r+o]^=u.gexp(u.glog(n.getAt(r))+u.glog(t.getAt(o)));return c(e,0)},mod:function(t){if(n.getLength()-t.getLength()<0)return n;for(var e=u.glog(n.getAt(0))-u.glog(t.getAt(0)),r=new Array(n.getLength()),o=0;o<n.getLength();o+=1)r[o]=n.getAt(o);for(o=0;o<t.getLength();o+=1)r[o]^=u.gexp(u.glog(t.getAt(o))+e);return c(r,0).mod(t)}};return n}var h=function(){var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],e=function(t,e){var r={};return r.totalCount=t,r.dataCount=e,r},r={getRSBlocks:function(r,n){var o=function(e,r){switch(r){case a.L:return t[4*(e-1)+0];case a.M:return t[4*(e-1)+1];case a.Q:return t[4*(e-1)+2];case a.H:return t[4*(e-1)+3];default:return}}(r,n);if(void 0===o)throw\"bad rs block @ typeNumber:\"+r+\"/errorCorrectionLevel:\"+n;for(var i=o.length/3,s=[],u=0;u<i;u+=1)for(var c=o[3*u+0],h=o[3*u+1],d=o[3*u+2],l=0;l<c;l+=1)s.push(e(h,d));return s}};return r}(),d=function(){var t=[],e=0,r={getBuffer:function(){return t},getAt:function(e){var r=Math.floor(e/8);return 1==(t[r]>>>7-e%8&1)},put:function(t,e){for(var n=0;n<e;n+=1)r.putBit(1==(t>>>e-n-1&1))},getLengthInBits:function(){return e},putBit:function(r){var n=Math.floor(e/8);t.length<=n&&t.push(0),r&&(t[n]|=128>>>e%8),e+=1}};return r},l=function(t){var e=t,r={getMode:function(){return 1},getLength:function(t){return e.length},write:function(t){for(var r=e,o=0;o+2<r.length;)t.put(n(r.substring(o,o+3)),10),o+=3;o<r.length&&(r.length-o==1?t.put(n(r.substring(o,o+1)),4):r.length-o==2&&t.put(n(r.substring(o,o+2)),7))}},n=function(t){for(var e=0,r=0;r<t.length;r+=1)e=10*e+o(t.charAt(r));return e},o=function(t){if(\"0\"<=t&&t<=\"9\")return t.charCodeAt(0)-\"0\".charCodeAt(0);throw\"illegal char :\"+t};return r},f=function(t){var e=t,r={getMode:function(){return 2},getLength:function(t){return e.length},write:function(t){for(var r=e,o=0;o+1<r.length;)t.put(45*n(r.charAt(o))+n(r.charAt(o+1)),11),o+=2;o<r.length&&t.put(n(r.charAt(o)),6)}},n=function(t){if(\"0\"<=t&&t<=\"9\")return t.charCodeAt(0)-\"0\".charCodeAt(0);if(\"A\"<=t&&t<=\"Z\")return t.charCodeAt(0)-\"A\".charCodeAt(0)+10;switch(t){case\" \":return 36;case\"$\":return 37;case\"%\":return 38;case\"*\":return 39;case\"+\":return 40;case\"-\":return 41;case\".\":return 42;case\"/\":return 43;case\":\":return 44;default:throw\"illegal char :\"+t}};return r},p=function(e){var r=t.stringToBytes(e);return{getMode:function(){return 4},getLength:function(t){return r.length},write:function(t){for(var e=0;e<r.length;e+=1)t.put(r[e],8)}}},g=function(e){var r=t.stringToBytesFuncs.SJIS;if(!r)throw\"sjis not supported.\";!function(t,e){var n=r(\"友\");if(2!=n.length||38726!=(n[0]<<8|n[1]))throw\"sjis not supported.\"}();var n=r(e);return{getMode:function(){return 8},getLength:function(t){return~~(n.length/2)},write:function(t){for(var e=n,r=0;r+1<e.length;){var o=(255&e[r])<<8|255&e[r+1];if(33088<=o&&o<=40956)o-=33088;else{if(!(57408<=o&&o<=60351))throw\"illegal char at \"+(r+1)+\"/\"+o;o-=49472}o=192*(o>>>8&255)+(255&o),t.put(o,13),r+=2}if(r<e.length)throw\"illegal char at \"+(r+1)}}},v=function(){var t=[],e={writeByte:function(e){t.push(255&e)},writeShort:function(t){e.writeByte(t),e.writeByte(t>>>8)},writeBytes:function(t,r,n){r=r||0,n=n||t.length;for(var o=0;o<n;o+=1)e.writeByte(t[o+r])},writeString:function(t){for(var r=0;r<t.length;r+=1)e.writeByte(t.charCodeAt(r))},toByteArray:function(){return t},toString:function(){var e=\"\";e+=\"[\";for(var r=0;r<t.length;r+=1)r>0&&(e+=\",\"),e+=t[r];return e+\"]\"}};return e},y=function(t){var e=t,r=0,n=0,o=0,i={read:function(){for(;o<8;){if(r>=e.length){if(0==o)return-1;throw\"unexpected end of file./\"+o}var t=e.charAt(r);if(r+=1,\"=\"==t)return o=0,-1;t.match(/^\\s$/)||(n=n<<6|a(t.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i}},a=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw\"c:\"+t};return i},w=function(t,e,r){for(var n=function(t,e){var r=t,n=e,o=new Array(t*e),i={setPixel:function(t,e,n){o[e*r+t]=n},write:function(t){t.writeString(\"GIF87a\"),t.writeShort(r),t.writeShort(n),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(\",\"),t.writeShort(0),t.writeShort(0),t.writeShort(r),t.writeShort(n),t.writeByte(0);var e=a(2);t.writeByte(2);for(var o=0;e.length-o>255;)t.writeByte(255),t.writeBytes(e,o,255),o+=255;t.writeByte(e.length-o),t.writeBytes(e,o,e.length-o),t.writeByte(0),t.writeString(\";\")}},a=function(t){for(var e=1<<t,r=1+(1<<t),n=t+1,i=s(),a=0;a<e;a+=1)i.add(String.fromCharCode(a));i.add(String.fromCharCode(e)),i.add(String.fromCharCode(r));var u,c,h,d=v(),l=(u=d,c=0,h=0,{write:function(t,e){if(t>>>e!=0)throw\"length over\";for(;c+e>=8;)u.writeByte(255&(t<<c|h)),e-=8-c,t>>>=8-c,h=0,c=0;h|=t<<c,c+=e},flush:function(){c>0&&u.writeByte(h)}});l.write(e,n);var f=0,p=String.fromCharCode(o[f]);for(f+=1;f<o.length;){var g=String.fromCharCode(o[f]);f+=1,i.contains(p+g)?p+=g:(l.write(i.indexOf(p),n),i.size()<4095&&(i.size()==1<<n&&(n+=1),i.add(p+g)),p=g)}return l.write(i.indexOf(p),n),l.write(r,n),l.flush(),d.toByteArray()},s=function(){var t={},e=0,r={add:function(n){if(r.contains(n))throw\"dup key:\"+n;t[n]=e,e+=1},size:function(){return e},indexOf:function(e){return t[e]},contains:function(e){return void 0!==t[e]}};return r};return i}(t,e),o=0;o<e;o+=1)for(var i=0;i<t;i+=1)n.setPixel(i,o,r(i,o));var a=v();n.write(a);for(var s=function(){var t=0,e=0,r=0,n=\"\",o={},i=function(t){n+=String.fromCharCode(a(63&t))},a=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw\"n:\"+t};return o.writeByte=function(n){for(t=t<<8|255&n,e+=8,r+=1;e>=6;)i(t>>>e-6),e-=6},o.flush=function(){if(e>0&&(i(t<<6-e),t=0,e=0),r%3!=0)for(var o=3-r%3,a=0;a<o;a+=1)n+=\"=\"},o.toString=function(){return n},o}(),u=a.toByteArray(),c=0;c<u.length;c+=1)s.writeByte(u[c]);return s.flush(),\"data:image/gif;base64,\"+s};return t}();o.stringToBytesFuncs[\"UTF-8\"]=function(t){return function(t){for(var e=[],r=0;r<t.length;r++){var n=t.charCodeAt(r);n<128?e.push(n):n<2048?e.push(192|n>>6,128|63&n):n<55296||n>=57344?e.push(224|n>>12,128|n>>6&63,128|63&n):(r++,n=65536+((1023&n)<<10|1023&t.charCodeAt(r)),e.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return e}(t)},void 0===(n=\"function\"==typeof(r=function(){return o})?r.apply(e,[]):r)||(t.exports=n)},796:(t,e,r)=>{\"use strict\";r.d(e,{default:()=>W});var n=function(){return(n=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)},o=function(){for(var t=0,e=0,r=arguments.length;e<r;e++)t+=arguments[e].length;var n=Array(t),o=0;for(e=0;e<r;e++)for(var i=arguments[e],a=0,s=i.length;a<s;a++,o++)n[o]=i[a];return n},i=function(t){return!!t&&\"object\"==typeof t&&!Array.isArray(t)};function a(t){for(var e=[],r=1;r<arguments.length;r++)e[r-1]=arguments[r];if(!e.length)return t;var s=e.shift();return void 0!==s&&i(t)&&i(s)?(t=n({},t),Object.keys(s).forEach((function(e){var r=t[e],n=s[e];Array.isArray(r)&&Array.isArray(n)?t[e]=n:i(r)&&i(n)?t[e]=a(Object.assign({},r),n):t[e]=n})),a.apply(void 0,o([t],e))):t}function s(t,e){var r=document.createElement(\"a\");r.download=e,r.href=t,document.body.appendChild(r),r.click(),document.body.removeChild(r)}function u(t){var e=t.originalHeight,r=t.originalWidth,n=t.maxHiddenDots,o=t.maxHiddenAxisDots,i=t.dotSize,a={x:0,y:0},s={x:0,y:0};if(e<=0||r<=0||n<=0||i<=0)return{height:0,width:0,hideYDots:0,hideXDots:0};var u=e/r;return a.x=Math.floor(Math.sqrt(n/u)),a.x<=0&&(a.x=1),o&&o<a.x&&(a.x=o),a.x%2==0&&a.x--,s.x=a.x*i,a.y=1+2*Math.ceil((a.x*u-1)/2),s.y=Math.round(s.x*u),(a.y*a.x>n||o&&o<a.y)&&(o&&o<a.y?(a.y=o,a.y%2==0&&a.x--):a.y-=2,s.y=a.y*i,a.x=1+2*Math.ceil((a.y/u-1)/2),s.x=Math.round(s.y/u)),{height:s.y,width:s.x,hideYDots:a.y,hideXDots:a.x}}const c={L:.07,M:.15,Q:.25,H:.3},h=\"dots\",d=\"rounded\",l=\"classy\",f=\"classy-rounded\",p=\"square\",g=\"extra-rounded\";var v=function(){return(v=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const y=function(){function t(t){var e=t.context,r=t.type;this._context=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o,i=this._context;switch(this._type){case h:o=this._drawDot;break;case l:o=this._drawClassy;break;case f:o=this._drawClassyRounded;break;case d:o=this._drawRounded;break;case g:o=this._drawExtraRounded;break;case p:default:o=this._drawSquare}o.call(this,{x:t,y:e,size:r,context:i,getNeighbor:n})},t.prototype._rotateFigure=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation,a=void 0===i?0:i,s=t.draw,u=e+n/2,c=r+n/2;o.translate(u,c),a&&o.rotate(a),s(),o.closePath(),a&&o.rotate(-a),o.translate(-u,-c)},t.prototype._basicDot=function(t){var e=t.size,r=t.context;this._rotateFigure(v(v({},t),{draw:function(){r.arc(0,0,e/2,0,2*Math.PI)}}))},t.prototype._basicSquare=function(t){var e=t.size,r=t.context;this._rotateFigure(v(v({},t),{draw:function(){r.rect(-e/2,-e/2,e,e)}}))},t.prototype._basicSideRounded=function(t){var e=t.size,r=t.context;this._rotateFigure(v(v({},t),{draw:function(){r.arc(0,0,e/2,-Math.PI/2,Math.PI/2),r.lineTo(-e/2,e/2),r.lineTo(-e/2,-e/2),r.lineTo(0,-e/2)}}))},t.prototype._basicCornerRounded=function(t){var e=t.size,r=t.context;this._rotateFigure(v(v({},t),{draw:function(){r.arc(0,0,e/2,-Math.PI/2,0),r.lineTo(e/2,e/2),r.lineTo(-e/2,e/2),r.lineTo(-e/2,-e/2),r.lineTo(0,-e/2)}}))},t.prototype._basicCornerExtraRounded=function(t){var e=t.size,r=t.context;this._rotateFigure(v(v({},t),{draw:function(){r.arc(-e/2,e/2,e,-Math.PI/2,0),r.lineTo(-e/2,e/2),r.lineTo(-e/2,-e/2)}}))},t.prototype._basicCornersRounded=function(t){var e=t.size,r=t.context;this._rotateFigure(v(v({},t),{draw:function(){r.arc(0,0,e/2,-Math.PI/2,0),r.lineTo(e/2,e/2),r.lineTo(0,e/2),r.arc(0,0,e/2,Math.PI/2,Math.PI),r.lineTo(-e/2,-e/2),r.lineTo(0,-e/2)}}))},t.prototype._basicCornersExtraRounded=function(t){var e=t.size,r=t.context;this._rotateFigure(v(v({},t),{draw:function(){r.arc(-e/2,e/2,e,-Math.PI/2,0),r.arc(e/2,-e/2,e,Math.PI/2,Math.PI)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.context;this._basicDot({x:e,y:r,size:n,context:o,rotation:0})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.context;this._basicSquare({x:e,y:r,size:n,context:o,rotation:0})},t.prototype._drawRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.getNeighbor,a=i?+i(-1,0):0,s=i?+i(1,0):0,u=i?+i(0,-1):0,c=i?+i(0,1):0,h=a+s+u+c;if(0!==h)if(h>2||a&&s||u&&c)this._basicSquare({x:e,y:r,size:n,context:o,rotation:0});else{if(2===h){var d=0;return a&&u?d=Math.PI/2:u&&s?d=Math.PI:s&&c&&(d=-Math.PI/2),void this._basicCornerRounded({x:e,y:r,size:n,context:o,rotation:d})}if(1===h)return d=0,u?d=Math.PI/2:s?d=Math.PI:c&&(d=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,context:o,rotation:d})}else this._basicDot({x:e,y:r,size:n,context:o,rotation:0})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.getNeighbor,a=i?+i(-1,0):0,s=i?+i(1,0):0,u=i?+i(0,-1):0,c=i?+i(0,1):0,h=a+s+u+c;if(0!==h)if(h>2||a&&s||u&&c)this._basicSquare({x:e,y:r,size:n,context:o,rotation:0});else{if(2===h){var d=0;return a&&u?d=Math.PI/2:u&&s?d=Math.PI:s&&c&&(d=-Math.PI/2),void this._basicCornerExtraRounded({x:e,y:r,size:n,context:o,rotation:d})}if(1===h)return d=0,u?d=Math.PI/2:s?d=Math.PI:c&&(d=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,context:o,rotation:d})}else this._basicDot({x:e,y:r,size:n,context:o,rotation:0})},t.prototype._drawClassy=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.getNeighbor,a=i?+i(-1,0):0,s=i?+i(1,0):0,u=i?+i(0,-1):0,c=i?+i(0,1):0;0!==a+s+u+c?a||u?s||c?this._basicSquare({x:e,y:r,size:n,context:o,rotation:0}):this._basicCornerRounded({x:e,y:r,size:n,context:o,rotation:Math.PI/2}):this._basicCornerRounded({x:e,y:r,size:n,context:o,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,context:o,rotation:Math.PI/2})},t.prototype._drawClassyRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.getNeighbor,a=i?+i(-1,0):0,s=i?+i(1,0):0,u=i?+i(0,-1):0,c=i?+i(0,1):0;0!==a+s+u+c?a||u?s||c?this._basicSquare({x:e,y:r,size:n,context:o,rotation:0}):this._basicCornerExtraRounded({x:e,y:r,size:n,context:o,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:e,y:r,size:n,context:o,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,context:o,rotation:Math.PI/2})},t}(),w=\"square\",_=\"extra-rounded\";var m=function(){return(m=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const b=function(){function t(t){var e=t.context,r=t.type;this._context=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o,i=this._context;switch(this._type){case w:o=this._drawSquare;break;case _:o=this._drawExtraRounded;break;case\"dot\":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,context:i,rotation:n})},t.prototype._rotateFigure=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation,a=void 0===i?0:i,s=t.draw,u=e+n/2,c=r+n/2;o.translate(u,c),a&&o.rotate(a),s(),o.closePath(),a&&o.rotate(-a),o.translate(-u,-c)},t.prototype._basicDot=function(t){var e=t.size,r=t.context,n=e/7;this._rotateFigure(m(m({},t),{draw:function(){r.arc(0,0,e/2,0,2*Math.PI),r.arc(0,0,e/2-n,0,2*Math.PI)}}))},t.prototype._basicSquare=function(t){var e=t.size,r=t.context,n=e/7;this._rotateFigure(m(m({},t),{draw:function(){r.rect(-e/2,-e/2,e,e),r.rect(-e/2+n,-e/2+n,e-2*n,e-2*n)}}))},t.prototype._basicExtraRounded=function(t){var e=t.size,r=t.context,n=e/7;this._rotateFigure(m(m({},t),{draw:function(){r.arc(-n,-n,2.5*n,Math.PI,-Math.PI/2),r.lineTo(n,-3.5*n),r.arc(n,-n,2.5*n,-Math.PI/2,0),r.lineTo(3.5*n,-n),r.arc(n,n,2.5*n,0,Math.PI/2),r.lineTo(-n,3.5*n),r.arc(-n,n,2.5*n,Math.PI/2,Math.PI),r.lineTo(-3.5*n,-n),r.arc(-n,-n,1.5*n,Math.PI,-Math.PI/2),r.lineTo(n,-2.5*n),r.arc(n,-n,1.5*n,-Math.PI/2,0),r.lineTo(2.5*n,-n),r.arc(n,n,1.5*n,0,Math.PI/2),r.lineTo(-n,2.5*n),r.arc(-n,n,1.5*n,Math.PI/2,Math.PI),r.lineTo(-2.5*n,-n)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation;this._basicDot({x:e,y:r,size:n,context:o,rotation:i})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation;this._basicSquare({x:e,y:r,size:n,context:o,rotation:i})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation;this._basicExtraRounded({x:e,y:r,size:n,context:o,rotation:i})},t}(),x=\"square\";var M=function(){return(M=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const S=function(){function t(t){var e=t.context,r=t.type;this._context=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o,i=this._context;switch(this._type){case x:o=this._drawSquare;break;case\"dot\":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,context:i,rotation:n})},t.prototype._rotateFigure=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation,a=void 0===i?0:i,s=t.draw,u=e+n/2,c=r+n/2;o.translate(u,c),a&&o.rotate(a),s(),o.closePath(),a&&o.rotate(-a),o.translate(-u,-c)},t.prototype._basicDot=function(t){var e=t.size,r=t.context;this._rotateFigure(M(M({},t),{draw:function(){r.arc(0,0,e/2,0,2*Math.PI)}}))},t.prototype._basicSquare=function(t){var e=t.size,r=t.context;this._rotateFigure(M(M({},t),{draw:function(){r.rect(-e/2,-e/2,e,e)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation;this._basicDot({x:e,y:r,size:n,context:o,rotation:i})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.context,i=t.rotation;this._basicSquare({x:e,y:r,size:n,context:o,rotation:i})},t}(),C=\"radial\";var P=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],O=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];const z=function(){function t(t){this._canvas=document.createElement(\"canvas\"),this._canvas.width=t.width,this._canvas.height=t.height,this._options=t}return Object.defineProperty(t.prototype,\"context\",{get:function(){return this._canvas.getContext(\"2d\")},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"width\",{get:function(){return this._canvas.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"height\",{get:function(){return this._canvas.height},enumerable:!1,configurable:!0}),t.prototype.getCanvas=function(){return this._canvas},t.prototype.clear=function(){var t=this.context;t&&t.clearRect(0,0,this._canvas.width,this._canvas.height)},t.prototype.drawQR=function(t){return e=this,r=void 0,o=function(){var e,r,n,o,i,a,s,h,d,l=this;return function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(f){switch(f.label){case 0:return e=t.getModuleCount(),r=Math.min(this._options.width,this._options.height)-2*this._options.margin,n=Math.floor(r/e),o={hideXDots:0,hideYDots:0,width:0,height:0},this._qr=t,this._options.image?[4,this.loadImage()]:[3,2];case 1:if(f.sent(),!this._image)return[2];i=this._options,a=i.imageOptions,s=i.qrOptions,h=a.imageSize*c[s.errorCorrectionLevel],d=Math.floor(h*e*e),o=u({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:d,maxHiddenAxisDots:e-14,dotSize:n}),f.label=2;case 2:return this.clear(),this.drawBackground(),this.drawDots((function(t,r){var n,i,a,s,u,c;return!(l._options.imageOptions.hideBackgroundDots&&t>=(e-o.hideXDots)/2&&t<(e+o.hideXDots)/2&&r>=(e-o.hideYDots)/2&&r<(e+o.hideYDots)/2||(null===(n=P[t])||void 0===n?void 0:n[r])||(null===(i=P[t-e+7])||void 0===i?void 0:i[r])||(null===(a=P[t])||void 0===a?void 0:a[r-e+7])||(null===(s=O[t])||void 0===s?void 0:s[r])||(null===(u=O[t-e+7])||void 0===u?void 0:u[r])||(null===(c=O[t])||void 0===c?void 0:c[r-e+7]))})),this.drawCorners(),this._options.image&&this.drawImage({width:o.width,height:o.height,count:e,dotSize:n}),[2]}}))},new((n=void 0)||(n=Promise))((function(t,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function s(t){try{u(o.throw(t))}catch(t){i(t)}}function u(e){var r;e.done?t(e.value):(r=e.value,r instanceof n?r:new n((function(t){t(r)}))).then(a,s)}u((o=o.apply(e,r||[])).next())}));var e,r,n,o},t.prototype.drawBackground=function(){var t=this.context,e=this._options;if(t){if(e.backgroundOptions.gradient){var r=e.backgroundOptions.gradient,n=this._createGradient({context:t,options:r,additionalRotation:0,x:0,y:0,size:this._canvas.width>this._canvas.height?this._canvas.width:this._canvas.height});r.colorStops.forEach((function(t){var e=t.offset,r=t.color;n.addColorStop(e,r)})),t.fillStyle=n}else e.backgroundOptions.color&&(t.fillStyle=e.backgroundOptions.color);t.fillRect(0,0,this._canvas.width,this._canvas.height)}},t.prototype.drawDots=function(t){var e=this;if(!this._qr)throw\"QR code is not defined\";var r=this.context;if(!r)throw\"QR code is not defined\";var n=this._options,o=this._qr.getModuleCount();if(o>n.width||o>n.height)throw\"The canvas is too small.\";var i=Math.min(n.width,n.height)-2*n.margin,a=Math.floor(i/o),s=Math.floor((n.width-o*a)/2),u=Math.floor((n.height-o*a)/2),c=new y({context:r,type:n.dotsOptions.type});r.beginPath();for(var h=function(r){for(var n=function(n){return t&&!t(r,n)?\"continue\":d._qr.isDark(r,n)?void c.draw(s+r*a,u+n*a,a,(function(i,a){return!(r+i<0||n+a<0||r+i>=o||n+a>=o)&&!(t&&!t(r+i,n+a))&&!!e._qr&&e._qr.isDark(r+i,n+a)})):\"continue\"},i=0;i<o;i++)n(i)},d=this,l=0;l<o;l++)h(l);if(n.dotsOptions.gradient){var f=n.dotsOptions.gradient,p=this._createGradient({context:r,options:f,additionalRotation:0,x:s,y:u,size:o*a});f.colorStops.forEach((function(t){var e=t.offset,r=t.color;p.addColorStop(e,r)})),r.fillStyle=r.strokeStyle=p}else n.dotsOptions.color&&(r.fillStyle=r.strokeStyle=n.dotsOptions.color);r.fill(\"evenodd\")},t.prototype.drawCorners=function(t){var e=this;if(!this._qr)throw\"QR code is not defined\";var r=this.context;if(!r)throw\"QR code is not defined\";var n=this._options,o=this._qr.getModuleCount(),i=Math.min(n.width,n.height)-2*n.margin,a=Math.floor(i/o),s=7*a,u=3*a,c=Math.floor((n.width-o*a)/2),h=Math.floor((n.height-o*a)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((function(i){var d,l,f,p,g,v,w,_,m,x,M=i[0],C=i[1],z=i[2];if(!t||t(M,C)){var D=c+M*a*(o-7),I=h+C*a*(o-7);if(null===(d=n.cornersSquareOptions)||void 0===d?void 0:d.type){var A=new b({context:r,type:null===(l=n.cornersSquareOptions)||void 0===l?void 0:l.type});r.beginPath(),A.draw(D,I,s,z)}else{var k=new y({context:r,type:n.dotsOptions.type});r.beginPath();for(var q=function(t){for(var e=function(e){if(!(null===(f=P[t])||void 0===f?void 0:f[e]))return\"continue\";k.draw(D+t*a,I+e*a,a,(function(r,n){var o;return!!(null===(o=P[t+r])||void 0===o?void 0:o[e+n])}))},r=0;r<P[t].length;r++)e(r)},R=0;R<P.length;R++)q(R)}if(null===(p=n.cornersSquareOptions)||void 0===p?void 0:p.gradient){var B=n.cornersSquareOptions.gradient,E=e._createGradient({context:r,options:B,additionalRotation:z,x:D,y:I,size:s});B.colorStops.forEach((function(t){var e=t.offset,r=t.color;E.addColorStop(e,r)})),r.fillStyle=r.strokeStyle=E}else(null===(g=n.cornersSquareOptions)||void 0===g?void 0:g.color)&&(r.fillStyle=r.strokeStyle=n.cornersSquareOptions.color);if(r.fill(\"evenodd\"),null===(v=n.cornersDotOptions)||void 0===v?void 0:v.type){var L=new S({context:r,type:null===(w=n.cornersDotOptions)||void 0===w?void 0:w.type});r.beginPath(),L.draw(D+2*a,I+2*a,u,z)}else{k=new y({context:r,type:n.dotsOptions.type}),r.beginPath();var N=function(t){for(var e=function(e){if(!(null===(_=O[t])||void 0===_?void 0:_[e]))return\"continue\";k.draw(D+t*a,I+e*a,a,(function(r,n){var o;return!!(null===(o=O[t+r])||void 0===o?void 0:o[e+n])}))},r=0;r<O[t].length;r++)e(r)};for(R=0;R<O.length;R++)N(R)}if(null===(m=n.cornersDotOptions)||void 0===m?void 0:m.gradient){B=n.cornersDotOptions.gradient;var T=e._createGradient({context:r,options:B,additionalRotation:z,x:D+2*a,y:I+2*a,size:u});B.colorStops.forEach((function(t){var e=t.offset,r=t.color;T.addColorStop(e,r)})),r.fillStyle=r.strokeStyle=T}else(null===(x=n.cornersDotOptions)||void 0===x?void 0:x.color)&&(r.fillStyle=r.strokeStyle=n.cornersDotOptions.color);r.fill(\"evenodd\")}}))},t.prototype.loadImage=function(){var t=this;return new Promise((function(e,r){var n=t._options,o=new Image;if(!n.image)return r(\"Image is not defined\");\"string\"==typeof n.imageOptions.crossOrigin&&(o.crossOrigin=n.imageOptions.crossOrigin),t._image=o,o.onload=function(){e()},o.src=n.image}))},t.prototype.drawImage=function(t){var e=t.width,r=t.height,n=t.count,o=t.dotSize,i=this.context;if(!i)throw\"canvasContext is not defined\";if(!this._image)throw\"image is not defined\";var a=this._options,s=Math.floor((a.width-n*o)/2),u=Math.floor((a.height-n*o)/2),c=s+a.imageOptions.margin+(n*o-e)/2,h=u+a.imageOptions.margin+(n*o-r)/2,d=e-2*a.imageOptions.margin,l=r-2*a.imageOptions.margin;i.drawImage(this._image,c,h,d<0?0:d,l<0?0:l)},t.prototype._createGradient=function(t){var e,r=t.context,n=t.options,o=t.additionalRotation,i=t.x,a=t.y,s=t.size;if(n.type===C)e=r.createRadialGradient(i+s/2,a+s/2,0,i+s/2,a+s/2,s/2);else{var u=((n.rotation||0)+o)%(2*Math.PI),c=(u+2*Math.PI)%(2*Math.PI),h=i+s/2,d=a+s/2,l=i+s/2,f=a+s/2;c>=0&&c<=.25*Math.PI||c>1.75*Math.PI&&c<=2*Math.PI?(h-=s/2,d-=s/2*Math.tan(u),l+=s/2,f+=s/2*Math.tan(u)):c>.25*Math.PI&&c<=.75*Math.PI?(d-=s/2,h-=s/2/Math.tan(u),f+=s/2,l+=s/2/Math.tan(u)):c>.75*Math.PI&&c<=1.25*Math.PI?(h+=s/2,d+=s/2*Math.tan(u),l-=s/2,f-=s/2*Math.tan(u)):c>1.25*Math.PI&&c<=1.75*Math.PI&&(d+=s/2,h+=s/2/Math.tan(u),f-=s/2,l-=s/2/Math.tan(u)),e=r.createLinearGradient(Math.round(h),Math.round(d),Math.round(l),Math.round(f))}return e},t}();var D=function(){return(D=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const I=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case h:o=this._drawDot;break;case l:o=this._drawClassy;break;case f:o=this._drawClassyRounded;break;case d:o=this._drawRounded;break;case g:o=this._drawExtraRounded;break;case p:default:o=this._drawSquare}o.call(this,{x:t,y:e,size:r,getNeighbor:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute(\"transform\",\"rotate(\"+180*a/Math.PI+\",\"+s+\",\"+u+\")\")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(D(D({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\"),e._element.setAttribute(\"cx\",String(n+r/2)),e._element.setAttribute(\"cy\",String(o+r/2)),e._element.setAttribute(\"r\",String(r/2))}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(D(D({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\"),e._element.setAttribute(\"x\",String(n)),e._element.setAttribute(\"y\",String(o)),e._element.setAttribute(\"width\",String(r)),e._element.setAttribute(\"height\",String(r))}}))},t.prototype._basicSideRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(D(D({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, 0 \"+-r)}}))},t.prototype._basicCornerRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(D(D({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r+\"v \"+-r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, \"+-r/2+\" \"+-r/2)}}))},t.prototype._basicCornerExtraRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(D(D({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r+\"a \"+r+\" \"+r+\", 0, 0, 0, \"+-r+\" \"+-r)}}))},t.prototype._basicCornersRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(D(D({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, \"+r/2+\" \"+r/2+\"h \"+r/2+\"v \"+-r/2+\"a \"+r/2+\" \"+r/2+\", 0, 0, 0, \"+-r/2+\" \"+-r/2)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size;this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size;this._basicSquare({x:e,y:r,size:n,rotation:0})},t.prototype._drawRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0,c=i+a+s+u;if(0!==c)if(c>2||i&&a||s&&u)this._basicSquare({x:e,y:r,size:n,rotation:0});else{if(2===c){var h=0;return i&&s?h=Math.PI/2:s&&a?h=Math.PI:a&&u&&(h=-Math.PI/2),void this._basicCornerRounded({x:e,y:r,size:n,rotation:h})}if(1===c)return h=0,s?h=Math.PI/2:a?h=Math.PI:u&&(h=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,rotation:h})}else this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0,c=i+a+s+u;if(0!==c)if(c>2||i&&a||s&&u)this._basicSquare({x:e,y:r,size:n,rotation:0});else{if(2===c){var h=0;return i&&s?h=Math.PI/2:s&&a?h=Math.PI:a&&u&&(h=-Math.PI/2),void this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:h})}if(1===c)return h=0,s?h=Math.PI/2:a?h=Math.PI:u&&(h=-Math.PI/2),void this._basicSideRounded({x:e,y:r,size:n,rotation:h})}else this._basicDot({x:e,y:r,size:n,rotation:0})},t.prototype._drawClassy=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0;0!==i+a+s+u?i||s?a||u?this._basicSquare({x:e,y:r,size:n,rotation:0}):this._basicCornerRounded({x:e,y:r,size:n,rotation:Math.PI/2}):this._basicCornerRounded({x:e,y:r,size:n,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,rotation:Math.PI/2})},t.prototype._drawClassyRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.getNeighbor,i=o?+o(-1,0):0,a=o?+o(1,0):0,s=o?+o(0,-1):0,u=o?+o(0,1):0;0!==i+a+s+u?i||s?a||u?this._basicSquare({x:e,y:r,size:n,rotation:0}):this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:Math.PI/2}):this._basicCornerExtraRounded({x:e,y:r,size:n,rotation:-Math.PI/2}):this._basicCornersRounded({x:e,y:r,size:n,rotation:Math.PI/2})},t}();var A=function(){return(A=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const k=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case w:o=this._drawSquare;break;case _:o=this._drawExtraRounded;break;case\"dot\":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,rotation:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute(\"transform\",\"rotate(\"+180*a/Math.PI+\",\"+s+\",\"+u+\")\")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(A(A({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"clip-rule\",\"evenodd\"),e._element.setAttribute(\"d\",\"M \"+(n+r/2)+\" \"+o+\"a \"+r/2+\" \"+r/2+\" 0 1 0 0.1 0zm 0 \"+i+\"a \"+(r/2-i)+\" \"+(r/2-i)+\" 0 1 1 -0.1 0Z\")}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(A(A({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"clip-rule\",\"evenodd\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+o+\"v \"+r+\"h \"+r+\"v \"+-r+\"zM \"+(n+i)+\" \"+(o+i)+\"h \"+(r-2*i)+\"v \"+(r-2*i)+\"h \"+(2*i-r)+\"z\")}}))},t.prototype._basicExtraRounded=function(t){var e=this,r=t.size,n=t.x,o=t.y,i=r/7;this._rotateFigure(A(A({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\"),e._element.setAttribute(\"clip-rule\",\"evenodd\"),e._element.setAttribute(\"d\",\"M \"+n+\" \"+(o+2.5*i)+\"v \"+2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*i+\" \"+2.5*i+\"h \"+2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*i+\" \"+2.5*-i+\"v \"+-2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*-i+\" \"+2.5*-i+\"h \"+-2*i+\"a \"+2.5*i+\" \"+2.5*i+\", 0, 0, 0, \"+2.5*-i+\" \"+2.5*i+\"M \"+(n+2.5*i)+\" \"+(o+i)+\"h \"+2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*i+\" \"+1.5*i+\"v \"+2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*-i+\" \"+1.5*i+\"h \"+-2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*-i+\" \"+1.5*-i+\"v \"+-2*i+\"a \"+1.5*i+\" \"+1.5*i+\", 0, 0, 1, \"+1.5*i+\" \"+1.5*-i)}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicDot({x:e,y:r,size:n,rotation:o})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicSquare({x:e,y:r,size:n,rotation:o})},t.prototype._drawExtraRounded=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicExtraRounded({x:e,y:r,size:n,rotation:o})},t}();var q=function(){return(q=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};const R=function(){function t(t){var e=t.svg,r=t.type;this._svg=e,this._type=r}return t.prototype.draw=function(t,e,r,n){var o;switch(this._type){case x:o=this._drawSquare;break;case\"dot\":default:o=this._drawDot}o.call(this,{x:t,y:e,size:r,rotation:n})},t.prototype._rotateFigure=function(t){var e,r=t.x,n=t.y,o=t.size,i=t.rotation,a=void 0===i?0:i,s=r+o/2,u=n+o/2;(0,t.draw)(),null===(e=this._element)||void 0===e||e.setAttribute(\"transform\",\"rotate(\"+180*a/Math.PI+\",\"+s+\",\"+u+\")\")},t.prototype._basicDot=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(q(q({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\"),e._element.setAttribute(\"cx\",String(n+r/2)),e._element.setAttribute(\"cy\",String(o+r/2)),e._element.setAttribute(\"r\",String(r/2))}}))},t.prototype._basicSquare=function(t){var e=this,r=t.size,n=t.x,o=t.y;this._rotateFigure(q(q({},t),{draw:function(){e._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\"),e._element.setAttribute(\"x\",String(n)),e._element.setAttribute(\"y\",String(o)),e._element.setAttribute(\"width\",String(r)),e._element.setAttribute(\"height\",String(r))}}))},t.prototype._drawDot=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicDot({x:e,y:r,size:n,rotation:o})},t.prototype._drawSquare=function(t){var e=t.x,r=t.y,n=t.size,o=t.rotation;this._basicSquare({x:e,y:r,size:n,rotation:o})},t}();var B=[[1,1,1,1,1,1,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,0,0,0,0,0,1],[1,1,1,1,1,1,1]],E=[[0,0,0,0,0,0,0],[0,0,0,0,0,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,1,1,1,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,0,0]];const L=function(){function t(t){this._element=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this._element.setAttribute(\"width\",String(t.width)),this._element.setAttribute(\"height\",String(t.height)),this._defs=document.createElementNS(\"http://www.w3.org/2000/svg\",\"defs\"),this._element.appendChild(this._defs),this._options=t}return Object.defineProperty(t.prototype,\"width\",{get:function(){return this._options.width},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"height\",{get:function(){return this._options.height},enumerable:!1,configurable:!0}),t.prototype.getElement=function(){return this._element},t.prototype.clear=function(){var t,e=this._element;this._element=e.cloneNode(!1),null===(t=null==e?void 0:e.parentNode)||void 0===t||t.replaceChild(this._element,e),this._defs=document.createElementNS(\"http://www.w3.org/2000/svg\",\"defs\"),this._element.appendChild(this._defs)},t.prototype.drawQR=function(t){return e=this,r=void 0,o=function(){var e,r,n,o,i,a,s,h,d,l=this;return function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}}(this,(function(f){switch(f.label){case 0:return e=t.getModuleCount(),r=Math.min(this._options.width,this._options.height)-2*this._options.margin,n=Math.floor(r/e),o={hideXDots:0,hideYDots:0,width:0,height:0},this._qr=t,this._options.image?[4,this.loadImage()]:[3,2];case 1:if(f.sent(),!this._image)return[2];i=this._options,a=i.imageOptions,s=i.qrOptions,h=a.imageSize*c[s.errorCorrectionLevel],d=Math.floor(h*e*e),o=u({originalWidth:this._image.width,originalHeight:this._image.height,maxHiddenDots:d,maxHiddenAxisDots:e-14,dotSize:n}),f.label=2;case 2:return this.clear(),this.drawBackground(),this.drawDots((function(t,r){var n,i,a,s,u,c;return!(l._options.imageOptions.hideBackgroundDots&&t>=(e-o.hideXDots)/2&&t<(e+o.hideXDots)/2&&r>=(e-o.hideYDots)/2&&r<(e+o.hideYDots)/2||(null===(n=B[t])||void 0===n?void 0:n[r])||(null===(i=B[t-e+7])||void 0===i?void 0:i[r])||(null===(a=B[t])||void 0===a?void 0:a[r-e+7])||(null===(s=E[t])||void 0===s?void 0:s[r])||(null===(u=E[t-e+7])||void 0===u?void 0:u[r])||(null===(c=E[t])||void 0===c?void 0:c[r-e+7]))})),this.drawCorners(),this._options.image&&this.drawImage({width:o.width,height:o.height,count:e,dotSize:n}),[2]}}))},new((n=void 0)||(n=Promise))((function(t,i){function a(t){try{u(o.next(t))}catch(t){i(t)}}function s(t){try{u(o.throw(t))}catch(t){i(t)}}function u(e){var r;e.done?t(e.value):(r=e.value,r instanceof n?r:new n((function(t){t(r)}))).then(a,s)}u((o=o.apply(e,r||[])).next())}));var e,r,n,o},t.prototype.drawBackground=function(){var t,e,r=this._element,n=this._options;if(r){var o=null===(t=n.backgroundOptions)||void 0===t?void 0:t.gradient,i=null===(e=n.backgroundOptions)||void 0===e?void 0:e.color;(o||i)&&this._createColor({options:o,color:i,additionalRotation:0,x:0,y:0,height:n.height,width:n.width,name:\"background-color\"})}},t.prototype.drawDots=function(t){var e,r,n=this;if(!this._qr)throw\"QR code is not defined\";var o=this._options,i=this._qr.getModuleCount();if(i>o.width||i>o.height)throw\"The canvas is too small.\";var a=Math.min(o.width,o.height)-2*o.margin,s=Math.floor(a/i),u=Math.floor((o.width-i*s)/2),c=Math.floor((o.height-i*s)/2),h=new I({svg:this._element,type:o.dotsOptions.type});this._dotsClipPath=document.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\"),this._dotsClipPath.setAttribute(\"id\",\"clip-path-dot-color\"),this._defs.appendChild(this._dotsClipPath),this._createColor({options:null===(e=o.dotsOptions)||void 0===e?void 0:e.gradient,color:o.dotsOptions.color,additionalRotation:0,x:u,y:c,height:i*s,width:i*s,name:\"dot-color\"});for(var d=function(e){for(var o=function(o){return t&&!t(e,o)?\"continue\":(null===(r=l._qr)||void 0===r?void 0:r.isDark(e,o))?(h.draw(u+e*s,c+o*s,s,(function(r,a){return!(e+r<0||o+a<0||e+r>=i||o+a>=i)&&!(t&&!t(e+r,o+a))&&!!n._qr&&n._qr.isDark(e+r,o+a)})),void(h._element&&l._dotsClipPath&&l._dotsClipPath.appendChild(h._element))):\"continue\"},a=0;a<i;a++)o(a)},l=this,f=0;f<i;f++)d(f)},t.prototype.drawCorners=function(){var t=this;if(!this._qr)throw\"QR code is not defined\";var e=this._element,r=this._options;if(!e)throw\"Element code is not defined\";var n=this._qr.getModuleCount(),o=Math.min(r.width,r.height)-2*r.margin,i=Math.floor(o/n),a=7*i,s=3*i,u=Math.floor((r.width-n*i)/2),c=Math.floor((r.height-n*i)/2);[[0,0,0],[1,0,Math.PI/2],[0,1,-Math.PI/2]].forEach((function(e){var o,h,d,l,f,p,g,v,y,w,_,m,b=e[0],x=e[1],M=e[2],S=u+b*i*(n-7),C=c+x*i*(n-7),P=t._dotsClipPath,O=t._dotsClipPath;if(((null===(o=r.cornersSquareOptions)||void 0===o?void 0:o.gradient)||(null===(h=r.cornersSquareOptions)||void 0===h?void 0:h.color))&&((P=document.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\")).setAttribute(\"id\",\"clip-path-corners-square-color-\"+b+\"-\"+x),t._defs.appendChild(P),t._cornersSquareClipPath=t._cornersDotClipPath=O=P,t._createColor({options:null===(d=r.cornersSquareOptions)||void 0===d?void 0:d.gradient,color:null===(l=r.cornersSquareOptions)||void 0===l?void 0:l.color,additionalRotation:M,x:S,y:C,height:a,width:a,name:\"corners-square-color-\"+b+\"-\"+x})),null===(f=r.cornersSquareOptions)||void 0===f?void 0:f.type){var z=new k({svg:t._element,type:r.cornersSquareOptions.type});z.draw(S,C,a,M),z._element&&P&&P.appendChild(z._element)}else for(var D=new I({svg:t._element,type:r.dotsOptions.type}),A=function(t){for(var e=function(e){if(!(null===(p=B[t])||void 0===p?void 0:p[e]))return\"continue\";D.draw(S+t*i,C+e*i,i,(function(r,n){var o;return!!(null===(o=B[t+r])||void 0===o?void 0:o[e+n])})),D._element&&P&&P.appendChild(D._element)},r=0;r<B[t].length;r++)e(r)},q=0;q<B.length;q++)A(q);if(((null===(g=r.cornersDotOptions)||void 0===g?void 0:g.gradient)||(null===(v=r.cornersDotOptions)||void 0===v?void 0:v.color))&&((O=document.createElementNS(\"http://www.w3.org/2000/svg\",\"clipPath\")).setAttribute(\"id\",\"clip-path-corners-dot-color-\"+b+\"-\"+x),t._defs.appendChild(O),t._cornersDotClipPath=O,t._createColor({options:null===(y=r.cornersDotOptions)||void 0===y?void 0:y.gradient,color:null===(w=r.cornersDotOptions)||void 0===w?void 0:w.color,additionalRotation:M,x:S+2*i,y:C+2*i,height:s,width:s,name:\"corners-dot-color-\"+b+\"-\"+x})),null===(_=r.cornersDotOptions)||void 0===_?void 0:_.type){var L=new R({svg:t._element,type:r.cornersDotOptions.type});L.draw(S+2*i,C+2*i,s,M),L._element&&O&&O.appendChild(L._element)}else{D=new I({svg:t._element,type:r.dotsOptions.type});var N=function(t){for(var e=function(e){if(!(null===(m=E[t])||void 0===m?void 0:m[e]))return\"continue\";D.draw(S+t*i,C+e*i,i,(function(r,n){var o;return!!(null===(o=E[t+r])||void 0===o?void 0:o[e+n])})),D._element&&O&&O.appendChild(D._element)},r=0;r<E[t].length;r++)e(r)};for(q=0;q<E.length;q++)N(q)}}))},t.prototype.loadImage=function(){var t=this;return new Promise((function(e,r){var n=t._options,o=new Image;if(!n.image)return r(\"Image is not defined\");\"string\"==typeof n.imageOptions.crossOrigin&&(o.crossOrigin=n.imageOptions.crossOrigin),t._image=o,o.onload=function(){e()},o.src=n.image}))},t.prototype.drawImage=function(t){var e=t.width,r=t.height,n=t.count,o=t.dotSize,i=this._options,a=Math.floor((i.width-n*o)/2),s=Math.floor((i.height-n*o)/2),u=a+i.imageOptions.margin+(n*o-e)/2,c=s+i.imageOptions.margin+(n*o-r)/2,h=e-2*i.imageOptions.margin,d=r-2*i.imageOptions.margin,l=document.createElementNS(\"http://www.w3.org/2000/svg\",\"image\");l.setAttribute(\"href\",i.image||\"\"),l.setAttribute(\"x\",String(u)),l.setAttribute(\"y\",String(c)),l.setAttribute(\"width\",h+\"px\"),l.setAttribute(\"height\",d+\"px\"),this._element.appendChild(l)},t.prototype._createColor=function(t){var e=t.options,r=t.color,n=t.additionalRotation,o=t.x,i=t.y,a=t.height,s=t.width,u=t.name,c=s>a?s:a,h=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");if(h.setAttribute(\"x\",String(o)),h.setAttribute(\"y\",String(i)),h.setAttribute(\"height\",String(a)),h.setAttribute(\"width\",String(s)),h.setAttribute(\"clip-path\",\"url('#clip-path-\"+u+\"')\"),e){var d;if(e.type===C)(d=document.createElementNS(\"http://www.w3.org/2000/svg\",\"radialGradient\")).setAttribute(\"id\",u),d.setAttribute(\"gradientUnits\",\"userSpaceOnUse\"),d.setAttribute(\"fx\",String(o+s/2)),d.setAttribute(\"fy\",String(i+a/2)),d.setAttribute(\"cx\",String(o+s/2)),d.setAttribute(\"cy\",String(i+a/2)),d.setAttribute(\"r\",String(c/2));else{var l=((e.rotation||0)+n)%(2*Math.PI),f=(l+2*Math.PI)%(2*Math.PI),p=o+s/2,g=i+a/2,v=o+s/2,y=i+a/2;f>=0&&f<=.25*Math.PI||f>1.75*Math.PI&&f<=2*Math.PI?(p-=s/2,g-=a/2*Math.tan(l),v+=s/2,y+=a/2*Math.tan(l)):f>.25*Math.PI&&f<=.75*Math.PI?(g-=a/2,p-=s/2/Math.tan(l),y+=a/2,v+=s/2/Math.tan(l)):f>.75*Math.PI&&f<=1.25*Math.PI?(p+=s/2,g+=a/2*Math.tan(l),v-=s/2,y-=a/2*Math.tan(l)):f>1.25*Math.PI&&f<=1.75*Math.PI&&(g+=a/2,p+=s/2/Math.tan(l),y-=a/2,v-=s/2/Math.tan(l)),(d=document.createElementNS(\"http://www.w3.org/2000/svg\",\"linearGradient\")).setAttribute(\"id\",u),d.setAttribute(\"gradientUnits\",\"userSpaceOnUse\"),d.setAttribute(\"x1\",String(Math.round(p))),d.setAttribute(\"y1\",String(Math.round(g))),d.setAttribute(\"x2\",String(Math.round(v))),d.setAttribute(\"y2\",String(Math.round(y)))}e.colorStops.forEach((function(t){var e=t.offset,r=t.color,n=document.createElementNS(\"http://www.w3.org/2000/svg\",\"stop\");n.setAttribute(\"offset\",100*e+\"%\"),n.setAttribute(\"stop-color\",r),d.appendChild(n)})),h.setAttribute(\"fill\",\"url('#\"+u+\"')\"),this._defs.appendChild(d)}else r&&h.setAttribute(\"fill\",r);this._element.appendChild(h)},t}(),N=\"canvas\";for(var T={},j=0;j<=40;j++)T[j]=j;const F={type:N,width:300,height:300,data:\"\",margin:0,qrOptions:{typeNumber:T[0],mode:void 0,errorCorrectionLevel:\"Q\"},imageOptions:{hideBackgroundDots:!0,imageSize:.4,crossOrigin:void 0,margin:0},dotsOptions:{type:\"square\",color:\"#000\"},backgroundOptions:{color:\"#fff\"}};var Q=function(){return(Q=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t}).apply(this,arguments)};function H(t){var e=Q({},t);if(!e.colorStops||!e.colorStops.length)throw\"Field 'colorStops' is required in gradient\";return e.rotation?e.rotation=Number(e.rotation):e.rotation=0,e.colorStops=e.colorStops.map((function(t){return Q(Q({},t),{offset:Number(t.offset)})})),e}function G(t){var e=Q({},t);return e.width=Number(e.width),e.height=Number(e.height),e.margin=Number(e.margin),e.imageOptions=Q(Q({},e.imageOptions),{hideBackgroundDots:Boolean(e.imageOptions.hideBackgroundDots),imageSize:Number(e.imageOptions.imageSize),margin:Number(e.imageOptions.margin)}),e.margin>Math.min(e.width,e.height)&&(e.margin=Math.min(e.width,e.height)),e.dotsOptions=Q({},e.dotsOptions),e.dotsOptions.gradient&&(e.dotsOptions.gradient=H(e.dotsOptions.gradient)),e.cornersSquareOptions&&(e.cornersSquareOptions=Q({},e.cornersSquareOptions),e.cornersSquareOptions.gradient&&(e.cornersSquareOptions.gradient=H(e.cornersSquareOptions.gradient))),e.cornersDotOptions&&(e.cornersDotOptions=Q({},e.cornersDotOptions),e.cornersDotOptions.gradient&&(e.cornersDotOptions.gradient=H(e.cornersDotOptions.gradient))),e.backgroundOptions&&(e.backgroundOptions=Q({},e.backgroundOptions),e.backgroundOptions.gradient&&(e.backgroundOptions.gradient=H(e.backgroundOptions.gradient))),e}var X=r(192),U=r.n(X),Y=function(t,e,r,n){return new(r||(r=Promise))((function(o,i){function a(t){try{u(n.next(t))}catch(t){i(t)}}function s(t){try{u(n.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(a,s)}u((n=n.apply(t,e||[])).next())}))},$=function(t,e){var r,n,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:s(0),throw:s(1),return:s(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function s(i){return function(s){return function(i){if(r)throw new TypeError(\"Generator is already executing.\");for(;a;)try{if(r=1,n&&(o=2&i[0]?n.return:i[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,i[1])).done)return o;switch(n=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,n=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!((o=(o=a.trys).length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=e.call(t,a)}catch(t){i=[6,t],n=0}finally{r=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,s])}}};const W=function(){function t(t){this._options=t?G(a(F,t)):F,this.update()}return t._clearContainer=function(t){t&&(t.innerHTML=\"\")},t.prototype._getQRStylingElement=function(t){return void 0===t&&(t=\"png\"),Y(this,void 0,void 0,(function(){var e,r,n;return $(this,(function(o){switch(o.label){case 0:if(!this._qr)throw\"QR code is empty\";return\"svg\"!==t.toLowerCase()?[3,2]:(r=void 0,e=void 0,this._svg&&this._svgDrawingPromise?(e=this._svg,r=this._svgDrawingPromise):(e=new L(this._options),r=e.drawQR(this._qr)),[4,r]);case 1:return o.sent(),[2,e];case 2:return r=void 0,n=void 0,this._canvas&&this._canvasDrawingPromise?(n=this._canvas,r=this._canvasDrawingPromise):(n=new z(this._options),r=n.drawQR(this._qr)),[4,r];case 3:return o.sent(),[2,n]}}))}))},t.prototype.update=function(e){t._clearContainer(this._container),this._options=e?G(a(this._options,e)):this._options,this._options.data&&(this._qr=U()(this._options.qrOptions.typeNumber,this._options.qrOptions.errorCorrectionLevel),this._qr.addData(this._options.data,this._options.qrOptions.mode||function(t){switch(!0){case/^[0-9]*$/.test(t):return\"Numeric\";case/^[0-9A-Z $%*+\\-./:]*$/.test(t):return\"Alphanumeric\";default:return\"Byte\"}}(this._options.data)),this._qr.make(),this._options.type===N?(this._canvas=new z(this._options),this._canvasDrawingPromise=this._canvas.drawQR(this._qr),this._svgDrawingPromise=void 0,this._svg=void 0):(this._svg=new L(this._options),this._svgDrawingPromise=this._svg.drawQR(this._qr),this._canvasDrawingPromise=void 0,this._canvas=void 0),this.append(this._container))},t.prototype.append=function(t){if(t){if(\"function\"!=typeof t.appendChild)throw\"Container should be a single DOM node\";this._options.type===N?this._canvas&&t.appendChild(this._canvas.getCanvas()):this._svg&&t.appendChild(this._svg.getElement()),this._container=t}},t.prototype.getRawData=function(t){return void 0===t&&(t=\"png\"),Y(this,void 0,void 0,(function(){var e,r,n;return $(this,(function(o){switch(o.label){case 0:if(!this._qr)throw\"QR code is empty\";return[4,this._getQRStylingElement(t)];case 1:return e=o.sent(),\"svg\"===t.toLowerCase()?(r=new XMLSerializer,n=r.serializeToString(e.getElement()),[2,new Blob(['<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n'+n],{type:\"image/svg+xml\"})]):[2,new Promise((function(r){return e.getCanvas().toBlob(r,\"image/\"+t,1)}))]}}))}))},t.prototype.download=function(t){return Y(this,void 0,void 0,(function(){var e,r,n,o,i;return $(this,(function(a){switch(a.label){case 0:if(!this._qr)throw\"QR code is empty\";return e=\"png\",r=\"qr\",\"string\"==typeof t?(e=t,console.warn(\"Extension is deprecated as argument for 'download' method, please pass object { name: '...', extension: '...' } as argument\")):\"object\"==typeof t&&null!==t&&(t.name&&(r=t.name),t.extension&&(e=t.extension)),[4,this._getQRStylingElement(e)];case 1:return n=a.sent(),\"svg\"===e.toLowerCase()?(o=new XMLSerializer,i='<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n'+(i=o.serializeToString(n.getElement())),s(\"data:image/svg+xml;charset=utf-8,\"+encodeURIComponent(i),r+\".svg\")):s(n.getCanvas().toDataURL(\"image/\"+e),r+\".\"+e),[2]}}))}))},t}()}},e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={exports:{}};return t[n](o,o.exports,r),o.exports}return r.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return r.d(e,{a:e}),e},r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r(796)})().default}));\n//# sourceMappingURL=qr-code-styling.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvcXItY29kZS1zdHlsaW5nL2xpYi9xci1jb2RlLXN0eWxpbmcuanMiLCJtYXBwaW5ncyI6IkFBQUEsZUFBZSxLQUFpRCxvQkFBb0IsQ0FBeUgsQ0FBQyxrQkFBa0IsWUFBWSxPQUFPLFlBQVkscUJBQXFCLG9CQUFvQiwwQ0FBMEMsaUJBQWlCLGNBQWMsMkJBQTJCLElBQUksTUFBTSxrQkFBa0IsWUFBWSxJQUFJLGtCQUFrQixTQUFTLDJGQUEyRixpQkFBaUIsYUFBYSxLQUFLLHdDQUF3QyxLQUFLLCtHQUErRyxjQUFjLFlBQVksTUFBTSxxQ0FBcUMsWUFBWSxNQUFNLHFDQUFxQyxjQUFjLHNDQUFzQyxXQUFXLGlCQUFpQixXQUFXLE1BQU0sa0JBQWtCLDhCQUE4QixLQUFLLGtCQUFrQixLQUFLLHVEQUF1RCxlQUFlLG9DQUFvQyxLQUFLLE1BQU0sc0JBQXNCLGdDQUFnQyxRQUFRLEtBQUssdURBQXVELGlCQUFpQiwyQ0FBMkMsS0FBSyxNQUFNLHNCQUFzQiw2Q0FBNkMsUUFBUSxLQUFLLDZFQUE2RSxhQUFhLGlCQUFpQix3REFBd0QsSUFBSSx1QkFBdUIsRUFBRSxZQUFZLElBQUkseUJBQXlCLFNBQVMsb0ZBQW9GLG1CQUFtQixVQUFVLFFBQVEsbUJBQW1CLHVDQUF1QyxXQUFXLE1BQU0sV0FBVyxzRkFBc0YsUUFBUSxRQUFRLFdBQVcsdUJBQXVCLDBGQUEwRiwyQ0FBMkMseUJBQXlCLGNBQWMsS0FBSyxxRUFBcUUsYUFBYSxxQkFBcUIsb0VBQW9FLFdBQVcsTUFBTSx5Q0FBeUMsa0RBQWtELFlBQVksY0FBYyxvQ0FBb0MsS0FBSyxzRUFBc0Usd0NBQXdDLGNBQWMsTUFBTSxrQ0FBa0MsMkJBQTJCLFFBQVEsUUFBUSxXQUFXLHdCQUF3Qix1QkFBdUIsUUFBUSxJQUFJLGFBQWEsV0FBVyx3Q0FBd0MsUUFBUSxJQUFJLGFBQWEsV0FBVyx3Q0FBd0MsU0FBUyxPQUFPLHdCQUF3QixXQUFXLG9CQUFvQixxQkFBcUIsTUFBTSwwQkFB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eUNBQXlDLGFBQWEsTUFBTSwyQkFBMkIsaUJBQWlCLE1BQU0sb0JBQW9CLDJCQUEyQixNQUFNLCtCQUErQixTQUFTLGNBQWMsU0FBUyxZQUFZLFFBQVEsTUFBTSxxQkFBcUIsT0FBTyxnQ0FBZ0MsV0FBVyxtQkFBbUIsY0FBYywwQ0FBMEMscUNBQXFDLG9CQUFvQiw4Q0FBOEMsOERBQThELFVBQVUsMkJBQTJCLGdCQUFnQiw0Q0FBNEMsdUxBQXVMLDZCQUE2QiwyS0FBMkssOEJBQThCLEdBQUcsR0FBRyxnQ0FBZ0Msd1JBQXdSLFdBQVcsdUNBQXVDLHlEQUF5RCxzQkFBc0Isa1hBQWtYLGdDQUFnQyxNQUFNLGlGQUFpRixpSkFBaUosb0NBQW9DLDhEQUE4RCxVQUFVLDJCQUEyQixnQkFBZ0IsNENBQTRDLHVDQUF1Qyx5S0FBeUsscUJBQXFCLGdDQUFnQyw0Q0FBNEMsS0FBSyxHQUFHLEdBQUcsa0NBQWtDLHdDQUF3QyxjQUFjLDJCQUEyQixnQkFBZ0IsNENBQTRDLDRJQUE0SSxnQ0FBZ0MsZ0lBQWdJLGtMQUFrTCxxR0FBcUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLGNBQWMsNEJBQTRCLFlBQVksWUFBWSxxQ0FBcUMsZUFBZSwwQ0FBMEMsY0FBYyxJQUFJLElBQUksYUFBYSwrREFBK0QsdUJBQXVCLEVBQUUsNkRBQTZELFlBQVk7QUFDei8vRCIsInNvdXJjZXMiOlsid2VicGFjazovL3ZlcmlmeXBhY2stZnJvbnRlbmQvLi9ub2RlX21vZHVsZXMvcXItY29kZS1zdHlsaW5nL2xpYi9xci1jb2RlLXN0eWxpbmcuanM/MmJhZSJdLCJzb3VyY2VzQ29udGVudCI6WyIhZnVuY3Rpb24odCxlKXtcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cyYmXCJvYmplY3RcIj09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6XCJmdW5jdGlvblwiPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSxlKTpcIm9iamVjdFwiPT10eXBlb2YgZXhwb3J0cz9leHBvcnRzLlFSQ29kZVN0eWxpbmc9ZSgpOnQuUVJDb2RlU3R5bGluZz1lKCl9KHNlbGYsKGZ1bmN0aW9uKCl7cmV0dXJuKCgpPT57dmFyIHQ9ezE5MjoodCxlKT0+e3ZhciByLG4sbz1mdW5jdGlvbigpe3ZhciB0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dCxuPWFbZV0sbz1udWxsLGk9MCx1PW51bGwsdj1bXSx5PXt9LF89ZnVuY3Rpb24odCxlKXtvPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKz0xKXtlW3JdPW5ldyBBcnJheSh0KTtmb3IodmFyIG49MDtuPHQ7bis9MSllW3JdW25dPW51bGx9cmV0dXJuIGV9KGk9NCpyKzE3KSxtKDAsMCksbShpLTcsMCksbSgwLGktNykseCgpLGIoKSxTKHQsZSkscj49NyYmTSh0KSxudWxsPT11JiYodT1QKHIsbix2KSksQyh1LGUpfSxtPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPS0xO3I8PTc7cis9MSlpZighKHQrcjw9LTF8fGk8PXQrcikpZm9yKHZhciBuPS0xO248PTc7bis9MSllK248PS0xfHxpPD1lK258fChvW3Qrcl1bZStuXT0wPD1yJiZyPD02JiYoMD09bnx8Nj09bil8fDA8PW4mJm48PTYmJigwPT1yfHw2PT1yKXx8Mjw9ciYmcjw9NCYmMjw9biYmbjw9NCl9LGI9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9ODt0PGktODt0Kz0xKW51bGw9PW9bdF1bNl0mJihvW3RdWzZdPXQlMj09MCk7Zm9yKHZhciBlPTg7ZTxpLTg7ZSs9MSludWxsPT1vWzZdW2VdJiYob1s2XVtlXT1lJTI9PTApfSx4PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXMuZ2V0UGF0dGVyblBvc2l0aW9uKHIpLGU9MDtlPHQubGVuZ3RoO2UrPTEpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKz0xKXt2YXIgaT10W2VdLGE9dFtuXTtpZihudWxsPT1vW2ldW2FdKWZvcih2YXIgdT0tMjt1PD0yO3UrPTEpZm9yKHZhciBjPS0yO2M8PTI7Yys9MSlvW2krdV1bYStjXT0tMj09dXx8Mj09dXx8LTI9PWN8fDI9PWN8fDA9PXUmJjA9PWN9fSxNPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1zLmdldEJDSFR5cGVOdW1iZXIociksbj0wO248MTg7bis9MSl7dmFyIGE9IXQmJjE9PShlPj5uJjEpO29bTWF0aC5mbG9vcihuLzMpXVtuJTMraS04LTNdPWF9Zm9yKG49MDtuPDE4O24rPTEpYT0hdCYmMT09KGU+Pm4mMSksb1tuJTMraS04LTNdW01hdGguZmxvb3Iobi8zKV09YX0sUz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uPDwzfGUsYT1zLmdldEJDSFR5cGVJbmZvKHIpLHU9MDt1PDE1O3UrPTEpe3ZhciBjPSF0JiYxPT0oYT4+dSYxKTt1PDY/b1t1XVs4XT1jOnU8OD9vW3UrMV1bOF09YzpvW2ktMTUrdV1bOF09Y31mb3IodT0wO3U8MTU7dSs9MSljPSF0JiYxPT0oYT4+dSYxKSx1PDg/b1s4XVtpLXUtMV09Yzp1PDk/b1s4XVsxNS11LTErMV09YzpvWzhdWzE1LXUtMV09YztvW2ktOF1bOF09IXR9LEM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTEsbj1pLTEsYT03LHU9MCxjPXMuZ2V0TWFza0Z1bmN0aW9uKGUpLGg9aS0xO2g+MDtoLT0yKWZvcig2PT1oJiYoaC09MSk7Oyl7Zm9yKHZhciBkPTA7ZDwyO2QrPTEpaWYobnVsbD09b1tuXVtoLWRdKXt2YXIgbD0hMTt1PHQubGVuZ3RoJiYobD0xPT0odFt1XT4+PmEmMSkpLGMobixoLWQpJiYobD0hbCksb1tuXVtoLWRdPWwsLTE9PShhLT0xKSYmKHUrPTEsYT03KX1pZigobis9cik8MHx8aTw9bil7bi09cixyPS1yO2JyZWFrfX19LFA9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1oLmdldFJTQmxvY2tzKHQsZSksbz1kKCksaT0wO2k8ci5sZW5ndGg7aSs9MSl7dmFyIGE9cltpXTtvLnB1dChhLmdldE1vZGUoKSw0KSxvLnB1dChhLmdldExlbmd0aCgpLHMuZ2V0TGVuZ3RoSW5CaXRzKGEuZ2V0TW9kZSgpLHQpKSxhLndyaXRlKG8pfXZhciB1PTA7Zm9yKGk9MDtpPG4ubGVuZ3RoO2krPTEpdSs9bltpXS5kYXRhQ291bnQ7aWYoby5nZXRMZW5ndGhJbkJpdHMoKT44KnUpdGhyb3dcImNvZGUgbGVuZ3RoIG92ZXJmbG93LiAoXCIrby5nZXRMZW5ndGhJbkJpdHMoKStcIj5cIis4KnUrXCIpXCI7Zm9yKG8uZ2V0TGVuZ3RoSW5CaXRzKCkrNDw9OCp1JiZvLnB1dCgwLDQpO28uZ2V0TGVuZ3RoSW5CaXRzKCklOCE9MDspby5wdXRCaXQoITEpO2Zvcig7IShvLmdldExlbmd0aEluQml0cygpPj04KnV8fChvLnB1dCgyMzYsOCksby5nZXRMZW5ndGhJbkJpdHMoKT49OCp1KSk7KW8ucHV0KDE3LDgpO3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxvPTAsaT1uZXcgQXJyYXkoZS5sZW5ndGgpLGE9bmV3IEFycmF5KGUubGVuZ3RoKSx1PTA7dTxlLmxlbmd0aDt1Kz0xKXt2YXIgaD1lW3VdLmRhdGFDb3VudCxkPWVbdV0udG90YWxDb3VudC1oO249TWF0aC5tYXgobixoKSxvPU1hdGgubWF4KG8sZCksaVt1XT1uZXcgQXJyYXkoaCk7Zm9yKHZhciBsPTA7bDxpW3VdLmxlbmd0aDtsKz0xKWlbdV1bbF09MjU1JnQuZ2V0QnVmZmVyKClbbCtyXTtyKz1oO3ZhciBmPXMuZ2V0RXJyb3JDb3JyZWN0UG9seW5vbWlhbChkKSxwPWMoaVt1XSxmLmdldExlbmd0aCgpLTEpLm1vZChmKTtmb3IoYVt1XT1uZXcgQXJyYXkoZi5nZXRMZW5ndGgoKS0xKSxsPTA7bDxhW3VdLmxlbmd0aDtsKz0xKXt2YXIgZz1sK3AuZ2V0TGVuZ3RoKCktYVt1XS5sZW5ndGg7YVt1XVtsXT1nPj0wP3AuZ2V0QXQoZyk6MH19dmFyIHY9MDtmb3IobD0wO2w8ZS5sZW5ndGg7bCs9MSl2Kz1lW2xdLnRvdGFsQ291bnQ7dmFyIHk9bmV3IEFycmF5KHYpLHc9MDtmb3IobD0wO2w8bjtsKz0xKWZvcih1PTA7dTxlLmxlbmd0aDt1Kz0xKWw8aVt1XS5sZW5ndGgmJih5W3ddPWlbdV1bbF0sdys9MSk7Zm9yKGw9MDtsPG87bCs9MSlmb3IodT0wO3U8ZS5sZW5ndGg7dSs9MSlsPGFbdV0ubGVuZ3RoJiYoeVt3XT1hW3VdW2xdLHcrPTEpO3JldHVybiB5fShvLG4pfTt5LmFkZERhdGE9ZnVuY3Rpb24odCxlKXt2YXIgcj1udWxsO3N3aXRjaChlPWV8fFwiQnl0ZVwiKXtjYXNlXCJOdW1lcmljXCI6cj1sKHQpO2JyZWFrO2Nhc2VcIkFscGhhbnVtZXJpY1wiOnI9Zih0KTticmVhaztjYXNlXCJCeXRlXCI6cj1wKHQpO2JyZWFrO2Nhc2VcIkthbmppXCI6cj1nKHQpO2JyZWFrO2RlZmF1bHQ6dGhyb3dcIm1vZGU6XCIrZX12LnB1c2gociksdT1udWxsfSx5LmlzRGFyaz1mdW5jdGlvbih0LGUpe2lmKHQ8MHx8aTw9dHx8ZTwwfHxpPD1lKXRocm93IHQrXCIsXCIrZTtyZXR1cm4gb1t0XVtlXX0seS5nZXRNb2R1bGVDb3VudD1mdW5jdGlvbigpe3JldHVybiBpfSx5Lm1ha2U9ZnVuY3Rpb24oKXtpZihyPDEpe2Zvcih2YXIgdD0xO3Q8NDA7dCsrKXtmb3IodmFyIGU9aC5nZXRSU0Jsb2Nrcyh0LG4pLG89ZCgpLGk9MDtpPHYubGVuZ3RoO2krKyl7dmFyIGE9dltpXTtvLnB1dChhLmdldE1vZGUoKSw0KSxvLnB1dChhLmdldExlbmd0aCgpLHMuZ2V0TGVuZ3RoSW5CaXRzKGEuZ2V0TW9kZSgpLHQpKSxhLndyaXRlKG8pfXZhciB1PTA7Zm9yKGk9MDtpPGUubGVuZ3RoO2krKyl1Kz1lW2ldLmRhdGFDb3VudDtpZihvLmdldExlbmd0aEluQml0cygpPD04KnUpYnJlYWt9cj10fV8oITEsZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPTAscj0wO3I8ODtyKz0xKXtfKCEwLHIpO3ZhciBuPXMuZ2V0TG9zdFBvaW50KHkpOygwPT1yfHx0Pm4pJiYodD1uLGU9cil9cmV0dXJuIGV9KCkpfSx5LmNyZWF0ZVRhYmxlVGFnPWZ1bmN0aW9uKHQsZSl7dD10fHwyO3ZhciByPVwiXCI7cis9Jzx0YWJsZSBzdHlsZT1cIicscis9XCIgYm9yZGVyLXdpZHRoOiAwcHg7IGJvcmRlci1zdHlsZTogbm9uZTtcIixyKz1cIiBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1wiLHIrPVwiIHBhZGRpbmc6IDBweDsgbWFyZ2luOiBcIisoZT12b2lkIDA9PT1lPzQqdDplKStcInB4O1wiLHIrPSdcIj4nLHIrPVwiPHRib2R5PlwiO2Zvcih2YXIgbj0wO248eS5nZXRNb2R1bGVDb3VudCgpO24rPTEpe3IrPVwiPHRyPlwiO2Zvcih2YXIgbz0wO288eS5nZXRNb2R1bGVDb3VudCgpO28rPTEpcis9Jzx0ZCBzdHlsZT1cIicscis9XCIgYm9yZGVyLXdpZHRoOiAwcHg7IGJvcmRlci1zdHlsZTogbm9uZTtcIixyKz1cIiBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1wiLHIrPVwiIHBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7XCIscis9XCIgd2lkdGg6IFwiK3QrXCJweDtcIixyKz1cIiBoZWlnaHQ6IFwiK3QrXCJweDtcIixyKz1cIiBiYWNrZ3JvdW5kLWNvbG9yOiBcIixyKz15LmlzRGFyayhuLG8pP1wiIzAwMDAwMFwiOlwiI2ZmZmZmZlwiLHIrPVwiO1wiLHIrPSdcIi8+JztyKz1cIjwvdHI+XCJ9cmV0dXJuKHIrPVwiPC90Ym9keT5cIikrXCI8L3RhYmxlPlwifSx5LmNyZWF0ZVN2Z1RhZz1mdW5jdGlvbih0LGUscixuKXt2YXIgbz17fTtcIm9iamVjdFwiPT10eXBlb2YgYXJndW1lbnRzWzBdJiYodD0obz1hcmd1bWVudHNbMF0pLmNlbGxTaXplLGU9by5tYXJnaW4scj1vLmFsdCxuPW8udGl0bGUpLHQ9dHx8MixlPXZvaWQgMD09PWU/NCp0OmUsKHI9XCJzdHJpbmdcIj09dHlwZW9mIHI/e3RleHQ6cn06cnx8e30pLnRleHQ9ci50ZXh0fHxudWxsLHIuaWQ9ci50ZXh0P3IuaWR8fFwicXJjb2RlLWRlc2NyaXB0aW9uXCI6bnVsbCwobj1cInN0cmluZ1wiPT10eXBlb2Ygbj97dGV4dDpufTpufHx7fSkudGV4dD1uLnRleHR8fG51bGwsbi5pZD1uLnRleHQ/bi5pZHx8XCJxcmNvZGUtdGl0bGVcIjpudWxsO3ZhciBpLGEscyx1LGM9eS5nZXRNb2R1bGVDb3VudCgpKnQrMiplLGg9XCJcIjtmb3IodT1cImxcIit0K1wiLDAgMCxcIit0K1wiIC1cIit0K1wiLDAgMCwtXCIrdCtcInogXCIsaCs9JzxzdmcgdmVyc2lvbj1cIjEuMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIicsaCs9by5zY2FsYWJsZT9cIlwiOicgd2lkdGg9XCInK2MrJ3B4XCIgaGVpZ2h0PVwiJytjKydweFwiJyxoKz0nIHZpZXdCb3g9XCIwIDAgJytjK1wiIFwiK2MrJ1wiICcsaCs9JyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwieE1pbllNaW4gbWVldFwiJyxoKz1uLnRleHR8fHIudGV4dD8nIHJvbGU9XCJpbWdcIiBhcmlhLWxhYmVsbGVkYnk9XCInK08oW24uaWQsci5pZF0uam9pbihcIiBcIikudHJpbSgpKSsnXCInOlwiXCIsaCs9XCI+XCIsaCs9bi50ZXh0Pyc8dGl0bGUgaWQ9XCInK08obi5pZCkrJ1wiPicrTyhuLnRleHQpK1wiPC90aXRsZT5cIjpcIlwiLGgrPXIudGV4dD8nPGRlc2NyaXB0aW9uIGlkPVwiJytPKHIuaWQpKydcIj4nK08oci50ZXh0KStcIjwvZGVzY3JpcHRpb24+XCI6XCJcIixoKz0nPHJlY3Qgd2lkdGg9XCIxMDAlXCIgaGVpZ2h0PVwiMTAwJVwiIGZpbGw9XCJ3aGl0ZVwiIGN4PVwiMFwiIGN5PVwiMFwiLz4nLGgrPSc8cGF0aCBkPVwiJyxhPTA7YTx5LmdldE1vZHVsZUNvdW50KCk7YSs9MSlmb3Iocz1hKnQrZSxpPTA7aTx5LmdldE1vZHVsZUNvdW50KCk7aSs9MSl5LmlzRGFyayhhLGkpJiYoaCs9XCJNXCIrKGkqdCtlKStcIixcIitzK3UpO3JldHVybihoKz0nXCIgc3Ryb2tlPVwidHJhbnNwYXJlbnRcIiBmaWxsPVwiYmxhY2tcIi8+JykrXCI8L3N2Zz5cIn0seS5jcmVhdGVEYXRhVVJMPWZ1bmN0aW9uKHQsZSl7dD10fHwyLGU9dm9pZCAwPT09ZT80KnQ6ZTt2YXIgcj15LmdldE1vZHVsZUNvdW50KCkqdCsyKmUsbj1lLG89ci1lO3JldHVybiB3KHIsciwoZnVuY3Rpb24oZSxyKXtpZihuPD1lJiZlPG8mJm48PXImJnI8byl7dmFyIGk9TWF0aC5mbG9vcigoZS1uKS90KSxhPU1hdGguZmxvb3IoKHItbikvdCk7cmV0dXJuIHkuaXNEYXJrKGEsaSk/MDoxfXJldHVybiAxfSkpfSx5LmNyZWF0ZUltZ1RhZz1mdW5jdGlvbih0LGUscil7dD10fHwyLGU9dm9pZCAwPT09ZT80KnQ6ZTt2YXIgbj15LmdldE1vZHVsZUNvdW50KCkqdCsyKmUsbz1cIlwiO3JldHVybiBvKz1cIjxpbWdcIixvKz0nIHNyYz1cIicsbys9eS5jcmVhdGVEYXRhVVJMKHQsZSksbys9J1wiJyxvKz0nIHdpZHRoPVwiJyxvKz1uLG8rPSdcIicsbys9JyBoZWlnaHQ9XCInLG8rPW4sbys9J1wiJyxyJiYobys9JyBhbHQ9XCInLG8rPU8ociksbys9J1wiJyksbytcIi8+XCJ9O3ZhciBPPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1cIlwiLHI9MDtyPHQubGVuZ3RoO3IrPTEpe3ZhciBuPXQuY2hhckF0KHIpO3N3aXRjaChuKXtjYXNlXCI8XCI6ZSs9XCImbHQ7XCI7YnJlYWs7Y2FzZVwiPlwiOmUrPVwiJmd0O1wiO2JyZWFrO2Nhc2VcIiZcIjplKz1cIiZhbXA7XCI7YnJlYWs7Y2FzZSdcIic6ZSs9XCImcXVvdDtcIjticmVhaztkZWZhdWx0OmUrPW59fXJldHVybiBlfTtyZXR1cm4geS5jcmVhdGVBU0NJST1mdW5jdGlvbih0LGUpe2lmKCh0PXR8fDEpPDIpcmV0dXJuIGZ1bmN0aW9uKHQpe3Q9dm9pZCAwPT09dD8yOnQ7dmFyIGUscixuLG8saSxhPTEqeS5nZXRNb2R1bGVDb3VudCgpKzIqdCxzPXQsdT1hLXQsYz17XCLilojilohcIjpcIuKWiFwiLFwi4paIIFwiOlwi4paAXCIsXCIg4paIXCI6XCLiloRcIixcIiAgXCI6XCIgXCJ9LGg9e1wi4paI4paIXCI6XCLiloBcIixcIuKWiCBcIjpcIuKWgFwiLFwiIOKWiFwiOlwiIFwiLFwiICBcIjpcIiBcIn0sZD1cIlwiO2ZvcihlPTA7ZTxhO2UrPTIpe2ZvcihuPU1hdGguZmxvb3IoKGUtcykvMSksbz1NYXRoLmZsb29yKChlKzEtcykvMSkscj0wO3I8YTtyKz0xKWk9XCLilohcIixzPD1yJiZyPHUmJnM8PWUmJmU8dSYmeS5pc0RhcmsobixNYXRoLmZsb29yKChyLXMpLzEpKSYmKGk9XCIgXCIpLHM8PXImJnI8dSYmczw9ZSsxJiZlKzE8dSYmeS5pc0RhcmsobyxNYXRoLmZsb29yKChyLXMpLzEpKT9pKz1cIiBcIjppKz1cIuKWiFwiLGQrPXQ8MSYmZSsxPj11P2hbaV06Y1tpXTtkKz1cIlxcblwifXJldHVybiBhJTImJnQ+MD9kLnN1YnN0cmluZygwLGQubGVuZ3RoLWEtMSkrQXJyYXkoYSsxKS5qb2luKFwi4paAXCIpOmQuc3Vic3RyaW5nKDAsZC5sZW5ndGgtMSl9KGUpO3QtPTEsZT12b2lkIDA9PT1lPzIqdDplO3ZhciByLG4sbyxpLGE9eS5nZXRNb2R1bGVDb3VudCgpKnQrMiplLHM9ZSx1PWEtZSxjPUFycmF5KHQrMSkuam9pbihcIuKWiOKWiFwiKSxoPUFycmF5KHQrMSkuam9pbihcIiAgXCIpLGQ9XCJcIixsPVwiXCI7Zm9yKHI9MDtyPGE7cis9MSl7Zm9yKG89TWF0aC5mbG9vcigoci1zKS90KSxsPVwiXCIsbj0wO248YTtuKz0xKWk9MSxzPD1uJiZuPHUmJnM8PXImJnI8dSYmeS5pc0RhcmsobyxNYXRoLmZsb29yKChuLXMpL3QpKSYmKGk9MCksbCs9aT9jOmg7Zm9yKG89MDtvPHQ7bys9MSlkKz1sK1wiXFxuXCJ9cmV0dXJuIGQuc3Vic3RyaW5nKDAsZC5sZW5ndGgtMSl9LHkucmVuZGVyVG8yZENvbnRleHQ9ZnVuY3Rpb24odCxlKXtlPWV8fDI7Zm9yKHZhciByPXkuZ2V0TW9kdWxlQ291bnQoKSxuPTA7bjxyO24rKylmb3IodmFyIG89MDtvPHI7bysrKXQuZmlsbFN0eWxlPXkuaXNEYXJrKG4sbyk/XCJibGFja1wiOlwid2hpdGVcIix0LmZpbGxSZWN0KG4qZSxvKmUsZSxlKX0seX07dC5zdHJpbmdUb0J5dGVzPSh0LnN0cmluZ1RvQnl0ZXNGdW5jcz17ZGVmYXVsdDpmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7cis9MSl7dmFyIG49dC5jaGFyQ29kZUF0KHIpO2UucHVzaCgyNTUmbil9cmV0dXJuIGV9fSkuZGVmYXVsdCx0LmNyZWF0ZVN0cmluZ1RvQnl0ZXM9ZnVuY3Rpb24odCxlKXt2YXIgcj1mdW5jdGlvbigpe2Zvcih2YXIgcj15KHQpLG49ZnVuY3Rpb24oKXt2YXIgdD1yLnJlYWQoKTtpZigtMT09dCl0aHJvd1wiZW9mXCI7cmV0dXJuIHR9LG89MCxpPXt9Ozspe3ZhciBhPXIucmVhZCgpO2lmKC0xPT1hKWJyZWFrO3ZhciBzPW4oKSx1PW4oKTw8OHxuKCk7aVtTdHJpbmcuZnJvbUNoYXJDb2RlKGE8PDh8cyldPXUsbys9MX1pZihvIT1lKXRocm93IG8rXCIgIT0gXCIrZTtyZXR1cm4gaX0oKSxuPVwiP1wiLmNoYXJDb2RlQXQoMCk7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxvPTA7bzx0Lmxlbmd0aDtvKz0xKXt2YXIgaT10LmNoYXJDb2RlQXQobyk7aWYoaTwxMjgpZS5wdXNoKGkpO2Vsc2V7dmFyIGE9clt0LmNoYXJBdChvKV07XCJudW1iZXJcIj09dHlwZW9mIGE/KDI1NSZhKT09YT9lLnB1c2goYSk6KGUucHVzaChhPj4+OCksZS5wdXNoKDI1NSZhKSk6ZS5wdXNoKG4pfX1yZXR1cm4gZX19O3ZhciBlLHIsbixvLGksYT17TDoxLE06MCxROjMsSDoyfSxzPShlPVtbXSxbNiwxOF0sWzYsMjJdLFs2LDI2XSxbNiwzMF0sWzYsMzRdLFs2LDIyLDM4XSxbNiwyNCw0Ml0sWzYsMjYsNDZdLFs2LDI4LDUwXSxbNiwzMCw1NF0sWzYsMzIsNThdLFs2LDM0LDYyXSxbNiwyNiw0Niw2Nl0sWzYsMjYsNDgsNzBdLFs2LDI2LDUwLDc0XSxbNiwzMCw1NCw3OF0sWzYsMzAsNTYsODJdLFs2LDMwLDU4LDg2XSxbNiwzNCw2Miw5MF0sWzYsMjgsNTAsNzIsOTRdLFs2LDI2LDUwLDc0LDk4XSxbNiwzMCw1NCw3OCwxMDJdLFs2LDI4LDU0LDgwLDEwNl0sWzYsMzIsNTgsODQsMTEwXSxbNiwzMCw1OCw4NiwxMTRdLFs2LDM0LDYyLDkwLDExOF0sWzYsMjYsNTAsNzQsOTgsMTIyXSxbNiwzMCw1NCw3OCwxMDIsMTI2XSxbNiwyNiw1Miw3OCwxMDQsMTMwXSxbNiwzMCw1Niw4MiwxMDgsMTM0XSxbNiwzNCw2MCw4NiwxMTIsMTM4XSxbNiwzMCw1OCw4NiwxMTQsMTQyXSxbNiwzNCw2Miw5MCwxMTgsMTQ2XSxbNiwzMCw1NCw3OCwxMDIsMTI2LDE1MF0sWzYsMjQsNTAsNzYsMTAyLDEyOCwxNTRdLFs2LDI4LDU0LDgwLDEwNiwxMzIsMTU4XSxbNiwzMiw1OCw4NCwxMTAsMTM2LDE2Ml0sWzYsMjYsNTQsODIsMTEwLDEzOCwxNjZdLFs2LDMwLDU4LDg2LDExNCwxNDIsMTcwXV0scj0xMzM1LG49Nzk3MyxpPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wOzAhPXQ7KWUrPTEsdD4+Pj0xO3JldHVybiBlfSwobz17fSkuZ2V0QkNIVHlwZUluZm89ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQ8PDEwO2koZSktaShyKT49MDspZV49cjw8aShlKS1pKHIpO3JldHVybiAyMTUyMl4odDw8MTB8ZSl9LG8uZ2V0QkNIVHlwZU51bWJlcj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dDw8MTI7aShlKS1pKG4pPj0wOyllXj1uPDxpKGUpLWkobik7cmV0dXJuIHQ8PDEyfGV9LG8uZ2V0UGF0dGVyblBvc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBlW3QtMV19LG8uZ2V0TWFza0Z1bmN0aW9uPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIDA6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQrZSklMj09MH07Y2FzZSAxOnJldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiB0JTI9PTB9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4gZSUzPT0wfTtjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQrZSklMz09MH07Y2FzZSA0OnJldHVybiBmdW5jdGlvbih0LGUpe3JldHVybihNYXRoLmZsb29yKHQvMikrTWF0aC5mbG9vcihlLzMpKSUyPT0wfTtjYXNlIDU6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQqZSUyK3QqZSUzPT0wfTtjYXNlIDY6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQqZSUyK3QqZSUzKSUyPT0wfTtjYXNlIDc6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQqZSUzKyh0K2UpJTIpJTI9PTB9O2RlZmF1bHQ6dGhyb3dcImJhZCBtYXNrUGF0dGVybjpcIit0fX0sby5nZXRFcnJvckNvcnJlY3RQb2x5bm9taWFsPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1jKFsxXSwwKSxyPTA7cjx0O3IrPTEpZT1lLm11bHRpcGx5KGMoWzEsdS5nZXhwKHIpXSwwKSk7cmV0dXJuIGV9LG8uZ2V0TGVuZ3RoSW5CaXRzPWZ1bmN0aW9uKHQsZSl7aWYoMTw9ZSYmZTwxMClzd2l0Y2godCl7Y2FzZSAxOnJldHVybiAxMDtjYXNlIDI6cmV0dXJuIDk7Y2FzZSA0OmNhc2UgODpyZXR1cm4gODtkZWZhdWx0OnRocm93XCJtb2RlOlwiK3R9ZWxzZSBpZihlPDI3KXN3aXRjaCh0KXtjYXNlIDE6cmV0dXJuIDEyO2Nhc2UgMjpyZXR1cm4gMTE7Y2FzZSA0OnJldHVybiAxNjtjYXNlIDg6cmV0dXJuIDEwO2RlZmF1bHQ6dGhyb3dcIm1vZGU6XCIrdH1lbHNle2lmKCEoZTw0MSkpdGhyb3dcInR5cGU6XCIrZTtzd2l0Y2godCl7Y2FzZSAxOnJldHVybiAxNDtjYXNlIDI6cmV0dXJuIDEzO2Nhc2UgNDpyZXR1cm4gMTY7Y2FzZSA4OnJldHVybiAxMjtkZWZhdWx0OnRocm93XCJtb2RlOlwiK3R9fX0sby5nZXRMb3N0UG9pbnQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuZ2V0TW9kdWxlQ291bnQoKSxyPTAsbj0wO248ZTtuKz0xKWZvcih2YXIgbz0wO288ZTtvKz0xKXtmb3IodmFyIGk9MCxhPXQuaXNEYXJrKG4sbykscz0tMTtzPD0xO3MrPTEpaWYoIShuK3M8MHx8ZTw9bitzKSlmb3IodmFyIHU9LTE7dTw9MTt1Kz0xKW8rdTwwfHxlPD1vK3V8fDA9PXMmJjA9PXV8fGE9PXQuaXNEYXJrKG4rcyxvK3UpJiYoaSs9MSk7aT41JiYocis9MytpLTUpfWZvcihuPTA7bjxlLTE7bis9MSlmb3Iobz0wO288ZS0xO28rPTEpe3ZhciBjPTA7dC5pc0RhcmsobixvKSYmKGMrPTEpLHQuaXNEYXJrKG4rMSxvKSYmKGMrPTEpLHQuaXNEYXJrKG4sbysxKSYmKGMrPTEpLHQuaXNEYXJrKG4rMSxvKzEpJiYoYys9MSksMCE9YyYmNCE9Y3x8KHIrPTMpfWZvcihuPTA7bjxlO24rPTEpZm9yKG89MDtvPGUtNjtvKz0xKXQuaXNEYXJrKG4sbykmJiF0LmlzRGFyayhuLG8rMSkmJnQuaXNEYXJrKG4sbysyKSYmdC5pc0RhcmsobixvKzMpJiZ0LmlzRGFyayhuLG8rNCkmJiF0LmlzRGFyayhuLG8rNSkmJnQuaXNEYXJrKG4sbys2KSYmKHIrPTQwKTtmb3Iobz0wO288ZTtvKz0xKWZvcihuPTA7bjxlLTY7bis9MSl0LmlzRGFyayhuLG8pJiYhdC5pc0RhcmsobisxLG8pJiZ0LmlzRGFyayhuKzIsbykmJnQuaXNEYXJrKG4rMyxvKSYmdC5pc0Rhcmsobis0LG8pJiYhdC5pc0Rhcmsobis1LG8pJiZ0LmlzRGFyayhuKzYsbykmJihyKz00MCk7dmFyIGg9MDtmb3Iobz0wO288ZTtvKz0xKWZvcihuPTA7bjxlO24rPTEpdC5pc0RhcmsobixvKSYmKGgrPTEpO3JldHVybiByK01hdGguYWJzKDEwMCpoL2UvZS01MCkvNSoxMH0sbyksdT1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoMjU2KSxlPW5ldyBBcnJheSgyNTYpLHI9MDtyPDg7cis9MSl0W3JdPTE8PHI7Zm9yKHI9ODtyPDI1NjtyKz0xKXRbcl09dFtyLTRdXnRbci01XV50W3ItNl1edFtyLThdO2ZvcihyPTA7cjwyNTU7cis9MSllW3Rbcl1dPXI7cmV0dXJue2dsb2c6ZnVuY3Rpb24odCl7aWYodDwxKXRocm93XCJnbG9nKFwiK3QrXCIpXCI7cmV0dXJuIGVbdF19LGdleHA6ZnVuY3Rpb24oZSl7Zm9yKDtlPDA7KWUrPTI1NTtmb3IoO2U+PTI1NjspZS09MjU1O3JldHVybiB0W2VdfX19KCk7ZnVuY3Rpb24gYyh0LGUpe2lmKHZvaWQgMD09PXQubGVuZ3RoKXRocm93IHQubGVuZ3RoK1wiL1wiK2U7dmFyIHI9ZnVuY3Rpb24oKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoJiYwPT10W3JdOylyKz0xO2Zvcih2YXIgbj1uZXcgQXJyYXkodC5sZW5ndGgtcitlKSxvPTA7bzx0Lmxlbmd0aC1yO28rPTEpbltvXT10W28rcl07cmV0dXJuIG59KCksbj17Z2V0QXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHJbdF19LGdldExlbmd0aDpmdW5jdGlvbigpe3JldHVybiByLmxlbmd0aH0sbXVsdGlwbHk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheShuLmdldExlbmd0aCgpK3QuZ2V0TGVuZ3RoKCktMSkscj0wO3I8bi5nZXRMZW5ndGgoKTtyKz0xKWZvcih2YXIgbz0wO288dC5nZXRMZW5ndGgoKTtvKz0xKWVbcitvXV49dS5nZXhwKHUuZ2xvZyhuLmdldEF0KHIpKSt1Lmdsb2codC5nZXRBdChvKSkpO3JldHVybiBjKGUsMCl9LG1vZDpmdW5jdGlvbih0KXtpZihuLmdldExlbmd0aCgpLXQuZ2V0TGVuZ3RoKCk8MClyZXR1cm4gbjtmb3IodmFyIGU9dS5nbG9nKG4uZ2V0QXQoMCkpLXUuZ2xvZyh0LmdldEF0KDApKSxyPW5ldyBBcnJheShuLmdldExlbmd0aCgpKSxvPTA7bzxuLmdldExlbmd0aCgpO28rPTEpcltvXT1uLmdldEF0KG8pO2ZvcihvPTA7bzx0LmdldExlbmd0aCgpO28rPTEpcltvXV49dS5nZXhwKHUuZ2xvZyh0LmdldEF0KG8pKStlKTtyZXR1cm4gYyhyLDApLm1vZCh0KX19O3JldHVybiBufXZhciBoPWZ1bmN0aW9uKCl7dmFyIHQ9W1sxLDI2LDE5XSxbMSwyNiwxNl0sWzEsMjYsMTNdLFsxLDI2LDldLFsxLDQ0LDM0XSxbMSw0NCwyOF0sWzEsNDQsMjJdLFsxLDQ0LDE2XSxbMSw3MCw1NV0sWzEsNzAsNDRdLFsyLDM1LDE3XSxbMiwzNSwxM10sWzEsMTAwLDgwXSxbMiw1MCwzMl0sWzIsNTAsMjRdLFs0LDI1LDldLFsxLDEzNCwxMDhdLFsyLDY3LDQzXSxbMiwzMywxNSwyLDM0LDE2XSxbMiwzMywxMSwyLDM0LDEyXSxbMiw4Niw2OF0sWzQsNDMsMjddLFs0LDQzLDE5XSxbNCw0MywxNV0sWzIsOTgsNzhdLFs0LDQ5LDMxXSxbMiwzMiwxNCw0LDMzLDE1XSxbNCwzOSwxMywxLDQwLDE0XSxbMiwxMjEsOTddLFsyLDYwLDM4LDIsNjEsMzldLFs0LDQwLDE4LDIsNDEsMTldLFs0LDQwLDE0LDIsNDEsMTVdLFsyLDE0NiwxMTZdLFszLDU4LDM2LDIsNTksMzddLFs0LDM2LDE2LDQsMzcsMTddLFs0LDM2LDEyLDQsMzcsMTNdLFsyLDg2LDY4LDIsODcsNjldLFs0LDY5LDQzLDEsNzAsNDRdLFs2LDQzLDE5LDIsNDQsMjBdLFs2LDQzLDE1LDIsNDQsMTZdLFs0LDEwMSw4MV0sWzEsODAsNTAsNCw4MSw1MV0sWzQsNTAsMjIsNCw1MSwyM10sWzMsMzYsMTIsOCwzNywxM10sWzIsMTE2LDkyLDIsMTE3LDkzXSxbNiw1OCwzNiwyLDU5LDM3XSxbNCw0NiwyMCw2LDQ3LDIxXSxbNyw0MiwxNCw0LDQzLDE1XSxbNCwxMzMsMTA3XSxbOCw1OSwzNywxLDYwLDM4XSxbOCw0NCwyMCw0LDQ1LDIxXSxbMTIsMzMsMTEsNCwzNCwxMl0sWzMsMTQ1LDExNSwxLDE0NiwxMTZdLFs0LDY0LDQwLDUsNjUsNDFdLFsxMSwzNiwxNiw1LDM3LDE3XSxbMTEsMzYsMTIsNSwzNywxM10sWzUsMTA5LDg3LDEsMTEwLDg4XSxbNSw2NSw0MSw1LDY2LDQyXSxbNSw1NCwyNCw3LDU1LDI1XSxbMTEsMzYsMTIsNywzNywxM10sWzUsMTIyLDk4LDEsMTIzLDk5XSxbNyw3Myw0NSwzLDc0LDQ2XSxbMTUsNDMsMTksMiw0NCwyMF0sWzMsNDUsMTUsMTMsNDYsMTZdLFsxLDEzNSwxMDcsNSwxMzYsMTA4XSxbMTAsNzQsNDYsMSw3NSw0N10sWzEsNTAsMjIsMTUsNTEsMjNdLFsyLDQyLDE0LDE3LDQzLDE1XSxbNSwxNTAsMTIwLDEsMTUxLDEyMV0sWzksNjksNDMsNCw3MCw0NF0sWzE3LDUwLDIyLDEsNTEsMjNdLFsyLDQyLDE0LDE5LDQzLDE1XSxbMywxNDEsMTEzLDQsMTQyLDExNF0sWzMsNzAsNDQsMTEsNzEsNDVdLFsxNyw0NywyMSw0LDQ4LDIyXSxbOSwzOSwxMywxNiw0MCwxNF0sWzMsMTM1LDEwNyw1LDEzNiwxMDhdLFszLDY3LDQxLDEzLDY4LDQyXSxbMTUsNTQsMjQsNSw1NSwyNV0sWzE1LDQzLDE1LDEwLDQ0LDE2XSxbNCwxNDQsMTE2LDQsMTQ1LDExN10sWzE3LDY4LDQyXSxbMTcsNTAsMjIsNiw1MSwyM10sWzE5LDQ2LDE2LDYsNDcsMTddLFsyLDEzOSwxMTEsNywxNDAsMTEyXSxbMTcsNzQsNDZdLFs3LDU0LDI0LDE2LDU1LDI1XSxbMzQsMzcsMTNdLFs0LDE1MSwxMjEsNSwxNTIsMTIyXSxbNCw3NSw0NywxNCw3Niw0OF0sWzExLDU0LDI0LDE0LDU1LDI1XSxbMTYsNDUsMTUsMTQsNDYsMTZdLFs2LDE0NywxMTcsNCwxNDgsMTE4XSxbNiw3Myw0NSwxNCw3NCw0Nl0sWzExLDU0LDI0LDE2LDU1LDI1XSxbMzAsNDYsMTYsMiw0NywxN10sWzgsMTMyLDEwNiw0LDEzMywxMDddLFs4LDc1LDQ3LDEzLDc2LDQ4XSxbNyw1NCwyNCwyMiw1NSwyNV0sWzIyLDQ1LDE1LDEzLDQ2LDE2XSxbMTAsMTQyLDExNCwyLDE0MywxMTVdLFsxOSw3NCw0Niw0LDc1LDQ3XSxbMjgsNTAsMjIsNiw1MSwyM10sWzMzLDQ2LDE2LDQsNDcsMTddLFs4LDE1MiwxMjIsNCwxNTMsMTIzXSxbMjIsNzMsNDUsMyw3NCw0Nl0sWzgsNTMsMjMsMjYsNTQsMjRdLFsxMiw0NSwxNSwyOCw0NiwxNl0sWzMsMTQ3LDExNywxMCwxNDgsMTE4XSxbMyw3Myw0NSwyMyw3NCw0Nl0sWzQsNTQsMjQsMzEsNTUsMjVdLFsxMSw0NSwxNSwzMSw0NiwxNl0sWzcsMTQ2LDExNiw3LDE0NywxMTddLFsyMSw3Myw0NSw3LDc0LDQ2XSxbMSw1MywyMywzNyw1NCwyNF0sWzE5LDQ1LDE1LDI2LDQ2LDE2XSxbNSwxNDUsMTE1LDEwLDE0NiwxMTZdLFsxOSw3NSw0NywxMCw3Niw0OF0sWzE1LDU0LDI0LDI1LDU1LDI1XSxbMjMsNDUsMTUsMjUsNDYsMTZdLFsxMywxNDUsMTE1LDMsMTQ2LDExNl0sWzIsNzQsNDYsMjksNzUsNDddLFs0Miw1NCwyNCwxLDU1LDI1XSxbMjMsNDUsMTUsMjgsNDYsMTZdLFsxNywxNDUsMTE1XSxbMTAsNzQsNDYsMjMsNzUsNDddLFsxMCw1NCwyNCwzNSw1NSwyNV0sWzE5LDQ1LDE1LDM1LDQ2LDE2XSxbMTcsMTQ1LDExNSwxLDE0NiwxMTZdLFsxNCw3NCw0NiwyMSw3NSw0N10sWzI5LDU0LDI0LDE5LDU1LDI1XSxbMTEsNDUsMTUsNDYsNDYsMTZdLFsxMywxNDUsMTE1LDYsMTQ2LDExNl0sWzE0LDc0LDQ2LDIzLDc1LDQ3XSxbNDQsNTQsMjQsNyw1NSwyNV0sWzU5LDQ2LDE2LDEsNDcsMTddLFsxMiwxNTEsMTIxLDcsMTUyLDEyMl0sWzEyLDc1LDQ3LDI2LDc2LDQ4XSxbMzksNTQsMjQsMTQsNTUsMjVdLFsyMiw0NSwxNSw0MSw0NiwxNl0sWzYsMTUxLDEyMSwxNCwxNTIsMTIyXSxbNiw3NSw0NywzNCw3Niw0OF0sWzQ2LDU0LDI0LDEwLDU1LDI1XSxbMiw0NSwxNSw2NCw0NiwxNl0sWzE3LDE1MiwxMjIsNCwxNTMsMTIzXSxbMjksNzQsNDYsMTQsNzUsNDddLFs0OSw1NCwyNCwxMCw1NSwyNV0sWzI0LDQ1LDE1LDQ2LDQ2LDE2XSxbNCwxNTIsMTIyLDE4LDE1MywxMjNdLFsxMyw3NCw0NiwzMiw3NSw0N10sWzQ4LDU0LDI0LDE0LDU1LDI1XSxbNDIsNDUsMTUsMzIsNDYsMTZdLFsyMCwxNDcsMTE3LDQsMTQ4LDExOF0sWzQwLDc1LDQ3LDcsNzYsNDhdLFs0Myw1NCwyNCwyMiw1NSwyNV0sWzEwLDQ1LDE1LDY3LDQ2LDE2XSxbMTksMTQ4LDExOCw2LDE0OSwxMTldLFsxOCw3NSw0NywzMSw3Niw0OF0sWzM0LDU0LDI0LDM0LDU1LDI1XSxbMjAsNDUsMTUsNjEsNDYsMTZdXSxlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e307cmV0dXJuIHIudG90YWxDb3VudD10LHIuZGF0YUNvdW50PWUscn0scj17Z2V0UlNCbG9ja3M6ZnVuY3Rpb24ocixuKXt2YXIgbz1mdW5jdGlvbihlLHIpe3N3aXRjaChyKXtjYXNlIGEuTDpyZXR1cm4gdFs0KihlLTEpKzBdO2Nhc2UgYS5NOnJldHVybiB0WzQqKGUtMSkrMV07Y2FzZSBhLlE6cmV0dXJuIHRbNCooZS0xKSsyXTtjYXNlIGEuSDpyZXR1cm4gdFs0KihlLTEpKzNdO2RlZmF1bHQ6cmV0dXJufX0ocixuKTtpZih2b2lkIDA9PT1vKXRocm93XCJiYWQgcnMgYmxvY2sgQCB0eXBlTnVtYmVyOlwiK3IrXCIvZXJyb3JDb3JyZWN0aW9uTGV2ZWw6XCIrbjtmb3IodmFyIGk9by5sZW5ndGgvMyxzPVtdLHU9MDt1PGk7dSs9MSlmb3IodmFyIGM9b1szKnUrMF0saD1vWzMqdSsxXSxkPW9bMyp1KzJdLGw9MDtsPGM7bCs9MSlzLnB1c2goZShoLGQpKTtyZXR1cm4gc319O3JldHVybiByfSgpLGQ9ZnVuY3Rpb24oKXt2YXIgdD1bXSxlPTAscj17Z2V0QnVmZmVyOmZ1bmN0aW9uKCl7cmV0dXJuIHR9LGdldEF0OmZ1bmN0aW9uKGUpe3ZhciByPU1hdGguZmxvb3IoZS84KTtyZXR1cm4gMT09KHRbcl0+Pj43LWUlOCYxKX0scHV0OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTA7bjxlO24rPTEpci5wdXRCaXQoMT09KHQ+Pj5lLW4tMSYxKSl9LGdldExlbmd0aEluQml0czpmdW5jdGlvbigpe3JldHVybiBlfSxwdXRCaXQ6ZnVuY3Rpb24ocil7dmFyIG49TWF0aC5mbG9vcihlLzgpO3QubGVuZ3RoPD1uJiZ0LnB1c2goMCksciYmKHRbbl18PTEyOD4+PmUlOCksZSs9MX19O3JldHVybiByfSxsPWZ1bmN0aW9uKHQpe3ZhciBlPXQscj17Z2V0TW9kZTpmdW5jdGlvbigpe3JldHVybiAxfSxnZXRMZW5ndGg6ZnVuY3Rpb24odCl7cmV0dXJuIGUubGVuZ3RofSx3cml0ZTpmdW5jdGlvbih0KXtmb3IodmFyIHI9ZSxvPTA7bysyPHIubGVuZ3RoOyl0LnB1dChuKHIuc3Vic3RyaW5nKG8sbyszKSksMTApLG8rPTM7bzxyLmxlbmd0aCYmKHIubGVuZ3RoLW89PTE/dC5wdXQobihyLnN1YnN0cmluZyhvLG8rMSkpLDQpOnIubGVuZ3RoLW89PTImJnQucHV0KG4oci5zdWJzdHJpbmcobyxvKzIpKSw3KSl9fSxuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoO3IrPTEpZT0xMCplK28odC5jaGFyQXQocikpO3JldHVybiBlfSxvPWZ1bmN0aW9uKHQpe2lmKFwiMFwiPD10JiZ0PD1cIjlcIilyZXR1cm4gdC5jaGFyQ29kZUF0KDApLVwiMFwiLmNoYXJDb2RlQXQoMCk7dGhyb3dcImlsbGVnYWwgY2hhciA6XCIrdH07cmV0dXJuIHJ9LGY9ZnVuY3Rpb24odCl7dmFyIGU9dCxyPXtnZXRNb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIDJ9LGdldExlbmd0aDpmdW5jdGlvbih0KXtyZXR1cm4gZS5sZW5ndGh9LHdyaXRlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgcj1lLG89MDtvKzE8ci5sZW5ndGg7KXQucHV0KDQ1Km4oci5jaGFyQXQobykpK24oci5jaGFyQXQobysxKSksMTEpLG8rPTI7bzxyLmxlbmd0aCYmdC5wdXQobihyLmNoYXJBdChvKSksNil9fSxuPWZ1bmN0aW9uKHQpe2lmKFwiMFwiPD10JiZ0PD1cIjlcIilyZXR1cm4gdC5jaGFyQ29kZUF0KDApLVwiMFwiLmNoYXJDb2RlQXQoMCk7aWYoXCJBXCI8PXQmJnQ8PVwiWlwiKXJldHVybiB0LmNoYXJDb2RlQXQoMCktXCJBXCIuY2hhckNvZGVBdCgwKSsxMDtzd2l0Y2godCl7Y2FzZVwiIFwiOnJldHVybiAzNjtjYXNlXCIkXCI6cmV0dXJuIDM3O2Nhc2VcIiVcIjpyZXR1cm4gMzg7Y2FzZVwiKlwiOnJldHVybiAzOTtjYXNlXCIrXCI6cmV0dXJuIDQwO2Nhc2VcIi1cIjpyZXR1cm4gNDE7Y2FzZVwiLlwiOnJldHVybiA0MjtjYXNlXCIvXCI6cmV0dXJuIDQzO2Nhc2VcIjpcIjpyZXR1cm4gNDQ7ZGVmYXVsdDp0aHJvd1wiaWxsZWdhbCBjaGFyIDpcIit0fX07cmV0dXJuIHJ9LHA9ZnVuY3Rpb24oZSl7dmFyIHI9dC5zdHJpbmdUb0J5dGVzKGUpO3JldHVybntnZXRNb2RlOmZ1bmN0aW9uKCl7cmV0dXJuIDR9LGdldExlbmd0aDpmdW5jdGlvbih0KXtyZXR1cm4gci5sZW5ndGh9LHdyaXRlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8ci5sZW5ndGg7ZSs9MSl0LnB1dChyW2VdLDgpfX19LGc9ZnVuY3Rpb24oZSl7dmFyIHI9dC5zdHJpbmdUb0J5dGVzRnVuY3MuU0pJUztpZighcil0aHJvd1wic2ppcyBub3Qgc3VwcG9ydGVkLlwiOyFmdW5jdGlvbih0LGUpe3ZhciBuPXIoXCLlj4tcIik7aWYoMiE9bi5sZW5ndGh8fDM4NzI2IT0oblswXTw8OHxuWzFdKSl0aHJvd1wic2ppcyBub3Qgc3VwcG9ydGVkLlwifSgpO3ZhciBuPXIoZSk7cmV0dXJue2dldE1vZGU6ZnVuY3Rpb24oKXtyZXR1cm4gOH0sZ2V0TGVuZ3RoOmZ1bmN0aW9uKHQpe3JldHVybn5+KG4ubGVuZ3RoLzIpfSx3cml0ZTpmdW5jdGlvbih0KXtmb3IodmFyIGU9bixyPTA7cisxPGUubGVuZ3RoOyl7dmFyIG89KDI1NSZlW3JdKTw8OHwyNTUmZVtyKzFdO2lmKDMzMDg4PD1vJiZvPD00MDk1NilvLT0zMzA4ODtlbHNle2lmKCEoNTc0MDg8PW8mJm88PTYwMzUxKSl0aHJvd1wiaWxsZWdhbCBjaGFyIGF0IFwiKyhyKzEpK1wiL1wiK287by09NDk0NzJ9bz0xOTIqKG8+Pj44JjI1NSkrKDI1NSZvKSx0LnB1dChvLDEzKSxyKz0yfWlmKHI8ZS5sZW5ndGgpdGhyb3dcImlsbGVnYWwgY2hhciBhdCBcIisocisxKX19fSx2PWZ1bmN0aW9uKCl7dmFyIHQ9W10sZT17d3JpdGVCeXRlOmZ1bmN0aW9uKGUpe3QucHVzaCgyNTUmZSl9LHdyaXRlU2hvcnQ6ZnVuY3Rpb24odCl7ZS53cml0ZUJ5dGUodCksZS53cml0ZUJ5dGUodD4+PjgpfSx3cml0ZUJ5dGVzOmZ1bmN0aW9uKHQscixuKXtyPXJ8fDAsbj1ufHx0Lmxlbmd0aDtmb3IodmFyIG89MDtvPG47bys9MSllLndyaXRlQnl0ZSh0W28rcl0pfSx3cml0ZVN0cmluZzpmdW5jdGlvbih0KXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrPTEpZS53cml0ZUJ5dGUodC5jaGFyQ29kZUF0KHIpKX0sdG9CeXRlQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgZT1cIlwiO2UrPVwiW1wiO2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cis9MSlyPjAmJihlKz1cIixcIiksZSs9dFtyXTtyZXR1cm4gZStcIl1cIn19O3JldHVybiBlfSx5PWZ1bmN0aW9uKHQpe3ZhciBlPXQscj0wLG49MCxvPTAsaT17cmVhZDpmdW5jdGlvbigpe2Zvcig7bzw4Oyl7aWYocj49ZS5sZW5ndGgpe2lmKDA9PW8pcmV0dXJuLTE7dGhyb3dcInVuZXhwZWN0ZWQgZW5kIG9mIGZpbGUuL1wiK299dmFyIHQ9ZS5jaGFyQXQocik7aWYocis9MSxcIj1cIj09dClyZXR1cm4gbz0wLC0xO3QubWF0Y2goL15cXHMkLyl8fChuPW48PDZ8YSh0LmNoYXJDb2RlQXQoMCkpLG8rPTYpfXZhciBpPW4+Pj5vLTgmMjU1O3JldHVybiBvLT04LGl9fSxhPWZ1bmN0aW9uKHQpe2lmKDY1PD10JiZ0PD05MClyZXR1cm4gdC02NTtpZig5Nzw9dCYmdDw9MTIyKXJldHVybiB0LTk3KzI2O2lmKDQ4PD10JiZ0PD01NylyZXR1cm4gdC00OCs1MjtpZig0Mz09dClyZXR1cm4gNjI7aWYoNDc9PXQpcmV0dXJuIDYzO3Rocm93XCJjOlwiK3R9O3JldHVybiBpfSx3PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49ZnVuY3Rpb24odCxlKXt2YXIgcj10LG49ZSxvPW5ldyBBcnJheSh0KmUpLGk9e3NldFBpeGVsOmZ1bmN0aW9uKHQsZSxuKXtvW2Uqcit0XT1ufSx3cml0ZTpmdW5jdGlvbih0KXt0LndyaXRlU3RyaW5nKFwiR0lGODdhXCIpLHQud3JpdGVTaG9ydChyKSx0LndyaXRlU2hvcnQobiksdC53cml0ZUJ5dGUoMTI4KSx0LndyaXRlQnl0ZSgwKSx0LndyaXRlQnl0ZSgwKSx0LndyaXRlQnl0ZSgwKSx0LndyaXRlQnl0ZSgwKSx0LndyaXRlQnl0ZSgwKSx0LndyaXRlQnl0ZSgyNTUpLHQud3JpdGVCeXRlKDI1NSksdC53cml0ZUJ5dGUoMjU1KSx0LndyaXRlU3RyaW5nKFwiLFwiKSx0LndyaXRlU2hvcnQoMCksdC53cml0ZVNob3J0KDApLHQud3JpdGVTaG9ydChyKSx0LndyaXRlU2hvcnQobiksdC53cml0ZUJ5dGUoMCk7dmFyIGU9YSgyKTt0LndyaXRlQnl0ZSgyKTtmb3IodmFyIG89MDtlLmxlbmd0aC1vPjI1NTspdC53cml0ZUJ5dGUoMjU1KSx0LndyaXRlQnl0ZXMoZSxvLDI1NSksbys9MjU1O3Qud3JpdGVCeXRlKGUubGVuZ3RoLW8pLHQud3JpdGVCeXRlcyhlLG8sZS5sZW5ndGgtbyksdC53cml0ZUJ5dGUoMCksdC53cml0ZVN0cmluZyhcIjtcIil9fSxhPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xPDx0LHI9MSsoMTw8dCksbj10KzEsaT1zKCksYT0wO2E8ZTthKz0xKWkuYWRkKFN0cmluZy5mcm9tQ2hhckNvZGUoYSkpO2kuYWRkKFN0cmluZy5mcm9tQ2hhckNvZGUoZSkpLGkuYWRkKFN0cmluZy5mcm9tQ2hhckNvZGUocikpO3ZhciB1LGMsaCxkPXYoKSxsPSh1PWQsYz0wLGg9MCx7d3JpdGU6ZnVuY3Rpb24odCxlKXtpZih0Pj4+ZSE9MCl0aHJvd1wibGVuZ3RoIG92ZXJcIjtmb3IoO2MrZT49ODspdS53cml0ZUJ5dGUoMjU1Jih0PDxjfGgpKSxlLT04LWMsdD4+Pj04LWMsaD0wLGM9MDtofD10PDxjLGMrPWV9LGZsdXNoOmZ1bmN0aW9uKCl7Yz4wJiZ1LndyaXRlQnl0ZShoKX19KTtsLndyaXRlKGUsbik7dmFyIGY9MCxwPVN0cmluZy5mcm9tQ2hhckNvZGUob1tmXSk7Zm9yKGYrPTE7ZjxvLmxlbmd0aDspe3ZhciBnPVN0cmluZy5mcm9tQ2hhckNvZGUob1tmXSk7Zis9MSxpLmNvbnRhaW5zKHArZyk/cCs9ZzoobC53cml0ZShpLmluZGV4T2YocCksbiksaS5zaXplKCk8NDA5NSYmKGkuc2l6ZSgpPT0xPDxuJiYobis9MSksaS5hZGQocCtnKSkscD1nKX1yZXR1cm4gbC53cml0ZShpLmluZGV4T2YocCksbiksbC53cml0ZShyLG4pLGwuZmx1c2goKSxkLnRvQnl0ZUFycmF5KCl9LHM9ZnVuY3Rpb24oKXt2YXIgdD17fSxlPTAscj17YWRkOmZ1bmN0aW9uKG4pe2lmKHIuY29udGFpbnMobikpdGhyb3dcImR1cCBrZXk6XCIrbjt0W25dPWUsZSs9MX0sc2l6ZTpmdW5jdGlvbigpe3JldHVybiBlfSxpbmRleE9mOmZ1bmN0aW9uKGUpe3JldHVybiB0W2VdfSxjb250YWluczpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwIT09dFtlXX19O3JldHVybiByfTtyZXR1cm4gaX0odCxlKSxvPTA7bzxlO28rPTEpZm9yKHZhciBpPTA7aTx0O2krPTEpbi5zZXRQaXhlbChpLG8scihpLG8pKTt2YXIgYT12KCk7bi53cml0ZShhKTtmb3IodmFyIHM9ZnVuY3Rpb24oKXt2YXIgdD0wLGU9MCxyPTAsbj1cIlwiLG89e30saT1mdW5jdGlvbih0KXtuKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGEoNjMmdCkpfSxhPWZ1bmN0aW9uKHQpe2lmKHQ8MCk7ZWxzZXtpZih0PDI2KXJldHVybiA2NSt0O2lmKHQ8NTIpcmV0dXJuIHQtMjYrOTc7aWYodDw2MilyZXR1cm4gdC01Mis0ODtpZig2Mj09dClyZXR1cm4gNDM7aWYoNjM9PXQpcmV0dXJuIDQ3fXRocm93XCJuOlwiK3R9O3JldHVybiBvLndyaXRlQnl0ZT1mdW5jdGlvbihuKXtmb3IodD10PDw4fDI1NSZuLGUrPTgscis9MTtlPj02OylpKHQ+Pj5lLTYpLGUtPTZ9LG8uZmx1c2g9ZnVuY3Rpb24oKXtpZihlPjAmJihpKHQ8PDYtZSksdD0wLGU9MCksciUzIT0wKWZvcih2YXIgbz0zLXIlMyxhPTA7YTxvO2ErPTEpbis9XCI9XCJ9LG8udG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gbn0sb30oKSx1PWEudG9CeXRlQXJyYXkoKSxjPTA7Yzx1Lmxlbmd0aDtjKz0xKXMud3JpdGVCeXRlKHVbY10pO3JldHVybiBzLmZsdXNoKCksXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsXCIrc307cmV0dXJuIHR9KCk7by5zdHJpbmdUb0J5dGVzRnVuY3NbXCJVVEYtOFwiXT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dC5jaGFyQ29kZUF0KHIpO248MTI4P2UucHVzaChuKTpuPDIwNDg/ZS5wdXNoKDE5MnxuPj42LDEyOHw2MyZuKTpuPDU1Mjk2fHxuPj01NzM0ND9lLnB1c2goMjI0fG4+PjEyLDEyOHxuPj42JjYzLDEyOHw2MyZuKToocisrLG49NjU1MzYrKCgxMDIzJm4pPDwxMHwxMDIzJnQuY2hhckNvZGVBdChyKSksZS5wdXNoKDI0MHxuPj4xOCwxMjh8bj4+MTImNjMsMTI4fG4+PjYmNjMsMTI4fDYzJm4pKX1yZXR1cm4gZX0odCl9LHZvaWQgMD09PShuPVwiZnVuY3Rpb25cIj09dHlwZW9mKHI9ZnVuY3Rpb24oKXtyZXR1cm4gb30pP3IuYXBwbHkoZSxbXSk6cil8fCh0LmV4cG9ydHM9bil9LDc5NjoodCxlLHIpPT57XCJ1c2Ugc3RyaWN0XCI7ci5kKGUse2RlZmF1bHQ6KCk9Pld9KTt2YXIgbj1mdW5jdGlvbigpe3JldHVybihuPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTEsbj1hcmd1bWVudHMubGVuZ3RoO3I8bjtyKyspZm9yKHZhciBvIGluIGU9YXJndW1lbnRzW3JdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiYodFtvXT1lW29dKTtyZXR1cm4gdH0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sbz1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9MCxyPWFyZ3VtZW50cy5sZW5ndGg7ZTxyO2UrKyl0Kz1hcmd1bWVudHNbZV0ubGVuZ3RoO3ZhciBuPUFycmF5KHQpLG89MDtmb3IoZT0wO2U8cjtlKyspZm9yKHZhciBpPWFyZ3VtZW50c1tlXSxhPTAscz1pLmxlbmd0aDthPHM7YSsrLG8rKyluW29dPWlbYV07cmV0dXJuIG59LGk9ZnVuY3Rpb24odCl7cmV0dXJuISF0JiZcIm9iamVjdFwiPT10eXBlb2YgdCYmIUFycmF5LmlzQXJyYXkodCl9O2Z1bmN0aW9uIGEodCl7Zm9yKHZhciBlPVtdLHI9MTtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWVbci0xXT1hcmd1bWVudHNbcl07aWYoIWUubGVuZ3RoKXJldHVybiB0O3ZhciBzPWUuc2hpZnQoKTtyZXR1cm4gdm9pZCAwIT09cyYmaSh0KSYmaShzKT8odD1uKHt9LHQpLE9iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPXRbZV0sbj1zW2VdO0FycmF5LmlzQXJyYXkocikmJkFycmF5LmlzQXJyYXkobik/dFtlXT1uOmkocikmJmkobik/dFtlXT1hKE9iamVjdC5hc3NpZ24oe30sciksbik6dFtlXT1ufSkpLGEuYXBwbHkodm9pZCAwLG8oW3RdLGUpKSk6dH1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7ci5kb3dubG9hZD1lLHIuaHJlZj10LGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQociksci5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQocil9ZnVuY3Rpb24gdSh0KXt2YXIgZT10Lm9yaWdpbmFsSGVpZ2h0LHI9dC5vcmlnaW5hbFdpZHRoLG49dC5tYXhIaWRkZW5Eb3RzLG89dC5tYXhIaWRkZW5BeGlzRG90cyxpPXQuZG90U2l6ZSxhPXt4OjAseTowfSxzPXt4OjAseTowfTtpZihlPD0wfHxyPD0wfHxuPD0wfHxpPD0wKXJldHVybntoZWlnaHQ6MCx3aWR0aDowLGhpZGVZRG90czowLGhpZGVYRG90czowfTt2YXIgdT1lL3I7cmV0dXJuIGEueD1NYXRoLmZsb29yKE1hdGguc3FydChuL3UpKSxhLng8PTAmJihhLng9MSksbyYmbzxhLngmJihhLng9byksYS54JTI9PTAmJmEueC0tLHMueD1hLngqaSxhLnk9MSsyKk1hdGguY2VpbCgoYS54KnUtMSkvMikscy55PU1hdGgucm91bmQocy54KnUpLChhLnkqYS54Pm58fG8mJm88YS55KSYmKG8mJm88YS55PyhhLnk9byxhLnklMj09MCYmYS54LS0pOmEueS09MixzLnk9YS55KmksYS54PTErMipNYXRoLmNlaWwoKGEueS91LTEpLzIpLHMueD1NYXRoLnJvdW5kKHMueS91KSkse2hlaWdodDpzLnksd2lkdGg6cy54LGhpZGVZRG90czphLnksaGlkZVhEb3RzOmEueH19Y29uc3QgYz17TDouMDcsTTouMTUsUTouMjUsSDouM30saD1cImRvdHNcIixkPVwicm91bmRlZFwiLGw9XCJjbGFzc3lcIixmPVwiY2xhc3N5LXJvdW5kZWRcIixwPVwic3F1YXJlXCIsZz1cImV4dHJhLXJvdW5kZWRcIjt2YXIgdj1mdW5jdGlvbigpe3JldHVybih2PU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTEsbj1hcmd1bWVudHMubGVuZ3RoO3I8bjtyKyspZm9yKHZhciBvIGluIGU9YXJndW1lbnRzW3JdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiYodFtvXT1lW29dKTtyZXR1cm4gdH0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y29uc3QgeT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dC5jb250ZXh0LHI9dC50eXBlO3RoaXMuX2NvbnRleHQ9ZSx0aGlzLl90eXBlPXJ9cmV0dXJuIHQucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8saT10aGlzLl9jb250ZXh0O3N3aXRjaCh0aGlzLl90eXBlKXtjYXNlIGg6bz10aGlzLl9kcmF3RG90O2JyZWFrO2Nhc2UgbDpvPXRoaXMuX2RyYXdDbGFzc3k7YnJlYWs7Y2FzZSBmOm89dGhpcy5fZHJhd0NsYXNzeVJvdW5kZWQ7YnJlYWs7Y2FzZSBkOm89dGhpcy5fZHJhd1JvdW5kZWQ7YnJlYWs7Y2FzZSBnOm89dGhpcy5fZHJhd0V4dHJhUm91bmRlZDticmVhaztjYXNlIHA6ZGVmYXVsdDpvPXRoaXMuX2RyYXdTcXVhcmV9by5jYWxsKHRoaXMse3g6dCx5OmUsc2l6ZTpyLGNvbnRleHQ6aSxnZXROZWlnaGJvcjpufSl9LHQucHJvdG90eXBlLl9yb3RhdGVGaWd1cmU9ZnVuY3Rpb24odCl7dmFyIGU9dC54LHI9dC55LG49dC5zaXplLG89dC5jb250ZXh0LGk9dC5yb3RhdGlvbixhPXZvaWQgMD09PWk/MDppLHM9dC5kcmF3LHU9ZStuLzIsYz1yK24vMjtvLnRyYW5zbGF0ZSh1LGMpLGEmJm8ucm90YXRlKGEpLHMoKSxvLmNsb3NlUGF0aCgpLGEmJm8ucm90YXRlKC1hKSxvLnRyYW5zbGF0ZSgtdSwtYyl9LHQucHJvdG90eXBlLl9iYXNpY0RvdD1mdW5jdGlvbih0KXt2YXIgZT10LnNpemUscj10LmNvbnRleHQ7dGhpcy5fcm90YXRlRmlndXJlKHYodih7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe3IuYXJjKDAsMCxlLzIsMCwyKk1hdGguUEkpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljU3F1YXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2l6ZSxyPXQuY29udGV4dDt0aGlzLl9yb3RhdGVGaWd1cmUodih2KHt9LHQpLHtkcmF3OmZ1bmN0aW9uKCl7ci5yZWN0KC1lLzIsLWUvMixlLGUpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljU2lkZVJvdW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5zaXplLHI9dC5jb250ZXh0O3RoaXMuX3JvdGF0ZUZpZ3VyZSh2KHYoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtyLmFyYygwLDAsZS8yLC1NYXRoLlBJLzIsTWF0aC5QSS8yKSxyLmxpbmVUbygtZS8yLGUvMiksci5saW5lVG8oLWUvMiwtZS8yKSxyLmxpbmVUbygwLC1lLzIpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljQ29ybmVyUm91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10LnNpemUscj10LmNvbnRleHQ7dGhpcy5fcm90YXRlRmlndXJlKHYodih7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe3IuYXJjKDAsMCxlLzIsLU1hdGguUEkvMiwwKSxyLmxpbmVUbyhlLzIsZS8yKSxyLmxpbmVUbygtZS8yLGUvMiksci5saW5lVG8oLWUvMiwtZS8yKSxyLmxpbmVUbygwLC1lLzIpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljQ29ybmVyRXh0cmFSb3VuZGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2l6ZSxyPXQuY29udGV4dDt0aGlzLl9yb3RhdGVGaWd1cmUodih2KHt9LHQpLHtkcmF3OmZ1bmN0aW9uKCl7ci5hcmMoLWUvMixlLzIsZSwtTWF0aC5QSS8yLDApLHIubGluZVRvKC1lLzIsZS8yKSxyLmxpbmVUbygtZS8yLC1lLzIpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljQ29ybmVyc1JvdW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5zaXplLHI9dC5jb250ZXh0O3RoaXMuX3JvdGF0ZUZpZ3VyZSh2KHYoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtyLmFyYygwLDAsZS8yLC1NYXRoLlBJLzIsMCksci5saW5lVG8oZS8yLGUvMiksci5saW5lVG8oMCxlLzIpLHIuYXJjKDAsMCxlLzIsTWF0aC5QSS8yLE1hdGguUEkpLHIubGluZVRvKC1lLzIsLWUvMiksci5saW5lVG8oMCwtZS8yKX19KSl9LHQucHJvdG90eXBlLl9iYXNpY0Nvcm5lcnNFeHRyYVJvdW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5zaXplLHI9dC5jb250ZXh0O3RoaXMuX3JvdGF0ZUZpZ3VyZSh2KHYoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtyLmFyYygtZS8yLGUvMixlLC1NYXRoLlBJLzIsMCksci5hcmMoZS8yLC1lLzIsZSxNYXRoLlBJLzIsTWF0aC5QSSl9fSkpfSx0LnByb3RvdHlwZS5fZHJhd0RvdD1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LmNvbnRleHQ7dGhpcy5fYmFzaWNEb3Qoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjowfSl9LHQucHJvdG90eXBlLl9kcmF3U3F1YXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuY29udGV4dDt0aGlzLl9iYXNpY1NxdWFyZSh7eDplLHk6cixzaXplOm4sY29udGV4dDpvLHJvdGF0aW9uOjB9KX0sdC5wcm90b3R5cGUuX2RyYXdSb3VuZGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuY29udGV4dCxpPXQuZ2V0TmVpZ2hib3IsYT1pPytpKC0xLDApOjAscz1pPytpKDEsMCk6MCx1PWk/K2koMCwtMSk6MCxjPWk/K2koMCwxKTowLGg9YStzK3UrYztpZigwIT09aClpZihoPjJ8fGEmJnN8fHUmJmMpdGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjowfSk7ZWxzZXtpZigyPT09aCl7dmFyIGQ9MDtyZXR1cm4gYSYmdT9kPU1hdGguUEkvMjp1JiZzP2Q9TWF0aC5QSTpzJiZjJiYoZD0tTWF0aC5QSS8yKSx2b2lkIHRoaXMuX2Jhc2ljQ29ybmVyUm91bmRlZCh7eDplLHk6cixzaXplOm4sY29udGV4dDpvLHJvdGF0aW9uOmR9KX1pZigxPT09aClyZXR1cm4gZD0wLHU/ZD1NYXRoLlBJLzI6cz9kPU1hdGguUEk6YyYmKGQ9LU1hdGguUEkvMiksdm9pZCB0aGlzLl9iYXNpY1NpZGVSb3VuZGVkKHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246ZH0pfWVsc2UgdGhpcy5fYmFzaWNEb3Qoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjowfSl9LHQucHJvdG90eXBlLl9kcmF3RXh0cmFSb3VuZGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuY29udGV4dCxpPXQuZ2V0TmVpZ2hib3IsYT1pPytpKC0xLDApOjAscz1pPytpKDEsMCk6MCx1PWk/K2koMCwtMSk6MCxjPWk/K2koMCwxKTowLGg9YStzK3UrYztpZigwIT09aClpZihoPjJ8fGEmJnN8fHUmJmMpdGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjowfSk7ZWxzZXtpZigyPT09aCl7dmFyIGQ9MDtyZXR1cm4gYSYmdT9kPU1hdGguUEkvMjp1JiZzP2Q9TWF0aC5QSTpzJiZjJiYoZD0tTWF0aC5QSS8yKSx2b2lkIHRoaXMuX2Jhc2ljQ29ybmVyRXh0cmFSb3VuZGVkKHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246ZH0pfWlmKDE9PT1oKXJldHVybiBkPTAsdT9kPU1hdGguUEkvMjpzP2Q9TWF0aC5QSTpjJiYoZD0tTWF0aC5QSS8yKSx2b2lkIHRoaXMuX2Jhc2ljU2lkZVJvdW5kZWQoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjpkfSl9ZWxzZSB0aGlzLl9iYXNpY0RvdCh7eDplLHk6cixzaXplOm4sY29udGV4dDpvLHJvdGF0aW9uOjB9KX0sdC5wcm90b3R5cGUuX2RyYXdDbGFzc3k9ZnVuY3Rpb24odCl7dmFyIGU9dC54LHI9dC55LG49dC5zaXplLG89dC5jb250ZXh0LGk9dC5nZXROZWlnaGJvcixhPWk/K2koLTEsMCk6MCxzPWk/K2koMSwwKTowLHU9aT8raSgwLC0xKTowLGM9aT8raSgwLDEpOjA7MCE9PWErcyt1K2M/YXx8dT9zfHxjP3RoaXMuX2Jhc2ljU3F1YXJlKHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246MH0pOnRoaXMuX2Jhc2ljQ29ybmVyUm91bmRlZCh7eDplLHk6cixzaXplOm4sY29udGV4dDpvLHJvdGF0aW9uOk1hdGguUEkvMn0pOnRoaXMuX2Jhc2ljQ29ybmVyUm91bmRlZCh7eDplLHk6cixzaXplOm4sY29udGV4dDpvLHJvdGF0aW9uOi1NYXRoLlBJLzJ9KTp0aGlzLl9iYXNpY0Nvcm5lcnNSb3VuZGVkKHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246TWF0aC5QSS8yfSl9LHQucHJvdG90eXBlLl9kcmF3Q2xhc3N5Um91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LmNvbnRleHQsaT10LmdldE5laWdoYm9yLGE9aT8raSgtMSwwKTowLHM9aT8raSgxLDApOjAsdT1pPytpKDAsLTEpOjAsYz1pPytpKDAsMSk6MDswIT09YStzK3UrYz9hfHx1P3N8fGM/dGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjowfSk6dGhpcy5fYmFzaWNDb3JuZXJFeHRyYVJvdW5kZWQoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjpNYXRoLlBJLzJ9KTp0aGlzLl9iYXNpY0Nvcm5lckV4dHJhUm91bmRlZCh7eDplLHk6cixzaXplOm4sY29udGV4dDpvLHJvdGF0aW9uOi1NYXRoLlBJLzJ9KTp0aGlzLl9iYXNpY0Nvcm5lcnNSb3VuZGVkKHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246TWF0aC5QSS8yfSl9LHR9KCksdz1cInNxdWFyZVwiLF89XCJleHRyYS1yb3VuZGVkXCI7dmFyIG09ZnVuY3Rpb24oKXtyZXR1cm4obT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUscj0xLG49YXJndW1lbnRzLmxlbmd0aDtyPG47cisrKWZvcih2YXIgbyBpbiBlPWFyZ3VtZW50c1tyXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmKHRbb109ZVtvXSk7cmV0dXJuIHR9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2NvbnN0IGI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPXQuY29udGV4dCxyPXQudHlwZTt0aGlzLl9jb250ZXh0PWUsdGhpcy5fdHlwZT1yfXJldHVybiB0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvLGk9dGhpcy5fY29udGV4dDtzd2l0Y2godGhpcy5fdHlwZSl7Y2FzZSB3Om89dGhpcy5fZHJhd1NxdWFyZTticmVhaztjYXNlIF86bz10aGlzLl9kcmF3RXh0cmFSb3VuZGVkO2JyZWFrO2Nhc2VcImRvdFwiOmRlZmF1bHQ6bz10aGlzLl9kcmF3RG90fW8uY2FsbCh0aGlzLHt4OnQseTplLHNpemU6cixjb250ZXh0Omkscm90YXRpb246bn0pfSx0LnByb3RvdHlwZS5fcm90YXRlRmlndXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuY29udGV4dCxpPXQucm90YXRpb24sYT12b2lkIDA9PT1pPzA6aSxzPXQuZHJhdyx1PWUrbi8yLGM9cituLzI7by50cmFuc2xhdGUodSxjKSxhJiZvLnJvdGF0ZShhKSxzKCksby5jbG9zZVBhdGgoKSxhJiZvLnJvdGF0ZSgtYSksby50cmFuc2xhdGUoLXUsLWMpfSx0LnByb3RvdHlwZS5fYmFzaWNEb3Q9ZnVuY3Rpb24odCl7dmFyIGU9dC5zaXplLHI9dC5jb250ZXh0LG49ZS83O3RoaXMuX3JvdGF0ZUZpZ3VyZShtKG0oe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtyLmFyYygwLDAsZS8yLDAsMipNYXRoLlBJKSxyLmFyYygwLDAsZS8yLW4sMCwyKk1hdGguUEkpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljU3F1YXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2l6ZSxyPXQuY29udGV4dCxuPWUvNzt0aGlzLl9yb3RhdGVGaWd1cmUobShtKHt9LHQpLHtkcmF3OmZ1bmN0aW9uKCl7ci5yZWN0KC1lLzIsLWUvMixlLGUpLHIucmVjdCgtZS8yK24sLWUvMituLGUtMipuLGUtMipuKX19KSl9LHQucHJvdG90eXBlLl9iYXNpY0V4dHJhUm91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10LnNpemUscj10LmNvbnRleHQsbj1lLzc7dGhpcy5fcm90YXRlRmlndXJlKG0obSh7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe3IuYXJjKC1uLC1uLDIuNSpuLE1hdGguUEksLU1hdGguUEkvMiksci5saW5lVG8obiwtMy41Km4pLHIuYXJjKG4sLW4sMi41Km4sLU1hdGguUEkvMiwwKSxyLmxpbmVUbygzLjUqbiwtbiksci5hcmMobixuLDIuNSpuLDAsTWF0aC5QSS8yKSxyLmxpbmVUbygtbiwzLjUqbiksci5hcmMoLW4sbiwyLjUqbixNYXRoLlBJLzIsTWF0aC5QSSksci5saW5lVG8oLTMuNSpuLC1uKSxyLmFyYygtbiwtbiwxLjUqbixNYXRoLlBJLC1NYXRoLlBJLzIpLHIubGluZVRvKG4sLTIuNSpuKSxyLmFyYyhuLC1uLDEuNSpuLC1NYXRoLlBJLzIsMCksci5saW5lVG8oMi41Km4sLW4pLHIuYXJjKG4sbiwxLjUqbiwwLE1hdGguUEkvMiksci5saW5lVG8oLW4sMi41Km4pLHIuYXJjKC1uLG4sMS41Km4sTWF0aC5QSS8yLE1hdGguUEkpLHIubGluZVRvKC0yLjUqbiwtbil9fSkpfSx0LnByb3RvdHlwZS5fZHJhd0RvdD1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LmNvbnRleHQsaT10LnJvdGF0aW9uO3RoaXMuX2Jhc2ljRG90KHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246aX0pfSx0LnByb3RvdHlwZS5fZHJhd1NxdWFyZT1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LmNvbnRleHQsaT10LnJvdGF0aW9uO3RoaXMuX2Jhc2ljU3F1YXJlKHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246aX0pfSx0LnByb3RvdHlwZS5fZHJhd0V4dHJhUm91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LmNvbnRleHQsaT10LnJvdGF0aW9uO3RoaXMuX2Jhc2ljRXh0cmFSb3VuZGVkKHt4OmUseTpyLHNpemU6bixjb250ZXh0Om8scm90YXRpb246aX0pfSx0fSgpLHg9XCJzcXVhcmVcIjt2YXIgTT1mdW5jdGlvbigpe3JldHVybihNPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTEsbj1hcmd1bWVudHMubGVuZ3RoO3I8bjtyKyspZm9yKHZhciBvIGluIGU9YXJndW1lbnRzW3JdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiYodFtvXT1lW29dKTtyZXR1cm4gdH0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y29uc3QgUz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dC5jb250ZXh0LHI9dC50eXBlO3RoaXMuX2NvbnRleHQ9ZSx0aGlzLl90eXBlPXJ9cmV0dXJuIHQucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8saT10aGlzLl9jb250ZXh0O3N3aXRjaCh0aGlzLl90eXBlKXtjYXNlIHg6bz10aGlzLl9kcmF3U3F1YXJlO2JyZWFrO2Nhc2VcImRvdFwiOmRlZmF1bHQ6bz10aGlzLl9kcmF3RG90fW8uY2FsbCh0aGlzLHt4OnQseTplLHNpemU6cixjb250ZXh0Omkscm90YXRpb246bn0pfSx0LnByb3RvdHlwZS5fcm90YXRlRmlndXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuY29udGV4dCxpPXQucm90YXRpb24sYT12b2lkIDA9PT1pPzA6aSxzPXQuZHJhdyx1PWUrbi8yLGM9cituLzI7by50cmFuc2xhdGUodSxjKSxhJiZvLnJvdGF0ZShhKSxzKCksby5jbG9zZVBhdGgoKSxhJiZvLnJvdGF0ZSgtYSksby50cmFuc2xhdGUoLXUsLWMpfSx0LnByb3RvdHlwZS5fYmFzaWNEb3Q9ZnVuY3Rpb24odCl7dmFyIGU9dC5zaXplLHI9dC5jb250ZXh0O3RoaXMuX3JvdGF0ZUZpZ3VyZShNKE0oe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtyLmFyYygwLDAsZS8yLDAsMipNYXRoLlBJKX19KSl9LHQucHJvdG90eXBlLl9iYXNpY1NxdWFyZT1mdW5jdGlvbih0KXt2YXIgZT10LnNpemUscj10LmNvbnRleHQ7dGhpcy5fcm90YXRlRmlndXJlKE0oTSh7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe3IucmVjdCgtZS8yLC1lLzIsZSxlKX19KSl9LHQucHJvdG90eXBlLl9kcmF3RG90PWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuY29udGV4dCxpPXQucm90YXRpb247dGhpcy5fYmFzaWNEb3Qoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjppfSl9LHQucHJvdG90eXBlLl9kcmF3U3F1YXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuY29udGV4dCxpPXQucm90YXRpb247dGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLGNvbnRleHQ6byxyb3RhdGlvbjppfSl9LHR9KCksQz1cInJhZGlhbFwiO3ZhciBQPVtbMSwxLDEsMSwxLDEsMV0sWzEsMCwwLDAsMCwwLDFdLFsxLDAsMCwwLDAsMCwxXSxbMSwwLDAsMCwwLDAsMV0sWzEsMCwwLDAsMCwwLDFdLFsxLDAsMCwwLDAsMCwxXSxbMSwxLDEsMSwxLDEsMV1dLE89W1swLDAsMCwwLDAsMCwwXSxbMCwwLDAsMCwwLDAsMF0sWzAsMCwxLDEsMSwwLDBdLFswLDAsMSwxLDEsMCwwXSxbMCwwLDEsMSwxLDAsMF0sWzAsMCwwLDAsMCwwLDBdLFswLDAsMCwwLDAsMCwwXV07Y29uc3Qgej1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dGhpcy5fY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJjYW52YXNcIiksdGhpcy5fY2FudmFzLndpZHRoPXQud2lkdGgsdGhpcy5fY2FudmFzLmhlaWdodD10LmhlaWdodCx0aGlzLl9vcHRpb25zPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcImNvbnRleHRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KFwiMmRcIil9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLFwid2lkdGhcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbnZhcy53aWR0aH0sZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITB9KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodC5wcm90b3R5cGUsXCJoZWlnaHRcIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbnZhcy5oZWlnaHR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZ2V0Q2FudmFzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbnZhc30sdC5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQ7dCYmdC5jbGVhclJlY3QoMCwwLHRoaXMuX2NhbnZhcy53aWR0aCx0aGlzLl9jYW52YXMuaGVpZ2h0KX0sdC5wcm90b3R5cGUuZHJhd1FSPWZ1bmN0aW9uKHQpe3JldHVybiBlPXRoaXMscj12b2lkIDAsbz1mdW5jdGlvbigpe3ZhciBlLHIsbixvLGksYSxzLGgsZCxsPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGksYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gaT17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBzKGkpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24oaSl7aWYocil0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO2E7KXRyeXtpZihyPTEsbiYmKG89MiZpWzBdP24ucmV0dXJuOmlbMF0/bi50aHJvd3x8KChvPW4ucmV0dXJuKSYmby5jYWxsKG4pLDApOm4ubmV4dCkmJiEobz1vLmNhbGwobixpWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gobj0wLG8mJihpPVsyJmlbMF0sby52YWx1ZV0pLGlbMF0pe2Nhc2UgMDpjYXNlIDE6bz1pO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTppWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKyssbj1pWzFdLGk9WzBdO2NvbnRpbnVlO2Nhc2UgNzppPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSl8fDYhPT1pWzBdJiYyIT09aVswXSkpe2E9MDtjb250aW51ZX1pZigzPT09aVswXSYmKCFvfHxpWzFdPm9bMF0mJmlbMV08b1szXSkpe2EubGFiZWw9aVsxXTticmVha31pZig2PT09aVswXSYmYS5sYWJlbDxvWzFdKXthLmxhYmVsPW9bMV0sbz1pO2JyZWFrfWlmKG8mJmEubGFiZWw8b1syXSl7YS5sYWJlbD1vWzJdLGEub3BzLnB1c2goaSk7YnJlYWt9b1syXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfWk9ZS5jYWxsKHQsYSl9Y2F0Y2godCl7aT1bNix0XSxuPTB9ZmluYWxseXtyPW89MH1pZig1JmlbMF0pdGhyb3cgaVsxXTtyZXR1cm57dmFsdWU6aVswXT9pWzFdOnZvaWQgMCxkb25lOiEwfX0oW2ksc10pfX19KHRoaXMsKGZ1bmN0aW9uKGYpe3N3aXRjaChmLmxhYmVsKXtjYXNlIDA6cmV0dXJuIGU9dC5nZXRNb2R1bGVDb3VudCgpLHI9TWF0aC5taW4odGhpcy5fb3B0aW9ucy53aWR0aCx0aGlzLl9vcHRpb25zLmhlaWdodCktMip0aGlzLl9vcHRpb25zLm1hcmdpbixuPU1hdGguZmxvb3Ioci9lKSxvPXtoaWRlWERvdHM6MCxoaWRlWURvdHM6MCx3aWR0aDowLGhlaWdodDowfSx0aGlzLl9xcj10LHRoaXMuX29wdGlvbnMuaW1hZ2U/WzQsdGhpcy5sb2FkSW1hZ2UoKV06WzMsMl07Y2FzZSAxOmlmKGYuc2VudCgpLCF0aGlzLl9pbWFnZSlyZXR1cm5bMl07aT10aGlzLl9vcHRpb25zLGE9aS5pbWFnZU9wdGlvbnMscz1pLnFyT3B0aW9ucyxoPWEuaW1hZ2VTaXplKmNbcy5lcnJvckNvcnJlY3Rpb25MZXZlbF0sZD1NYXRoLmZsb29yKGgqZSplKSxvPXUoe29yaWdpbmFsV2lkdGg6dGhpcy5faW1hZ2Uud2lkdGgsb3JpZ2luYWxIZWlnaHQ6dGhpcy5faW1hZ2UuaGVpZ2h0LG1heEhpZGRlbkRvdHM6ZCxtYXhIaWRkZW5BeGlzRG90czplLTE0LGRvdFNpemU6bn0pLGYubGFiZWw9MjtjYXNlIDI6cmV0dXJuIHRoaXMuY2xlYXIoKSx0aGlzLmRyYXdCYWNrZ3JvdW5kKCksdGhpcy5kcmF3RG90cygoZnVuY3Rpb24odCxyKXt2YXIgbixpLGEscyx1LGM7cmV0dXJuIShsLl9vcHRpb25zLmltYWdlT3B0aW9ucy5oaWRlQmFja2dyb3VuZERvdHMmJnQ+PShlLW8uaGlkZVhEb3RzKS8yJiZ0PChlK28uaGlkZVhEb3RzKS8yJiZyPj0oZS1vLmhpZGVZRG90cykvMiYmcjwoZStvLmhpZGVZRG90cykvMnx8KG51bGw9PT0obj1QW3RdKXx8dm9pZCAwPT09bj92b2lkIDA6bltyXSl8fChudWxsPT09KGk9UFt0LWUrN10pfHx2b2lkIDA9PT1pP3ZvaWQgMDppW3JdKXx8KG51bGw9PT0oYT1QW3RdKXx8dm9pZCAwPT09YT92b2lkIDA6YVtyLWUrN10pfHwobnVsbD09PShzPU9bdF0pfHx2b2lkIDA9PT1zP3ZvaWQgMDpzW3JdKXx8KG51bGw9PT0odT1PW3QtZSs3XSl8fHZvaWQgMD09PXU/dm9pZCAwOnVbcl0pfHwobnVsbD09PShjPU9bdF0pfHx2b2lkIDA9PT1jP3ZvaWQgMDpjW3ItZSs3XSkpfSkpLHRoaXMuZHJhd0Nvcm5lcnMoKSx0aGlzLl9vcHRpb25zLmltYWdlJiZ0aGlzLmRyYXdJbWFnZSh7d2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHQsY291bnQ6ZSxkb3RTaXplOm59KSxbMl19fSkpfSxuZXcoKG49dm9pZCAwKXx8KG49UHJvbWlzZSkpKChmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIGEodCl7dHJ5e3Uoby5uZXh0KHQpKX1jYXRjaCh0KXtpKHQpfX1mdW5jdGlvbiBzKHQpe3RyeXt1KG8udGhyb3codCkpfWNhdGNoKHQpe2kodCl9fWZ1bmN0aW9uIHUoZSl7dmFyIHI7ZS5kb25lP3QoZS52YWx1ZSk6KHI9ZS52YWx1ZSxyIGluc3RhbmNlb2Ygbj9yOm5ldyBuKChmdW5jdGlvbih0KXt0KHIpfSkpKS50aGVuKGEscyl9dSgobz1vLmFwcGx5KGUscnx8W10pKS5uZXh0KCkpfSkpO3ZhciBlLHIsbixvfSx0LnByb3RvdHlwZS5kcmF3QmFja2dyb3VuZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuY29udGV4dCxlPXRoaXMuX29wdGlvbnM7aWYodCl7aWYoZS5iYWNrZ3JvdW5kT3B0aW9ucy5ncmFkaWVudCl7dmFyIHI9ZS5iYWNrZ3JvdW5kT3B0aW9ucy5ncmFkaWVudCxuPXRoaXMuX2NyZWF0ZUdyYWRpZW50KHtjb250ZXh0OnQsb3B0aW9uczpyLGFkZGl0aW9uYWxSb3RhdGlvbjowLHg6MCx5OjAsc2l6ZTp0aGlzLl9jYW52YXMud2lkdGg+dGhpcy5fY2FudmFzLmhlaWdodD90aGlzLl9jYW52YXMud2lkdGg6dGhpcy5fY2FudmFzLmhlaWdodH0pO3IuY29sb3JTdG9wcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10Lm9mZnNldCxyPXQuY29sb3I7bi5hZGRDb2xvclN0b3AoZSxyKX0pKSx0LmZpbGxTdHlsZT1ufWVsc2UgZS5iYWNrZ3JvdW5kT3B0aW9ucy5jb2xvciYmKHQuZmlsbFN0eWxlPWUuYmFja2dyb3VuZE9wdGlvbnMuY29sb3IpO3QuZmlsbFJlY3QoMCwwLHRoaXMuX2NhbnZhcy53aWR0aCx0aGlzLl9jYW52YXMuaGVpZ2h0KX19LHQucHJvdG90eXBlLmRyYXdEb3RzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX3FyKXRocm93XCJRUiBjb2RlIGlzIG5vdCBkZWZpbmVkXCI7dmFyIHI9dGhpcy5jb250ZXh0O2lmKCFyKXRocm93XCJRUiBjb2RlIGlzIG5vdCBkZWZpbmVkXCI7dmFyIG49dGhpcy5fb3B0aW9ucyxvPXRoaXMuX3FyLmdldE1vZHVsZUNvdW50KCk7aWYobz5uLndpZHRofHxvPm4uaGVpZ2h0KXRocm93XCJUaGUgY2FudmFzIGlzIHRvbyBzbWFsbC5cIjt2YXIgaT1NYXRoLm1pbihuLndpZHRoLG4uaGVpZ2h0KS0yKm4ubWFyZ2luLGE9TWF0aC5mbG9vcihpL28pLHM9TWF0aC5mbG9vcigobi53aWR0aC1vKmEpLzIpLHU9TWF0aC5mbG9vcigobi5oZWlnaHQtbyphKS8yKSxjPW5ldyB5KHtjb250ZXh0OnIsdHlwZTpuLmRvdHNPcHRpb25zLnR5cGV9KTtyLmJlZ2luUGF0aCgpO2Zvcih2YXIgaD1mdW5jdGlvbihyKXtmb3IodmFyIG49ZnVuY3Rpb24obil7cmV0dXJuIHQmJiF0KHIsbik/XCJjb250aW51ZVwiOmQuX3FyLmlzRGFyayhyLG4pP3ZvaWQgYy5kcmF3KHMrciphLHUrbiphLGEsKGZ1bmN0aW9uKGksYSl7cmV0dXJuIShyK2k8MHx8bithPDB8fHIraT49b3x8bithPj1vKSYmISh0JiYhdChyK2ksbithKSkmJiEhZS5fcXImJmUuX3FyLmlzRGFyayhyK2ksbithKX0pKTpcImNvbnRpbnVlXCJ9LGk9MDtpPG87aSsrKW4oaSl9LGQ9dGhpcyxsPTA7bDxvO2wrKyloKGwpO2lmKG4uZG90c09wdGlvbnMuZ3JhZGllbnQpe3ZhciBmPW4uZG90c09wdGlvbnMuZ3JhZGllbnQscD10aGlzLl9jcmVhdGVHcmFkaWVudCh7Y29udGV4dDpyLG9wdGlvbnM6ZixhZGRpdGlvbmFsUm90YXRpb246MCx4OnMseTp1LHNpemU6byphfSk7Zi5jb2xvclN0b3BzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQub2Zmc2V0LHI9dC5jb2xvcjtwLmFkZENvbG9yU3RvcChlLHIpfSkpLHIuZmlsbFN0eWxlPXIuc3Ryb2tlU3R5bGU9cH1lbHNlIG4uZG90c09wdGlvbnMuY29sb3ImJihyLmZpbGxTdHlsZT1yLnN0cm9rZVN0eWxlPW4uZG90c09wdGlvbnMuY29sb3IpO3IuZmlsbChcImV2ZW5vZGRcIil9LHQucHJvdG90eXBlLmRyYXdDb3JuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7aWYoIXRoaXMuX3FyKXRocm93XCJRUiBjb2RlIGlzIG5vdCBkZWZpbmVkXCI7dmFyIHI9dGhpcy5jb250ZXh0O2lmKCFyKXRocm93XCJRUiBjb2RlIGlzIG5vdCBkZWZpbmVkXCI7dmFyIG49dGhpcy5fb3B0aW9ucyxvPXRoaXMuX3FyLmdldE1vZHVsZUNvdW50KCksaT1NYXRoLm1pbihuLndpZHRoLG4uaGVpZ2h0KS0yKm4ubWFyZ2luLGE9TWF0aC5mbG9vcihpL28pLHM9NyphLHU9MyphLGM9TWF0aC5mbG9vcigobi53aWR0aC1vKmEpLzIpLGg9TWF0aC5mbG9vcigobi5oZWlnaHQtbyphKS8yKTtbWzAsMCwwXSxbMSwwLE1hdGguUEkvMl0sWzAsMSwtTWF0aC5QSS8yXV0uZm9yRWFjaCgoZnVuY3Rpb24oaSl7dmFyIGQsbCxmLHAsZyx2LHcsXyxtLHgsTT1pWzBdLEM9aVsxXSx6PWlbMl07aWYoIXR8fHQoTSxDKSl7dmFyIEQ9YytNKmEqKG8tNyksST1oK0MqYSooby03KTtpZihudWxsPT09KGQ9bi5jb3JuZXJzU3F1YXJlT3B0aW9ucyl8fHZvaWQgMD09PWQ/dm9pZCAwOmQudHlwZSl7dmFyIEE9bmV3IGIoe2NvbnRleHQ6cix0eXBlOm51bGw9PT0obD1uLmNvcm5lcnNTcXVhcmVPcHRpb25zKXx8dm9pZCAwPT09bD92b2lkIDA6bC50eXBlfSk7ci5iZWdpblBhdGgoKSxBLmRyYXcoRCxJLHMseil9ZWxzZXt2YXIgaz1uZXcgeSh7Y29udGV4dDpyLHR5cGU6bi5kb3RzT3B0aW9ucy50eXBlfSk7ci5iZWdpblBhdGgoKTtmb3IodmFyIHE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWZ1bmN0aW9uKGUpe2lmKCEobnVsbD09PShmPVBbdF0pfHx2b2lkIDA9PT1mP3ZvaWQgMDpmW2VdKSlyZXR1cm5cImNvbnRpbnVlXCI7ay5kcmF3KEQrdCphLEkrZSphLGEsKGZ1bmN0aW9uKHIsbil7dmFyIG87cmV0dXJuISEobnVsbD09PShvPVBbdCtyXSl8fHZvaWQgMD09PW8/dm9pZCAwOm9bZStuXSl9KSl9LHI9MDtyPFBbdF0ubGVuZ3RoO3IrKyllKHIpfSxSPTA7UjxQLmxlbmd0aDtSKyspcShSKX1pZihudWxsPT09KHA9bi5jb3JuZXJzU3F1YXJlT3B0aW9ucyl8fHZvaWQgMD09PXA/dm9pZCAwOnAuZ3JhZGllbnQpe3ZhciBCPW4uY29ybmVyc1NxdWFyZU9wdGlvbnMuZ3JhZGllbnQsRT1lLl9jcmVhdGVHcmFkaWVudCh7Y29udGV4dDpyLG9wdGlvbnM6QixhZGRpdGlvbmFsUm90YXRpb246eix4OkQseTpJLHNpemU6c30pO0IuY29sb3JTdG9wcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10Lm9mZnNldCxyPXQuY29sb3I7RS5hZGRDb2xvclN0b3AoZSxyKX0pKSxyLmZpbGxTdHlsZT1yLnN0cm9rZVN0eWxlPUV9ZWxzZShudWxsPT09KGc9bi5jb3JuZXJzU3F1YXJlT3B0aW9ucyl8fHZvaWQgMD09PWc/dm9pZCAwOmcuY29sb3IpJiYoci5maWxsU3R5bGU9ci5zdHJva2VTdHlsZT1uLmNvcm5lcnNTcXVhcmVPcHRpb25zLmNvbG9yKTtpZihyLmZpbGwoXCJldmVub2RkXCIpLG51bGw9PT0odj1uLmNvcm5lcnNEb3RPcHRpb25zKXx8dm9pZCAwPT09dj92b2lkIDA6di50eXBlKXt2YXIgTD1uZXcgUyh7Y29udGV4dDpyLHR5cGU6bnVsbD09PSh3PW4uY29ybmVyc0RvdE9wdGlvbnMpfHx2b2lkIDA9PT13P3ZvaWQgMDp3LnR5cGV9KTtyLmJlZ2luUGF0aCgpLEwuZHJhdyhEKzIqYSxJKzIqYSx1LHopfWVsc2V7az1uZXcgeSh7Y29udGV4dDpyLHR5cGU6bi5kb3RzT3B0aW9ucy50eXBlfSksci5iZWdpblBhdGgoKTt2YXIgTj1mdW5jdGlvbih0KXtmb3IodmFyIGU9ZnVuY3Rpb24oZSl7aWYoIShudWxsPT09KF89T1t0XSl8fHZvaWQgMD09PV8/dm9pZCAwOl9bZV0pKXJldHVyblwiY29udGludWVcIjtrLmRyYXcoRCt0KmEsSStlKmEsYSwoZnVuY3Rpb24ocixuKXt2YXIgbztyZXR1cm4hIShudWxsPT09KG89T1t0K3JdKXx8dm9pZCAwPT09bz92b2lkIDA6b1tlK25dKX0pKX0scj0wO3I8T1t0XS5sZW5ndGg7cisrKWUocil9O2ZvcihSPTA7UjxPLmxlbmd0aDtSKyspTihSKX1pZihudWxsPT09KG09bi5jb3JuZXJzRG90T3B0aW9ucyl8fHZvaWQgMD09PW0/dm9pZCAwOm0uZ3JhZGllbnQpe0I9bi5jb3JuZXJzRG90T3B0aW9ucy5ncmFkaWVudDt2YXIgVD1lLl9jcmVhdGVHcmFkaWVudCh7Y29udGV4dDpyLG9wdGlvbnM6QixhZGRpdGlvbmFsUm90YXRpb246eix4OkQrMiphLHk6SSsyKmEsc2l6ZTp1fSk7Qi5jb2xvclN0b3BzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQub2Zmc2V0LHI9dC5jb2xvcjtULmFkZENvbG9yU3RvcChlLHIpfSkpLHIuZmlsbFN0eWxlPXIuc3Ryb2tlU3R5bGU9VH1lbHNlKG51bGw9PT0oeD1uLmNvcm5lcnNEb3RPcHRpb25zKXx8dm9pZCAwPT09eD92b2lkIDA6eC5jb2xvcikmJihyLmZpbGxTdHlsZT1yLnN0cm9rZVN0eWxlPW4uY29ybmVyc0RvdE9wdGlvbnMuY29sb3IpO3IuZmlsbChcImV2ZW5vZGRcIil9fSkpfSx0LnByb3RvdHlwZS5sb2FkSW1hZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt2YXIgbj10Ll9vcHRpb25zLG89bmV3IEltYWdlO2lmKCFuLmltYWdlKXJldHVybiByKFwiSW1hZ2UgaXMgbm90IGRlZmluZWRcIik7XCJzdHJpbmdcIj09dHlwZW9mIG4uaW1hZ2VPcHRpb25zLmNyb3NzT3JpZ2luJiYoby5jcm9zc09yaWdpbj1uLmltYWdlT3B0aW9ucy5jcm9zc09yaWdpbiksdC5faW1hZ2U9byxvLm9ubG9hZD1mdW5jdGlvbigpe2UoKX0sby5zcmM9bi5pbWFnZX0pKX0sdC5wcm90b3R5cGUuZHJhd0ltYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQud2lkdGgscj10LmhlaWdodCxuPXQuY291bnQsbz10LmRvdFNpemUsaT10aGlzLmNvbnRleHQ7aWYoIWkpdGhyb3dcImNhbnZhc0NvbnRleHQgaXMgbm90IGRlZmluZWRcIjtpZighdGhpcy5faW1hZ2UpdGhyb3dcImltYWdlIGlzIG5vdCBkZWZpbmVkXCI7dmFyIGE9dGhpcy5fb3B0aW9ucyxzPU1hdGguZmxvb3IoKGEud2lkdGgtbipvKS8yKSx1PU1hdGguZmxvb3IoKGEuaGVpZ2h0LW4qbykvMiksYz1zK2EuaW1hZ2VPcHRpb25zLm1hcmdpbisobipvLWUpLzIsaD11K2EuaW1hZ2VPcHRpb25zLm1hcmdpbisobipvLXIpLzIsZD1lLTIqYS5pbWFnZU9wdGlvbnMubWFyZ2luLGw9ci0yKmEuaW1hZ2VPcHRpb25zLm1hcmdpbjtpLmRyYXdJbWFnZSh0aGlzLl9pbWFnZSxjLGgsZDwwPzA6ZCxsPDA/MDpsKX0sdC5wcm90b3R5cGUuX2NyZWF0ZUdyYWRpZW50PWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5jb250ZXh0LG49dC5vcHRpb25zLG89dC5hZGRpdGlvbmFsUm90YXRpb24saT10LngsYT10Lnkscz10LnNpemU7aWYobi50eXBlPT09QyllPXIuY3JlYXRlUmFkaWFsR3JhZGllbnQoaStzLzIsYStzLzIsMCxpK3MvMixhK3MvMixzLzIpO2Vsc2V7dmFyIHU9KChuLnJvdGF0aW9ufHwwKStvKSUoMipNYXRoLlBJKSxjPSh1KzIqTWF0aC5QSSklKDIqTWF0aC5QSSksaD1pK3MvMixkPWErcy8yLGw9aStzLzIsZj1hK3MvMjtjPj0wJiZjPD0uMjUqTWF0aC5QSXx8Yz4xLjc1Kk1hdGguUEkmJmM8PTIqTWF0aC5QST8oaC09cy8yLGQtPXMvMipNYXRoLnRhbih1KSxsKz1zLzIsZis9cy8yKk1hdGgudGFuKHUpKTpjPi4yNSpNYXRoLlBJJiZjPD0uNzUqTWF0aC5QST8oZC09cy8yLGgtPXMvMi9NYXRoLnRhbih1KSxmKz1zLzIsbCs9cy8yL01hdGgudGFuKHUpKTpjPi43NSpNYXRoLlBJJiZjPD0xLjI1Kk1hdGguUEk/KGgrPXMvMixkKz1zLzIqTWF0aC50YW4odSksbC09cy8yLGYtPXMvMipNYXRoLnRhbih1KSk6Yz4xLjI1Kk1hdGguUEkmJmM8PTEuNzUqTWF0aC5QSSYmKGQrPXMvMixoKz1zLzIvTWF0aC50YW4odSksZi09cy8yLGwtPXMvMi9NYXRoLnRhbih1KSksZT1yLmNyZWF0ZUxpbmVhckdyYWRpZW50KE1hdGgucm91bmQoaCksTWF0aC5yb3VuZChkKSxNYXRoLnJvdW5kKGwpLE1hdGgucm91bmQoZikpfXJldHVybiBlfSx0fSgpO3ZhciBEPWZ1bmN0aW9uKCl7cmV0dXJuKEQ9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9MSxuPWFyZ3VtZW50cy5sZW5ndGg7cjxuO3IrKylmb3IodmFyIG8gaW4gZT1hcmd1bWVudHNbcl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJih0W29dPWVbb10pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtjb25zdCBJPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgZT10LnN2ZyxyPXQudHlwZTt0aGlzLl9zdmc9ZSx0aGlzLl90eXBlPXJ9cmV0dXJuIHQucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24odCxlLHIsbil7dmFyIG87c3dpdGNoKHRoaXMuX3R5cGUpe2Nhc2UgaDpvPXRoaXMuX2RyYXdEb3Q7YnJlYWs7Y2FzZSBsOm89dGhpcy5fZHJhd0NsYXNzeTticmVhaztjYXNlIGY6bz10aGlzLl9kcmF3Q2xhc3N5Um91bmRlZDticmVhaztjYXNlIGQ6bz10aGlzLl9kcmF3Um91bmRlZDticmVhaztjYXNlIGc6bz10aGlzLl9kcmF3RXh0cmFSb3VuZGVkO2JyZWFrO2Nhc2UgcDpkZWZhdWx0Om89dGhpcy5fZHJhd1NxdWFyZX1vLmNhbGwodGhpcyx7eDp0LHk6ZSxzaXplOnIsZ2V0TmVpZ2hib3I6bn0pfSx0LnByb3RvdHlwZS5fcm90YXRlRmlndXJlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC54LG49dC55LG89dC5zaXplLGk9dC5yb3RhdGlvbixhPXZvaWQgMD09PWk/MDppLHM9citvLzIsdT1uK28vMjsoMCx0LmRyYXcpKCksbnVsbD09PShlPXRoaXMuX2VsZW1lbnQpfHx2b2lkIDA9PT1lfHxlLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLFwicm90YXRlKFwiKzE4MCphL01hdGguUEkrXCIsXCIrcytcIixcIit1K1wiKVwiKX0sdC5wcm90b3R5cGUuX2Jhc2ljRG90PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj10LnNpemUsbj10Lngsbz10Lnk7dGhpcy5fcm90YXRlRmlndXJlKEQoRCh7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe2UuX2VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImNpcmNsZVwiKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImN4XCIsU3RyaW5nKG4rci8yKSksZS5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJjeVwiLFN0cmluZyhvK3IvMikpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiclwiLFN0cmluZyhyLzIpKX19KSl9LHQucHJvdG90eXBlLl9iYXNpY1NxdWFyZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9dC5zaXplLG49dC54LG89dC55O3RoaXMuX3JvdGF0ZUZpZ3VyZShEKEQoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtlLl9lbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJyZWN0XCIpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwieFwiLFN0cmluZyhuKSksZS5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ5XCIsU3RyaW5nKG8pKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsU3RyaW5nKHIpKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLFN0cmluZyhyKSl9fSkpfSx0LnByb3RvdHlwZS5fYmFzaWNTaWRlUm91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9dC5zaXplLG49dC54LG89dC55O3RoaXMuX3JvdGF0ZUZpZ3VyZShEKEQoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtlLl9lbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJwYXRoXCIpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZFwiLFwiTSBcIituK1wiIFwiK28rXCJ2IFwiK3IrXCJoIFwiK3IvMitcImEgXCIrci8yK1wiIFwiK3IvMitcIiwgMCwgMCwgMCwgMCBcIistcil9fSkpfSx0LnByb3RvdHlwZS5fYmFzaWNDb3JuZXJSb3VuZGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj10LnNpemUsbj10Lngsbz10Lnk7dGhpcy5fcm90YXRlRmlndXJlKEQoRCh7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe2UuX2VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcInBhdGhcIiksZS5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkXCIsXCJNIFwiK24rXCIgXCIrbytcInYgXCIrcitcImggXCIrcitcInYgXCIrLXIvMitcImEgXCIrci8yK1wiIFwiK3IvMitcIiwgMCwgMCwgMCwgXCIrLXIvMitcIiBcIistci8yKX19KSl9LHQucHJvdG90eXBlLl9iYXNpY0Nvcm5lckV4dHJhUm91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9dC5zaXplLG49dC54LG89dC55O3RoaXMuX3JvdGF0ZUZpZ3VyZShEKEQoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtlLl9lbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJwYXRoXCIpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZFwiLFwiTSBcIituK1wiIFwiK28rXCJ2IFwiK3IrXCJoIFwiK3IrXCJhIFwiK3IrXCIgXCIrcitcIiwgMCwgMCwgMCwgXCIrLXIrXCIgXCIrLXIpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljQ29ybmVyc1JvdW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPXQuc2l6ZSxuPXQueCxvPXQueTt0aGlzLl9yb3RhdGVGaWd1cmUoRChEKHt9LHQpLHtkcmF3OmZ1bmN0aW9uKCl7ZS5fZWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwicGF0aFwiKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImRcIixcIk0gXCIrbitcIiBcIitvK1widiBcIityLzIrXCJhIFwiK3IvMitcIiBcIityLzIrXCIsIDAsIDAsIDAsIFwiK3IvMitcIiBcIityLzIrXCJoIFwiK3IvMitcInYgXCIrLXIvMitcImEgXCIrci8yK1wiIFwiK3IvMitcIiwgMCwgMCwgMCwgXCIrLXIvMitcIiBcIistci8yKX19KSl9LHQucHJvdG90eXBlLl9kcmF3RG90PWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZTt0aGlzLl9iYXNpY0RvdCh7eDplLHk6cixzaXplOm4scm90YXRpb246MH0pfSx0LnByb3RvdHlwZS5fZHJhd1NxdWFyZT1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemU7dGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOjB9KX0sdC5wcm90b3R5cGUuX2RyYXdSb3VuZGVkPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuZ2V0TmVpZ2hib3IsaT1vPytvKC0xLDApOjAsYT1vPytvKDEsMCk6MCxzPW8/K28oMCwtMSk6MCx1PW8/K28oMCwxKTowLGM9aSthK3MrdTtpZigwIT09YylpZihjPjJ8fGkmJmF8fHMmJnUpdGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOjB9KTtlbHNle2lmKDI9PT1jKXt2YXIgaD0wO3JldHVybiBpJiZzP2g9TWF0aC5QSS8yOnMmJmE/aD1NYXRoLlBJOmEmJnUmJihoPS1NYXRoLlBJLzIpLHZvaWQgdGhpcy5fYmFzaWNDb3JuZXJSb3VuZGVkKHt4OmUseTpyLHNpemU6bixyb3RhdGlvbjpofSl9aWYoMT09PWMpcmV0dXJuIGg9MCxzP2g9TWF0aC5QSS8yOmE/aD1NYXRoLlBJOnUmJihoPS1NYXRoLlBJLzIpLHZvaWQgdGhpcy5fYmFzaWNTaWRlUm91bmRlZCh7eDplLHk6cixzaXplOm4scm90YXRpb246aH0pfWVsc2UgdGhpcy5fYmFzaWNEb3Qoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOjB9KX0sdC5wcm90b3R5cGUuX2RyYXdFeHRyYVJvdW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dC54LHI9dC55LG49dC5zaXplLG89dC5nZXROZWlnaGJvcixpPW8/K28oLTEsMCk6MCxhPW8/K28oMSwwKTowLHM9bz8rbygwLC0xKTowLHU9bz8rbygwLDEpOjAsYz1pK2Ercyt1O2lmKDAhPT1jKWlmKGM+Mnx8aSYmYXx8cyYmdSl0aGlzLl9iYXNpY1NxdWFyZSh7eDplLHk6cixzaXplOm4scm90YXRpb246MH0pO2Vsc2V7aWYoMj09PWMpe3ZhciBoPTA7cmV0dXJuIGkmJnM/aD1NYXRoLlBJLzI6cyYmYT9oPU1hdGguUEk6YSYmdSYmKGg9LU1hdGguUEkvMiksdm9pZCB0aGlzLl9iYXNpY0Nvcm5lckV4dHJhUm91bmRlZCh7eDplLHk6cixzaXplOm4scm90YXRpb246aH0pfWlmKDE9PT1jKXJldHVybiBoPTAscz9oPU1hdGguUEkvMjphP2g9TWF0aC5QSTp1JiYoaD0tTWF0aC5QSS8yKSx2b2lkIHRoaXMuX2Jhc2ljU2lkZVJvdW5kZWQoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOmh9KX1lbHNlIHRoaXMuX2Jhc2ljRG90KHt4OmUseTpyLHNpemU6bixyb3RhdGlvbjowfSl9LHQucHJvdG90eXBlLl9kcmF3Q2xhc3N5PWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQuZ2V0TmVpZ2hib3IsaT1vPytvKC0xLDApOjAsYT1vPytvKDEsMCk6MCxzPW8/K28oMCwtMSk6MCx1PW8/K28oMCwxKTowOzAhPT1pK2Ercyt1P2l8fHM/YXx8dT90aGlzLl9iYXNpY1NxdWFyZSh7eDplLHk6cixzaXplOm4scm90YXRpb246MH0pOnRoaXMuX2Jhc2ljQ29ybmVyUm91bmRlZCh7eDplLHk6cixzaXplOm4scm90YXRpb246TWF0aC5QSS8yfSk6dGhpcy5fYmFzaWNDb3JuZXJSb3VuZGVkKHt4OmUseTpyLHNpemU6bixyb3RhdGlvbjotTWF0aC5QSS8yfSk6dGhpcy5fYmFzaWNDb3JuZXJzUm91bmRlZCh7eDplLHk6cixzaXplOm4scm90YXRpb246TWF0aC5QSS8yfSl9LHQucHJvdG90eXBlLl9kcmF3Q2xhc3N5Um91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LmdldE5laWdoYm9yLGk9bz8rbygtMSwwKTowLGE9bz8rbygxLDApOjAscz1vPytvKDAsLTEpOjAsdT1vPytvKDAsMSk6MDswIT09aSthK3MrdT9pfHxzP2F8fHU/dGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOjB9KTp0aGlzLl9iYXNpY0Nvcm5lckV4dHJhUm91bmRlZCh7eDplLHk6cixzaXplOm4scm90YXRpb246TWF0aC5QSS8yfSk6dGhpcy5fYmFzaWNDb3JuZXJFeHRyYVJvdW5kZWQoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOi1NYXRoLlBJLzJ9KTp0aGlzLl9iYXNpY0Nvcm5lcnNSb3VuZGVkKHt4OmUseTpyLHNpemU6bixyb3RhdGlvbjpNYXRoLlBJLzJ9KX0sdH0oKTt2YXIgQT1mdW5jdGlvbigpe3JldHVybihBPU9iamVjdC5hc3NpZ258fGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPTEsbj1hcmd1bWVudHMubGVuZ3RoO3I8bjtyKyspZm9yKHZhciBvIGluIGU9YXJndW1lbnRzW3JdKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLG8pJiYodFtvXT1lW29dKTtyZXR1cm4gdH0pLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07Y29uc3Qgaz1mdW5jdGlvbigpe2Z1bmN0aW9uIHQodCl7dmFyIGU9dC5zdmcscj10LnR5cGU7dGhpcy5fc3ZnPWUsdGhpcy5fdHlwZT1yfXJldHVybiB0LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvO3N3aXRjaCh0aGlzLl90eXBlKXtjYXNlIHc6bz10aGlzLl9kcmF3U3F1YXJlO2JyZWFrO2Nhc2UgXzpvPXRoaXMuX2RyYXdFeHRyYVJvdW5kZWQ7YnJlYWs7Y2FzZVwiZG90XCI6ZGVmYXVsdDpvPXRoaXMuX2RyYXdEb3R9by5jYWxsKHRoaXMse3g6dCx5OmUsc2l6ZTpyLHJvdGF0aW9uOm59KX0sdC5wcm90b3R5cGUuX3JvdGF0ZUZpZ3VyZT1mdW5jdGlvbih0KXt2YXIgZSxyPXQueCxuPXQueSxvPXQuc2l6ZSxpPXQucm90YXRpb24sYT12b2lkIDA9PT1pPzA6aSxzPXIrby8yLHU9bitvLzI7KDAsdC5kcmF3KSgpLG51bGw9PT0oZT10aGlzLl9lbGVtZW50KXx8dm9pZCAwPT09ZXx8ZS5zZXRBdHRyaWJ1dGUoXCJ0cmFuc2Zvcm1cIixcInJvdGF0ZShcIisxODAqYS9NYXRoLlBJK1wiLFwiK3MrXCIsXCIrdStcIilcIil9LHQucHJvdG90eXBlLl9iYXNpY0RvdD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9dC5zaXplLG49dC54LG89dC55LGk9ci83O3RoaXMuX3JvdGF0ZUZpZ3VyZShBKEEoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtlLl9lbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJwYXRoXCIpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiY2xpcC1ydWxlXCIsXCJldmVub2RkXCIpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiZFwiLFwiTSBcIisobityLzIpK1wiIFwiK28rXCJhIFwiK3IvMitcIiBcIityLzIrXCIgMCAxIDAgMC4xIDB6bSAwIFwiK2krXCJhIFwiKyhyLzItaSkrXCIgXCIrKHIvMi1pKStcIiAwIDEgMSAtMC4xIDBaXCIpfX0pKX0sdC5wcm90b3R5cGUuX2Jhc2ljU3F1YXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj10LnNpemUsbj10Lngsbz10LnksaT1yLzc7dGhpcy5fcm90YXRlRmlndXJlKEEoQSh7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe2UuX2VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcInBhdGhcIiksZS5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJjbGlwLXJ1bGVcIixcImV2ZW5vZGRcIiksZS5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkXCIsXCJNIFwiK24rXCIgXCIrbytcInYgXCIrcitcImggXCIrcitcInYgXCIrLXIrXCJ6TSBcIisobitpKStcIiBcIisobytpKStcImggXCIrKHItMippKStcInYgXCIrKHItMippKStcImggXCIrKDIqaS1yKStcInpcIil9fSkpfSx0LnByb3RvdHlwZS5fYmFzaWNFeHRyYVJvdW5kZWQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPXQuc2l6ZSxuPXQueCxvPXQueSxpPXIvNzt0aGlzLl9yb3RhdGVGaWd1cmUoQShBKHt9LHQpLHtkcmF3OmZ1bmN0aW9uKCl7ZS5fZWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwicGF0aFwiKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImNsaXAtcnVsZVwiLFwiZXZlbm9kZFwiKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImRcIixcIk0gXCIrbitcIiBcIisobysyLjUqaSkrXCJ2IFwiKzIqaStcImEgXCIrMi41KmkrXCIgXCIrMi41KmkrXCIsIDAsIDAsIDAsIFwiKzIuNSppK1wiIFwiKzIuNSppK1wiaCBcIisyKmkrXCJhIFwiKzIuNSppK1wiIFwiKzIuNSppK1wiLCAwLCAwLCAwLCBcIisyLjUqaStcIiBcIisyLjUqLWkrXCJ2IFwiKy0yKmkrXCJhIFwiKzIuNSppK1wiIFwiKzIuNSppK1wiLCAwLCAwLCAwLCBcIisyLjUqLWkrXCIgXCIrMi41Ki1pK1wiaCBcIistMippK1wiYSBcIisyLjUqaStcIiBcIisyLjUqaStcIiwgMCwgMCwgMCwgXCIrMi41Ki1pK1wiIFwiKzIuNSppK1wiTSBcIisobisyLjUqaSkrXCIgXCIrKG8raSkrXCJoIFwiKzIqaStcImEgXCIrMS41KmkrXCIgXCIrMS41KmkrXCIsIDAsIDAsIDEsIFwiKzEuNSppK1wiIFwiKzEuNSppK1widiBcIisyKmkrXCJhIFwiKzEuNSppK1wiIFwiKzEuNSppK1wiLCAwLCAwLCAxLCBcIisxLjUqLWkrXCIgXCIrMS41KmkrXCJoIFwiKy0yKmkrXCJhIFwiKzEuNSppK1wiIFwiKzEuNSppK1wiLCAwLCAwLCAxLCBcIisxLjUqLWkrXCIgXCIrMS41Ki1pK1widiBcIistMippK1wiYSBcIisxLjUqaStcIiBcIisxLjUqaStcIiwgMCwgMCwgMSwgXCIrMS41KmkrXCIgXCIrMS41Ki1pKX19KSl9LHQucHJvdG90eXBlLl9kcmF3RG90PWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQucm90YXRpb247dGhpcy5fYmFzaWNEb3Qoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOm99KX0sdC5wcm90b3R5cGUuX2RyYXdTcXVhcmU9ZnVuY3Rpb24odCl7dmFyIGU9dC54LHI9dC55LG49dC5zaXplLG89dC5yb3RhdGlvbjt0aGlzLl9iYXNpY1NxdWFyZSh7eDplLHk6cixzaXplOm4scm90YXRpb246b30pfSx0LnByb3RvdHlwZS5fZHJhd0V4dHJhUm91bmRlZD1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LnJvdGF0aW9uO3RoaXMuX2Jhc2ljRXh0cmFSb3VuZGVkKHt4OmUseTpyLHNpemU6bixyb3RhdGlvbjpvfSl9LHR9KCk7dmFyIHE9ZnVuY3Rpb24oKXtyZXR1cm4ocT1PYmplY3QuYXNzaWdufHxmdW5jdGlvbih0KXtmb3IodmFyIGUscj0xLG49YXJndW1lbnRzLmxlbmd0aDtyPG47cisrKWZvcih2YXIgbyBpbiBlPWFyZ3VtZW50c1tyXSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmKHRbb109ZVtvXSk7cmV0dXJuIHR9KS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2NvbnN0IFI9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3ZhciBlPXQuc3ZnLHI9dC50eXBlO3RoaXMuX3N2Zz1lLHRoaXMuX3R5cGU9cn1yZXR1cm4gdC5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0LGUscixuKXt2YXIgbztzd2l0Y2godGhpcy5fdHlwZSl7Y2FzZSB4Om89dGhpcy5fZHJhd1NxdWFyZTticmVhaztjYXNlXCJkb3RcIjpkZWZhdWx0Om89dGhpcy5fZHJhd0RvdH1vLmNhbGwodGhpcyx7eDp0LHk6ZSxzaXplOnIscm90YXRpb246bn0pfSx0LnByb3RvdHlwZS5fcm90YXRlRmlndXJlPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC54LG49dC55LG89dC5zaXplLGk9dC5yb3RhdGlvbixhPXZvaWQgMD09PWk/MDppLHM9citvLzIsdT1uK28vMjsoMCx0LmRyYXcpKCksbnVsbD09PShlPXRoaXMuX2VsZW1lbnQpfHx2b2lkIDA9PT1lfHxlLnNldEF0dHJpYnV0ZShcInRyYW5zZm9ybVwiLFwicm90YXRlKFwiKzE4MCphL01hdGguUEkrXCIsXCIrcytcIixcIit1K1wiKVwiKX0sdC5wcm90b3R5cGUuX2Jhc2ljRG90PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj10LnNpemUsbj10Lngsbz10Lnk7dGhpcy5fcm90YXRlRmlndXJlKHEocSh7fSx0KSx7ZHJhdzpmdW5jdGlvbigpe2UuX2VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImNpcmNsZVwiKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImN4XCIsU3RyaW5nKG4rci8yKSksZS5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJjeVwiLFN0cmluZyhvK3IvMikpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwiclwiLFN0cmluZyhyLzIpKX19KSl9LHQucHJvdG90eXBlLl9iYXNpY1NxdWFyZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9dC5zaXplLG49dC54LG89dC55O3RoaXMuX3JvdGF0ZUZpZ3VyZShxKHEoe30sdCkse2RyYXc6ZnVuY3Rpb24oKXtlLl9lbGVtZW50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJyZWN0XCIpLGUuX2VsZW1lbnQuc2V0QXR0cmlidXRlKFwieFwiLFN0cmluZyhuKSksZS5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ5XCIsU3RyaW5nKG8pKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsU3RyaW5nKHIpKSxlLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLFN0cmluZyhyKSl9fSkpfSx0LnByb3RvdHlwZS5fZHJhd0RvdD1mdW5jdGlvbih0KXt2YXIgZT10Lngscj10Lnksbj10LnNpemUsbz10LnJvdGF0aW9uO3RoaXMuX2Jhc2ljRG90KHt4OmUseTpyLHNpemU6bixyb3RhdGlvbjpvfSl9LHQucHJvdG90eXBlLl9kcmF3U3F1YXJlPWZ1bmN0aW9uKHQpe3ZhciBlPXQueCxyPXQueSxuPXQuc2l6ZSxvPXQucm90YXRpb247dGhpcy5fYmFzaWNTcXVhcmUoe3g6ZSx5OnIsc2l6ZTpuLHJvdGF0aW9uOm99KX0sdH0oKTt2YXIgQj1bWzEsMSwxLDEsMSwxLDFdLFsxLDAsMCwwLDAsMCwxXSxbMSwwLDAsMCwwLDAsMV0sWzEsMCwwLDAsMCwwLDFdLFsxLDAsMCwwLDAsMCwxXSxbMSwwLDAsMCwwLDAsMV0sWzEsMSwxLDEsMSwxLDFdXSxFPVtbMCwwLDAsMCwwLDAsMF0sWzAsMCwwLDAsMCwwLDBdLFswLDAsMSwxLDEsMCwwXSxbMCwwLDEsMSwxLDAsMF0sWzAsMCwxLDEsMSwwLDBdLFswLDAsMCwwLDAsMCwwXSxbMCwwLDAsMCwwLDAsMF1dO2NvbnN0IEw9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX2VsZW1lbnQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcInN2Z1wiKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcIndpZHRoXCIsU3RyaW5nKHQud2lkdGgpKSx0aGlzLl9lbGVtZW50LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLFN0cmluZyh0LmhlaWdodCkpLHRoaXMuX2RlZnM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImRlZnNcIiksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9kZWZzKSx0aGlzLl9vcHRpb25zPXR9cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcIndpZHRoXCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vcHRpb25zLndpZHRofSxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LnByb3RvdHlwZSxcImhlaWdodFwiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb3B0aW9ucy5oZWlnaHR9LGVudW1lcmFibGU6ITEsY29uZmlndXJhYmxlOiEwfSksdC5wcm90b3R5cGUuZ2V0RWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGVtZW50fSx0LnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5fZWxlbWVudDt0aGlzLl9lbGVtZW50PWUuY2xvbmVOb2RlKCExKSxudWxsPT09KHQ9bnVsbD09ZT92b2lkIDA6ZS5wYXJlbnROb2RlKXx8dm9pZCAwPT09dHx8dC5yZXBsYWNlQ2hpbGQodGhpcy5fZWxlbWVudCxlKSx0aGlzLl9kZWZzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJkZWZzXCIpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZGVmcyl9LHQucHJvdG90eXBlLmRyYXdRUj1mdW5jdGlvbih0KXtyZXR1cm4gZT10aGlzLHI9dm9pZCAwLG89ZnVuY3Rpb24oKXt2YXIgZSxyLG4sbyxpLGEscyxoLGQsbD10aGlzO3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByLG4sbyxpLGE9e2xhYmVsOjAsc2VudDpmdW5jdGlvbigpe2lmKDEmb1swXSl0aHJvdyBvWzFdO3JldHVybiBvWzFdfSx0cnlzOltdLG9wczpbXX07cmV0dXJuIGk9e25leHQ6cygwKSx0aHJvdzpzKDEpLHJldHVybjpzKDIpfSxcImZ1bmN0aW9uXCI9PXR5cGVvZiBTeW1ib2wmJihpW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pLGk7ZnVuY3Rpb24gcyhpKXtyZXR1cm4gZnVuY3Rpb24ocyl7cmV0dXJuIGZ1bmN0aW9uKGkpe2lmKHIpdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7Zm9yKDthOyl0cnl7aWYocj0xLG4mJihvPTImaVswXT9uLnJldHVybjppWzBdP24udGhyb3d8fCgobz1uLnJldHVybikmJm8uY2FsbChuKSwwKTpuLm5leHQpJiYhKG89by5jYWxsKG4saVsxXSkpLmRvbmUpcmV0dXJuIG87c3dpdGNoKG49MCxvJiYoaT1bMiZpWzBdLG8udmFsdWVdKSxpWzBdKXtjYXNlIDA6Y2FzZSAxOm89aTticmVhaztjYXNlIDQ6cmV0dXJuIGEubGFiZWwrKyx7dmFsdWU6aVsxXSxkb25lOiExfTtjYXNlIDU6YS5sYWJlbCsrLG49aVsxXSxpPVswXTtjb250aW51ZTtjYXNlIDc6aT1hLm9wcy5wb3AoKSxhLnRyeXMucG9wKCk7Y29udGludWU7ZGVmYXVsdDppZighKChvPShvPWEudHJ5cykubGVuZ3RoPjAmJm9bby5sZW5ndGgtMV0pfHw2IT09aVswXSYmMiE9PWlbMF0pKXthPTA7Y29udGludWV9aWYoMz09PWlbMF0mJighb3x8aVsxXT5vWzBdJiZpWzFdPG9bM10pKXthLmxhYmVsPWlbMV07YnJlYWt9aWYoNj09PWlbMF0mJmEubGFiZWw8b1sxXSl7YS5sYWJlbD1vWzFdLG89aTticmVha31pZihvJiZhLmxhYmVsPG9bMl0pe2EubGFiZWw9b1syXSxhLm9wcy5wdXNoKGkpO2JyZWFrfW9bMl0mJmEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZX1pPWUuY2FsbCh0LGEpfWNhdGNoKHQpe2k9WzYsdF0sbj0wfWZpbmFsbHl7cj1vPTB9aWYoNSZpWzBdKXRocm93IGlbMV07cmV0dXJue3ZhbHVlOmlbMF0/aVsxXTp2b2lkIDAsZG9uZTohMH19KFtpLHNdKX19fSh0aGlzLChmdW5jdGlvbihmKXtzd2l0Y2goZi5sYWJlbCl7Y2FzZSAwOnJldHVybiBlPXQuZ2V0TW9kdWxlQ291bnQoKSxyPU1hdGgubWluKHRoaXMuX29wdGlvbnMud2lkdGgsdGhpcy5fb3B0aW9ucy5oZWlnaHQpLTIqdGhpcy5fb3B0aW9ucy5tYXJnaW4sbj1NYXRoLmZsb29yKHIvZSksbz17aGlkZVhEb3RzOjAsaGlkZVlEb3RzOjAsd2lkdGg6MCxoZWlnaHQ6MH0sdGhpcy5fcXI9dCx0aGlzLl9vcHRpb25zLmltYWdlP1s0LHRoaXMubG9hZEltYWdlKCldOlszLDJdO2Nhc2UgMTppZihmLnNlbnQoKSwhdGhpcy5faW1hZ2UpcmV0dXJuWzJdO2k9dGhpcy5fb3B0aW9ucyxhPWkuaW1hZ2VPcHRpb25zLHM9aS5xck9wdGlvbnMsaD1hLmltYWdlU2l6ZSpjW3MuZXJyb3JDb3JyZWN0aW9uTGV2ZWxdLGQ9TWF0aC5mbG9vcihoKmUqZSksbz11KHtvcmlnaW5hbFdpZHRoOnRoaXMuX2ltYWdlLndpZHRoLG9yaWdpbmFsSGVpZ2h0OnRoaXMuX2ltYWdlLmhlaWdodCxtYXhIaWRkZW5Eb3RzOmQsbWF4SGlkZGVuQXhpc0RvdHM6ZS0xNCxkb3RTaXplOm59KSxmLmxhYmVsPTI7Y2FzZSAyOnJldHVybiB0aGlzLmNsZWFyKCksdGhpcy5kcmF3QmFja2dyb3VuZCgpLHRoaXMuZHJhd0RvdHMoKGZ1bmN0aW9uKHQscil7dmFyIG4saSxhLHMsdSxjO3JldHVybiEobC5fb3B0aW9ucy5pbWFnZU9wdGlvbnMuaGlkZUJhY2tncm91bmREb3RzJiZ0Pj0oZS1vLmhpZGVYRG90cykvMiYmdDwoZStvLmhpZGVYRG90cykvMiYmcj49KGUtby5oaWRlWURvdHMpLzImJnI8KGUrby5oaWRlWURvdHMpLzJ8fChudWxsPT09KG49Qlt0XSl8fHZvaWQgMD09PW4/dm9pZCAwOm5bcl0pfHwobnVsbD09PShpPUJbdC1lKzddKXx8dm9pZCAwPT09aT92b2lkIDA6aVtyXSl8fChudWxsPT09KGE9Qlt0XSl8fHZvaWQgMD09PWE/dm9pZCAwOmFbci1lKzddKXx8KG51bGw9PT0ocz1FW3RdKXx8dm9pZCAwPT09cz92b2lkIDA6c1tyXSl8fChudWxsPT09KHU9RVt0LWUrN10pfHx2b2lkIDA9PT11P3ZvaWQgMDp1W3JdKXx8KG51bGw9PT0oYz1FW3RdKXx8dm9pZCAwPT09Yz92b2lkIDA6Y1tyLWUrN10pKX0pKSx0aGlzLmRyYXdDb3JuZXJzKCksdGhpcy5fb3B0aW9ucy5pbWFnZSYmdGhpcy5kcmF3SW1hZ2Uoe3dpZHRoOm8ud2lkdGgsaGVpZ2h0Om8uaGVpZ2h0LGNvdW50OmUsZG90U2l6ZTpufSksWzJdfX0pKX0sbmV3KChuPXZvaWQgMCl8fChuPVByb21pc2UpKSgoZnVuY3Rpb24odCxpKXtmdW5jdGlvbiBhKHQpe3RyeXt1KG8ubmV4dCh0KSl9Y2F0Y2godCl7aSh0KX19ZnVuY3Rpb24gcyh0KXt0cnl7dShvLnRocm93KHQpKX1jYXRjaCh0KXtpKHQpfX1mdW5jdGlvbiB1KGUpe3ZhciByO2UuZG9uZT90KGUudmFsdWUpOihyPWUudmFsdWUsciBpbnN0YW5jZW9mIG4/cjpuZXcgbigoZnVuY3Rpb24odCl7dChyKX0pKSkudGhlbihhLHMpfXUoKG89by5hcHBseShlLHJ8fFtdKSkubmV4dCgpKX0pKTt2YXIgZSxyLG4sb30sdC5wcm90b3R5cGUuZHJhd0JhY2tncm91bmQ9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9dGhpcy5fZWxlbWVudCxuPXRoaXMuX29wdGlvbnM7aWYocil7dmFyIG89bnVsbD09PSh0PW4uYmFja2dyb3VuZE9wdGlvbnMpfHx2b2lkIDA9PT10P3ZvaWQgMDp0LmdyYWRpZW50LGk9bnVsbD09PShlPW4uYmFja2dyb3VuZE9wdGlvbnMpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLmNvbG9yOyhvfHxpKSYmdGhpcy5fY3JlYXRlQ29sb3Ioe29wdGlvbnM6byxjb2xvcjppLGFkZGl0aW9uYWxSb3RhdGlvbjowLHg6MCx5OjAsaGVpZ2h0Om4uaGVpZ2h0LHdpZHRoOm4ud2lkdGgsbmFtZTpcImJhY2tncm91bmQtY29sb3JcIn0pfX0sdC5wcm90b3R5cGUuZHJhd0RvdHM9ZnVuY3Rpb24odCl7dmFyIGUscixuPXRoaXM7aWYoIXRoaXMuX3FyKXRocm93XCJRUiBjb2RlIGlzIG5vdCBkZWZpbmVkXCI7dmFyIG89dGhpcy5fb3B0aW9ucyxpPXRoaXMuX3FyLmdldE1vZHVsZUNvdW50KCk7aWYoaT5vLndpZHRofHxpPm8uaGVpZ2h0KXRocm93XCJUaGUgY2FudmFzIGlzIHRvbyBzbWFsbC5cIjt2YXIgYT1NYXRoLm1pbihvLndpZHRoLG8uaGVpZ2h0KS0yKm8ubWFyZ2luLHM9TWF0aC5mbG9vcihhL2kpLHU9TWF0aC5mbG9vcigoby53aWR0aC1pKnMpLzIpLGM9TWF0aC5mbG9vcigoby5oZWlnaHQtaSpzKS8yKSxoPW5ldyBJKHtzdmc6dGhpcy5fZWxlbWVudCx0eXBlOm8uZG90c09wdGlvbnMudHlwZX0pO3RoaXMuX2RvdHNDbGlwUGF0aD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwiY2xpcFBhdGhcIiksdGhpcy5fZG90c0NsaXBQYXRoLnNldEF0dHJpYnV0ZShcImlkXCIsXCJjbGlwLXBhdGgtZG90LWNvbG9yXCIpLHRoaXMuX2RlZnMuYXBwZW5kQ2hpbGQodGhpcy5fZG90c0NsaXBQYXRoKSx0aGlzLl9jcmVhdGVDb2xvcih7b3B0aW9uczpudWxsPT09KGU9by5kb3RzT3B0aW9ucyl8fHZvaWQgMD09PWU/dm9pZCAwOmUuZ3JhZGllbnQsY29sb3I6by5kb3RzT3B0aW9ucy5jb2xvcixhZGRpdGlvbmFsUm90YXRpb246MCx4OnUseTpjLGhlaWdodDppKnMsd2lkdGg6aSpzLG5hbWU6XCJkb3QtY29sb3JcIn0pO2Zvcih2YXIgZD1mdW5jdGlvbihlKXtmb3IodmFyIG89ZnVuY3Rpb24obyl7cmV0dXJuIHQmJiF0KGUsbyk/XCJjb250aW51ZVwiOihudWxsPT09KHI9bC5fcXIpfHx2b2lkIDA9PT1yP3ZvaWQgMDpyLmlzRGFyayhlLG8pKT8oaC5kcmF3KHUrZSpzLGMrbypzLHMsKGZ1bmN0aW9uKHIsYSl7cmV0dXJuIShlK3I8MHx8bythPDB8fGUrcj49aXx8bythPj1pKSYmISh0JiYhdChlK3IsbythKSkmJiEhbi5fcXImJm4uX3FyLmlzRGFyayhlK3IsbythKX0pKSx2b2lkKGguX2VsZW1lbnQmJmwuX2RvdHNDbGlwUGF0aCYmbC5fZG90c0NsaXBQYXRoLmFwcGVuZENoaWxkKGguX2VsZW1lbnQpKSk6XCJjb250aW51ZVwifSxhPTA7YTxpO2ErKylvKGEpfSxsPXRoaXMsZj0wO2Y8aTtmKyspZChmKX0sdC5wcm90b3R5cGUuZHJhd0Nvcm5lcnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO2lmKCF0aGlzLl9xcil0aHJvd1wiUVIgY29kZSBpcyBub3QgZGVmaW5lZFwiO3ZhciBlPXRoaXMuX2VsZW1lbnQscj10aGlzLl9vcHRpb25zO2lmKCFlKXRocm93XCJFbGVtZW50IGNvZGUgaXMgbm90IGRlZmluZWRcIjt2YXIgbj10aGlzLl9xci5nZXRNb2R1bGVDb3VudCgpLG89TWF0aC5taW4oci53aWR0aCxyLmhlaWdodCktMipyLm1hcmdpbixpPU1hdGguZmxvb3Ioby9uKSxhPTcqaSxzPTMqaSx1PU1hdGguZmxvb3IoKHIud2lkdGgtbippKS8yKSxjPU1hdGguZmxvb3IoKHIuaGVpZ2h0LW4qaSkvMik7W1swLDAsMF0sWzEsMCxNYXRoLlBJLzJdLFswLDEsLU1hdGguUEkvMl1dLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBvLGgsZCxsLGYscCxnLHYseSx3LF8sbSxiPWVbMF0seD1lWzFdLE09ZVsyXSxTPXUrYippKihuLTcpLEM9Yyt4KmkqKG4tNyksUD10Ll9kb3RzQ2xpcFBhdGgsTz10Ll9kb3RzQ2xpcFBhdGg7aWYoKChudWxsPT09KG89ci5jb3JuZXJzU3F1YXJlT3B0aW9ucyl8fHZvaWQgMD09PW8/dm9pZCAwOm8uZ3JhZGllbnQpfHwobnVsbD09PShoPXIuY29ybmVyc1NxdWFyZU9wdGlvbnMpfHx2b2lkIDA9PT1oP3ZvaWQgMDpoLmNvbG9yKSkmJigoUD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwiY2xpcFBhdGhcIikpLnNldEF0dHJpYnV0ZShcImlkXCIsXCJjbGlwLXBhdGgtY29ybmVycy1zcXVhcmUtY29sb3ItXCIrYitcIi1cIit4KSx0Ll9kZWZzLmFwcGVuZENoaWxkKFApLHQuX2Nvcm5lcnNTcXVhcmVDbGlwUGF0aD10Ll9jb3JuZXJzRG90Q2xpcFBhdGg9Tz1QLHQuX2NyZWF0ZUNvbG9yKHtvcHRpb25zOm51bGw9PT0oZD1yLmNvcm5lcnNTcXVhcmVPcHRpb25zKXx8dm9pZCAwPT09ZD92b2lkIDA6ZC5ncmFkaWVudCxjb2xvcjpudWxsPT09KGw9ci5jb3JuZXJzU3F1YXJlT3B0aW9ucyl8fHZvaWQgMD09PWw/dm9pZCAwOmwuY29sb3IsYWRkaXRpb25hbFJvdGF0aW9uOk0seDpTLHk6QyxoZWlnaHQ6YSx3aWR0aDphLG5hbWU6XCJjb3JuZXJzLXNxdWFyZS1jb2xvci1cIitiK1wiLVwiK3h9KSksbnVsbD09PShmPXIuY29ybmVyc1NxdWFyZU9wdGlvbnMpfHx2b2lkIDA9PT1mP3ZvaWQgMDpmLnR5cGUpe3ZhciB6PW5ldyBrKHtzdmc6dC5fZWxlbWVudCx0eXBlOnIuY29ybmVyc1NxdWFyZU9wdGlvbnMudHlwZX0pO3ouZHJhdyhTLEMsYSxNKSx6Ll9lbGVtZW50JiZQJiZQLmFwcGVuZENoaWxkKHouX2VsZW1lbnQpfWVsc2UgZm9yKHZhciBEPW5ldyBJKHtzdmc6dC5fZWxlbWVudCx0eXBlOnIuZG90c09wdGlvbnMudHlwZX0pLEE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWZ1bmN0aW9uKGUpe2lmKCEobnVsbD09PShwPUJbdF0pfHx2b2lkIDA9PT1wP3ZvaWQgMDpwW2VdKSlyZXR1cm5cImNvbnRpbnVlXCI7RC5kcmF3KFMrdCppLEMrZSppLGksKGZ1bmN0aW9uKHIsbil7dmFyIG87cmV0dXJuISEobnVsbD09PShvPUJbdCtyXSl8fHZvaWQgMD09PW8/dm9pZCAwOm9bZStuXSl9KSksRC5fZWxlbWVudCYmUCYmUC5hcHBlbmRDaGlsZChELl9lbGVtZW50KX0scj0wO3I8Qlt0XS5sZW5ndGg7cisrKWUocil9LHE9MDtxPEIubGVuZ3RoO3ErKylBKHEpO2lmKCgobnVsbD09PShnPXIuY29ybmVyc0RvdE9wdGlvbnMpfHx2b2lkIDA9PT1nP3ZvaWQgMDpnLmdyYWRpZW50KXx8KG51bGw9PT0odj1yLmNvcm5lcnNEb3RPcHRpb25zKXx8dm9pZCAwPT09dj92b2lkIDA6di5jb2xvcikpJiYoKE89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImNsaXBQYXRoXCIpKS5zZXRBdHRyaWJ1dGUoXCJpZFwiLFwiY2xpcC1wYXRoLWNvcm5lcnMtZG90LWNvbG9yLVwiK2IrXCItXCIreCksdC5fZGVmcy5hcHBlbmRDaGlsZChPKSx0Ll9jb3JuZXJzRG90Q2xpcFBhdGg9Tyx0Ll9jcmVhdGVDb2xvcih7b3B0aW9uczpudWxsPT09KHk9ci5jb3JuZXJzRG90T3B0aW9ucyl8fHZvaWQgMD09PXk/dm9pZCAwOnkuZ3JhZGllbnQsY29sb3I6bnVsbD09PSh3PXIuY29ybmVyc0RvdE9wdGlvbnMpfHx2b2lkIDA9PT13P3ZvaWQgMDp3LmNvbG9yLGFkZGl0aW9uYWxSb3RhdGlvbjpNLHg6UysyKmkseTpDKzIqaSxoZWlnaHQ6cyx3aWR0aDpzLG5hbWU6XCJjb3JuZXJzLWRvdC1jb2xvci1cIitiK1wiLVwiK3h9KSksbnVsbD09PShfPXIuY29ybmVyc0RvdE9wdGlvbnMpfHx2b2lkIDA9PT1fP3ZvaWQgMDpfLnR5cGUpe3ZhciBMPW5ldyBSKHtzdmc6dC5fZWxlbWVudCx0eXBlOnIuY29ybmVyc0RvdE9wdGlvbnMudHlwZX0pO0wuZHJhdyhTKzIqaSxDKzIqaSxzLE0pLEwuX2VsZW1lbnQmJk8mJk8uYXBwZW5kQ2hpbGQoTC5fZWxlbWVudCl9ZWxzZXtEPW5ldyBJKHtzdmc6dC5fZWxlbWVudCx0eXBlOnIuZG90c09wdGlvbnMudHlwZX0pO3ZhciBOPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1mdW5jdGlvbihlKXtpZighKG51bGw9PT0obT1FW3RdKXx8dm9pZCAwPT09bT92b2lkIDA6bVtlXSkpcmV0dXJuXCJjb250aW51ZVwiO0QuZHJhdyhTK3QqaSxDK2UqaSxpLChmdW5jdGlvbihyLG4pe3ZhciBvO3JldHVybiEhKG51bGw9PT0obz1FW3Qrcl0pfHx2b2lkIDA9PT1vP3ZvaWQgMDpvW2Urbl0pfSkpLEQuX2VsZW1lbnQmJk8mJk8uYXBwZW5kQ2hpbGQoRC5fZWxlbWVudCl9LHI9MDtyPEVbdF0ubGVuZ3RoO3IrKyllKHIpfTtmb3IocT0wO3E8RS5sZW5ndGg7cSsrKU4ocSl9fSkpfSx0LnByb3RvdHlwZS5sb2FkSW1hZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt2YXIgbj10Ll9vcHRpb25zLG89bmV3IEltYWdlO2lmKCFuLmltYWdlKXJldHVybiByKFwiSW1hZ2UgaXMgbm90IGRlZmluZWRcIik7XCJzdHJpbmdcIj09dHlwZW9mIG4uaW1hZ2VPcHRpb25zLmNyb3NzT3JpZ2luJiYoby5jcm9zc09yaWdpbj1uLmltYWdlT3B0aW9ucy5jcm9zc09yaWdpbiksdC5faW1hZ2U9byxvLm9ubG9hZD1mdW5jdGlvbigpe2UoKX0sby5zcmM9bi5pbWFnZX0pKX0sdC5wcm90b3R5cGUuZHJhd0ltYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQud2lkdGgscj10LmhlaWdodCxuPXQuY291bnQsbz10LmRvdFNpemUsaT10aGlzLl9vcHRpb25zLGE9TWF0aC5mbG9vcigoaS53aWR0aC1uKm8pLzIpLHM9TWF0aC5mbG9vcigoaS5oZWlnaHQtbipvKS8yKSx1PWEraS5pbWFnZU9wdGlvbnMubWFyZ2luKyhuKm8tZSkvMixjPXMraS5pbWFnZU9wdGlvbnMubWFyZ2luKyhuKm8tcikvMixoPWUtMippLmltYWdlT3B0aW9ucy5tYXJnaW4sZD1yLTIqaS5pbWFnZU9wdGlvbnMubWFyZ2luLGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcImltYWdlXCIpO2wuc2V0QXR0cmlidXRlKFwiaHJlZlwiLGkuaW1hZ2V8fFwiXCIpLGwuc2V0QXR0cmlidXRlKFwieFwiLFN0cmluZyh1KSksbC5zZXRBdHRyaWJ1dGUoXCJ5XCIsU3RyaW5nKGMpKSxsLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsaCtcInB4XCIpLGwuc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsZCtcInB4XCIpLHRoaXMuX2VsZW1lbnQuYXBwZW5kQ2hpbGQobCl9LHQucHJvdG90eXBlLl9jcmVhdGVDb2xvcj1mdW5jdGlvbih0KXt2YXIgZT10Lm9wdGlvbnMscj10LmNvbG9yLG49dC5hZGRpdGlvbmFsUm90YXRpb24sbz10LngsaT10LnksYT10LmhlaWdodCxzPXQud2lkdGgsdT10Lm5hbWUsYz1zPmE/czphLGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcInJlY3RcIik7aWYoaC5zZXRBdHRyaWJ1dGUoXCJ4XCIsU3RyaW5nKG8pKSxoLnNldEF0dHJpYnV0ZShcInlcIixTdHJpbmcoaSkpLGguc2V0QXR0cmlidXRlKFwiaGVpZ2h0XCIsU3RyaW5nKGEpKSxoLnNldEF0dHJpYnV0ZShcIndpZHRoXCIsU3RyaW5nKHMpKSxoLnNldEF0dHJpYnV0ZShcImNsaXAtcGF0aFwiLFwidXJsKCcjY2xpcC1wYXRoLVwiK3UrXCInKVwiKSxlKXt2YXIgZDtpZihlLnR5cGU9PT1DKShkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIsXCJyYWRpYWxHcmFkaWVudFwiKSkuc2V0QXR0cmlidXRlKFwiaWRcIix1KSxkLnNldEF0dHJpYnV0ZShcImdyYWRpZW50VW5pdHNcIixcInVzZXJTcGFjZU9uVXNlXCIpLGQuc2V0QXR0cmlidXRlKFwiZnhcIixTdHJpbmcobytzLzIpKSxkLnNldEF0dHJpYnV0ZShcImZ5XCIsU3RyaW5nKGkrYS8yKSksZC5zZXRBdHRyaWJ1dGUoXCJjeFwiLFN0cmluZyhvK3MvMikpLGQuc2V0QXR0cmlidXRlKFwiY3lcIixTdHJpbmcoaSthLzIpKSxkLnNldEF0dHJpYnV0ZShcInJcIixTdHJpbmcoYy8yKSk7ZWxzZXt2YXIgbD0oKGUucm90YXRpb258fDApK24pJSgyKk1hdGguUEkpLGY9KGwrMipNYXRoLlBJKSUoMipNYXRoLlBJKSxwPW8rcy8yLGc9aSthLzIsdj1vK3MvMix5PWkrYS8yO2Y+PTAmJmY8PS4yNSpNYXRoLlBJfHxmPjEuNzUqTWF0aC5QSSYmZjw9MipNYXRoLlBJPyhwLT1zLzIsZy09YS8yKk1hdGgudGFuKGwpLHYrPXMvMix5Kz1hLzIqTWF0aC50YW4obCkpOmY+LjI1Kk1hdGguUEkmJmY8PS43NSpNYXRoLlBJPyhnLT1hLzIscC09cy8yL01hdGgudGFuKGwpLHkrPWEvMix2Kz1zLzIvTWF0aC50YW4obCkpOmY+Ljc1Kk1hdGguUEkmJmY8PTEuMjUqTWF0aC5QST8ocCs9cy8yLGcrPWEvMipNYXRoLnRhbihsKSx2LT1zLzIseS09YS8yKk1hdGgudGFuKGwpKTpmPjEuMjUqTWF0aC5QSSYmZjw9MS43NSpNYXRoLlBJJiYoZys9YS8yLHArPXMvMi9NYXRoLnRhbihsKSx5LT1hLzIsdi09cy8yL01hdGgudGFuKGwpKSwoZD1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiLFwibGluZWFyR3JhZGllbnRcIikpLnNldEF0dHJpYnV0ZShcImlkXCIsdSksZC5zZXRBdHRyaWJ1dGUoXCJncmFkaWVudFVuaXRzXCIsXCJ1c2VyU3BhY2VPblVzZVwiKSxkLnNldEF0dHJpYnV0ZShcIngxXCIsU3RyaW5nKE1hdGgucm91bmQocCkpKSxkLnNldEF0dHJpYnV0ZShcInkxXCIsU3RyaW5nKE1hdGgucm91bmQoZykpKSxkLnNldEF0dHJpYnV0ZShcIngyXCIsU3RyaW5nKE1hdGgucm91bmQodikpKSxkLnNldEF0dHJpYnV0ZShcInkyXCIsU3RyaW5nKE1hdGgucm91bmQoeSkpKX1lLmNvbG9yU3RvcHMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5vZmZzZXQscj10LmNvbG9yLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIixcInN0b3BcIik7bi5zZXRBdHRyaWJ1dGUoXCJvZmZzZXRcIiwxMDAqZStcIiVcIiksbi5zZXRBdHRyaWJ1dGUoXCJzdG9wLWNvbG9yXCIsciksZC5hcHBlbmRDaGlsZChuKX0pKSxoLnNldEF0dHJpYnV0ZShcImZpbGxcIixcInVybCgnI1wiK3UrXCInKVwiKSx0aGlzLl9kZWZzLmFwcGVuZENoaWxkKGQpfWVsc2UgciYmaC5zZXRBdHRyaWJ1dGUoXCJmaWxsXCIscik7dGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChoKX0sdH0oKSxOPVwiY2FudmFzXCI7Zm9yKHZhciBUPXt9LGo9MDtqPD00MDtqKyspVFtqXT1qO2NvbnN0IEY9e3R5cGU6Tix3aWR0aDozMDAsaGVpZ2h0OjMwMCxkYXRhOlwiXCIsbWFyZ2luOjAscXJPcHRpb25zOnt0eXBlTnVtYmVyOlRbMF0sbW9kZTp2b2lkIDAsZXJyb3JDb3JyZWN0aW9uTGV2ZWw6XCJRXCJ9LGltYWdlT3B0aW9uczp7aGlkZUJhY2tncm91bmREb3RzOiEwLGltYWdlU2l6ZTouNCxjcm9zc09yaWdpbjp2b2lkIDAsbWFyZ2luOjB9LGRvdHNPcHRpb25zOnt0eXBlOlwic3F1YXJlXCIsY29sb3I6XCIjMDAwXCJ9LGJhY2tncm91bmRPcHRpb25zOntjb2xvcjpcIiNmZmZcIn19O3ZhciBRPWZ1bmN0aW9uKCl7cmV0dXJuKFE9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9MSxuPWFyZ3VtZW50cy5sZW5ndGg7cjxuO3IrKylmb3IodmFyIG8gaW4gZT1hcmd1bWVudHNbcl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbykmJih0W29dPWVbb10pO3JldHVybiB0fSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiBIKHQpe3ZhciBlPVEoe30sdCk7aWYoIWUuY29sb3JTdG9wc3x8IWUuY29sb3JTdG9wcy5sZW5ndGgpdGhyb3dcIkZpZWxkICdjb2xvclN0b3BzJyBpcyByZXF1aXJlZCBpbiBncmFkaWVudFwiO3JldHVybiBlLnJvdGF0aW9uP2Uucm90YXRpb249TnVtYmVyKGUucm90YXRpb24pOmUucm90YXRpb249MCxlLmNvbG9yU3RvcHM9ZS5jb2xvclN0b3BzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIFEoUSh7fSx0KSx7b2Zmc2V0Ok51bWJlcih0Lm9mZnNldCl9KX0pKSxlfWZ1bmN0aW9uIEcodCl7dmFyIGU9USh7fSx0KTtyZXR1cm4gZS53aWR0aD1OdW1iZXIoZS53aWR0aCksZS5oZWlnaHQ9TnVtYmVyKGUuaGVpZ2h0KSxlLm1hcmdpbj1OdW1iZXIoZS5tYXJnaW4pLGUuaW1hZ2VPcHRpb25zPVEoUSh7fSxlLmltYWdlT3B0aW9ucykse2hpZGVCYWNrZ3JvdW5kRG90czpCb29sZWFuKGUuaW1hZ2VPcHRpb25zLmhpZGVCYWNrZ3JvdW5kRG90cyksaW1hZ2VTaXplOk51bWJlcihlLmltYWdlT3B0aW9ucy5pbWFnZVNpemUpLG1hcmdpbjpOdW1iZXIoZS5pbWFnZU9wdGlvbnMubWFyZ2luKX0pLGUubWFyZ2luPk1hdGgubWluKGUud2lkdGgsZS5oZWlnaHQpJiYoZS5tYXJnaW49TWF0aC5taW4oZS53aWR0aCxlLmhlaWdodCkpLGUuZG90c09wdGlvbnM9USh7fSxlLmRvdHNPcHRpb25zKSxlLmRvdHNPcHRpb25zLmdyYWRpZW50JiYoZS5kb3RzT3B0aW9ucy5ncmFkaWVudD1IKGUuZG90c09wdGlvbnMuZ3JhZGllbnQpKSxlLmNvcm5lcnNTcXVhcmVPcHRpb25zJiYoZS5jb3JuZXJzU3F1YXJlT3B0aW9ucz1RKHt9LGUuY29ybmVyc1NxdWFyZU9wdGlvbnMpLGUuY29ybmVyc1NxdWFyZU9wdGlvbnMuZ3JhZGllbnQmJihlLmNvcm5lcnNTcXVhcmVPcHRpb25zLmdyYWRpZW50PUgoZS5jb3JuZXJzU3F1YXJlT3B0aW9ucy5ncmFkaWVudCkpKSxlLmNvcm5lcnNEb3RPcHRpb25zJiYoZS5jb3JuZXJzRG90T3B0aW9ucz1RKHt9LGUuY29ybmVyc0RvdE9wdGlvbnMpLGUuY29ybmVyc0RvdE9wdGlvbnMuZ3JhZGllbnQmJihlLmNvcm5lcnNEb3RPcHRpb25zLmdyYWRpZW50PUgoZS5jb3JuZXJzRG90T3B0aW9ucy5ncmFkaWVudCkpKSxlLmJhY2tncm91bmRPcHRpb25zJiYoZS5iYWNrZ3JvdW5kT3B0aW9ucz1RKHt9LGUuYmFja2dyb3VuZE9wdGlvbnMpLGUuYmFja2dyb3VuZE9wdGlvbnMuZ3JhZGllbnQmJihlLmJhY2tncm91bmRPcHRpb25zLmdyYWRpZW50PUgoZS5iYWNrZ3JvdW5kT3B0aW9ucy5ncmFkaWVudCkpKSxlfXZhciBYPXIoMTkyKSxVPXIubihYKSxZPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuZXcocnx8KHI9UHJvbWlzZSkpKChmdW5jdGlvbihvLGkpe2Z1bmN0aW9uIGEodCl7dHJ5e3Uobi5uZXh0KHQpKX1jYXRjaCh0KXtpKHQpfX1mdW5jdGlvbiBzKHQpe3RyeXt1KG4udGhyb3codCkpfWNhdGNoKHQpe2kodCl9fWZ1bmN0aW9uIHUodCl7dmFyIGU7dC5kb25lP28odC52YWx1ZSk6KGU9dC52YWx1ZSxlIGluc3RhbmNlb2Ygcj9lOm5ldyByKChmdW5jdGlvbih0KXt0KGUpfSkpKS50aGVuKGEscyl9dSgobj1uLmFwcGx5KHQsZXx8W10pKS5uZXh0KCkpfSkpfSwkPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGksYT17bGFiZWw6MCxzZW50OmZ1bmN0aW9uKCl7aWYoMSZvWzBdKXRocm93IG9bMV07cmV0dXJuIG9bMV19LHRyeXM6W10sb3BzOltdfTtyZXR1cm4gaT17bmV4dDpzKDApLHRocm93OnMoMSkscmV0dXJuOnMoMil9LFwiZnVuY3Rpb25cIj09dHlwZW9mIFN5bWJvbCYmKGlbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfSksaTtmdW5jdGlvbiBzKGkpe3JldHVybiBmdW5jdGlvbihzKXtyZXR1cm4gZnVuY3Rpb24oaSl7aWYocil0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtmb3IoO2E7KXRyeXtpZihyPTEsbiYmKG89MiZpWzBdP24ucmV0dXJuOmlbMF0/bi50aHJvd3x8KChvPW4ucmV0dXJuKSYmby5jYWxsKG4pLDApOm4ubmV4dCkmJiEobz1vLmNhbGwobixpWzFdKSkuZG9uZSlyZXR1cm4gbztzd2l0Y2gobj0wLG8mJihpPVsyJmlbMF0sby52YWx1ZV0pLGlbMF0pe2Nhc2UgMDpjYXNlIDE6bz1pO2JyZWFrO2Nhc2UgNDpyZXR1cm4gYS5sYWJlbCsrLHt2YWx1ZTppWzFdLGRvbmU6ITF9O2Nhc2UgNTphLmxhYmVsKyssbj1pWzFdLGk9WzBdO2NvbnRpbnVlO2Nhc2UgNzppPWEub3BzLnBvcCgpLGEudHJ5cy5wb3AoKTtjb250aW51ZTtkZWZhdWx0OmlmKCEoKG89KG89YS50cnlzKS5sZW5ndGg+MCYmb1tvLmxlbmd0aC0xXSl8fDYhPT1pWzBdJiYyIT09aVswXSkpe2E9MDtjb250aW51ZX1pZigzPT09aVswXSYmKCFvfHxpWzFdPm9bMF0mJmlbMV08b1szXSkpe2EubGFiZWw9aVsxXTticmVha31pZig2PT09aVswXSYmYS5sYWJlbDxvWzFdKXthLmxhYmVsPW9bMV0sbz1pO2JyZWFrfWlmKG8mJmEubGFiZWw8b1syXSl7YS5sYWJlbD1vWzJdLGEub3BzLnB1c2goaSk7YnJlYWt9b1syXSYmYS5vcHMucG9wKCksYS50cnlzLnBvcCgpO2NvbnRpbnVlfWk9ZS5jYWxsKHQsYSl9Y2F0Y2godCl7aT1bNix0XSxuPTB9ZmluYWxseXtyPW89MH1pZig1JmlbMF0pdGhyb3cgaVsxXTtyZXR1cm57dmFsdWU6aVswXT9pWzFdOnZvaWQgMCxkb25lOiEwfX0oW2ksc10pfX19O2NvbnN0IFc9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQpe3RoaXMuX29wdGlvbnM9dD9HKGEoRix0KSk6Rix0aGlzLnVwZGF0ZSgpfXJldHVybiB0Ll9jbGVhckNvbnRhaW5lcj1mdW5jdGlvbih0KXt0JiYodC5pbm5lckhUTUw9XCJcIil9LHQucHJvdG90eXBlLl9nZXRRUlN0eWxpbmdFbGVtZW50PWZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10JiYodD1cInBuZ1wiKSxZKHRoaXMsdm9pZCAwLHZvaWQgMCwoZnVuY3Rpb24oKXt2YXIgZSxyLG47cmV0dXJuICQodGhpcywoZnVuY3Rpb24obyl7c3dpdGNoKG8ubGFiZWwpe2Nhc2UgMDppZighdGhpcy5fcXIpdGhyb3dcIlFSIGNvZGUgaXMgZW1wdHlcIjtyZXR1cm5cInN2Z1wiIT09dC50b0xvd2VyQ2FzZSgpP1szLDJdOihyPXZvaWQgMCxlPXZvaWQgMCx0aGlzLl9zdmcmJnRoaXMuX3N2Z0RyYXdpbmdQcm9taXNlPyhlPXRoaXMuX3N2ZyxyPXRoaXMuX3N2Z0RyYXdpbmdQcm9taXNlKTooZT1uZXcgTCh0aGlzLl9vcHRpb25zKSxyPWUuZHJhd1FSKHRoaXMuX3FyKSksWzQscl0pO2Nhc2UgMTpyZXR1cm4gby5zZW50KCksWzIsZV07Y2FzZSAyOnJldHVybiByPXZvaWQgMCxuPXZvaWQgMCx0aGlzLl9jYW52YXMmJnRoaXMuX2NhbnZhc0RyYXdpbmdQcm9taXNlPyhuPXRoaXMuX2NhbnZhcyxyPXRoaXMuX2NhbnZhc0RyYXdpbmdQcm9taXNlKToobj1uZXcgeih0aGlzLl9vcHRpb25zKSxyPW4uZHJhd1FSKHRoaXMuX3FyKSksWzQscl07Y2FzZSAzOnJldHVybiBvLnNlbnQoKSxbMixuXX19KSl9KSl9LHQucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlKXt0Ll9jbGVhckNvbnRhaW5lcih0aGlzLl9jb250YWluZXIpLHRoaXMuX29wdGlvbnM9ZT9HKGEodGhpcy5fb3B0aW9ucyxlKSk6dGhpcy5fb3B0aW9ucyx0aGlzLl9vcHRpb25zLmRhdGEmJih0aGlzLl9xcj1VKCkodGhpcy5fb3B0aW9ucy5xck9wdGlvbnMudHlwZU51bWJlcix0aGlzLl9vcHRpb25zLnFyT3B0aW9ucy5lcnJvckNvcnJlY3Rpb25MZXZlbCksdGhpcy5fcXIuYWRkRGF0YSh0aGlzLl9vcHRpb25zLmRhdGEsdGhpcy5fb3B0aW9ucy5xck9wdGlvbnMubW9kZXx8ZnVuY3Rpb24odCl7c3dpdGNoKCEwKXtjYXNlL15bMC05XSokLy50ZXN0KHQpOnJldHVyblwiTnVtZXJpY1wiO2Nhc2UvXlswLTlBLVogJCUqK1xcLS4vOl0qJC8udGVzdCh0KTpyZXR1cm5cIkFscGhhbnVtZXJpY1wiO2RlZmF1bHQ6cmV0dXJuXCJCeXRlXCJ9fSh0aGlzLl9vcHRpb25zLmRhdGEpKSx0aGlzLl9xci5tYWtlKCksdGhpcy5fb3B0aW9ucy50eXBlPT09Tj8odGhpcy5fY2FudmFzPW5ldyB6KHRoaXMuX29wdGlvbnMpLHRoaXMuX2NhbnZhc0RyYXdpbmdQcm9taXNlPXRoaXMuX2NhbnZhcy5kcmF3UVIodGhpcy5fcXIpLHRoaXMuX3N2Z0RyYXdpbmdQcm9taXNlPXZvaWQgMCx0aGlzLl9zdmc9dm9pZCAwKToodGhpcy5fc3ZnPW5ldyBMKHRoaXMuX29wdGlvbnMpLHRoaXMuX3N2Z0RyYXdpbmdQcm9taXNlPXRoaXMuX3N2Zy5kcmF3UVIodGhpcy5fcXIpLHRoaXMuX2NhbnZhc0RyYXdpbmdQcm9taXNlPXZvaWQgMCx0aGlzLl9jYW52YXM9dm9pZCAwKSx0aGlzLmFwcGVuZCh0aGlzLl9jb250YWluZXIpKX0sdC5wcm90b3R5cGUuYXBwZW5kPWZ1bmN0aW9uKHQpe2lmKHQpe2lmKFwiZnVuY3Rpb25cIiE9dHlwZW9mIHQuYXBwZW5kQ2hpbGQpdGhyb3dcIkNvbnRhaW5lciBzaG91bGQgYmUgYSBzaW5nbGUgRE9NIG5vZGVcIjt0aGlzLl9vcHRpb25zLnR5cGU9PT1OP3RoaXMuX2NhbnZhcyYmdC5hcHBlbmRDaGlsZCh0aGlzLl9jYW52YXMuZ2V0Q2FudmFzKCkpOnRoaXMuX3N2ZyYmdC5hcHBlbmRDaGlsZCh0aGlzLl9zdmcuZ2V0RWxlbWVudCgpKSx0aGlzLl9jb250YWluZXI9dH19LHQucHJvdG90eXBlLmdldFJhd0RhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQmJih0PVwicG5nXCIpLFkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlLHIsbjtyZXR1cm4gJCh0aGlzLChmdW5jdGlvbihvKXtzd2l0Y2goby5sYWJlbCl7Y2FzZSAwOmlmKCF0aGlzLl9xcil0aHJvd1wiUVIgY29kZSBpcyBlbXB0eVwiO3JldHVybls0LHRoaXMuX2dldFFSU3R5bGluZ0VsZW1lbnQodCldO2Nhc2UgMTpyZXR1cm4gZT1vLnNlbnQoKSxcInN2Z1wiPT09dC50b0xvd2VyQ2FzZSgpPyhyPW5ldyBYTUxTZXJpYWxpemVyLG49ci5zZXJpYWxpemVUb1N0cmluZyhlLmdldEVsZW1lbnQoKSksWzIsbmV3IEJsb2IoWyc8P3htbCB2ZXJzaW9uPVwiMS4wXCIgc3RhbmRhbG9uZT1cIm5vXCI/Plxcclxcbicrbl0se3R5cGU6XCJpbWFnZS9zdmcreG1sXCJ9KV0pOlsyLG5ldyBQcm9taXNlKChmdW5jdGlvbihyKXtyZXR1cm4gZS5nZXRDYW52YXMoKS50b0Jsb2IocixcImltYWdlL1wiK3QsMSl9KSldfX0pKX0pKX0sdC5wcm90b3R5cGUuZG93bmxvYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIFkodGhpcyx2b2lkIDAsdm9pZCAwLChmdW5jdGlvbigpe3ZhciBlLHIsbixvLGk7cmV0dXJuICQodGhpcywoZnVuY3Rpb24oYSl7c3dpdGNoKGEubGFiZWwpe2Nhc2UgMDppZighdGhpcy5fcXIpdGhyb3dcIlFSIGNvZGUgaXMgZW1wdHlcIjtyZXR1cm4gZT1cInBuZ1wiLHI9XCJxclwiLFwic3RyaW5nXCI9PXR5cGVvZiB0PyhlPXQsY29uc29sZS53YXJuKFwiRXh0ZW5zaW9uIGlzIGRlcHJlY2F0ZWQgYXMgYXJndW1lbnQgZm9yICdkb3dubG9hZCcgbWV0aG9kLCBwbGVhc2UgcGFzcyBvYmplY3QgeyBuYW1lOiAnLi4uJywgZXh0ZW5zaW9uOiAnLi4uJyB9IGFzIGFyZ3VtZW50XCIpKTpcIm9iamVjdFwiPT10eXBlb2YgdCYmbnVsbCE9PXQmJih0Lm5hbWUmJihyPXQubmFtZSksdC5leHRlbnNpb24mJihlPXQuZXh0ZW5zaW9uKSksWzQsdGhpcy5fZ2V0UVJTdHlsaW5nRWxlbWVudChlKV07Y2FzZSAxOnJldHVybiBuPWEuc2VudCgpLFwic3ZnXCI9PT1lLnRvTG93ZXJDYXNlKCk/KG89bmV3IFhNTFNlcmlhbGl6ZXIsaT0nPD94bWwgdmVyc2lvbj1cIjEuMFwiIHN0YW5kYWxvbmU9XCJub1wiPz5cXHJcXG4nKyhpPW8uc2VyaWFsaXplVG9TdHJpbmcobi5nZXRFbGVtZW50KCkpKSxzKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsXCIrZW5jb2RlVVJJQ29tcG9uZW50KGkpLHIrXCIuc3ZnXCIpKTpzKG4uZ2V0Q2FudmFzKCkudG9EYXRhVVJMKFwiaW1hZ2UvXCIrZSkscitcIi5cIitlKSxbMl19fSkpfSkpfSx0fSgpfX0sZT17fTtmdW5jdGlvbiByKG4pe2lmKGVbbl0pcmV0dXJuIGVbbl0uZXhwb3J0czt2YXIgbz1lW25dPXtleHBvcnRzOnt9fTtyZXR1cm4gdFtuXShvLG8uZXhwb3J0cyxyKSxvLmV4cG9ydHN9cmV0dXJuIHIubj10PT57dmFyIGU9dCYmdC5fX2VzTW9kdWxlPygpPT50LmRlZmF1bHQ6KCk9PnQ7cmV0dXJuIHIuZChlLHthOmV9KSxlfSxyLmQ9KHQsZSk9Pntmb3IodmFyIG4gaW4gZSlyLm8oZSxuKSYmIXIubyh0LG4pJiZPYmplY3QuZGVmaW5lUHJvcGVydHkodCxuLHtlbnVtZXJhYmxlOiEwLGdldDplW25dfSl9LHIubz0odCxlKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSkscig3OTYpfSkoKS5kZWZhdWx0fSkpO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cXItY29kZS1zdHlsaW5nLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/qr-code-styling/lib/qr-code-styling.js\n");
|
|
|
|
/***/ })
|
|
|
|
};
|
|
; |