{"version":3,"file":"vendor.js","mappings":";;;;;;;;;;;;;AAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACb;AACgD;AACW;AACZ;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACwB;AACT;AACJ;AACI;AACJ;AACW;AACb;AACI;AACA;AACF;AACJ;AACxC;AACA;AACO;AACP;AACA,QAAQ,yEAAc;AACtB;AACA;AACA;AACA;AACA,2BAA2B,yDAAY;AACvC;AACA,2BAA2B,yDAAY;AACvC;AACA,2BAA2B,uDAAW;AACtC;AACA,2BAA2B,qDAAU;AACrC;AACA,2BAA2B,qDAAU;AACrC;AACA,2BAA2B,qDAAU;AACrC;AACA,iBAAiB;AACjB;AACA,2BAA2B,mDAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,wDAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iEAAe;AACtC;AACA;AACA;AACA,qBAAqB;AACrB;AACA,mBAAmB,2DAAM;AACzB;AACA;AACA,mBAAmB,2DAAM;AACzB;AACA;AACA,0DAA0D,uDAAc;AACxE,0BAA0B,qDAAU;AACpC;AACA;AACA;AACA;AACA,8DAA8D,iFAA8B;AAC5F,yBAAyB,4CAA4C;AACrE,yBAAyB;AACzB,aAAa;AACb;AACA,0DAA0D,uDAAc;AACxE,2BAA2B,qDAAU;AACrC;AACA;AACA;AACA;AACA;AACA,0DAA0D,uDAAc;AACxE,0BAA0B,qDAAU;AACpC,4CAA4C,+DAAQ;AACpD;AACA;AACO;;;;;;;;;;;;;;;;;;;;;;;;AC9FM;AAC+D;AACvB;AACM;AACZ;AACT;AACtC,mBAAmB,yDAAM,CAAC,6CAAO;AAC1B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAA+B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,yEAAc;AACtB;AACA;AACA;AACA;AACA;AACA,eAAe,+DAAS;AACxB;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4DAAM;AACrC;AACA,uBAAuB;AACvB;AACA,oBAAoB,8DAAQ;AAC5B;AACA;AACA,oBAAoB,4DAAM;AAC1B;AACA;AACA;AACA;AACA,oBAAoB,8DAAQ,CAAC,oEAAc;AAC3C;AACA,qDAAqD,+EAA4B;AACjF;AACA;AACA,aAAa;AACb;AACA;AACA,oBAAoB,4DAAM;AAC1B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,QAAQ,yEAAc,gBAAgB,8DAAQ;AAC9C,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB;AACA;AACA,iBAAiB,OAAO,6DAAO;AAC/B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,+EAA4B;AACpF;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAc;AAC7B;AACA;;;;;;;;;;;;;;;;;;;ACjJa;AACuC;AACF;AACT;AAClC,2BAA2B,kDAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kEAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU,CAAC,gEAAU;AACpC;AACA;;;;;;;;;;;;;;;;;ACvBa;AAC4B;AACzC;AACO,6BAA6B,kDAAK;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACjBa;AACkC;AACT;AACtC,mBAAmB,yDAAM,CAAC,6CAAO;AACgB;AACJ;AACtC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,iFAA8B;AACzH;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6FAA6F,iFAA8B;AAC3H;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mDAAM;AACjC,4BAA4B,mDAAM;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+EAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+EAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,IAAI;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,aAAa;AACb;AACA;AACA;AACA;AACO,yBAAyB,kDAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,+EAA4B;AAC1F;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,wBAAwB,WAAW;AACnC,4BAA4B,sDAAc;AAC1C;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/Ma;AAC4B;AAClC,2BAA2B,kDAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACfa;AAC4C;AAChB;AAClC,gCAAgC,kDAAK;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,wCAAwC,6DAAO;AAC/C;AACA;;;;;;;;;;;;;;;;;;AC3Ba;AAC4C;AAChB;AACzC;AACO,8BAA8B,kDAAK;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAAQ;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6DAAO;AAC/C;AACA;;;;;;;;;;;;;;;;;ACvBa;AAC4B;AAClC,wBAAwB,kDAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACnBa;AACwC;AACyB;AACrC;AAClC,0BAA0B,kDAAK;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAc;AAC9B;AACA,2BAA2B,qEAAe;AAC1C;AACA;AACA,gDAAgD,yDAAG,MAAM,iEAAW;AACpE;AACA;AACA;AACA,sBAAsB,0DAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxCa;AACsD;AACvB;AACrC,0BAA0B,qDAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,mEAAW;AAC/C;AACA;AACA,eAAe,oEAAY;AAC3B;AACA;;;;;;;;;;;;;;;;;;AChBa;AAC4B;AACF;AAChC,yBAAyB,kDAAK;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,4CAAI;AACnB;AACA;AACA,wCAAwC,8CAAM;AAC9C;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACvDa;AACwC;AACM;AACZ;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA,uBAAuB;AACvB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE;AACxE;AACA;AACA;AACA,qBAAqB,6CAA6C;AAClE;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAkD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAc;AACtB;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA,gDAAgD,sFAAmC;AACnF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,0DAA0D,sFAAmC;AAC7F;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oEAAc;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,yEAAyE,sFAAmC;AAC5G;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAc;AAC5C;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAc;AAC5C;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,KAAK;AACtE;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,MAAM;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACr1Ba;AACuC;AACC;AACmD;AAC/D;AACY;AAC8B;AACrC;AACc;AACyD;AACtE;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACJ;AACtB,6BAA6B,kEAAW;AAC/C;AACO,qCAAqC,kEAAW;AACvD;AACO,+BAA+B,kEAAW;AACjD;AACO,sBAAsB,kEAAW;AACxC;AACA;AACA;AACA;AACA;AACA,oBAAoB,6EAA6E;AACjG,oBAAoB;AACpB;AACA;AACA,qFAAqF,SAAS;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,OAAO,aAAa,6BAA6B,MAAM,yBAAyB;AACxI;AACA;AACA;AACA;AACA,KAAK,KAAK,2BAA2B,IAAI;AACzC;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAc;AACtB,mBAAmB,qDAAa;AAChC,SAAS;AACT,QAAQ,yEAAc,oBAAoB,oEAAS;AACnD,QAAQ,yEAAc,sBAAsB;AAC5C,QAAQ,yEAAc,mBAAmB;AACzC,QAAQ,yEAAc,mBAAmB;AACzC,QAAQ,yEAAc,oBAAoB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,yEAAc,iBAAiB,gEAAwB;AACnE;AACA;AACA,aAAa;AACb;AACA,QAAQ,yEAAc;AACtB;AACA;AACA;AACA,qBAAqB,wDAAgB;AACrC;AACA,uBAAuB,2DAAmB;AAC1C;AACA;AACA;AACA;AACA,uBAAuB,wDAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uDAAe;AAC9B;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA,eAAe,kEAAY,CAAC,uDAAE;AAC9B;AACA;AACA,eAAe,uDAAE;AACjB;AACA;AACA;AACA,YAAY,iEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,mEAA2B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gEAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iEAAW;AACvB,+BAA+B,oEAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mEAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8DAAQ;AAC9B,YAAY,6DAAO;AACnB,6EAA6E,cAAc,YAAY,6DAAO;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAO,CAAC,4DAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,8DAAQ;AAC9B,YAAY,6DAAO;AACnB,gFAAgF,sBAAsB,YAAY,6DAAO;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAO,CAAC,4DAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,8DAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6DAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yEAAyE,6BAA6B;AAC3I;AACA;AACA,qCAAqC,sEAAsE,aAAa;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,+EAA4B;AAChG;AACA,kBAAkB,6DAAO;AACzB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,oFAAiC;AACnH;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uDAAE;AACzB;AACA;AACA,uBAAuB,mEAAS,CAAC,6DAAO;AACxC;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAc;AACtC;AACA;AACA;AACA;AACA;AACA,mBAAmB,gEAAU,CAAC,6DAAO;AACrC;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAE;AAClC;AACA;AACA,gCAAgC,mEAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iEAAW;AAC5B,6DAA6D,iFAA8B,IAAI,8DAA8D;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4DAAoB,GAAG,mCAAmC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,8EAA8E,4DAAM;AACpF;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8BAA8B;AAChF;AACA;AACA,kDAAkD,uDAAuD;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kCAAkC,2BAA2B;AAClG,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA,iCAAiC,+BAA+B,EAAE;AAClE,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qEAAc;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,6DAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChmBO;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACb,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACqD;AACF;AACwC;AAC5C;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA;AACA;AACA;AACO,wBAAwB,kEAAW;AAC1C;AACA;AACA;AACA;AACO;AACP;AACA,aAAa,iEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA,aAAa,iEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA,aAAa,iEAAW;AACxB;AACA;AACA,aAAa,iEAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACO;AACP;AACA;AACA,QAAQ,yEAAc;AACtB;AACA;AACA;AACA,oBAAoB,kBAAkB,QAAQ,4EAAiB;AAC/D;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oEAAc;AACrD;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7GO;;;;;;;;;;;;;;;;;;;;ACAM;AACb,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AAC2F;AAC5C;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA;AACA;AACA,IAAI,mFAAgC;AACpC,IAAI,8EAA2B;AAC/B,IAAI,wFAAqC;AACzC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,QAAQ,yEAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6BAA6B,4EAAiB;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6BAA6B,4EAAiB;AAC9C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAW;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4EAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,sFAAmC;AACtH;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,sFAAmC;AAClH;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,uDAAuD,wFAAqC;AAC/J;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,yBAAyB,4EAAiB;AAC1C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kDAAkD,sFAAmC;AACrF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sFAAmC,IAAI,sBAAsB;AACpG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7SO;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACiG;AAC/B;AAC1B;AACT;AACG;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA,SAAS,iEAAW;AACpB;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA,mBAAmB,8DAAQ,CAAC,mEAAS;AACrC,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uBAAuB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,yCAAyC,GAAG;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE,YAAY,MAAM;AACzD;AACA;AACA;AACA;AACA,iBAAiB,qEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,iBAAiB,qEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAU,CAAC,8DAAQ,CAAC,oEAAc;AACpD,sBAAsB,kEAAY,CAAC,mEAAS,CAAC,0DAAM;AACnD;AACO;AACP,QAAQ,mEAAa;AACrB;AACA;AACA,QAAQ,mEAAa;AACrB;AACA;AACA,sBAAsB,kEAAY,CAAC,mEAAS,CAAC,4DAAM;AACnD;;;;;;;;;;;;;;;;;;ACpIa;AACmC;AACzC;AACP;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA,WAAW,8DAAQ;AACnB;AACO;AACP,WAAW,8DAAQ;AACnB;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACgD;AACW;AACpD;AACP;AACA,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB,QAAQ,yEAAc,yBAAyB;AAC/C,QAAQ,yEAAc;AACtB;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,qBAAqB,8DAAQ;AAC7B;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0CAA0C;AAClE;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA,eAAe,8DAAQ;AACvB;AACA;AACA;AACA;AAC0B;AAC1B;AACA;;;;;;;;;;;;;;;;ACrHO;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACwB;AACxB,SAAS,iDAAM;AACsD;AACtB;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACO;AACP;AACA;AACA;AACA,QAAQ,iEAAW;AACnB;AACA,QAAQ,6DAAO;AACf;AACA;AACA;AACO;AACP;AACA;AACA,iEAAiE,qBAAqB,sFAAmC;AACzH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,sFAAmC;AAC7G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA;AACA;AACA,sFAAsF,8BAA8B,oFAAiC,IAAI;AACzJ;AACA;AACA,mFAAmF,oFAAiC,IAAI;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAO;AACnB,kCAAkC,6DAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iEAAW,4BAA4B,iEAAW;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,oCAAoC,8EAA2B;AAC/D;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;AC/SO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACkC;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvZO;;;;;;;;;;;;;;;;;;;;;;;;ACA8C;AACrD,mCAAmC,oEAAc;AACjD,4BAA4B,oEAAc;AAC1C,2BAA2B,oEAAc;AACzC,2BAA2B,oEAAc;AACzC,mCAAmC,oEAAc;AACjD,kCAAkC,oEAAc;AAChD,iCAAiC,oEAAc;AAC/C,iCAAiC,oEAAc;AACwC;;;;;;;;;;;;;;;;ACThF;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACb,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AAC2E;AACf;AACQ;AACI;AACnB;AACkC;AACyB;AACpD;AACb;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kEAAU;AAC7B;AACA;AACA;AACA,qFAAqF,sFAAmC;AACxH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,iFAA8B;AAChH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4EAAiB;AAClD;AACA;AACA,iBAAiB;AACjB,wBAAwB,kEAAU;AAClC,yFAAyF,sFAAmC;AAC5H;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,+BAA+B,4EAAiB;AAChD;AACA;AACA,wBAAwB,4EAAiB,iBAAiB;AAC1D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oEAAc;AACrC;AACA;AACA,0BAA0B,oEAAc;AACxC;AACA;AACA,0BAA0B,oEAAc;AACxC;AACA;AACA,8BAA8B,oEAAc;AAC5C;AACA;AACA,sCAAsC,oEAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0EAAa;AACzC;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA,0BAA0B,8DAAQ;AAClC,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAc;AACxC;AACA;AACA;AACA,4BAA4B,oEAAc;AAC1C;AACA,8EAA8E,sFAAmC;AACjH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,4BAA4B,sEAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kDAAkD,GAAG,sFAAmC;AACzI;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sFAAmC;AAC9G;AACA,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mEAAQ;AACpC;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+EAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,sFAAmC;AAChH;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qEAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,QAAQ,yEAAc,oBAAoB,oEAAS;AACnD;AACA,YAAY,yEAAc;AAC1B,YAAY,yEAAc;AAC1B;AACA,iBAAiB,2EAAe;AAChC,YAAY,yEAAc;AAC1B,YAAY,yEAAc;AAC1B;AACA,iBAAiB,iFAAmB;AACpC,YAAY,yEAAc;AAC1B,YAAY,yEAAc;AAC1B;AACA;AACA;AACA;AACA,QAAQ,yEAAc,uBAAuB;AAC7C,QAAQ,yEAAc,wBAAwB;AAC9C,QAAQ,yEAAc,sBAAsB;AAC5C,QAAQ,yEAAc,gCAAgC;AACtD,QAAQ,yEAAc,oBAAoB;AAC1C;AACA;AACA;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,oBAAoB,yEAAc;AAClC;AACA;AACA,2DAA2D,MAAM,GAAG,mBAAmB;AACvF;AACA,aAAa;AACb;AACA,QAAQ,yEAAc,2BAA2B;AACjD,QAAQ,yEAAc,0BAA0B;AAChD;AACA;AACA;AACA,QAAQ,yEAAc;AACtB;AACA,YAAY,yEAAc;AAC1B;AACA;AACA;AACA,gBAAgB,yEAAc,0CAA0C,kEAAU;AAClF;AACA;AACA;AACA,8FAA8F,sFAAmC;AACjI;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,qCAAqC,KAAK;AAC1C,oCAAoC,KAAK;AACzC;AACA,gCAAgC,KAAK;AACrC;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yEAAc;AAClC;AACA;AACA;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA;AACA,gBAAgB,yEAAc;AAC9B;AACA,SAAS;AACT;AACA;AACA,eAAe,0EAAkB;AACjC;AACA;AACA,YAAY,sEAAqB;AACjC;AACA;AACA,mBAAmB,0DAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,sFAAmC;AACtG;AACA;AACA,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,sFAAmC,IAAI,wCAAwC;AACxJ;AACA,mBAAmB,sEAAW,gBAAgB;AAC9C;AACA;AACA;AACA;AACA,wDAAwD,sFAAmC,IAAI,gBAAgB;AAC/G,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mCAAmC,sEAAU;AAC7C;AACA;AACA;AACA,YAAY,yEAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAiB;AAChC;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAQ;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,uCAAuC;AACvC,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,sFAAmC,IAAI,mBAAmB;AACjJ;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sEAAW;AAClC,0DAA0D,iEAAW;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACO;AACP;AACA;AACA;AACA;AACA;AACA,iBAAiB,6DAAO;AACxB,0BAA0B,6DAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAW;AACxB;AACA;AACA;AACA,uBAAuB,2EAAe;AACtC;AACA;AACA,QAAQ,yEAAc;AACtB,QAAQ,yEAAc,oBAAoB,oEAAS;AACnD,QAAQ,yEAAc;AACtB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,iBAAiB,sEAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sFAAmC,IAAI,gBAAgB;AAC/G,SAAS;AACT;AACA,0BAA0B,oEAAc;AACxC;AACA,mFAAmF,sFAAmC;AACtH;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAO,CAAC,4DAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oEAAS;AACrC,6BAA6B,oEAAS;AACtC;AACA;AACA,YAAY,yEAAc;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,iFAA8B,IAAI,4BAA4B;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAkB;AACjC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClgCO;;;;;;;;;;;;;;;;;;;;;;;ACAP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACO;AACP;AACA,qBAAqB;AACrB;AACA;AACA;AACA,sBAAsB;AACtB,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA,4BAA4B,OAAO;AACnC;AACA;AACA;AACA;AACA;AACA,2BAA2B,OAAO;AAClC;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B,wBAAwB,WAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;;;;;;;;;;;;;;;;;AC7PA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+C;AACQ;AAChD;AACP,WAAW,oEAAuB,CAAC,6DAAM;AACzC;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0D;AACnB;AACvC,UAAU,oDAAO;AACkE;AACnF;AACA,sBAAsB,8DAAiB;AACvC,wBAAwB,8DAAiB;AACzC,eAAe,4DAAe;AAC9B,mBAAmB,4DAAe;AAClC;AACA;AACA;AACA;AACA;AACA,WAAW,wEAAgB;AAC3B;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,0DAA0D,QAAQ;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,KAAK,YAAY;AACrE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,8BAA8B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,0BAA0B;AAC1B,mCAAmC;AACnC;AACA,oCAAoC;AACpC;AACA,yDAAyD;AACzD,8BAA8B;AAC9B;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvIqD;AACA;AAC9C;AACP,WAAW,mEAAS,CAAC,mEAAW;AAChC;;;;;;;;;;;;;;;;;;;;;;;;;ACJuD;AACY;AACd;AACN;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACmB;AACpD;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,kBAAkB,mEAAW,CAAC,iEAAa;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACO;AACP,4CAA4C,oEAAY;AACxD;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA,iBAAiB,mEAAS,CAAC,4DAAM,UAAU,mEAAS;AACpD;AACA,WAAW,6DAAO;AAClB;AACO;AACP,WAAW,6DAAO,CAAC,4DAAM;AACzB;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;ACtEA,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACoD;AACC;AACwC;AACxC;AAC6B;AACnC;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACP;AAC1B;AACA;AACA,oBAAoB,oEAAc;AAClC,aAAa,oEAAc;AAC3B,YAAY,oEAAc;AAC1B,mBAAmB,oEAAc;AACjC;AACA,kBAAkB,8DAAQ;AAC1B;AACA;AACA,eAAe,+DAAS;AACxB;AACA,WAAW,6DAAO;AAClB;AACA,gBAAgB,gEAAU;AAC1B,iBAAiB,gEAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,oBAAoB,aAAa,IAAI;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oEAAc;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,kEAAU;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,0BAA0B,8DAAQ;AAClC;AACA;AACA;AACA,mBAAmB,6DAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAc;AACxC;AACA,yEAAyE,KAAK;AAC9E;AACA,uBAAuB,gEAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,8DAAQ;AACtC;AACA,oEAAoE,KAAK;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gEAAU,CAAC,kEAAU;AACxC;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAS;AAC5B;AACA;AACA,mBAAmB,uCAAE;AACrB;AACA;AACA;AACA;AACA;AACA,cAAc,KAAK,GAAG,cAAc,YAAY,oCAAoC;AACpF;AACO;AACP;AACA,QAAQ,yEAAc,8BAA8B,mEAAQ;AAC5D,QAAQ,yEAAc,0BAA0B;AAChD,QAAQ,yEAAc,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yEAAyE,4BAA4B,KAAK,qBAAqB;AAC/H;AACA;AACA;AACA;AACA;AACA,4EAA4E,yBAAyB;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,yBAAyB;AACvF;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,wDAAwD;AAC1I;AACA,QAAQ,yEAAc;AACtB;AACA;AACA;AACA,wEAAwE,qBAAqB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,mBAAmB,aAAa;AACtG;AACA;AACA;AACA,wCAAwC,+DAAS;AACjD;AACA,uBAAuB,mEAAS,CAAC,+DAAS;AAC1C;AACA;AACA;AACA;AACA;AACA,gCAAgC,uCAAE;AAClC;AACA,6CAA6C,YAAY;AACzD;AACA;AACA,+BAA+B,mEAAS;AACxC;AACA;AACA,iBAAiB;AACjB;AACA,uBAAuB,+DAAS;AAChC;AACA;AACA,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA;AACA,uDAAuD,qBAAqB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,mBAAmB,aAAa;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,YAAY;AACvD;AACA;AACA,aAAa,IAAI;AACjB;AACA,0DAA0D,KAAK;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,qBAAqB;AACjG;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA,SAAS;AACT,6DAA6D,4BAA4B;AACzF;AACA;AACA,eAAe,+DAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAS;AACxB;AACA;AACA;AACA;AACA;AACA,qBAAqB,sEAAW;AAChC;AACA;AACA;AACA,6CAA6C,iEAAW;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iEAAW;AACtD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oCAAoC;AACnE,SAAS;AACT;AACA,gCAAgC,sEAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6DAAO,CAAC,8DAAQ;AAC3C;AACA;AACA;AACA,2BAA2B,oEAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;;;;;;;;;;;;;;;;;;ACvba;AACc;AACqB;AACzC;AACP,kBAAkB,yDAAe,CAAC,8DAAQ;AAC1C;;;;;;;;;;;;;;;;ACLO;;;;;;;;;;;;;;;;;;;ACAM;AACb;AACA;AACA,oBAAoB;AACpB;AACqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AACtB;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,KAAK;AACzC,uCAAuC,aAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wEAAwE,iBAAiB;AACzF;AACA;AACA;AACA;AACA,2GAA2G,yDAAyD,qCAAqC;AACzM;AACA;AACA,wEAAwE,iBAAiB;AACzF;AACA;AACA;AACA;AACA,uCAAuC,6CAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjWO;;;;;;;;;;;;;;;;;;ACAM;AACkC;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iCAAiC;AACpD;AACA;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,oCAAoC;AACpD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,oCAAoC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,YAAY,4BAA4B;AACxC;AACA;AACA;AACA;AACA,KAAK;AACL,gBAAgB,kCAAkC;AAClD;AACA;AACA;AACA;AACA,KAAK;AACL,wBAAwB,qCAAqC;AAC7D,yBAAyB,uCAAuC;AAChE,gBAAgB,kCAAkC;AAClD,0BAA0B,2CAA2C;AACrE,yBAAyB,0CAA0C;AACnE,WAAW,0BAA0B;AACrC,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtPO;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACb,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AAC+C;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AAC1B;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACO;AACP,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,yDAAyD,oBAAoB;AAC7E,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gBAAgB;AACxE;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5HO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;;AACb,IAAIA,SAAS,GAAI,SAAI,IAAI,SAAI,CAACA,SAAd,IAA4B,UAAUC,OAAV,EAAmBC,UAAnB,EAA+BC,CAA/B,EAAkCC,SAAlC,EAA6C;AACrF,WAASC,KAAT,CAAeC,KA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rC,mBAAmB,yDAAM,CAAC,6CAAO;AAC1B;AACP;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sEAAW;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0EAAa;AAC5B;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAc;AAC7B;AACA;AACA;AACA,eAAe,oEAAc;AAC7B;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAU;AACzB;AACA;AACA,aAAa,iEAAW;AACxB;AACA;AACA,wBAAwB,kEAAU,CAAC,kEAAY;AAC/C,4BAA4B,iEAAW;AACvC;AACA;AACA,eAAe,0EAAkB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iEAAW;AACzD,mBAAmB,8DAAQ;AAC3B;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA,YAAY,mEAAa;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oEAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iEAAW;AACxB;AACA;AACA,eAAe,gEAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,oEAAc;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,8BAA8B,oEAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAW;AAC3B,0BAA0B,oEAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAW;AAC3B,0BAA0B,oEAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAc;AAC5C;AACA;AACA;AACA,gGAAgG,0CAA0C;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7ba;AACb,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACwD;AACH;AAC6B;AAC1B;AACyE;AAC5E;AACO;AACP;AACN;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iEAAW;AAChC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,+CAA+C,+EAA4B;AAC7I;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uDAAuD,wFAAqC;AAChJ;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,6EAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,mFAAgC;AAC/G;AACA,SAAS;AACT;AACA;AACA;AACA,yDAAyD,8EAA2B;AACpF;AACA,SAAS;AACT;AACA;AACA;AACA,qDAAqD,wFAAqC;AAC1F;AACA,SAAS;AACT;AACA;AACA;AACA,2EAA2E,sFAAmC;AAC9G;AACA,SAAS;AACT;AACA;AACA,gDAAgD,uDAAuD,wFAAqC;AAC5I;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,4BAA4B,kEAAM;AACzC;AACA;AACA;AACA,iFAAiF;AACjF;AACA,QAAQ,yEAAc;AACtB;AACA;AACA;AACA;AACA,YAAY,yEAAc;AAC1B,YAAY,yEAAc;AAC1B;AACA;AACA,YAAY,yEAAc;AAC1B,YAAY,yEAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E,sFAAmC;AAC/G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,sFAAmC;AACxG;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,sBAAsB,sEAAW;AACjC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gEAAgE;AAChE;AACA;AACA;AACA,6BAA6B,sEAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,eAAe,4EAAiB;AAChC,gBAAgB,4EAAiB;AACjC;AACA,SAAS,UAAU,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,YAAY;AACzF;AACA;AACA,aAAa;AACb;AACA,mEAAmE,gFAA6B;AAChG;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,wEAAwE,sFAAmC;AAC3G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,6BAA6B,wDAAI;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK,yBAAyB;AAC/C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4DAA4D,mEAAW;AACvE;AACA;AACA,kEAAkE,6DAAO;AACzE;AACA;AACA;AACA,+DAA+D,gFAA6B;AAC5F;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4DAA4D,mEAAW;AACvE;AACA;AACA;AACA,oFAAoF,6DAAO;AAC3F;AACA;AACA;AACA,+DAA+D,gFAA6B;AAC5F;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oCAAoC,8EAA8B;AAClE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mCAAmC,4EAA4B;AAC/D;AACA;AACA;AACA;AACA,+DAA+D,gFAA6B;AAC5F;AACA;AACA,uCAAuC;AACvC,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACO,8BAA8B,wDAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB,oEAAS;AAC3B;AACA;AACA,YAAY,yEAAc;AAC1B;AACA,aAAa;AACb;AACA;AACA,YAAY,yEAAc,mCAAmC,sEAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAS;AAC5C;AACA,sCAAsC,oEAAc;AACpD;AACA;AACA,yEAAyE,8EAA2B;AACpG;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iEAAiE,8EAA2B;AAC5F;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mEAAQ;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6DAAS;AAChC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,gEAAU;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,oEAAS;AACpD,8EAA8E,YAAY;AAC1F;AACA;AACA,2CAA2C,oEAAS;AACpD,qFAAqF,YAAY;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oEAAc;AAC3D;AACA;AACA;AACA;AACA;AACA,qCAAqC,sEAAW;AAChD,iDAAiD,sEAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,gFAA6B,IAAI,mBAAmB;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA,SAAS,sBAAsB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sEAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,8DAAQ,CAAC,oEAAc;AACjD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,0BAA0B,6DAAO;AACjC,SAAS;AACT;AACA,mCAAmC,2EAAa;AAChD;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjqBO;;;;;;;;;;;;;;;;;;;;ACAM;AACb;AACsE;AACvB;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,iEAAW;AACpB;AACA;AACA,4CAA4C,8DAAQ;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,WAAW,6DAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+EAA4B,IAAI;AACtF;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,4CAA4C,+EAA4B,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA,8DAA8D,+EAA4B,IAAI;AAC9F;AACA;AACA;AACA,6DAA6D,+EAA4B,IAAI;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+EAA4B,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+EAA4B,IAAI;AACtF;AACA;AACA;AACA,sDAAsD,+EAA4B,IAAI;AACtF;AACA,uBAAuB,6DAAO;AAC9B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,gDAAgD,+EAA4B,IAAI;AAChF;AACA,uBAAuB,6DAAO;AAC9B,iBAAiB;AACjB;AACA,aAAa,qBAAqB,6DAAO;AACzC;AACO;AACP,kBAAkB,8DAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtHO;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACc;AAC3B;AACgD;AACH;AACE;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AAC1B;AACP,mBAAmB,wDAAc,UAAU,8DAAQ;AACnD;AACO;AACP,mBAAmB,qDAAW,UAAU,8DAAQ;AAChD;AACO;AACP,mBAAmB,qDAAW,UAAU,8DAAQ;AAChD;AACO;AACP,SAAS,sDAAkB;AAC3B,gEAAgE,sFAAmC;AACnG;AACA;AACA,SAAS;AACT;AACA,kBAAkB,mDAAS,CAAC,gDAAI,aAAa,8DAAQ,cAAc,8DAAQ;AAC3E;;;;;;;;;;;;;;;;ACzBO;AACP;AACA;AACA;AACA,CAAC,gDAAgD;AACjD;;;;;;;;;;;;;;;;ACLO;;;;;;;;;;;;;;;;;;;;ACAgB;AACI;;AAE3B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,iBAAiB,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,IAAI;AACJ,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;;;;AAKA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,8CAAE;AACf;AACA;AACA,CAAC;;AAED;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA,eAAe,8CAAE;;AAEjB;AACA,0BAA0B,gDAAM,eAAe,iDAAO;;AAEtD;AACA,kBAAkB,8CAAE;AACpB,iBAAiB,8CAAE;AACnB,iBAAiB,8CAAE;;AAEnB;AACA,yBAAyB,8CAAE;AAC3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,WAAW;AAC7B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;AAOA;;AAEA;AACA;;AAEA,eAAe,8CAAE;AACjB,eAAe,8CAAE;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA,eAAe,8CAAE;AACjB,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8CAAE;AACnB,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAAE;AACjB,eAAe,8CAAE;AACjB;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wCAAwC,iDAAO;AAC/C,iBAAiB,8CAAE;AACnB;;AAEA,cAAc,8CAAE;;AAEhB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,8CAAE;AACjB,eAAe,8CAAE;AACjB,eAAe,8CAAE;AACjB,eAAe,8CAAE;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA,UAAU,8CAAE;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,iBAAiB,8CAAE;AACnB,iBAAiB,8CAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU,8CAAE;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8CAAE;AACnB,IAAI;AACJ,iBAAiB,8CAAE;AACnB,iBAAiB,8CAAE;AACnB,iBAAiB,8CAAE;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,UAAU,8CAAE;;AAEZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;;;;;AAMA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;AACnB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;AACnB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;AACnB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;AACnB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAW;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,CAAC;;AAED;;;;;;AAMA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA,aAAa,qDAAS;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;;AAEb,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,8CAAE;;AAEpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;AAKA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,eAAe,8CAAE;AACjB,eAAe,8CAAE;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,eAAe,8CAAE;AACjB,eAAe,8CAAE;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;AAMA,2DAA2D,iCAAiC;AAC5F;;;;;AAKA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,2BAA2B,8CAAE;AAC7B,SAAS;AACT,mBAAmB,8CAAE;AACrB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,8CAAE;;AAEhC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,2BAA2B,8CAAE;;AAE7B,uBAAuB;AACvB;AACA;AACA,UAAU,8CAAE;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAA0C;AACrE;AACA;;AAEA;AACA,8BAA8B,8CAAE;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc,8CAAE;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,sCAAsC,kBAAkB;AACxD;AACA,gEAAgE,iCAAiC;AACjG;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEsB;;;;;;;;;;;;;;;;;;;;;;;AC56ET;AACmB;AACoE;AACzC;AACZ;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACA;AACA;AACA,qBAAqB,yCAAE;AACvB;AACA;AACA;AACO;AACP;AACA,QAAQ,yEAAc;AACtB,QAAQ,yEAAc,qBAAqB,6DAAO;AAClD,YAAY,mEAAa;AACzB;AACA;AACA,kDAAkD,8DAAQ;AAC1D,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB,QAAQ,yEAAc;AACtB;AACA;AACA,4CAA4C,8DAAQ;AACpD,4CAA4C,8DAAQ;AACpD;AACA;AACA;AACA,kDAAkD,8DAAQ;AAC1D,4BAA4B,8DAAQ;AACpC;AACA;AACA;AACA,sDAAsD,iBAAiB;AACvE,eAAe,oEAAc;AAC7B;AACA,eAAe,gEAAU;AACzB,eAAe,gEAAU;AACzB,SAAS;AACT;AACA;AACA,kDAAkD,8DAAQ;AAC1D,sDAAsD,8DAAQ;AAC9D,eAAe,gEAAU;AACzB;AACA;AACA;AACA;AACA;AACO;AACP,gBAAgB,oEAAc;AAC9B,iBAAiB,GAAG,8DAAQ,YAAY,8DAAQ;AAChD,2CAA2C,8DAAQ;AACnD;AACO;AACP,kBAAkB,8DAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6DAAO;AAC1B;AACA;AACA;AACA;AACA;AACA,mBAAmB,6DAAO;AAC1B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AChFO;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACmC;AACD;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACjC;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4DAA4D;AAC7D;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,gDAAgD;AAChD;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA,oEAAoE,SAAS,EAAE,OAAO;AACtF;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,YAAY,8DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8DAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACO;AACP;AACA;;;;;;;;;;;;;;;;ACtPO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAM;AACuC;AACC;AACkG;AACvG;AACK;AACO;AAClB;AACsC;AACjC;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AAC1B;AACP;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kEAAU;AACrB;AACA;AACA;AACA,eAAe,0DAAI;AACnB;AACA,WAAW,oEAAc;AACzB;AACA;AACA;AACA,MAAM,6CAA6C;AACnD,MAAM,gDAAgD;AACtD,MAAM,gDAAgD;AACtD,MAAM,wBAAwB;AAC9B,MAAM,6CAA6C;AACnD,MAAM,cAAc;AACpB;AACA;AACA;AACA;AACO;AACP,sBAAsB,4EAAgB;AACtC,WAAW,kEAAU,CAAC,kEAAY,CAAC,mEAAS,CAAC,kEAAY;AACzD;AACO;AACP,0BAA0B,4EAAgB,CAAC,8DAAQ;AACnD;AACA;AACA,mBAAmB,gEAAU,CAAC,oEAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kEAAU;AAC3B;AACA,gBAAgB,mEAAa;AAC7B,0FAA0F,KAAK,GAAG,MAAM;AACxG;AACA;AACA,SAAS;AACT;AACA;AACO;AACP;AACA;AACA;AACA;AACA,gHAAgH,MAAM;AACtH;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,yBAAyB,oEAAc;AACvC,6BAA6B,oEAAc;AAC3C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAU;AAC9C;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAc;AAClC;AACA,oBAAoB,gEAAU;AAC9B,oBAAoB,gEAAU;AAC9B;AACA,WAAW,+DAAS,UAAU,sDAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAU;AAC9C;AACA;AACA;AACA;AACA;AACA,oBAAoB,oEAAc;AAClC;AACA,oBAAoB,gEAAU;AAC9B,oBAAoB,gEAAU;AAC9B;AACA,WAAW,+DAAS,UAAU,sDAAU;AACxC;AACA;AACA;AACA,IAAI,0EAAe;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAQ,CAAC,6DAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gEAAU;AAC9B;AACA;AACA;AACA;AACA,iBAAiB,6DAAO;AACxB,KAAK;AACL;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,2BAA2B,iEAAW;AACtC,2EAA2E;AAC3E;AACA;AACA;AACA;AACA,iBAAiB,6DAAO,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAU;AACzB;AACA;AACA;AACA,gBAAgB,oEAAc;AAC9B,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAAO;AACpB,aAAa,gEAAU,CAAC,8DAAQ;AAChC,aAAa,gEAAU,CAAC,8DAAQ;AAChC,WAAW,sDAAU;AACrB;AACO;AACP;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,iBAAiB,GAAG,sFAAmC;AACrH;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gEAAU;AACrB,WAAW,gEAAU;AACrB;AACA,uBAAuB,mEAAS;AAChC,2CAA2C,uCAAuC;AAClF;AACA;AACA;AACA;AACA,wBAAwB,sDAAU;AAClC;AACA,gGAAgG,6DAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mEAAS;AACvB;AACA;AACA;AACA;AACA,wBAAwB,sDAAU;AAClC;AACA,gGAAgG,6DAAO;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mEAAS;AACvB;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAc;AAC7B;AACA;AACA;AACA;AACA;AACA,WAAW,gEAAU;AACrB,WAAW,gEAAU;AACrB,QAAQ,oEAAc,mBAAmB,oEAAc;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAAO;AAC5B;AACA;AACA;AACA;AACA,uBAAuB,mEAAS,CAAC,sDAAU;AAC3C;AACA,+CAA+C,GAAG,6DAAO,WAAW,6DAAO,sCAAsC;AACjH;AACA;AACA,kBAAkB,mEAAS;AAC3B;AACA;AACA;AACA;AACO;AACP,oBAAoB,8DAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,WAAW,GAAG,sFAAmC;AAC/G;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;AC/XO;;;;;;;;;;;;;;;;;ACAM;AACb,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACgD;AACzC;AACP;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,mCAAmC;AACnC,wCAAwC;AACxC,iDAAiD;AACjD,yCAAyC;AACzC,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kBAAkB,8DAAQ;AAC1B;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;;ACnEa;AACb,iBAAiB,SAAI,IAAI,SAAI;AAC7B,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACuF;AAC3B;AACJ;AACW;AACpB;AACV;AACrC,mBAAmB,yDAAM,CAAC,6CAAO;AACC;AAClC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iEAAW;AACnB,mEAAmE;AACnE;AACA,uBAAuB,oEAAY;AACnC;AACA;AACA;AACA;AACA,eAAe,6DAAO;AACtB;AACA;AACA;AACA;AACA,WAAW,mEAAW;AACtB;AACA,KAAK;AACL;AACA,yCAAyC;AACzC;AACA,sDAAsD;AACtD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,iFAA8B,IAAI,0EAA0E;AAClM;AACA;AACA;AACA;AACA,kCAAkC,6DAAY,CAAC,mEAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sEAAW;AAC9C;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gDAAgD;AAC3E,sCAAsC,6DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,6EAA0B;AACrF;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,wEAAqB;AAC5E;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,KAAK;AACL;AACA;AACA,kCAAkC,wBAAwB;AAC1D;AACA;AACA,qCAAqC,+CAAM;AAC3C;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,6EAA0B;AACxF;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,6EAA0B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,6EAA0B;AACjG;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6EAA0B;AAClF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,KAAK;AACL;AACA;AACO;AACP;AACA;AACA;AACA;AACA,oCAAoC,oEAAY;AAChD;AACA;AACA,kDAAkD,6EAA0B;AAC5E;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAW;AAC1B;AACA,gEAAgE,iBAAiB,IAAI,sEAAW;AAChG;AACA;AACA;AACA,kCAAkC,sEAAW;AAC7C;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,cAAc,sEAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;;;;;;;;;;;;AClZa;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,8BAA8B,GAAG,qBAAqB,GAAG,eAAe,GAAG,qBAAqB,GAAG,eAAe;AAClH,0BAA0B,mBAAO,CAAC,sBAAW;AAC7C,8BAA8B,mBAAO,CAAC,2BAAgB;AACtD,gBAAgB,mBAAO,CAAC,oBAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,qBAAqB,yCAAyC;AAC9D;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B;AAC5E;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjNa;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB;AACrC,aAAa,mBAAO,CAAC,4BAAiB;AACtC,aAAa,mBAAO,CAAC,6BAAmB;AACxC,aAAa,mBAAO,CAAC,yBAAc;AACnC,cAAc,mBAAO,CAAC,oBAAS;AAC/B,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;AACjH,6CAA4C,EAAE,qCAAqC,6BAA6B,EAAC;;;;;;;;;;;;AClBpG;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB,GAAG,gCAAgC,GAAG,oBAAoB;AAClF,0BAA0B,mBAAO,CAAC,4BAAiB;AACnD,gBAAgB,mBAAO,CAAC,oBAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClFa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,6BAA6B,GAAG,qBAAqB,GAAG,0BAA0B,GAAG,sBAAsB,GAAG,4BAA4B,GAAG,4BAA4B;AACzK,0BAA0B,mBAAO,CAAC,4BAAiB;AACnD,yBAAyB,mBAAO,CAAC,2BAAgB;AACjD,gBAAgB,mBAAO,CAAC,oBAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D,4BAA4B,KAAK;AAC5F,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gBAAgB;AAChD,gCAAgC,gBAAgB;AAChD,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT,uBAAuB,gBAAgB;AACvC,kBAAkB,gBAAgB;AAClC,mBAAmB,gBAAgB;AACnC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,8DAA8D,QAAQ,2BAA2B,2BAA2B;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,MAAM,UAAU,KAAK;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK;AAClE;AACA,qBAAqB,KAAK,GAAG;AAC7B,oBAAoB,eAAe,QAAQ,GAAG,EAAE,KAAK;AACrD,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,QAAQ,EAAE,OAAO;AACnC,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;;;;;;;;;;;;ACvWhB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,wBAAwB,GAAG,iBAAiB,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,qBAAqB;AACrI,0BAA0B,mBAAO,CAAC,4BAAiB;AACnD,qBAAqB,mBAAO,CAAC,uBAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,UAAU;AAClF;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa,IAAI,MAAM;AACnD;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;;ACtGJ;AACb;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA,UAAU;AACV,WAAW,YAAY;AACvB,WAAW,MAAM;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,GAAG;AACd,WAAW,MAAM;AACjB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;;;;;;;;;;;ACnDa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA,eAAe;AACf,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA,8BAA8B,EAAE,mBAAmB,EAAE,iBAAiB,EAAE;AACxE;;;;;;;;;;;;AC1Ia;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,0BAA0B;AACzC,eAAe,MAAM;AACrB,iBAAiB,kBAAkB;AACnC,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0IAA0I,gCAAgC;AAC1K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;;;;;;;;;;;AClGa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,GAAG;AACd,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;;;;;;;;;;;;AC3Ea;AACb;AACA;AACA,gBAAgB,mBAAO,CAAC,kCAAuB;AAC/C,gBAAgB,mBAAO,CAAC,gCAAqB;AAC7C;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA,UAAU;AACV,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,WAAW,eAAe;AAC1B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,cAAc;AACzB,aAAa,4BAA4B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClHa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,KAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,KAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc,0CAA0C;AACxD;AACA;AACA,cAAc;AACd;AACA,qDAAqD;AACrD;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ua;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA,MAAM,aAAa;AACnB;AACA;;;;;;;;;;;;AChBa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,4BAA4B,GAAG;AAC/B;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChEa;AACb;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC/Ca;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,YAAY;AACZ,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU,kDAAkD,0CAA0C;;AAE5F,eAAe,mBAAO,CAAC,8BAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,mBAAO,CAAC,8CAAmC;;AAEhE,gBAAgB,mBAAO,CAAC,kBAAO;AAC/B;;AAEA,qBAAqB,+CAAsB;AAC3C;AACA;;AAEA,mDAAmD,4DAAmC;AACtF,uCAAuC,mBAAO,CAAC,sBAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,mBAAO,CAAC,wCAA6B;;AAExD;AACA;AACA,EAAE;AACF;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;;AAEA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB;;AAEpB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,EAAE;AACF;;;AAGA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;;AAGH;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA,sCAAsC;AACtC;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;;AAEA;AACA,6FAA6F,eAAe;AAC5G;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;;AAER;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;;AAEA,sBAAsB,iBAAiB;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA,yEAAyE,eAAe;AACxF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;;;;;;;;;ACtnBA;AACA;AACa;;AAEb,iCAAiC,gBAAgB,sBAAsB,OAAO,uDAAuD,mCAAmC,0DAA0D,sFAAsF,iEAAiE,MAAM,iCAAiC,4CAA4C,KAAK;;AAEjd,4CAA4C,kBAAkB,kCAAkC,oEAAoE,KAAK,OAAO,oBAAoB;;AAEpM,kDAAkD,0CAA0C;;AAE5F,4CAA4C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD;;AAE/P,8DAA8D,sEAAsE,8DAA8D;;AAElM,kDAAkD,0EAA0E,eAAe;;AAE3I,wCAAwC,uBAAuB,yFAAyF;;AAExJ,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG;;AAEzU,mCAAmC,gEAAgE,sDAAsD,+DAA+D,mCAAmC,6EAA6E,qCAAqC,iDAAiD,8BAA8B,qBAAqB,0EAA0E,qDAAqD,eAAe,yEAAyE,GAAG,2CAA2C;;AAEttB,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,uEAAuE,IAAI,eAAe,YAAY;;AAElT,2CAA2C,kCAAkC,kCAAkC,OAAO,wDAAwD,gBAAgB,uBAAuB,kDAAkD,kCAAkC,uDAAuD,sBAAsB;;AAEtX,iCAAiC;;AAEjC,iCAAiC,4EAA4E,iBAAiB,aAAa;;AAE3I,8BAA8B,gGAAgG,mDAAmD;;AAEjL,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU,eAAe,mBAAO,CAAC,kBAAO;AAC9B;;AAEA,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,iEAAiE;;;AAGjE;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;;AAEA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA,uEAAuE;AACvE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,qEAAqE;AACrE,oCAAoC,aAAa,IAAI,aAAa;;AAElE;AACA;AACA,oDAAoD;AACpD;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,cAAc;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR,mBAAmB;;AAEnB;AACA,sBAAsB;AACtB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,QAAQ;;;AAGR,mBAAmB;;AAEnB;AACA,sBAAsB;AACtB,MAAM;AACN;AACA,uCAAuC;AACvC;AACA;;AAEA,oIAAoI;AACpI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,UAAU;;;AAGV,qBAAqB;AACrB;;AAEA;AACA;AACA,2BAA2B;AAC3B,QAAQ;AACR;AACA;AACA;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,oDAAoD;;AAEpD;AACA;AACA,UAAU;AACV;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,UAAU;;;AAGV;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;;;AAGN,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC;;AAED;;;;;;;;;;;ACpfA;AACA;;AAEA;;AAEA;;AAEA;AACa,CAAC;AACd;AACA;AACA;AACA;;AAEA,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU,kDAAkD,0CAA0C;;AAE5F,kDAAkD,0EAA0E,eAAe;;AAE3I,wCAAwC,uBAAuB,yFAAyF;;AAExJ,8BAA8B,gGAAgG,mDAAmD;;AAEjL,2CAA2C,+DAA+D,6EAA6E,yEAAyE,eAAe,uDAAuD,GAAG;;AAEzU,iCAAiC,4EAA4E,iBAAiB,aAAa;;AAE3I,gBAAgB;;AAEhB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,mBAAO,CAAC,qBAAW;AACxD,+DAA+D;;AAE/D;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;;;AAGJ;AACA;AACA,CAAC;AACD;AACA;AACA,iCAAiC,mBAAO,CAAC,kBAAO;AAChD;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,CAAC;AACD;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA,qCAAqC,mBAAO,CAAC,qBAAW;AACxD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD,oBAAoB;;;;;;;;;;;AClMpB;AACA;AACa;;AAEb,kCAAkC;;AAElC,8BAA8B;;AAE9B,yCAAyC,eAAe,eAAe,gBAAgB,oBAAoB,MAAM,0CAA0C,+BAA+B,aAAa,qBAAqB,uCAAuC,cAAc,WAAW,YAAY,UAAU,MAAM,mDAAmD,UAAU,sBAAsB;;AAE3Y,gCAAgC;;AAEhC,wBAAwB,2EAA2E,kCAAkC,wBAAwB,OAAO,kCAAkC,mIAAmI;;AAEzU;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA,uCAAuC,mBAAO,CAAC,sBAAW;AAC1D;AACA;AACA;AACA,gDAAgD,mBAAO,CAAC,mBAAQ;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,+CAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,IAAI;;;AAGJ;;AAEA,SAAS,kBAAkB;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,kBAAkB,wBAAwB;AAC1C;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,oBAAoB;AACtC,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;;AAGA;AACA,MAAM;AACN,gCAAgC;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,qBAAqB;AAC1C,8BAA8B;AAC9B;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,WAAW,oBAAoB,WAAW;AACzD;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,qBAAqB;AACvC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ,WAAW,cAAc;AACzB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA,eAAe,kBAAkB;AACjC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;;;AAGA,cAAc,iBAAiB;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC/qBY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sDAA6B;AAC3C;AACA,gCAAgC;AAChC;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,qCAAqC;AACrC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,6CAA6C;AAC5E;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY,SAAS;AAChC;AACA;AACA;AACA,sCAAsC;AACtC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,+BAA+B,6CAA6C;AAC5E;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtHY;;AAEZ,kBAAkB;AAClB,mBAAmB;AACnB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA,mCAAmC,SAAS;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,UAAU;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACrJY;AACZ;;AAEA;AACA;AACA,gBAAgB,qBAAqB;AACrC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrLA,mCAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uDAAuD;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,oCAAoC,mDAAmD,GAAG,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,EAAE;AACzF;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B;AAC5C;AACA;AACA,6BAA6B,6BAA6B;AAC1D;AACA;AACA;AACA;AACA,qFAAqF,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kBAAkB;AAC7C,2BAA2B,kBAAkB;AAC7C,2BAA2B,kBAAkB;AAC7C,2BAA2B,kBAAkB;AAC7C,2BAA2B,kBAAkB;AAC7C,2BAA2B,kBAAkB;AAC7C,8BAA8B,kBAAkB;AAChD,2BAA2B,kBAAkB;AAC7C;AACA,2BAA2B,kBAAkB;AAC7C,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA;AACA;AACA;AACA,0BAA0B,wCAAwC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,QAAQ;AACrC,gDAAgD,mDAAmD,GAAG,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,+CAA+C,mDAAmD,GAAG,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,gDAAgD,mDAAmD,GAAG,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,uCAAuC,kEAAkE,GAAG,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B,2DAA2D,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,6CAA6C,mDAAmD,GAAG,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,QAAQ;AACpC,+CAA+C,mDAAmD,GAAG,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,uDAAuD,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,mDAAmD,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,8CAA8C,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,cAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,oCAAoC,mDAAmD,GAAG,GAAG;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,wBAAwB,YAAY;AACpC;AACA;AACA,gCAAgC,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,4BAA4B,QAAQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,WAAW;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,0CAA0C,KAAK;AAC/C,YAAY;AACZ;AACA;AACA;AACA,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD,4CAA4C,GAAG,SAAS,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uCAAuC,SAAS;AAChD;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,oCAAoC,mDAAmD,GAAG,MAAM;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,YAAY,yBAAyB;AACrC;AACA,oDAAoD,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA,oCAAoC,mDAAmD,GAAG,GAAG;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,KAAK;AACzB;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,KAAK;AACxC;AACA;AACA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA,iCAAiC,MAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,EAAE;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA,aAAa,QAAQ;AACrB;AACA,oCAAoC,mDAAmD,GAAG,MAAM;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA,oCAAoC,mDAAmD,GAAG,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,gDAAgD,KAAK,MAAM,IAAI;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,oCAAoC,mDAAmD,GAAG,MAAM;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,oCAAoC,mDAAmD,GAAG,MAAM;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,iBAAiB,QAAQ;AACzB;AACA,oCAAoC,mDAAmD,GAAG,MAAM;AAChG,mDAAmD,OAAO;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yBAAyB;AACtC;AACA,oCAAoC,6BAA6B,GAAG,GAAG;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA,oCAAoC,mDAAmD,GAAG,MAAM;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA,gCAAgC,mDAAmD,GAAG,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,+BAA+B,KAAK;AACpC;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAyC;AAC/C,IAAI,mCAAO,cAAc,mBAAmB;AAAA,kGAAC;AAC7C;AACA;AACA,IAAI,KAAK,EAUN;AACH,CAAC;;;;;;;;;;;;AC72FD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,iDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+BAA+B,iBAAiB;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;AC19GhC;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,iBAAiB,mBAAO,CAAC,mBAAQ;AACjC;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;;;;;;;;;;AChEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sCAAsC;AACvF;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA,MAAM,yBAAyB;AAC/B,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA,kGAAkG,EAAE;AACpG;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB;;AAElB,oDAAoD,GAAG,SAAS,EAAE;AAClE;AACA;AACA;AACA,cAAc;;AAEd,0DAA0D,EAAE;AAC5D,wDAAwD,EAAE;AAC1D;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uDAAuD,EAAE;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA,iBAAiB,oBAAoB;AACrC;;AAEA;;AAEA;AACA;;AAEA,8EAA8E,EAAE;AAChF;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA,MAAM;;AAEN;AACA,gBAAgB,sBAAsB;AACtC;;AAEA;AACA;;AAEA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,4BAA4B;AAC/C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,gBAAgB;AACpC;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAwC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yBAAyB;AACzB,yBAAyB;;AAEzB,yBAAyB,QAAQ;AACjC;;AAEA;AACA;AACA,UAAU;;AAEV,yDAAyD,EAAE;AAC3D,uDAAuD,EAAE;AACzD;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;;AAEA;AACA;AACA,UAAU;;AAEV,wDAAwD,EAAE;AAC1D,sDAAsD,EAAE;AACxD;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,iBAAiB;AAC1C;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;;AAEV,mFAAmF,EAAE;AACrF,kFAAkF,EAAE;AACpF;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;;AAEV,kFAAkF,EAAE;AACpF,yEAAyE,EAAE;AAC3E;AACA;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA,UAAU;;AAEV,gEAAgE,EAAE;AAClE;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mCAAmC,UAAU;;AAE7C,4CAA4C,UAAU;AACtD;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,UAAU;AAC1B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,oBAAoB,KAAK;AACzB;;AAEA;AACA;;AAEA;AACA;AACA,UAAU;;AAEV;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,eAAe;AAC3B;;AAEA;AACA;;AAEA;;AAEA;AACA,wBAAwB,aAAa;;AAErC;AACA;AACA;AACA,cAAc;AACd,0CAA0C,eAAe;;AAEzD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,wDAAwD,MAAM;;AAE9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,cAAc;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,gBAAgB;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,UAAU;AACnC;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kCAAkC,KAAK;AACvC;AACA;AACA,MAAM;;AAEN;AACA;;AAEA,yBAAyB,OAAO;;AAEhC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,KAAK;AACrB;AACA;;AAEA;AACA,yBAAyB,OAAO;;AAEhC;;AAEA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,YAAY,cAAc;AAC1B;;AAEA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,KAAK;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,cAAc;AACvC;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,MAAM,QAAQ;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,EAAE;AAChD,4CAA4C,EAAE;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,gCAAgC;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB,SAAS,QAAQ;AACjB;AACA;;AAEA;AACA;;AAEA,kDAAkD,GAAG;AACrD,oDAAoD,GAAG;AACvD;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,0CAA0C,GAAG;AAC7C,wCAAwC,GAAG;AAC3C;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,KAAK;AAClC;;AAEA;AACA,qBAAqB,QAAQ;;AAE7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA,mBAAmB,4BAA4B;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mBAAmB;AACjD,+BAA+B,qBAAqB;AACpD;;AAEA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD,GAAG;AACvD,kDAAkD,GAAG;AACrD;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,QAAQ;AACjB;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kDAAkD,GAAG;AACrD,gDAAgD,GAAG;AACnD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2DAA2D,KAAK;AAChE,yDAAyD,KAAK;AAC9D;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,QAAQ;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6CAA6C,GAAG;AAChD,2CAA2C,GAAG;AAC9C;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA,MAAM;AACN;;AAEA;AACA;;AAEA;AACA,oBAAoB,MAAM;AAC1B;AACA;;AAEA;AACA,UAAU;;AAEV;;AAEA;AACA,kCAAkC,OAAO;AACzC;AACA,cAAc;AACd;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;;AAEd,gDAAgD,EAAE;AAClD,8CAA8C,EAAE;AAChD;AACA;AACA;;AAEA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;;;;;;;;;;;ACjkEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,qBAAW;AAChC,cAAc,mBAAO,CAAC,oBAAS;AAC/B;AACA;AACA;AACA;;AAEA,cAAc;AACd,kBAAkB;AAClB,yBAAyB;;AAEzB;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,eAAe;AACxC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,yBAAyB,QAAQ;AACjC;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACxxDY;;AAEb,mBAAmB,mBAAO,CAAC,0BAAe;;AAE1C,eAAe,mBAAO,CAAC,eAAI;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,WAAW,mBAAO,CAAC,0BAAe;AAClC,mBAAmB,mBAAO,CAAC,0BAAe;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS,UAAU;AACvC,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,4CAA4C,kBAAkB;AAC9D,EAAE;AACF,CAAC,oBAAoB;AACrB;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAA0C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI,IAA0C;AAC9C,EAAE,oCAAoB,GAAG;AAAA;AAAA;AAAA;AAAA,kGAAC;AAC1B,KAAK,EAGe;AACpB;AACA,CAAC;;;;;;;;;;;ACrZD,aAAa,sDAA6B;AAC1C,gBAAgB,oDAA2B;AAC3C,oBAAoB,gEAAuC;AAC3D,eAAe,mBAAO,CAAC,oBAAU;;AAEjC;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClGA;AACA;AACA;AACA,MAAM,IAA0C;AAChD,IAAI,iCAAO,EAAE,oCAAE,OAAO;AAAA;AAAA;AAAA,kGAAC;AACvB,IAAI,KAAK,EAIN;AACH,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,4CAA4C;AAChE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,oCAAoC;AACtD;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;;;;;;;;;;;;;;;;;;AClH+B;AACW;AACN;;AAErC,aAAa,uDAAS;AACtB,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;AACA;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;ACnBY;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,cAAc,uDAAS;AACvB,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;ACxDW;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,mBAAmB,uDAAS;AAC5B,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,UAAU,EAAC;;;;;;;;;;;;;;;;;;;ACxDM;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,uDAAS;AAC7B,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;ACxDK;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,oBAAoB,uDAAS;AAC7B,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;ACxDK;AACW;AACN;;AAErC,oBAAoB,uDAAS;AAC7B,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,WAAW,EAAC;;;;;;;;;;;;;;;;;;;AC1BK;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,cAAc,uDAAS;AACvB,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;ACxDW;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,cAAc,uDAAS;AACvB,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,KAAK,EAAC;;;;;;;;;;;;;;;;;;;ACxFW;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa,uDAAS;AACtB,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,IAAI,EAAC;;;;;;;;;;;;;;;;;;;ACxCY;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,uDAAS;AAC3B,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;;ACxCO;AACW;AACN;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,eAAe,uDAAS;AACxB,OAAO,mDAAe,aAAa,0DAAY;;AAE/C;;AAEA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;;AAEA;AACA,CAAC;;AAED,iEAAe,MAAM,EAAC;;;;;;;;;;;;;;;;;ACxFU;;AAEhC;AACA,EAAE,+CAAW,IAAI,gDAAY,IAAI,sDAAkB,IAAI,0DAAsB;AAC7E,MAAM,+CAAW;AACjB;AACA,iBAAiB,0CAAM;;AAEvB,iEAAe,YAAY,EAAC;;;;;;;;;;;;;;;;ACR5B,6BAAe,oCAAS;AACxB;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACP0B;AACA;AACU;AACR;AACU;AACE;AACA;AACA;AACZ;AACA;AACE;;AAEd;AACA;AACK;AACJ;AACK;AACC;AACA;AACA;AACN;AACA;AACC;;AAElB,iEAAe;AACf,MAAM;AACN,MAAM;AACN,WAAW;AACX,OAAO;AACP,YAAY;AACZ,aAAa;AACb,aAAa;AACb,aAAa;AACb,OAAO;AACP,OAAO;AACP,QAAQ;AACR,CAAC,EAAC;;;;;;;;;;;;ACpCU;AACZ,eAAe,mBAAO,CAAC,oBAAU;AACjC,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,UAAU,mBAAO,CAAC,mBAAQ;AAC1B,WAAW,mBAAO,CAAC,wBAAa;;AAEhC;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;AC7Ba;;AAEb,WAAW,mBAAO,CAAC,wBAAa;AAChC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,mBAAO,CAAC,qCAA0B;;AAE/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,GAAG;AACH,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;;AC9Ca;;AAEb;;AAEA,mBAAmB,2DAAkC;AACrD,iBAAiB,mBAAO,CAAC,6BAAkB;AAC3C,gBAAgB,mBAAO,CAAC,oBAAS;AACjC,iBAAiB,mBAAO,CAAC,4BAAkB;AAC3C,kBAAkB,mBAAO,CAAC,8BAAmB;;AAE7C;AACA,cAAc,mBAAO,CAAC,0BAAe;AACrC,iBAAiB,mBAAO,CAAC,6BAAkB;;;;;;;;;;;;ACZ9B;;AAEb,SAAS,mBAAO,CAAC,kBAAO;AACxB,YAAY,mBAAO,CAAC,qBAAU;AAC9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,WAAW;AAC7B,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;;;;;;;;;;;AC5Xa;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B,SAAS,mBAAO,CAAC,kBAAO;AACxB,eAAe,mBAAO,CAAC,oBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClba;;AAEb;;AAEA,aAAa,mBAAO,CAAC,mBAAQ;AAC7B,cAAc,mBAAO,CAAC,oBAAS;AAC/B,aAAa,mBAAO,CAAC,mBAAQ;AAC7B,gBAAgB,mBAAO,CAAC,sBAAW;;;;;;;;;;;;ACPtB;;AAEb,SAAS,mBAAO,CAAC,kBAAO;AACxB,eAAe,mBAAO,CAAC,oBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B,YAAY,mBAAO,CAAC,qBAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB;AAChB,wCAAwC;AACxC,gBAAgB;;AAEhB,sBAAsB,iBAAiB;AACvC;;AAEA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACjLa;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B,SAAS,mBAAO,CAAC,kBAAO;AACxB,eAAe,mBAAO,CAAC,oBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,cAAc;AACpB,MAAM,cAAc;AACpB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB,WAAW;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACz6Ba;;AAEb;;AAEA,WAAW,mBAAO,CAAC,oBAAS;AAC5B,YAAY,mBAAO,CAAC,mBAAS;AAC7B,YAAY,mBAAO,CAAC,oBAAS;;AAE7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,QAAQ,mBAAO,CAAC,oCAAyB;AACzC,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC7MY;;AAEb,SAAS,mBAAO,CAAC,kBAAO;AACxB,eAAe,mBAAO,CAAC,qBAAW;AAClC,YAAY,mBAAO,CAAC,qBAAU;AAC9B,aAAa,mBAAO,CAAC,sBAAW;AAChC,WAAW,mBAAO,CAAC,oBAAS;AAC5B;;AAEA,cAAc,mBAAO,CAAC,kBAAO;AAC7B,gBAAgB,mBAAO,CAAC,wBAAa;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,0CAA0C;AACrE;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClPa;;AAEb,SAAS,mBAAO,CAAC,kBAAO;AACxB,YAAY,mBAAO,CAAC,qBAAU;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA,aAAa;;AAEb,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACxHa;;AAEb,SAAS,mBAAO,CAAC,kBAAO;;AAExB,YAAY,mBAAO,CAAC,qBAAU;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrKa;;AAEb,WAAW,mBAAO,CAAC,oBAAS;AAC5B,aAAa,mBAAO,CAAC,sBAAW;AAChC,YAAY,mBAAO,CAAC,qBAAU;AAC9B;AACA;AACA,cAAc,mBAAO,CAAC,kBAAO;AAC7B,gBAAgB,mBAAO,CAAC,wBAAa;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU,cAAc;AACxB,UAAU,sBAAsB;AAChC,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gCAAgC;AAC9D;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,wBAAwB;AAClC,UAAU,4BAA4B;AACtC,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACrHa;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B;AACA;AACA;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,QAAQ;AAClB;AACA,UAAU,aAAa;AACvB,UAAU,OAAO;AACjB,UAAU,aAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,UAAU;AACxC;;AAEA;AACA;AACA;AACA,8BAA8B,gBAAgB;AAC9C;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9Fa;;AAEb,SAAS,mBAAO,CAAC,kBAAO;AACxB,YAAY,mBAAO,CAAC,qBAAU;AAC9B;AACA;AACA;;AAEA;AACA,UAAU,OAAO;AACjB,UAAU,qBAAqB;AAC/B,UAAU,oBAAoB;AAC9B,UAAU,iBAAiB;AAC3B,UAAU,cAAc;AACxB,UAAU,cAAc;AACxB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AC3wBa;;AAEb;AACA,SAAS,mBAAO,CAAC,kBAAO;AACxB,gBAAgB,mBAAO,CAAC,gCAAqB;AAC7C,eAAe,mBAAO,CAAC,sCAA2B;;AAElD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;;ACrHA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,gDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACp3GhC;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,YAAY;AACZ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,SAAS;AACrD;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACnKA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA,oDAAoD,iBAAiB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC7Ca;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;;;;;;;;;;;;ACTb;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,yBAAc;AACzC,uBAAuB,mBAAO,CAAC,mBAAQ;AACvC,iBAAiB;AACjB;AACA,CAAC;AACD,iBAAiB;AACjB;AACA,CAAC;AACD,iBAAiB;AACjB;AACA,CAAC;AACD,iBAAiB;AACjB;AACA,CAAC;;;;;;;;;;;;ACfY;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,wBAAa;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,sBAAsB;AACtB;AACA;AACA;AACA,0BAA0B;;;;;;;;;;;;AClBb;AACb;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,mBAAO,CAAC,sBAAW;AACrC,eAAe,mBAAO,CAAC,qBAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK,EAAE,EAAwB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,SAAS,mBAAO,CAAC,sBAAW;;;;;;;;;;;ACzE5B,iEAA0C;;;;;;;;;;;ACA1C;AACA,cAAc,mBAAO,CAAC,4BAAiB;AACvC,WAAW,mBAAO,CAAC,kBAAO;;AAE1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3lBA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,gDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GnB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,oBAAoB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,8BAA8B,GAAG,yBAAyB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,mBAAmB;AAC5X,aAAa,mBAAO,CAAC,kBAAQ;AAC7B,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,gBAAgB,mBAAO,CAAC,kCAAuB;AAC/C,SAAS,mBAAO,CAAC,kBAAO;AACxB,cAAc,mBAAO,CAAC,oBAAS;AAC/B,aAAa,mBAAO,CAAC,mBAAQ;AAC7B;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,2BAA2B,GAAG;AAC9B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtKa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,GAAG,oBAAoB,GAAG,kBAAkB,GAAG,kBAAkB,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,aAAa,GAAG,sBAAsB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,aAAa;AAC1Q,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,SAAS,mBAAO,CAAC,kBAAO;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5Ja;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,uBAAuB,GAAG,2BAA2B,GAAG,6BAA6B,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,mBAAmB;AAC5M,SAAS,mBAAO,CAAC,kBAAO;AACxB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,qBAAqB;;;;;;;;;;;;ACnCR;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,cAAc;AACzF,SAAS,mBAAO,CAAC,yCAA8B;AAC/C,iBAAiB,mBAAO,CAAC,wBAAa;AACtC,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,UAAU,mBAAO,CAAC,eAAK;AACvB,cAAc,mBAAO,CAAC,oBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;;;;;;;;;;;AClFa;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,WAAW,GAAG,UAAU;AAC5C,gBAAgB,mBAAO,CAAC,kCAAuB;AAC/C,iBAAiB;AACjB,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,SAAS,mBAAO,CAAC,kBAAO;AACxB,UAAU;AACV,UAAU,mBAAO,CAAC,eAAK;AACvB,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,wBAAa;AAClC;AACA;AACA;AACA,aAAa,mBAAO,CAAC,sBAAW;AAChC;AACA;AACA;AACA,aAAa,mBAAO,CAAC,mBAAQ;AAC7B;AACA;AACA;AACA,aAAa,mBAAO,CAAC,wBAAa;AAClC;AACA;AACA;AACA,aAAa,mBAAO,CAAC,oBAAS;AAC9B;AACA;AACA;AACA,aAAa,mBAAO,CAAC,oBAAU;;;;;;;;;;;;AC5ClB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB,aAAa,mBAAO,CAAC,kBAAQ;AAC7B,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,UAAU,mBAAO,CAAC,eAAK;AACvB,cAAc,mBAAO,CAAC,oBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxGa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,YAAY,GAAG,eAAe,GAAG,cAAc,GAAG,YAAY,GAAG,0BAA0B,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,0BAA0B,GAAG,wBAAwB,GAAG,yBAAyB,GAAG,yBAAyB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,0BAA0B,GAAG,0BAA0B,GAAG,4BAA4B,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB,GAAG,wBAAwB;AACxiB,gBAAgB,mBAAO,CAAC,4CAAiC;AACzD,kBAAkB,mBAAO,CAAC,oCAAyB;AACnD,UAAU,mBAAO,CAAC,kCAAuB;AACzC;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,wBAAwB;AACxB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA,YAAY;AACZ;AACA,iGAAiG;AACjG;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Sa;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0CAA0C;AACzD;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0CAA0C;AACzD;AACA,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wCAAwC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wCAAwC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;;;;;;;;;;;ACxnBa;AACb;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,SAAS,mBAAO,CAAC,kBAAO;AACxB,SAAS,+CAAsB;AAC/B;AACA;AACA,wBAAwB;AACxB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC3Da;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B,GAAG,wBAAwB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,cAAc;AACnI,gBAAgB,mBAAO,CAAC,kCAAuB;AAC/C,SAAS,mBAAO,CAAC,kBAAO;AACxB,cAAc,mBAAO,CAAC,oBAAS;AAC/B,aAAa,mBAAO,CAAC,mBAAQ;AAC7B;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,iDAAwB;AACvC;AACA,IAAI;AACJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA,yCAAyC,QAAQ;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC,YAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA,0DAA0D,mBAAmB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,QAAQ;AACR;;AAEA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,SAAS;AACjC;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,4BAA4B;AAC9C;AACA;;AAEA,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;AACA,MAAM;AACN,kBAAkB,aAAa;AAC/B;AACA;;AAEA;AACA;;AAEA,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,gBAAgB;AACtC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,WAAW;AAChE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;;AAEA;AACA;;AAEA,sBAAsB,OAAO;AAC7B;AACA;;AAEA,wBAAwB,OAAO;AAC/B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,GAAG;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,WAAW;AAC/B;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,WAAW;AAC/B;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;;AAEA,mCAAmC;AACnC,uCAAuC;AACvC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;;AAEA;AACA,8BAA8B,cAAc;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,QAAQ;AACxC;AACA;;AAEA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,sBAAsB,sCAAsC;AAC5D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,8BAA8B,mCAAmC;AACjE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA,MAAM;;AAEN;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,QAAQ;AAC1C;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;;AAEN;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oBAAoB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,6BAA6B,QAAQ;AACrC;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,EAAE,MAA6B;;;;;;;;;;;;ACr3GnB;;AAEb,oBAAoB,mBAAO,CAAC,4BAAiB;AAC7C,qBAAqB,mBAAO,CAAC,6BAAkB;;AAE/C;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA,SAAS,OAAO;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,WAAW,GAAG,WAAW;AACtC;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;;AAEnB,kBAAkB,mBAAmB;AACrC;AACA,gCAAgC;AAChC;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;;AAEA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,QAAQ;AACR;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;;AAEA;AACA,SAAS,yBAAyB;AAClC;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,8DAA8D,YAAY;AAC1E;AACA,8DAA8D,YAAY;AAC1E;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;AChfa;;AAEb,iBAAiB,mBAAO,CAAC,wBAAa;;AAEtC;AACA;;AAEA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;;;;;;;;;;;;AC7Da;;AAEb;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;;AAEA,+EAA+E,sCAAsC;;AAErH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACnDa;;AAEb,qBAAqB,mBAAO,CAAC,6BAAkB;;AAE/C;;;;;;;;;;;;ACJa;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,mBAAO,CAAC,yBAAc;;;;;;;;;;;;ACZtB;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACv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,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;;AAEA;AACA,2CAA2C,WAAW;AACtD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,OAAO;;AAEzB;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9Fa;;AAEb,gDAAgD,0DAA0D,2CAA2C;;AAErJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oBAAoB;;;;;;;;;;;;AC9HpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,+BAAoB;AAC3C,eAAe,mBAAO,CAAC,+BAAoB;AAC3C,mBAAO,CAAC,oBAAU;AAClB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEa;;AAEb;AACA,gBAAgB,mBAAO,CAAC,gCAAqB;AAC7C,mBAAO,CAAC,oBAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEa;;AAEb+d,MAAM,CAACC,OAAP,GAAiBU,QAAjB;AAEA;;AACA,IAAIC,MAAJ;AACA;;AAEAD,QAAQ,CAACE,aAAT,GAAyBA,aAAzB;AAEA;;AACA,IAAIC,EAAE,GAAGtF,uDAAT;;AACA,IAAIwF,eAAe,GAAG,SAASA,eAAT,CAAyBC,OAAzB,EAAkCtZ,IAAlC,EAAwC;AAC5D,SAAOsZ,OAAO,CAAC/G,SAAR,CAAkBvS,IAAlB,EAAwBrC,MAA/B;AACD,CAFD;AAGA;;AAEA;;;AACA,IAAI4b,MAAM,GAAG1F,mBAAO,CAAC,qCAAD,CAApB;AACA;;;AAEA,IAAI2F,MAAM,GAAG3F,iDAAb;;AACA,IAAI4F,aAAa,GAAG,C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A;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,qBAAqB,mDAA0B;AAC/C;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,6BAAkB;AACvC,mBAAO,CAAC,oBAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEa;;AAEbgW,MAAM,CAACC,OAAP,GAAiBsK,QAAjB;AAEA;;AACA,SAASC,QAAT,CAAkB/I,KAAlB,EAAyBgD,QAAzB,EAAmCY,EAAnC,EAAuC;AACrC,OAAK5D,KAAL,GAAaA,KAAb;AACA,OAAKgD,QAAL,GAAgBA,QAAhB;AACA,OAAKgG,QAAL,GAAgBpF,EAAhB;AACA,OAAK9iB,IAAL,GAAY,IAAZ;AACD,EAED;AACA;;;AACA,SAASmoB,aAAT,CAAuBpF,KAAvB,EAA8B;AAC5B,MAAImE,KAAK,GAAG,IAAZ;;AACA,OAAKlnB,IAAL,GAAY,IAAZ;AACA,OAAKooB,KAAL,GA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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;ACtLY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/FA;AACA;;AAEa;;AAEb,iCAAiC,oFAA2D;AAC5F;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrFA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yDAAgC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,mBAAO,CAAC,4BAAiB;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;;;;;;;;;;ACrFa;;AAEb,4BAA4B,+EAAsD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrBA,sEAA+C;;;;;;;;;;;ACA/C,UAAU,4EAAqD;AAC/D,cAAc;AACd,gBAAgB;AAChB,8EAAuD;AACvD,0EAAmD;AACnD,gFAAyD;AACzD,kFAA6D;AAC7D,4FAAqE;AACrE,uFAAgE;;;;;;;;;;;;ACRhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,sDAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACvSA;;AAEA,aAAa,mBAAO,CAAC,yBAAc;AACnC,cAAc,mBAAO,CAAC,0BAAe;AACrC,WAAW,mBAAO,CAAC,uBAAY;AAC/B,cAAc,mBAAO,CAAC,0BAAe;AACrC,YAAY,mBAAO,CAAC,wBAAa;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACda;;AAEb,YAAY,mBAAO,CAAC,oBAAS;AAC7B,aAAa,mBAAO,CAAC,gCAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;;AAEA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,oBAAoB;AACpC;AACA;;AAEA;AACA;;;;;;;;;;;;AC3Fa;;AAEb,YAAY,mBAAO,CAAC,oBAAS;AAC7B,aAAa,mBAAO,CAAC,gCAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,oBAAoB;AAC/C;;AAEA,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AC9Ca;;AAEb,YAAY,mBAAO,CAAC,oBAAS;AAC7B,aAAa,mBAAO,CAAC,qBAAU;;AAE/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjJa;;AAEb,uDAAiC;AACjC,4DAAqC;AACrC,4DAAqC;AACrC,2DAAqC;AACrC,4DAAqC;;;;;;;;;;;;ACNxB;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B,aAAa,mBAAO,CAAC,sBAAW;AAChC,gBAAgB,mBAAO,CAAC,qBAAU;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;;AAEA,QAAQ,cAAc;AACtB;;AAEA;AACA;AACA;AACA;AACA;;AAEA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzEa;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B,aAAa,mBAAO,CAAC,kBAAO;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5Ba;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B,aAAa,mBAAO,CAAC,sBAAW;AAChC,gBAAgB,mBAAO,CAAC,qBAAU;AAClC,aAAa,mBAAO,CAAC,gCAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA,SAAS,cAAc;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxGa;;AAEb,YAAY,mBAAO,CAAC,qBAAU;;AAE9B,aAAa,mBAAO,CAAC,kBAAO;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AClCa;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B,aAAa,mBAAO,CAAC,sBAAW;AAChC,aAAa,mBAAO,CAAC,gCAAqB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA,SAAS,cAAc;AACvB,gDAAgD;AAChD;AACA,4BAA4B;AAC5B;AACA,kDAAkD;AAClD;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC;AACrC,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzUa;;AAEb,YAAY,mBAAO,CAAC,qBAAU;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;;;;;;;;;;;AChDD;;AAEb,aAAa,mBAAO,CAAC,gCAAqB;AAC1C,eAAe,mBAAO,CAAC,oBAAU;;AAEjC,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA,IAAI;AACJ,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA,6BAA6B,gBAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,cAAc;;AAEd;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACrRH;;AAEb,WAAW,mBAAO,CAAC,oBAAS;AAC5B,YAAY,mBAAO,CAAC,sCAA2B;AAC/C,aAAa,mBAAO,CAAC,gCAAqB;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChHA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA;AACA,SAAS,WAAW;;AAEpB;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA,SAAS,WAAW;;AAEpB;AACA;AACA,SAAS,UAAU;;AAEnB;AACA;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Ba;;AAEb,qBAAqB,mBAAO,CAAC,kCAAuB;AACpD,gBAAgB,mBAAO,CAAC,gCAAqB;;AAE7C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,2DAA2D;;AAE3D;;;;;;;;;;;;AChCa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,6BAA6B,WAAW;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,2CAA2C;AAC3C,2EAA2E;;AAE3E,0BAA0B;;AAE1B,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,MAAM,YAAY;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,gBAAgB;AAChB,kEAAkE;AAClE;AACA;AACA,IAAI;AACJ,iCAAiC;AACjC;AACA;AACA;AACA;AACA,sBAAsB;AACtB,gBAAgB;AAChB,kEAAkE;AAClE,wBAAwB;AACxB,6BAA6B;AAC7B;AACA,6FAA6F;AAC7F;AACA;;;;;;;;;;;;ACpGa;;AAEb;AACA;AACA;AACA,qBAAqB,mBAAO,CAAC,kCAAuB;AACpD;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrCA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,SAAS;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;ACZa;;AAEb;;AAEA;AACA;AACA;;;;;;;;;;;;ACNa;;AAEb,eAAe,mBAAO,CAAC,sBAAW;AAClC,aAAa,mBAAO,CAAC,8BAAmB;;AAExC,qBAAqB,mBAAO,CAAC,6BAAkB;AAC/C,kBAAkB,mBAAO,CAAC,qBAAY;AACtC,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACnBa;;AAEb,qBAAqB,mBAAO,CAAC,6BAAkB;;AAE/C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACTa;;AAEb,aAAa,mBAAO,CAAC,8BAAmB;AACxC,kBAAkB,mBAAO,CAAC,qBAAY;;AAEtC;;AAEA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;ACfa;;AAEb,cAAc,mBAAO,CAAC,qBAAU;AAChC,2BAA2B,mBAAO,CAAC,mCAAwB;AAC3D,gBAAgB,mBAAO,CAAC,gCAAqB;;AAE7C;AACA,qBAAqB,mBAAO,CAAC,kCAAuB;AACpD,WAAW,mBAAO,CAAC,iBAAM;;AAEzB;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,YAAY;AACjB;AACA,EAAE;AACF;AACA;;AAEA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;;;;;;;;;;AC3DA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gDAAgD,QAAa;AAC7D,YAAY,KAA4B,IAAI,wBAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iFAAiF;AACvF,MAAM,wEAAwE;AAC9E,MAAM,0FAA0F;AAChG,MAAM,6FAA6F;AACnG,MAAM;AACN;;AAEA,kBAAkB;;AAElB,kBAAkB,uBAAuB;AACzC;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,QAAQ;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA,6BAA6B,iCAAiC;AAC9D;AACA;AACA,QAAQ;AACR,6BAA6B,iCAAiC;AAC9D;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,oCAAoC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,kBAAkB,oCAAoC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,oCAAoC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ,gBAAgB,wBAAwB;AACxC;AACA;AACA;AACA,MAAM,mCAAO;AACb;AACA,OAAO;AAAA,kGAAC;AACR;AACA;AACA,CAAC;;;;;;;;;;;AC/oBD;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,kDAAkD,QAAa;AAC/D,YAAY,KAA4B,IAAI,wBAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,2BAA2B;AACxD;AACA;AACA,QAAQ;AACR,6BAA6B,2BAA2B;AACxD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA,gBAAgB,wBAAwB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAO;AACb;AACA,OAAO;AAAA,kGAAC;AACR;AACA;AACA,CAAC;;;;;;;;;;;;AC95BD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACa,cAAc,kBAAkB,iEAAiE,QAAQ,qBAAqB,iBAAiB,wEAAwE,kDAAkD,kBAAkB,uDAAuD,gBAAgB,q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rC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC1BA,QAAQ,YAAY,EAAE,mBAAO,CAAC,4BAAiB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC5EA,QAAQ,YAAY,EAAE,mBAAO,CAAC,4BAAiB;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACnEA;;AAEA,aAAa;AACb,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzLA,oBAAoB,mBAAO,CAAC,kCAAuB;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnEa;;AAEb,gDAAgD,0DAA0D,2CAA2C;;AAErJ;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;;;AAGF;AACA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oBAAoB;;;;;;;;;;;;AC9HpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,mBAAO,CAAC,+BAAoB;AAC3C,eAAe,mBAAO,CAAC,+BAAoB;AAC3C,mBAAO,CAAC,oBAAU;AAClB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;AC7HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC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;;AACD,WAAOlT,IAAI,CAACqY,QAAD,EAAWwJ,QAAX,EAAqBC,IAArB,CAAX;AACD,GALD;AAMD;;AACD,SAAS5jB,OAAT,CAAiB6jB,EAAjB,EAAqB1O,CAArB,EAAwB;AACtB,OAAK,IAAI3R,CAAC,GAAG,CAAR,EAAWsgB,CAAC,GAAGD,EAAE,CAAC/kB,MAAvB,EAA+B0E,CAAC,GAAGsgB,CAAnC,EAAsCtgB,CAAC,EAAvC,EAA2C;AACzC,QAAIqgB,EAAE,CAACrgB,CAAD,CAAF,KAAU2R,CAAd,EAAiB,OAAO3R,CAAP;AAClB;;AACD,SAAO,CAAC,CAAR;AACD;;;;;;;;;;;AiDlgCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,qBAAqB,mDAA0B;AAC/C;AACA;AACA;AACA;AACA,aAAa,mBAAO,CAAC,6BAAkB;AACvC,mBAAO,CAAC,oBAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA,CAAC;;;;;;;;;;;ACtLY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wFAAwF;AACxF;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/FA;AACA;;AAEa;;AAEb,iCAAiC,oFAA2D;AAC5F;AACA;AACA;AACA;AACA;AACA,wEAAwE,aAAa;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrFA;AACA;AACA;;;;;;;;;;;;ACFA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yDAAgC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,+BAA+B,mBAAO,CAAC,4BAAiB;AACxD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,aAAa;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;;;;;;;;;;ACrFa;;AAEb,4BAA4B,+EAAsD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrBA,sEAA+C;;;;;;;;;;;ACA/C,UAAU,4EAAqD;AAC/D,cAAc;AACd,gBAAgB;AAChB,8EAAuD;AACvD,0EAAmD;AACnD,gFAAyD;AACzD,oFAA6D;AAC7D,4FAAqE;AACrE,uFAAgE;;;;;;;;;;;;ACRhE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;;AAEA,aAAa,sDAA6B;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,sCAAsC,sCAAsC;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAId,WAAW,GAAGW,eAAe,CAAC,YAAW;AAAE,SAAOnf,SAAP;AAAmB,CAAhC,EAAD,CAAf,GAAsDmf,eAAtD,GAAwE,UAASp4B,KAAT,EAAgB;AACxG,SAAOq4B,YAAY,CAACr4B,KAAD,CAAZ,IAAuB2zB,cAAc,CAACnrB,IAAf,CAAoBxI,KAApB,EAA2B,QAA3B,CAAvB,IACL,CAACi0B,oBAAoB,CAACzrB,IAArB,CAA0BxI,KAA1B,EAAiC,QAAjC,CADH;AAED,CAHD;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIyD,OAAO,GAAGD,KAAK,CAACC,OAApB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASw4B,WAAT,CAAqBj8B,KAArB,EAA4B;AAC1B,SAAOA,KAAK,IAAI,IAAT,IAAiBm6B,QAAQ,CAACn6B,KAAK,CAACqD,MAAP,CAAzB,IAA2C,CAAC22B,UAAU,CAACh6B,KAAD,CAA7D;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAI2f,QAAQ,GAAG2U,cAAc,IAAI4H,SAAjC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,OAAT,CAAiBn8B,KAAjB,EAAwBu4B,KAAxB,EAA+B;AAC7B,SAAOD,WAAW,CAACt4B,KAAD,EAAQu4B,KAAR,CAAlB;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyB,UAAT,CAAoBh6B,KAApB,EAA2B;AACzB,MAAI,CAAC65B,QAAQ,CAAC75B,KAAD,CAAb,EAAsB;AACpB,WAAO,KAAP;AACD,GAHwB,CAIzB;AACA;;;AACA,MAAIoF,GAAG,GAAG6yB,UAAU,CAACj4B,KAAD,CAApB;AACA,SAAOoF,GAAG,IAAIuqB,OAAP,IAAkBvqB,GAAG,IAAIwqB,MAAzB,IAAmCxqB,GAAG,IAAImqB,QAA1C,IAAsDnqB,GAAG,IAAI8qB,QAApE;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiK,QAAT,CAAkBn6B,KAAlB,EAAyB;AACvB,SAAO,OAAOA,KAAP,IAAgB,QAAhB,IACLA,KAAK,GAAG,CAAC,CADJ,IACSA,KAAK,GAAG,CAAR,IAAa,CADtB,IAC2BA,KAAK,IAAIovB,gBAD3C;AAED;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyK,QAAT,CAAkB75B,KAAlB,EAAyB;AACvB,MAAI0F,IAAI,GAAG,OAAO1F,KAAlB;AACA,SAAOA,KAAK,IAAI,IAAT,KAAkB0F,IAAI,IAAI,QAAR,IAAoBA,IAAI,IAAI,UAA9C,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2yB,YAAT,CAAsBr4B,KAAtB,EAA6B;AAC3B,SAAOA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAP,IAAgB,QAAxC;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAImyB,YAAY,GAAGD,gBAAgB,GAAGU,SAAS,CAACV,gBAAD,CAAZ,GAAiCgI,gBAApE;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASp2B,IAAT,CAAcknB,MAAd,EAAsB;AACpB,SAAOiR,WAAW,CAACjR,MAAD,CAAX,GAAsBqM,aAAa,CAACrM,MAAD,CAAnC,GAA8CoP,QAAQ,CAACpP,MAAD,CAA7D;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6Q,SAAT,GAAqB;AACnB,SAAO,EAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASK,SAAT,GAAqB;AACnB,SAAO,KAAP;AACD;;AAEDne,MAAM,CAACC,OAAP,GAAiBme,OAAjB;;;;;;;;;;;ACvzDY;AACZ,eAAe,mBAAO,CAAC,oBAAU;AACjC,eAAe,mBAAO,CAAC,sBAAW;AAClC,aAAa,sDAA6B;;AAE1C;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB,QAAQ;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACjJA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;ACVa;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA,IAAI;AACJ,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzDA,WAAW,mBAAO,CAAC,oBAAS;AAC5B,UAAU,mBAAO,CAAC,gBAAK;AACvB,aAAa,mBAAO,CAAC,2BAAiB;AACtC,aAAa,mBAAO,CAAC,2BAAiB;;AAEtC;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,sBAAsB;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;;;;;;;;;;;AC9DA,oBAAoB,mBAAO,CAAC,2BAAgB;;AAE5C;AACA;;AAEA;AACA,0DAA0D;AAC1D,gBAAgB,uBAAuB;;AAEvC;AACA,KAAK;;AAEL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC3BA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,aAAa,mBAAO,CAAC,2BAAiB;AACtC,mBAAmB,mBAAO,CAAC,gCAAqB;;AAEhD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/CA,aAAa,mBAAO,CAAC,2BAAiB;AACtC,aAAa,mBAAO,CAAC,iCAAsB;AAC3C,kBAAkB,mBAAO,CAAC,2BAAgB;;AAE1C;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,YAAY,oCAAoC;;AAEhD;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0DAA0D;AAC1D;AACA;AACA;;;;;;;;;;;ACvFA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;;AAEA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,qBAAqB,aAAa;AAClC,oBAAoB,aAAa;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,oBAAoB,mBAAmB;AACvC;AACA;;AAEA,wBAAwB,kBAAkB;AAC1C;;AAEA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4CAA4C;AAChE;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;;;;;;;;;;ACpHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,qCAAqC;AACrC;AACA,oDAAoD;AACpD;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sCAAsC;AACtC,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,gDAAgD;AAChD,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,yEAAyE;AACzE;AACA;AACA,yEAAyE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,4BAA4B,YAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,gCAAgC,YAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,mCAAmC;AACnC,KAAK,EAAE,KAA8B,aAAa,CAAI;;;;;;;;;;;ACz6CzC;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,iBAAiB;;AAEzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,QAAQ;AACxB,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB,iBAAiB,QAAQ;;AAEzB;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gBAAgB,QAAQ;AACxB,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,OAAO;AAC3B;AACA;;AAEA;;;;;;;;;;;;AC3La;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uDAAuD,cAAc;;AAErE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB;AACxB;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACnRA,eAAe,yDAAmC;;AAElD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+BAA+B;AACzC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;;;;;;;;;;ACjOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,mBAAO,CAAC,oBAAU;;AAE/B;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oDAAoD;AACpD,YAAY,oCAAoC;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC5GA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,iFAAiF;AACvF,MAAM,wEAAwE;AAC9E,MAAM,0FAA0F;AAChG,MAAM,6FAA6F;AACnG,MAAM;AACN;;AAEA,gBAAgB;;AAEhB,gBAAgB,uBAAuB;AACvC;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,QAAQ;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA,iCAAiC,iCAAiC;AAClE;AACA;AACA,UAAU;AACV,iCAAiC,iCAAiC;AAClE;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,oCAAoC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC/nBA,YAAY,mBAAO,CAAC,kBAAO;AAC3B,gBAAgB,uDAA+B;AAC/C,eAAe,mBAAO,CAAC,uBAAY;AACnC,gBAAgB,oDAA8B;AAC9C,cAAc,mBAAO,CAAC,sBAAW;AACjC,aAAa,mBAAO,CAAC,oBAAU;AAC/B,aAAa,mBAAO,CAAC,qBAAU;AAC/B,aAAa,mBAAO,CAAC,8BAAmB;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB;AACrE,KAAK;AACL;AACA;;;;;;;;;;;AClIA,mBAAmB,mBAAO,CAAC,+BAAoB;AAC/C,mBAAmB,mBAAO,CAAC,iCAAsB;AACjD,mBAAmB,mBAAO,CAAC,gCAAqB;AAChD,mBAAmB,mBAAO,CAAC,4BAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+BAAoB;AAC/C,oBAAoB,mBAAO,CAAC,6BAAkB;AAC9C,kBAAkB,mBAAO,CAAC,gCAAqB;AAC/C,mBAAmB,mBAAO,CAAC,6BAAkB;AAC7C,mBAAmB,mBAAO,CAAC,4BAAiB;AAC5C,mBAAmB,mBAAO,CAAC,6BAAkB;AAC7C,mBAAmB,mBAAO,CAAC,4BAAiB;AAC5C,mBAAmB,mBAAO,CAAC,gCAAqB;AAChD,mBAAmB,mBAAO,CAAC,4BAAiB;AAC5C,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C,oBAAoB,mBAAO,CAAC,4BAAkB;AAC9C,oBAAoB,mBAAO,CAAC,4BAAkB;AAC9C,mBAAmB,mBAAO,CAAC,4BAAiB;;AAE5C;AACA;AACA;AACA;AACA,wBAAwB,uDAAuD;AAC/E,qBAAqB,+BAA+B;AACpD;AACA,KAAK;AACL;AACA;AACA,yBAAyB,EAAE,YAAY,GAAG;AAC1C,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,uBAAuB,EAAE,YAAY,GAAG;AACxC,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,uDAAuD;AAC/E,qBAAqB,kCAAkC;AACvD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,uDAAuD;AAC/E;;AAEA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,yCAAyC;AACjE;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA,KAAK;AACL;AACA;AACA,wBAAwB,mDAAmD;AAC3E;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,iCAAiC;AACzD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,iCAAiC;AACzD,qBAAqB,iCAAiC;AACtD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2CAA2C;AACnE;AACA,KAAK;AACL;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA,6BAA6B,GAAG;AAChC;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB,kCAAkC;AACvD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,6DAA6D;AACrF,yBAAyB,iDAAiD;AAC1E;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,wBAAwB,0CAA0C;AAClE,yBAAyB,4BAA4B;AACrD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA,KAAK;AACL;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sCAAsC,OAAO,GAAG,UAAU,KAAK,OAAO,YAAY,SAAS;;AAE3F;AACA;AACA;AACA,qCAAqC,OAAO,KAAK,SAAS;AAC1D;;;;;;;;;;;;ACzkBA,oBAAoB,mBAAO,CAAC,2BAAgB;;AAE5C;AACA;AACA,MAAM,4DAA4D;AAClE,MAAM,4DAA4D;AAClE,MAAM,4DAA4D;AAClE,MAAM,4DAA4D;AAClE,MAAM,4DAA4D;AAClE,MAAM,4DAA4D;AAClE,MAAM,4DAA4D;AAClE,MAAM,6DAA6D;AACnE,MAAM,6DAA6D;AACnE,MAAM,6DAA6D;AACnE,MAAM,6DAA6D;AACnE,MAAM,6DAA6D;AACnE,MAAM,6DAA6D;AACnE,MAAM,6DAA6D;AACnE,MAAM,6DAA6D;AACnE,MAAM,8DAA8D;AACpE;;AAEA;AACA,0DAA0D;AAC1D,gBAAgB,uBAAuB;;AAEvC;AACA,KAAK;;AAEL;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;AACA;AACA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACbA,kBAAkB,mBAAO,CAAC,2BAAgB;;AAE1C;AACA;AACA,6BAA6B,GAAG;AAChC;AACA;AACA;;AAEA,yBAAyB,GAAG,kCAAkC,GAAG;AACjE;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA,wBAAwB,QAAQ;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACjCA,kBAAkB,mBAAO,CAAC,2BAAgB;;AAE1C,gCAAgC,KAAK;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AClBA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,eAAe,mBAAO,CAAC,8BAAmB;;AAE1C;AACA;AACA,iEAAiE,GAAG;AACpE;AACA;AACA,iEAAiE,IAAI;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD,YAAY,oCAAoC;AAChD;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC/DA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,YAAY,mBAAO,CAAC,mBAAQ;;AAE5B;;AAEA;AACA;AACA,8DAA8D,GAAG;;AAEjE;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC1BA,kBAAkB,mBAAO,CAAC,2BAAgB;;AAE1C;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACtBA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,YAAY,mBAAO,CAAC,mBAAQ;;AAE5B;;AAEA;AACA,mDAAmD,MAAM;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC3BA,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,cAAc,mBAAO,CAAC,2BAAgB;;AAEtC;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3BA,YAAY,mBAAO,CAAC,mBAAQ;AAC5B,UAAU,mBAAO,CAAC,gBAAK;AACvB,kBAAkB,mBAAO,CAAC,2BAAgB;;AAE1C;;AAEA;AACA,6CAA6C,GAAG;AAChD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;AC7CA,eAAe,mBAAO,CAAC,2BAAiB;AACxC,oBAAoB,mBAAO,CAAC,2BAAgB;;AAE5C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACnCA,kBAAkB,mBAAO,CAAC,2BAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;AC7DA,mBAAmB,mBAAO,CAAC,gCAAqB;AAChD,mBAAmB,mBAAO,CAAC,iCAAsB;;AAEjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,yBAAc;;AAEvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,8EAA8E,mBAAmB;AACjG;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;ACxBa;;AAEb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACjBa;;AAEb,aAAa,mBAAO,CAAC,8BAAmB;AACxC,eAAe,mBAAO,CAAC,sBAAW;;AAElC,qBAAqB,mBAAO,CAAC,6BAAkB;AAC/C,kBAAkB,mBAAO,CAAC,uBAAY;AACtC,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACjBa;;AAEb,qBAAqB,mBAAO,CAAC,6BAAkB;;AAE/C;AACA;AACA;;;;;;;;;;;;ACNa;;AAEb,kBAAkB,mBAAO,CAAC,uBAAY;AACtC,aAAa,mBAAO,CAAC,8BAAmB;;AAExC;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA,EAAE;AACF;AACA;;;;;;;;;;;;ACba;;AAEb;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,0BAAe,GAAG;AACxC;AACA,2CAA2C,gBAAgB;AAC3D,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;;AAEA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzHa;;AAEb;AACA,aAAa,mBAAO,CAAC,0BAAe;;AAEpC;AACA,6CAA6C,sBAAsB,EAAE,mBAAO,CAAC,6BAAkB;;AAE/F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/Ba;;AAEb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBA;;AAEa;AACb,8DAAuC;;;;;;;;;;;;ACH1B;AACb;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,aAAa;AACb,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU,UAAU,UAAU,YAAY;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,aAAa;AAC/B,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,aAAa;AAC/B,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,wBAAwB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B,kBAAkB,GAAG;AACrB,kBAAkB,QAAQ;AAC1B,kBAAkB,QAAQ;AAC1B,kBAAkB,SAAS;AAC3B,kBAAkB,SAAS;AAC3B,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,aAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,cAAc;AACd,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;;;;;;;;;;;;AC9Ya;AACb;AACA;AACA;AACA;AACA;;AAEA,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,0BAA0B;AAC1B,4FAA4F,iBAAiB;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe;AACf,UAAU;AACV;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;;AAEA;AACA,yBAAyB;AACzB,cAAc;AACd;AACA;AACA,gBAAgB;AAChB,0CAA0C,YAAY,KAAK;AAC3D;AACA,WAAW;AACX,OAAO;;AAEP;AACA,UAAU,2BAA2B;AACrC,cAAc;AACd;AACA;AACA;AACA,sBAAsB,aAAa,KAAK;AACxC;AACA,WAAW;AACX,OAAO;;AAEP;AACA,UAAU;AACV;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA,OAAO;AACP;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,cAAc;AACd,cAAc;;AAEd;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC,+BAA+B;AAC/B,oBAAoB,2BAA2B;AAC/C;AACA;AACA,OAAO;AACP;;AAEA,4BAA4B;AAC5B,gCAAgC;AAChC,oBAAoB,sBAAsB;AAC1C,gBAAgB;AAChB;AACA,OAAO;AACP;;AAEA,+BAA+B;AAC/B,qBAAqB;AACrB,oBAAoB,yBAAyB;AAC7C;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX,cAAc;AACd,6CAA6C;AAC7C,UAAU;AACV,OAAO;AACP;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA,cAAc;AACd,6CAA6C;AAC7C,gBAAgB;AAChB,sBAAsB,aAAa,KAAK;AACxC;AACA,WAAW;AACX,UAAU,2BAA2B;AACrC,0BAA0B;AAC1B;AACA,sBAAsB,aAAa,KAAK;AACxC;AACA,WAAW;AACX,UAAU,OAAO;AACjB,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpSa;AACb;;AAEA,cAAc,mBAAO,CAAC,mBAAQ;AAC9B,cAAc,mBAAO,CAAC,oBAAS;AAC/B,cAAc,mBAAO,CAAC,mBAAQ;;AAE9B;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG,mBAAmB;AAC1H,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA,WAAW,gDAAgD;AAC3D;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA,yBAAyB;AACzB;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA,uCAAuC;AACvC,4CAA4C;AAC5C;;AAEA;AACA,yEAAyE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,mBAAmB;;AAEnB;AACA;AACA;AACA;;AAEA;AACA,UAAU,2BAA2B;;AAErC;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA;;AAEA;A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AAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,0BAA0B;AACrC,WAAW,0BAA0B;AACrC,WAAW,mBAAmB;AAC9B;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB,YAAY,WAAW;AACvB;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,0BAA0B;AACrC,WAAW,0BAA0B;AACrC,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,gEAAgE;;AAEhE;AACA;AACA,cAAc;AACd;AACA,sBAAsB;;AAEtB;AACA;AACA,cAAc;AACd;AACA,kBAAkB;;AAElB;AACA;AACA,cAAc;AACd;AACA,uCAAuC;;AAEvC;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA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CA,WAAW,oBAAoB;AAC/B,WAAW,gBAAgB;AAC3B,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,6BAA6B;;AAE7B;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,mBAAmB;AACjC,cAAc,iCAAiC;AAC/C;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,iCAAiC;AAC5C,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA,iEAAiE,kBAAkB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,iBAAiB;AACnD,8BAA8B,yBAAyB;AACvD,WAAW,QAAQ;AACnB,aAAa,wBAAwB;AACrC,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa,WAAW;AACxB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa,WAAW;AACxB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,GAAG;AACd,aAAa,WAAW;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,uBAAuB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA,MAAM;AACN,wBAAwB,6BAA6B;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,SAAS;AACpB,aAAa,uBAAuB;AACpC;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAiB;AAClC,qDAAqD,+BAA+B;AACpF,WAAW,iBAAiB;AAC5B,aAAa,MAAM;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,iBAAiB;AAChD,qDAAqD,+BAA+B;AACpF,WAAW,iBAAiB;AAC5B,aAAa,MAAM;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,iBAAiB,IAAI,iBAAiB;AACvD,qDAAqD,+BAA+B;AACpF,WAAW,iBAAiB;AAC5B,aAAa,MAAM;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,uBAAuB;AACxC,qDAAqD,+BAA+B;AACpF,WAAW,iBAAiB;AAC5B,aAAa,SAAS;AACtB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjba;AACb;;AAEA;;AAEA,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B,UAAU;;AAEV;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,4BAA4B;;AAE5B;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,aAAa,mBAAmB;AAChC;AACA;AACA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,2CAA2C;AAC3C;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;;AClPa;AACb;;AAEA;AACA,uBAAuB,mBAAO,CAAC,qBAAU;AACzC;;AAEA,YAAY,mBAAO,CAAC,oBAAS;AAC7B,YAAY,mBAAO,CAAC,mBAAQ;;AAE5B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,4BAA4B;AACvC,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,mCAAmC;;AAEnC;AACA;AACA,cAAc;AACd;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB;AACjC;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB,YAAY,WAAW;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,wBAAwB,8BAA8B;AACtD;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,eAAe;AACrD;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa;AACb;;AAEA;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;AC1Ma;AACb;;AAEA;AACA,mBAAmB;;AAEnB,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,gBAAgB,mBAAO,CAAC,mBAAQ;AAChC,gBAAgB,mBAAO,CAAC,mBAAQ;AAChC,gBAAgB,mBAAO,CAAC,oBAAS;AACjC,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,gBAAgB,mBAAO,CAAC,oBAAS;AACjC,gBAAgB,mBAAO,CAAC,mBAAQ;AAChC,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,gBAAgB,mBAAO,CAAC,qBAAU;AAClC,gBAAgB,mBAAO,CAAC,oBAAS;AACjC,gBAAgB,mBAAO,CAAC,mBAAQ;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,YAAY;AAC5C;AACA,cAAc,kBAAkB;AAChC,cAAc,oBAAoB;AAClC,cAAc,oBAAoB;AAClC,cAAc,kBAAkB;AAChC,cAAc,MAAM;AACpB;;AAEA;AACA,sCAAsC,YAAY;AAClD;AACA,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA;AACA,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,WAAW,eAAe,sCAAsC,sBAAsB;AACtF,aAAa,eAAe;AAC5B,cAAc,QAAQ;AACtB,cAAc,eAAe,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,wDAAwD,eAAe;;AAEvE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;;AAEV;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,eAAe;AACf;;AAEA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,mBAAmB;AACnB;AACA,0CAA0C;AAC1C;AACA,mBAAmB;AACnB,UAAU;AACV;AACA;AACA,mBAAmB;AACnB;AACA,iEAAiE;AACjE;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB,cAAc;AACd;;AAEA,SAAS;AACT;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA,0CAA0C;AAC1C;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB,cAAc;AACd;;AAEA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB;AACvB,cAAc;AACd;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C,uBAAuB;AACvB,cAAc;AACd;;AAEA,SAAS;AACT,uCAAuC;AACvC,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,YAAY,KAAK,aAAa;AACjD;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,iBAAiB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB;AACvB,cAAc;AACd;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,uBAAuB;AACvB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe,sCAAsC,sBAAsB;AACtF,aAAa,eAAe;AAC5B,cAAc,QAAQ;AACtB,cAAc,eAAe,kBAAkB;AAC/C;AACA;;;;;;;;;;;;ACnzBa;AACb;;AAEA,gBAAgB,mBAAO,CAAC,2BAAgB;;AAExC,kBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,aAAa,qBAAqB,GAAG,oBAAoB,sCAAsC;AAC/F,YAAY,OAAO;AACnB;AACA;;AAEA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA,4BAA4B;AAC5B;AACA,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;AAClE,kEAAkE;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;;AAEA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;;AAEA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA,SAAS;;AAET;AACA;AACA;;AAEA,KAAK;AACL;;;;;;;;;;;;AC1Za;AACb;;AAEA;AACA,aAAa,mBAAO,CAAC,qBAAU;AAC/B;;AAEA,WAAW,mBAAO,CAAC,2BAAgB;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;AAEA;;;;;;;;;;;;AClDa;AACb;;AAEA;AACA,gBAAgB,mBAAO,CAAC,wBAAa;AACrC;;AAEA,cAAc,mBAAO,CAAC,oBAAS;AAC/B,cAAc,mBAAO,CAAC,mBAAQ;AAC9B,cAAc,mBAAO,CAAC,oBAAS;AAC/B,cAAc,mBAAO,CAAC,mBAAQ;;AAE9B;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,eAAe;AAC1B,aAAa;AACb;AACA;;AAEA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,eAAe;AAC1B,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,eAAe,sCAAsC,sBAAsB;AACtF,aAAa,eAAe;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B,WAAW,eAAe,sCAAsC,sBAAsB;AACtF,aAAa,MAAM;AACnB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA,wDAAwD;;AAExD,MAAM;;AAEN;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA,wBAAwB,iDAAiD;AACzE;AACA;AACA,iDAAiD;AACjD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA,+DAA+D;AAC/D;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM;;AAEN;AACA,+CAA+C;;AAE/C,MAAM;;AAEN,wBAAwB,iDAAiD;AACzE;;AAEA;AACA,+CAA+C;;AAE/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1Wa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACjBa;AAEb;AACA;AACA;AACA;;AACA,IAAIC,GAAG,GAAGpe,OAAV;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEAoe,GAAG,CAACC,OAAJ,GAAc9iB,mBAAO,CAAC,0BAAD,CAArB;;;;;;;;;;;ACnCa;AACb;;AAEA,WAAW,mBAAO,CAAC,4BAAiB;;AAEpC;AACA;;AAEA;AACA,yCAAyC,sCAAsC;AAC/E;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA,UAAU;AACV,WAAW,YAAY;AACvB,WAAW,MAAM;AACjB,aAAa;AACb;;AAEA;AACA,+BAA+B,mBAAmB,eAAe,qBAAqB;AACtF;AACA;AACA;AACA,UAAU;AACV,WAAW,uBAAuB;AAClC,WAAW,iCAAiC;AAC5C,aAAa,wBAAwB;AACrC;;AAEA;AACA;AACA,6CAA6C,qBAAqB;AAClE;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA,mCAAmC,kCAAkC;AACrE,WAAW,qCAAqC;AAChD,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,uBAAuB;AAClC,WAAW,iCAAiC;AAC5C,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,mCAAmC;AACnE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,gCAAgC,gBAAgB;AAChD;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC7Ia;AACb;;AAEA;AACA,gBAAgB,mBAAO,CAAC,wBAAa;AACrC;;AAEA,aAAa,mBAAO,CAAC,qBAAU;AAC/B,aAAa,mBAAO,CAAC,mBAAQ;AAC7B,aAAa,mBAAO,CAAC,kBAAO;;AAE5B;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B,YAAY,WAAW;AACvB;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,uBAAuB;;AAEvB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,yBAAyB;AACvC;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA,2DAA2D,kBAAkB;AAC7E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,4BAA4B,gDAAgD;AAC5E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;ACtKa;AACb;;AAEA,2BAA2B,EAAE;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB,cAAc,wBAAwB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,UAAU;AACV,aAAa,aAAa;AAC1B;;AAEA;AACA;AACA;AACA,UAAU;AACV,aAAa,aAAa;AAC1B;;AAEA;AACA;AACA;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,aAAa;AACb;;AAEA;AACA;AACA;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA,UAAU;AACV,WAAW,QAAQ;AACnB,aAAa,aAAa;AAC1B;;AAEA;AACA,gCAAgC,eAAe;AAC/C;AACA,cAAc,qBAAqB;AACnC,cAAc,qBAAqB;AACnC,cAAc,qBAAqB;AACnC,cAAc,qBAAqB;AACnC,cAAc,qBAAqB;AACnC,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,kBAAkB;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,OAAO;AACxB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,UAAU;AACV,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,IAAI;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,4CAA4C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA,UAAU;;AAEV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,SAAS;AACxB,iBAAiB,SAAS;AAC1B,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,0BAA0B;AAC1B,KAAK;AACL;AACA;;;;;;;;;;;;AClZa;AACb;;AAEA;AACA,gBAAgB,mBAAO,CAAC,wBAAa;AACrC;;AAEA,gBAAgB,mBAAO,CAAC,mBAAQ;AAChC,gBAAgB,mBAAO,CAAC,oBAAS;AACjC,gBAAgB,mBAAO,CAAC,oBAAS;AACjC,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,gBAAgB,mBAAO,CAAC,qBAAU;AAClC,gBAAgB,mBAAO,CAAC,qBAAU;AAClC,gBAAgB,mBAAO,CAAC,mBAAQ;AAChC,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,gBAAgB,mBAAO,CAAC,uBAAY;AACpC,gBAAgB,mBAAO,CAAC,wBAAa;AACrC,gBAAgB,mBAAO,CAAC,uBAAY;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,uBAAuB;;AAEvB;AACA;AACA,cAAc;AACd;AACA,6BAA6B;;AAE7B;AACA;AACA,cAAc;AACd;AACA,iCAAiC;;AAEjC;AACA;AACA,cAAc;AACd;AACA,+BAA+B;;AAE/B;AACA;AACA,cAAc;AACd;AACA,4BAA4B;;AAE5B;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8DAA8D,kBAAkB;AAChF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,gGAAgG,eAAe,0GAA0G,cAAc;AACvO;AACA,cAAc,cAAc;AAC5B;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,+CAA+C;AAClE,gDAAgD;;AAEhD;AACA;AACA,wBAAwB,+CAA+C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD;AACA,uBAAuB;AACvB;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,wBAAwB;AACtC,cAAc,wBAAwB;AACtC,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kBAAkB;AACxE;AACA;AACA,sDAAsD,kBAAkB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,6BAA6B,uBAAuB;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa,MAAM;AACnB,YAAY,WAAW;AACvB,YAAY,OAAO;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,aAAa,UAAU,GAAG;AAC1B;AACA;AACA;AACA;;AAEA;AACA,YAAY,yBAAyB,GAAG,0BAA0B,KAAK,yBAAyB;AAChG,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB,+CAA+C;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wDAAwD,0BAA0B;AAClF,WAAW,UAAU,qBAAqB;AAC1C,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA,iDAAiD;AACjD;;AAEA;AACA,iGAAiG,0BAA0B;AAC3H,WAAW,UAAU,qBAAqB;AAC1C,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,QAAQ;AACnB,aAAa,UAAU,GAAG;AAC1B,YAAY,OAAO;AACnB,YAAY,qBAAqB,GAAG;AACpC;AACA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,aAAa,UAAU,GAAG;AAC1B,YAAY,OAAO;AACnB,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA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A;AACA;AACA;AACA,+CAA+C;AAC/C,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,gEAAgE,mBAAO,CAAC,mBAAQ;AAChF;AACA,CAAC;;;;;;;;;;;;ACnNY;AACb;;AAEA,WAAW,mBAAO,CAAC,4BAAiB;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA,6BAA6B;AAC7B,6CAA6C;AAC7C,2BAA2B;;AAE3B;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvMa;AACb;;AAEA;AACA,iBAAiB,mBAAO,CAAC,kCAAuB;;AAEhD;AACA,cAAc,mBAAO,CAAC,+BAAoB;;AAE1C;AACA,oBAAoB,mBAAO,CAAC,qCAA0B;;AAEtD;AACA,aAAa,mBAAO,CAAC,8BAAmB;;AAExC;AACA,eAAe,mBAAO,CAAC,gCAAqB;;AAE5C;AACA,YAAY,mBAAO,CAAC,6BAAkB;;AAEtC;AACA,YAAY,mBAAO,CAAC,6BAAkB;;AAEtC;AACA,gBAAgB,mBAAO,CAAC,uBAAY;;AAEpC;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,qFAAqF;;AAErF;AACA;AACA,UAAU;AACV;AACA;AACA,mDAAmD,mCAAmC;;AAEtF;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,iBAAiB;AAC5B,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA,kCAAkC,EAAE;;AAEpC;AACA;AACA,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,mBAAmB;AAC9B,WAAW,SAAS;AACpB,aAAa,mBAAmB;AAChC;AACA,qCAAqC;AACrC,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,oBAAoB;AACjC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA,iDAAiD,kBAAkB,mBAAmB;;AAEtF;AACA;AACA;AACA;AACA,mDAAmD,gCAAgC;;AAEnF;AACA;AACA;;AAEA;;AAEA,2DAA2D,kBAAkB,gBAAgB;;AAE7F;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,mBAAmB;AAC9B;AACA;AACA,qCAAqC;AACrC,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA,kCAAkC,uBAAuB;AACzD;AACA,UAAU;AACV,aAAa,kBAAkB;AAC/B;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,aAAa;AAC1B;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA,wBAAwB;AACxB,gEAAgE,QAAQ;AACxE;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,uBAAuB;AACzD;AACA,UAAU;AACV,WAAW,kBAAkB;AAC7B,aAAa;AACb;;AAEA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,aAAa;AAC1B;AACA;;AAEA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;;AAEA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpaa;AACb;;AAEA,gBAAgB,mBAAO,CAAC,mBAAQ;AAChC,gBAAgB,mBAAO,CAAC,mBAAQ;;AAEhC;AACA,kIAAkI,oBAAoB;AACtJ;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,yBAAyB;AACzB;AACA;AACA,2EAA2E,iBAAiB;AAC5F;AACA;AACA;AACA,eAAe;AACf,UAAU;AACV;AACA,eAAe;AACf,6CAA6C;AAC7C;AACA;AACA,eAAe;AACf;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,oBAAoB,gDAAgD;AACpE;AACA;;AAEA;AACA,6CAA6C,qBAAqB;;AAElE;AACA,yBAAyB;AACzB;AACA;AACA;AACA,0BAA0B,WAAW,KAAK;AAC1C;AACA;AACA,eAAe;;AAEf;AACA,UAAU,2BAA2B;AACrC;AACA;AACA,0BAA0B,YAAY,KAAK;AAC3C;AACA,eAAe;;AAEf;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;;;;;;;;;;AChLa;;AAEb;AACA;AACA,UAAU;AACV;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,sBAAW;;AAEjC;AACA,qCAAqC,eAAe;AACpD;AACA,UAAU;AACV,WAAW,mBAAmB;AAC9B,aAAa,UAAU,GAAG;AAC1B;AACA;;AAEA;AACA,mCAAmC,eAAe;AAClD;AACA,UAAU;AACV,WAAW,UAAU,GAAG;AACxB,WAAW,oBAAoB;AAC/B,aAAa,mBAAmB;AAChC;AACA;;AAEA;AACA,gCAAgC,eAAe;AAC/C;AACA,cAAc,4BAA4B;AAC1C,cAAc,0BAA0B;AACxC;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;;AAEA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACrGa;AACb;;AAEA,gBAAgB,mBAAO,CAAC,2BAAgB;;AAExC,kBAAkB;;AAElB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,oBAAoB;AACpB;;AAEA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB,GAAG,oBAAoB,yCAAyC;AAClG;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB,YAAY,WAAW;AACvB;AACA;;AAEA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,QAAQ;AACrB,YAAY,WAAW;AACvB;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;;AAEA;AACA;AACA,WAAW,mBAAmB;AAC9B,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,0BAA0B,IAAI,4BAA4B;AACtE,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChda;AACb;;AAEA;AACA,aAAa,mBAAO,CAAC,qBAAU;AAC/B;;AAEA,WAAW,mBAAO,CAAC,2BAAgB;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,QAAQ;AACzB;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;;AAEA;;;;;;;;;;;;ACpFY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,sDAA6B;AAC1C;;AAEA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,mBAAmB;AACnB,4BAA4B;AAC5B;AACA,8BAA8B,kBAAkB;AAChD;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;;;;;;;;;;;ACjDY;AACZ,aAAa,iDAAwB;AACrC,eAAe,mBAAO,CAAC,oBAAU;AACjC,eAAe,mBAAO,CAAC,sBAAW;;AAElC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB,QAAQ;;AAE1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM,OAAO;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AClKa;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,cAAc,GAAG,cAAc;AACnD,8BAA8B,mBAAO,CAAC,kBAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1PA;AACA;AACA,aAAa,mBAAO,CAAC,mBAAQ;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE,cAAc;AAChB;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChEA,iBAAiB,mBAAO,CAAC,kBAAO,EAAE,mBAAO,CAAC,2BAAgB;;;;;;;;;;;ACA1D,WAAW,+CAAsB;;AAEjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,OAAO,cAAc;AAC3C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,OAAO,cAAc;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;;AAEA;AACA,oBAAoB,kBAAkB;AACtC;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,YAAY,SAAS;;AAErB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,uDAAuD;;AAElE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,uDAAuD;;AAElE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,uCAAuC,yCAAyC;AAChF,MAAM;AACN;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA,qBAAqB;;AAErB;AACA;AACA;;AAEA;;AAEA,0EAA0E;AAC1E;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,sBAAsB,QAAQ;AAC9B,MAAM;AACN;AACA;AACA,sBAAsB,QAAQ;;AAE9B;AACA;AACA,sBAAsB,QAAQ;;AAE9B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACjZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kDAAkD,MAAM;;AAExD;AACA;AACA;AACA,8BAA8B,MAAM,mCAAmC,QAAQ;AAC/E;AACA,MAAM;AACN,8BAA8B,MAAM,kCAAkC,OAAO;AAC7E;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/UA,aAAa,sDAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,uBAAuB,gBAAgB;AACvC;AACA;;AAEA,oBAAoB,eAAe;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AChFA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,cAAc,mBAAO,CAAC,iBAAO;AAC7B,eAAe,mBAAO,CAAC,mBAAQ;AAC/B,iBAAiB,mBAAO,CAAC,qBAAU;AACnC,iBAAiB,mBAAO,CAAC,qBAAU;AACnC,iBAAiB,mBAAO,CAAC,qBAAU;AACnC,iBAAiB,mBAAO,CAAC,qBAAU;;;;;;;;;;;ACdnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,oBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,aAAa,sDAA6B;;AAE1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B,SAAS,QAAQ;;AAEjB,kBAAkB,QAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,oBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,aAAa,sDAA6B;;AAE1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B,SAAS,QAAQ;;AAEjB,kBAAkB,QAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,oBAAU;AACjC,aAAa,mBAAO,CAAC,qBAAU;AAC/B,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,aAAa,sDAA6B;;AAE1C;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,eAAe,mBAAO,CAAC,oBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,aAAa,sDAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B,SAAS,QAAQ;;AAEjB,kBAAkB,QAAQ;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACtIA,eAAe,mBAAO,CAAC,oBAAU;AACjC,aAAa,mBAAO,CAAC,qBAAU;AAC/B,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,aAAa,sDAA6B;;AAE1C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACxDA,eAAe,mBAAO,CAAC,oBAAU;AACjC,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,aAAa,sDAA6B;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA,SAAS,SAAS;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;ACnQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,mBAAO,CAAC,oBAAS;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;AClHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,iDAAwB;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS,OAAO;AAChB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;;;;AC5NA,oBAAoB,mBAAO,CAAC,4BAAiB;;AAE7C;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,iBAAiB;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,MAAM,KAA6B;AACnC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;;AAEA;AACA,8BAA8B,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE;AAC3F;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;;AAEA;AACA;AACA,gBAAgB,gBAAgB;AAChC;AACA;;AAEA;AACA;;AAEA;AACA;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,MAAM;AACN;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI;AACJ;;AAEA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;;AAEA;;AAEA,CAAC;;;;;;;;;;;AChFD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;;AAEA;AACA,yCAAyC;;AAEzC;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C;AACA,+CAA+C;AAC/C,+CAA+C;AAC/C,+CAA+C;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD;AACA,uDAAuD;AACvD,uDAAuD;AACvD,uDAAuD;AACvD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,QAAQ;AACtB;AACA,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;;AAEA;AACA,kBAAkB,QAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD;;AAEA;AACA;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,4BAA4B;AACnD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD,uBAAuB,2BAA2B;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB;AACtB,sBAAsB;;AAEtB;AACA;;AAEA,uBAAuB;AACvB,uBAAuB;;AAEvB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;;AAEA,0BAA0B;AAC1B,0BAA0B;;AAE1B;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;;AAEA,2BAA2B;AAC3B,2BAA2B;;AAE3B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB;AACpB,oBAAoB;;AAEpB;AACA;;AAEA,qBAAqB;AACrB,qBAAqB;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;;AAEA,cAAc,OAAO;;AAErB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,QAAQ;AACtB;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;;AAEtB;AACA;AACA;AACA;;AAEA,eAAe,QAAQ;AACvB;AACA;;AAEA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,gBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;;AAEA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,gBAAgB;AAClC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,cAAc;AAChC;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC,cAAc,gBAAgB;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,eAAe;AACjC,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA,kBAAkB,OAAO;AACzB;AACA,KAAK;AACL,IAAI,SAAS,IAA8B;AAC3C;AACA,aAAa,mBAAO,CAAC,mBAAQ;AAC7B;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA,OAAO;AACP;AACA;AACA,CAAC;;AAED,CAAC,EAAE,KAA6B,kEAAkE;;;;;;;;;;;;ACt1ErF;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,+BAA+B,mBAAO,CAAC,mCAAwB;AAC/D,cAAc,mBAAO,CAAC,oBAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,kBAAe;;;;;;;;;;;;AClJF;AACb;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,cAAc,mBAAO,CAAC,oBAAS;AAC/B,gBAAgB,mBAAO,CAAC,sBAAW;AACnC;AACA;AACA,oCAAoC;AACpC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AACD,kBAAe;;;;;;;;;;;;ACvFF;AACb;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,gBAAgB,GAAG,eAAe;AACvJ,wBAAwB,mBAAO,CAAC,8BAAmB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,uCAAuC;AAC1H;AACA;AACA,CAAC;AACD,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACtTA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,UAAU;AACvB;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClEA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACLA;AACA;;AAEa;;AAEb,wBAAwB,mBAAO,CAAC,yBAAc;AAC9C,0BAA0B,mBAAO,CAAC,kCAAuB;AACzD,sBAAsB,mBAAO,CAAC,8BAAmB;AACjD,mBAAmB,mBAAO,CAAC,2BAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,yBAAyB;AACzB,2BAA2B;AAC3B,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;;AAGzB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA,mCAAmC;;AAEnC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;AC7UD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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Ef;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAS;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,YAAY,gDAAQ;AACpB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,YAAY,gDAAQ;AACpB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,WAAW;AACzF,6EAA6E,WAAW;AACxF;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kCAAkC,+DAAwB,CAAC,oDAAgB;AACxI,qCAAqC,+DAAwB,GAAG,qGAAqG;AACrK,QAAQ,yDAAkB;AAC1B,MAAM;AACN;AACA,QAAQ,4DAAqB,MAAM,yDAAkB;AACrD,OAAO,YAAY,0YAA0Y,aAAa,kEAA2B,2GAA2G;AAChjB,QAAQ,uDAAgB;AACxB,MAAM;AACN,QAAQ,wDAAiB;AACzB,OAAO,wCAAwC;AAC/C;AACA,MAAM,MAAM,oDAAS;AACrB;AACA;AACA,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,mBAAmB,MAAM,gDAAK,EAAE;AAChC,cAAc,MAAM,gDAAK,EAAE;AAC3B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,aAAa,MAAM,gDAAK,EAAE;AAC1B,eAAe,MAAM,gDAAK,EAAE;AAC5B,yBAAyB,MAAM,gDAAK,EAAE;AACtC,eAAe,MAAM,gDAAK,EAAE;AAC5B,kBAAkB,MAAM,gDAAK,EAAE;AAC/B,mBAAmB,MAAM,gDAAK,EAAE;AAChC,iBAAiB,MAAM,gDAAK,EAAE;AAC9B,oBAAoB,MAAM,gDAAK,EAAE;AACjC,6BAA6B,MAAM,gDAAK,EAAE;AAC1C,eAAe,MAAM,gDAAK,EAAE;AAC5B,cAAc,MAAM,gDAAK,EAAE;AAC3B,gBAAgB,MAAM,gDAAK,EAAE;AAC7B,cAAc,MAAM,gDAAK,EAAE;AAC3B,mBAAmB,MAAM,oDAAS,yBAAyB,cAAc,IAAI;AAC7E;AACA,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,oDAAS;AACvB;AACA;AACA,iCAAiC,yEAA8B;AAC/D;AACA,aAAa;AACb,KAAK,iBAAiB,UAAU,MAAM,oDAAgB,EAAE,IAAI,IAAI;AAChE,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,gDAAK;AACvB,SAAS;AACT,kBAAkB,oDAAS;AAC3B,mCAAmC,cAAc;AACjD,SAAS,GAAG,IAAI;;AAEhB;AACA;AACA,uDAAuD;AACvD,kCAAkC,8DAAuB,GAAG,oBAAoB;AAChF,kCAAkC,8DAAuB,GAAG,eAAe;AAC3E,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,iBAAiB,6DAA6D,IAAI;;AAE7K;AACA;AACA;;AAEA;AACA;AACA;;AAEyC;;;;;;;;;;;;;AC3S5B;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;AAGA;AACA,IAAI,IAA6B;AACjC;AACA;;;;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAA0B;AAClC;AACA,MAAM,SAAS,IAA0C;AACzD,QAAQ,mCAAO,aAAa,gBAAgB;AAAA,kGAAC;AAC7C,MAAM,KAAK,EAEN;AACL,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,QAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,wCAAwC;AACxC,2CAA2C;AAC3C,+BAA+B;AAC/B,8BAA8B;AAC9B,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,2BAA2B;AAC3B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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A;AACA;AACA;;AAEA;;AAEA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,kBAAkB;AAC5C,+BAA+B,kBAAkB;AACjD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,iCAAiC,+BAAmB;;AAEpD;;AAEA,+CAA+C,aAAa;AAC5D,sBAAsB,+BAAmB;AACzC;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,iCAAiC,+BAAmB;;AAEpD;;AAEA,+CAA+C,aAAa;AAC5D,kBAAkB,+BAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA,iCAAiC,+BAA+B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA,4BAA4B,aAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA,iCAAiC,gCAAmB;;AAEpD;;AAEA,+CAA+C,aAAa;AAC5D,kBAAkB,gCAAmB;AACrC,gBAAgB,gCAAmB;AACnC,kBAAkB,gCAAmB;AACrC,gBAAgB,gCAAmB;AACnC;AACA;AACA;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,6BAA6B;AAC7B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA,iCAAiC,gCAAmB;;AAEpD;;AAEA,+CAA+C,aAAa;AAC5D,kBAAkB,gCAAmB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW;AAC/B,wBAAwB,YAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE,wCAAwC,2CAA2C;AACnF;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C,gCAAgC,iBAAiB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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,oBAAoB,OAAO;AAC3D;AACA;AACA,gCAAgC,eAAe,OAAO;AACtD;AACA;AACA;AACA;AACA,8DAA8D,iCAAiC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C,8BAA8B,8DAA8D;AAC5F;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,oDAAoD,0BAA0B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,gCAAgC;AACzF;AACA;AACA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA;AACA;AACA,wBAAwB,gCAAgC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA,iCAAiC,gCAAmB;;AAEpD;;AAEA,+CAA+C,aAAa;AAC5D;AACA,kBAAkB,gCAAmB;AACrC,sBAAsB,gCAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,2CAA2C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4BAA4B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA,4DAA4D,iDAAiD;AAC7G;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA,iCAAiC,iCAAmB;;AAEpD;;AAEA,+CAA+C,aAAa;AAC5D,kBAAkB,iCAAmB;AACrC,sBAAsB,iCAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0CAA0C;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA,wBAAwB,OAAO;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,wCAAwC;AACrE,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,wCAAwC;AACrE,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0CAA0C;AACvE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0CAA0C;AACvE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,yCAAyC;AACtE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0CAA0C;AACvE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA,6BAA6B,0CAA0C;AACvE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA,6BAA6B,0CAA0C;AACvE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA,6BAA6B,0CAA0C;AACvE,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,2CAA2C;AACjE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,2CAA2C;AACjE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,2CAA2C;AACxE,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,2CAA2C;AACjE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,yCAAyC;AAC/D,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,2CAA2C;AACjE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,yCAAyC;AAC/D;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA;AACA;AACA,sBAAsB,0CAA0C;AAChE,sBAAsB,0CAA0C;AAChE;AACA,aAAa;AACb;AACA,KAAK;AACL;;;AAGA,OAAO;AACP;AACA,iCAAiC,iCAAmB;;AAEpD;;AAEA,+CAA+C,aAAa;AAC5D,kBAAkB,iCAAmB;AACrC;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gBAAgB,IAAI,qCAAqC,IAAI,0DAA0D,IAAI,qCAAqC;AACvM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;;AAEA,+CAA+C,aAAa;AAC5D;AACA;AACA;AACA,iCAAiC;AACjC;AACA,2CAA2C,eAAe;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,0BAA0B,kDAAkD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,uCAAuC;AACtG,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mBAAmB;AAC3E,sDAAsD,mBAAmB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,wDAAwD,yBAAyB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA,yGAAyG,uDAAuD;AAChK,kFAAkF,0BAA0B;AAC5G,kHAAkH,0BAA0B;AAC5I,wFAAwF,0BAA0B;AAClH;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA,qGAAqG,mCAAmC;AACxI;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC;AACvE,iBAAiB;AACjB,KAAK;AACL,+BAA+B,aAAa;AAC5C,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kBAAkB;AACzD,gCAAgC,UAAU,kGAAkG,IAAI;AAChJ,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA,iBAAiB;AACjB,KAAK;AACL,+BAA+B,aAAa;AAC5C,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kEAAkE;AAClG,0BAA0B,kCAAkC;AAC5D;AACA,uBAAuB,4BAA4B;AACnD,wBAAwB,8BAA8B;AACtD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kFAAkF;AAClH,0BAA0B,wCAAwC;AAClE,uBAAuB,kCAAkC;AACzD,wBAAwB,oCAAoC;AAC5D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E,2CAA2C,YAAY;AACvD,iBAAiB;AACjB,KAAK;AACL,+BAA+B,aAAa;AAC5C,gCAAgC,2BAA2B;AAC3D;AACA;AACA;AACA,aAAa;AACb;;;AAGA,OAAO;AACP;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACr3TgK;AAClH;;AAEP;AACE;;AAE1C,uEAAuE;AACvE,cAAc,8DAAuB;AACrC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yGAAyG,2DAAoB,OAAO,2DAAoB,KAAK,UAAU,yDAAkB,KAAK,wBAAwB,8FAA8F,2DAAoB,OAAO,2DAAoB,KAAK,UAAU,yDAAkB,KAAK,wBAAwB;AACtb,IAAI,oDAAa;AACjB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,iBAAiB,2DAAoB;AACrC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,0EAA0E;AAC1E,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,iBAAiB,2DAAoB;AACrC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,mEAAmE;AACnE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,IAAI,2DAAoB;AACxB,cAAc,yDAAkB;AAChC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,uEAAuE;AACvE,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yGAAyG,2DAAoB,QAAQ,eAAe,2DAAoB,cAAc,2DAAoB,KAAK,UAAU,yDAAkB,KAAK,wCAAwC,8FAA8F,2DAAoB,QAAQ,eAAe,2DAAoB,cAAc,2DAAoB,KAAK,UAAU,yDAAkB,KAAK,wCAAwC;AAC1jB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,mBAAmB,2DAAoB;AACvC,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,+DAAwB,6CAA6C,yDAAkB;AAC3F;AACA,kFAAkF;AAClF,IAAI,qEAA8B;AAClC,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,mEAA4B;AAChC,EAAE;AACF,mBAAmB,2DAAoB;AACvC,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,+DAAwB,6CAA6C,yDAAkB;AAC3F;AACA,mEAAmE;AACnE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF;AACA,IAAI,2DAAoB;AACxB,cAAc,yDAAkB;AAChC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,uEAAuE;AACvE,eAAe,8DAAuB;AACtC,IAAI,4DAAqB;AACzB,IAAI,wDAAiB,yGAAyG,2DAAoB,QAAQ,2DAAoB,KAAK,UAAU,yDAAkB,KAAK,oBAAoB,8FAA8F,2DAAoB,QAAQ,2DAAoB,KAAK,UAAU,yDAAkB,KAAK,oBAAoB;AAChb,IAAI,oDAAa;AACjB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,kBAAkB,2DAAoB;AACtC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,0EAA0E;AAC1E,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,EAAE;AACF,kBAAkB,2DAAoB;AACtC,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,+DAAwB;AAC5B;AACA,mEAAmE;AACnE,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,IAAI,2DAAoB;AACxB,cAAc,yDAAkB;AAChC,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA,8DAA8D;AAC9D,IAAI,4DAAqB;AACzB,IAAI,wDAAiB;AACrB,IAAI,4DAAqB;AACzB,IAAI,oDAAa;AACjB,IAAI,0DAAmB;AACvB,IAAI,wDAAiB;AACrB,IAAI,wDAAiB;AACrB,IAAI,0DAAmB;AACvB,EAAE;AACF,iBAAiB,2DAAoB;AACrC,cAAc,yDAAkB;AAChC,IAAI,yDAAkB;AACtB,IAAI,yDAAkB;AACtB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,gEAAyB;AAC7B,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB,IAAI,uDAAgB;AACpB,IAAI,wDAAiB;AACrB;AACA;AACA;AACA,0BAA0B,uDAAY;AACtC;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,wCAAwC,gEAAyB,GAAG,kDAAkD,qCAAqC;AAC3J;AACA;AACA,CAAC;;AAED,oBAAoB,MAAiC;AACrD;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA,kBAAkB,MAAiC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oDAAK;AACb;AACA;AACA;AACA,QAAQ,oDAAK;AACb;AACA;AACA;AACA,QAAQ,qDAAM;AACd,oCAAoC,uDAAY;AAChD;AACA;AACA,QAAQ,qDAAM;AACd,oCAAoC,uDAAY;AAChD;AACA;AACA,YAAY,4DAAiB;AAC7B;AACA,qFAAqF,8CAA8C,+DAAwB,qBAAqB,+DAAwB,CAAC,4DAAwB;AACjO,iDAAiD,+DAAwB,GAAG,oHAAoH,8BAA8B,aAAa,wEAAwE,0CAA0C,kEAA2B,GAAG;AAC3X,eAAe,mDA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6CAA6C,8DAAuB,GAAG,WAAW,yDAAY,IAAI;AAClG,eAAe,mDAAmD,+DAAwB;AAC1F,cAAc,mDAAQ;AACtB;AACA;AACA,0BAA0B,yDAAY;AACtC;AACA,aAAa;AACb,KAAK,iBAAiB;AACtB,eAAe,mDAAmD,gEAAyB,4BAA4B,4BAA4B,sCAAsC,yBAAyB,QAAQ,yDAAY,IAAI,yBAAyB,wCAAwC,IAAI;;AAE/S;AACA;AACA;AACA,cAAc,yGAAyG;AACvH;;AAEA;AACA;AACA;AACA,cAAc,yGAAyG;AACvH;;AAE2F;;;;;;;;;;;;;;;;;AC5O3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuB;;;;;;;;;;;;;;;;ACZvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4C;;;;;;;;;;;;;;;;ACZ5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoC;;;;;;;;;;;;;;;;;;;;;;;;ACZsC;AACe;AAC3C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mFAAwB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mFAAwB;AACjC;AACA;AACA;AACA,SAAS,uDAAW;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mFAAwB;AAChC,YAAY,uDAAW,IAAI,kGAAgC;AAC3D;AACA;AACA;AACA;AACA,aAAa;AACb,0BAA0B,yBAAyB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mFAAwB;AACrC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,gCAAgC,SAAS;AACzC;AACA,wEAAwE,SAAS;AACjF,YAAY,uDAAW;AACvB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mFAAwB;AACjC;AACA;AACA;AACA,SAAS,uDAAW;AACpB;AACA;AACA;AACA;AACmG;;;;;;;;;;;;AC7HnG,iBAAiB,mBAAO,CAAC,0BAAe;;AAExC,aAAa,mBAAO,CAAC,0BAAe;AACpC,qBAAqB,mBAAO,CAAC,8BAAmB;AAChD,kBAAkB,mBAAO,CAAC,kCAAuB;;AAEjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,cAAc;AACd,gBAAgB;AAChB,iBAAiB;;AAEjB;AACA,gBAAgB;AAChB;AACA,CAAC;;;;;;;;;;;AC3ED;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,yDAAgC;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,oBAAoB;AACpB;AACA;AACA;;AAEA,kBAAkB,eAAe;AACjC,oBAAoB,eAAe;AACnC;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AClFA,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;ACpCA,aAAa,mBAAO,CAAC,4BAAiB;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACpEA,aAAa,mBAAO,CAAC,4BAAiB;AACtC,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;;AAEA;;;;;;;;;;;AC1BA,cAAc,mBAAO,CAAC,qCAA0B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,6BAA6B;AACzC;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,6BAA6B;AACzC;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtIA,SAAS,KAAK;AACd,SAAS,KAAK;AACd,SAAS,KAAK;AACd,SAAS,KAAK;;AAEd;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,eAAe;AACf;AACA;AACA;;AAEA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;ACjDA,oBAAoB,yDAAgC;AACpD;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBA,YAAY,mBAAO,CAAC,oBAAS;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,6BAA6B;AACzC;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA,aAAa,mBAAO,CAAC,4BAAiB;;AAEtC;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,CAAC;AACD;AACA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX,gBAAgB,SAAS;AACzB;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY;AACZ;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY;AACZ;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY;AACZ;AACA,WAAW;AACX;;AAEA;AACA,WAAW;AACX;AACA;;;;;;;;;;;AC9EA,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,YAAY,mBAAO,CAAC,oBAAS;;AAE7B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,sBAAsB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;ACrDA;AACA;AACA,UAAU;AACV;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,iBAAiB;AAC7B;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,4BAA4B;AACxC;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC;AACA;;AAEA,sBAAsB,YAAY;AAClC;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA,oBAAoB,gBAAgB;AACpC,sBAAsB,gBAAgB;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA,oBAAoB,YAAY;AAChC;AACA,sBAAsB,YAAY;AAClC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA,kBAAkB,kBAAkB;;AAEpC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA,iBAAiB;AACjB;;AAEA,oBAAoB,YAAY;AAChC,sBAAsB,YAAY;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,QAAQ;AACpB;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACzOA,mBAAmB,mBAAO,CAAC,4BAAiB;AAC5C,YAAY,mBAAO,CAAC,mBAAS;;AAE7B;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,SAAS;AACtB,aAAa,SAAS;AACtB;AACA,eAAe;AACf;AACA;;AAEA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,aAAa;AACzB,YAAY,aAAa;AACzB,YAAY,0BAA0B;AACtC;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;ACtKA,WAAW,mBAAO,CAAC,mBAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,cAAc,2BAA2B;AACzC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;AC1CA,aAAa,mBAAO,CAAC,4BAAiB;AACtC,SAAS,mBAAO,CAAC,2BAAgB;;AAEjC;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,WAAW;AACvB;AACA,WAAW;AACX;AACA;;AAEA,kBAAkB,eAAe;AACjC,oBAAoB,eAAe;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,iBAAiB;AAC7B;AACA,WAAW;AACX;;AAEA;AACA;;AAEA,oBAAoB,oBAAoB;AACxC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,eAAe;AAC3B;AACA,4BAA4B;AAC5B;AACA,kBAAkB,YAAY;AAC9B;AACA;;AAEA;AACA;;;;;;;;;;;AC/DA,aAAa,mBAAO,CAAC,4BAAiB;AACtC,YAAY,mBAAO,CAAC,oBAAS;AAC7B,cAAc,mBAAO,CAAC,qCAA0B;AAChD,gBAAgB,mBAAO,CAAC,yBAAc;AACtC,gBAAgB,mBAAO,CAAC,yBAAc;AACtC,uBAAuB,mBAAO,CAAC,gCAAqB;AACpD,oBAAoB,mBAAO,CAAC,6BAAkB;AAC9C,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,aAAa,mBAAO,CAAC,oCAAyB;AAC9C,yBAAyB,mBAAO,CAAC,mCAAwB;AACzD,cAAc,mBAAO,CAAC,sBAAW;AACjC,iBAAiB,mBAAO,CAAC,0BAAe;AACxC,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,eAAe,mBAAO,CAAC,uBAAY;AACnC,cAAc,mBAAO,CAAC,oBAAS;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA,qBAAqB,QAAQ;AAC7B;;AAEA,uBAAuB,QAAQ;AAC/B;;AAEA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,YAAY,WAAW;AACvB;AACA;AACA;;AAEA,kBAAkB,cAAc;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC;AACA;;AAEA,qBAAqB,QAAQ;AAC7B,uBAAuB,QAAQ;AAC/B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,QAAQ;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,yBAAyB;AACrC,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;;AAEA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;;AAEA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2BAA2B,SAAS;AACpC;;AAEA;AACA,sBAAsB,OAAO;AAC7B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,UAAU;AACtB,YAAY,wBAAwB;AACpC,YAAY,UAAU;AACtB,YAAY,+BAA+B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,WAAW;AACvB,YAAY,WAAW;AACvB,YAAY,sBAAsB;AAClC,YAAY,gCAAgC;AAC5C;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,mBAAmB;AACrC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,iBAAiB;AAC/B,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,cAAc,aAAa;AAC3B,gBAAgB,mBAAmB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,qBAAqB;AACjC,YAAY,aAAa;AACzB,YAAY,6BAA6B;AACzC;AACA;AACA;;AAEA;AACA;AACA,IAAI;AACJ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB;AACA,cAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AClfA,aAAa,mBAAO,CAAC,4BAAiB;AACtC,iBAAiB,mBAAO,CAAC,yBAAc;;AAEvC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,aAAa;AACb,kBAAkB;AAClB,YAAY;AACZ,eAAe;AACf,oBAAoB;;AAEpB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA,wBAAwB;AACxB;AACA;;;;;;;;;;;AC9BA,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,kBAAkB,mBAAO,CAAC,2BAAgB;AAC1C,uBAAuB,mBAAO,CAAC,gCAAqB;AACpD,eAAe,mBAAO,CAAC,wBAAa;AACpC,gBAAgB,mBAAO,CAAC,yBAAc;AACtC,YAAY,mBAAO,CAAC,mBAAS;AAC7B,YAAY,mBAAO,CAAC,oBAAS;AAC7B,eAAe,mBAAO,CAAC,uBAAY;;AAEnC;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,YAAY;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,MAAM;AAClB,YAAY,eAAe;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,YAAY;AACxB;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;;AAEA;AACA;AACA;AACA,YAAY,6DAA6D;AACzE,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA,eAAe;AACf;;AAEA,kBAAkB,kBAAkB;AACpC;AACA;;AAEA,oBAAoB,sBAAsB;AAC1C;AACA;;AAEA;AACA,qBAAqB;AACrB;;AAEA,sBAAsB,wBAAwB;AAC9C;;AAEA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,wBAAwB;AACtC;AACA;;AAEA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,eAAe;AAC3B,YAAY,yBAAyB;AACrC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,aAAa;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,MAAM;AACN;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,qBAAqB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;;;;;;;;;;ACzUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,+BAA+B;AAC/B;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA;;AAEA,0BAA0B;AAC1B;AACA;;AAEA,cAAc;AACd;AACA;;;;;;;;;;;AC9DA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,iBAAiB;AAC7B;AACA,eAAe;AACf;AACA;;;;;;;;;;;ACRA,YAAY,mBAAO,CAAC,oBAAS;AAC7B,aAAa,mBAAO,CAAC,oCAAyB;AAC9C,cAAc,mBAAO,CAAC,qCAA0B;AAChD,WAAW,mBAAO,CAAC,mBAAQ;AAC3B,mBAAmB,mBAAO,CAAC,4BAAiB;AAC5C,cAAc,mBAAO,CAAC,oBAAS;;AAE/B;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY,4BAA4B;AACxC;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,6BAA6B;AACzC;AACA,mBAAmB;AACnB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,QAAQ;AACpB,YAAY,MAAM;AAClB,YAAY,iCAAiC;AAC7C;AACA,6BAA6B;AAC7B;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,gBAAgB;AAC5B;AACA,sBAAsB;AACtB;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;ACnKA,YAAY,mBAAO,CAAC,oBAAS;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;;;AC9DA,YAAY,mBAAO,CAAC,oBAAS;;AAE7B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,iBAAiB;AACnC;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;AChFA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;;AAEA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,gBAAgB;AAClC,oBAAoB,gBAAgB;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChGA;AACA;AACA;AACA;;AAEA;;AAEY;;AAEZ,cAAc,mBAAO,CAAC,oBAAS;;AAE/B;AACA;AACA;AACA;AACA,qBAAqB,oDAAoD;AACzE;AACA,IAAI;AACJ;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,YAAY;AAC9B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,sBAAsB,QAAQ;AAC9B;AACA;AACA,IAAI;AACJ;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,oBAAoB,SAAS;AAC7B;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;;AAEA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;;;;;;AC/foC;AACqC;AAClE,8BAA8B,6CAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC/B0C;AACnC,8BAA8B,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACpB2C;AACN;AACgB;AAC9C;AACP;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AACtC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kDAAE;AACzB;AACA,uBAAuB,kEAAU;AACjC;AACA,uBAAuB,wDAAK;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACvEuD;AACJ;AACmB;AAC1B;AACV;AAC3B;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B,qBAAqB,gEAAY;AACjC;AACA;AACA;AACA;AACA,qCAAqC,iFAA4C;AACjF;AACA;AACA;AACA,YAAY,iFAA4C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAA4C;AAC5D;AACA;AACA;AACA,gBAAgB,oEAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA,KAAK,0DAAiB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,mDAAc;AACpC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACzGkC;AACuB;AAClD;AACP;AACA,mBAAmB;AACnB;AACA,YAAY,iFAA4C;AACxD;AACA;AACA;AACA,YAAY,sEAAe;AAC3B;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;;;;;ACd0C;AACnC,8BAA8B,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACXoC;AACM;AACI;AACc;AACa;AACb;AACrD,4BAA4B,6CAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA,2BAA2B,6DAAkB;AAC7C;AACA;AACA;AACA,+BAA+B,qEAAmB;AAClD;AACA;AACA,4CAA4C,qEAAmB;AAC/D;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAK;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1GO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACT0C;AACA;AACI;AAC2B;AACb;AACyB;AAC9E,gCAAgC,mDAAU;AACjD;AACA;AACA;AACA;AACA;AACO,sBAAsB,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uEAAkB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA,mBAAmB,6DAAkB;AACrC;AACA;AACA;AACA,mBAAmB,6DAAkB;AACrC;AACA;AACA;AACA,uBAAuB,qEAAmB;AAC1C;AACA;AACA;AACA,+BAA+B,mDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA,mBAAmB,6DAAkB;AACrC;AACA;AACA;;;;;;;;;;;;;;;;;AC9I8C;AACvC,kCAAkC,uDAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACxB+C;AACK;AACN;AACuC;AACnD;AACuB;AAClD,yBAAyB,uDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAAa;AAChD;AACA;AACA;AACA,uCAAuC,4CAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uEAAkB,MAAM;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAAa;AAChD;AACA,oBAAoB,4DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,iBAAiB,iFAA4C;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC,oBAAoB,wCAAwC,EAAE,2CAAM;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sEAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA,qBAAqB,iFAA4C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAA4C;AAC5D;AACA;AACA;AACA,gBAAgB,sEAAe;AAC/B;AACA;AACA;AACA;AACA,aAAa,iFAA4C;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iFAA4C;AAC5D;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAe;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC5NyC;AACE;AACI;AACkB;AAC1D;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mEAAmE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0EAAmB;AACzD;AACA;AACA,YAAY,sDAAO;AACnB;AACA;AACA;AACA;AACA,oBAAoB,wDAAQ;AAC5B;AACA;AACA;AACA;AACA;AACA,yCAAyC,0EAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,0EAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,oEAAoE,0EAAmB;AACvF;;;;;;;;;;;;;;;;ACvIA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;AChB0C;AACA;AACO;AAC1C,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,mDAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,qCAAqC,mDAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA,0BAA0B,mDAAU;AACpC;AACA;AACA;AACA;AACA,uBAAuB,8DAAW;AAClC;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC5E+C;AACJ;AACA;AACI;AACyB;AACjE,oCAAoC,mDAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,uDAAY;AAC5D;AACA;AACA;AACA;AACA,6BAA6B,6DAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,6DAAmB;AAClC;AACA;AACO;AACP;AACA;AACA,oBAAoB,aAAa;AACjC,qBAAqB,0BAA0B;AAC/C,oBAAoB,6BAA6B;AACjD,uBAAuB,6BAA6B;AACpD,sBAAsB,oCAAoC;AAC1D,uBAAuB,qDAAqD;AAC5E,sBAAsB,oCAAoC;AAC1D,mBAAmB,iCAAiC;AACpD,oBAAoB;AACpB;AACA,CAAC;AACD,oCAAoC,uDAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;AC/HkD;AACR;AACW;AACS;AACtB;AACxC;AACO;AACP;AACA;AACA,QAAQ,8DAAW;AACnB;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAO;AAC3C;AACA;AACA,WAAW,qDAAS;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO,sCAAsC,6DAAe;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA,yBAAyB,0EAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvF0B;AACyB;AAC5C;AACP,WAAW,+DAAS,GAAG,uCAAE;AACzB;;;;;;;;;;;;;;;;;;;ACJ2C;AACb;AACE;AACzB;AACP,eAAe,mDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2CAAI,UAAU,6CAAK;AAClD;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;AChB2C;AACpC,kBAAkB,mDAAU;AAC5B;AACP;AACA;AACA;AACA,eAAe,mDAAU;AACzB;;;;;;;;;;;;;;;;;;;;;ACP2C;AACD;AACH;AACK;AACd;AACvB;AACP;AACA;AACA,YAAY,sDAAO;AACnB;AACA;AACA,YAAY,wDAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAO;AAClD,oDAAoD,mDAAG;AACvD;AACA;AACA;AACA;AACA,eAAe,mDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC,2BAA2B,2CAAI;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;AC3D2C;AACO;AACC;AAC5C;AACP;AACA,6BAA6B,mDAAU;AACvC;AACA;AACA,mBAAmB,mDAAU,CAAC,8DAAW;AACzC;AACA;AACA,eAAe,+DAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;ACb2C;AACiB;AACD;AACpD;AACP;AACA,mBAAmB,mDAAU,CAAC,wEAAgB;AAC9C;AACA;AACA,eAAe,uEAAa;AAC5B;AACA;;;;;;;;;;;;;;;;;;;;ACV2C;AACD;AACM;AACT;AACvC;AACO;AACP,QAAQ,4DAAU;AAClB;AACA;AACA;AACA;AACA,0DAA0D,mDAAG,SAAS,sDAAO;AAC7E;AACA,eAAe,mDAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,SAAS;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5D2C;AACA;AACG;AACvC,0CAA0C,mDAAK;AACtD,SAAS,0DAAS;AAClB;AACA;AACA;AACA,oBAAoB,mDAAK;AACzB;AACA,eAAe,mDAAU;AACzB,8DAA8D,gCAAgC;AAC9F;AACA,KAAK;AACL;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA,oBAAoB,0CAA0C;AAC9D;;;;;;;;;;;;;;;;;;;;ACnB2C;AACO;AACD;AACT;AACjC;AACP;AACA;AACA;AACA,QAAQ,8DAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,mDAAU;AAC9F;AACA;AACA,WAAW,6DAAQ,aAAa,qDAAS;AACzC;;;;;;;;;;;;;;;;;;;ACrBkD;AACV;AACmB;AACpD;AACP;AACA,QAAQ,8DAAW;AACnB;AACA,eAAe,uEAAa;AAC5B;AACA;AACA,eAAe,qDAAS;AACxB;AACA;;;;;;;;;;;;;;;;;;;;;;ACZ0C;AACF;AACa;AACS;AACvD;AACP;AACA,YAAY,sDAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAS;AACpB;AACO;AACP;AACA;AACA;AACA;AACO,6BAA6B,6DAAe;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,2BAA2B;AACvD;AACA,qCAAqC,0EAAiB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC9D2C;AACpC;AACP;AACA,mBAAmB,mDAAU;AAC7B;AACA;AACA,mBAAmB,mDAAU,iDAAiD,mBAAmB;AACjG;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;;;;;;;;;;;;;;;;;;;;ACX2C;AACA;AACG;AACI;AAC3C;AACP;AACA,QAAQ,0DAAS;AACjB;AACA;AACA,aAAa,8DAAW;AACxB;AACA;AACA,SAAS,8DAAW;AACpB,oBAAoB,mDAAK;AACzB;AACA,eAAe,mDAAU;AACzB,oBAAoB,0DAAS;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA,YAAY,4BAA4B;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnCiG;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,sCAAsC,+DAAc,eAAe,kEAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5D2C;AACX;AACY;AACrC,yCAAyC,mDAAK;AACrD,WAAW,6CAAK,OAAO,wDAAK;AAC5B;;;;;;;;;;;;;;;;;ACLiG;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kEAAqB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,kEAAqB;AAC7D;AACA,sCAAsC,+DAAc;AACpD;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzCsC;AAC/B;AACP,WAAW,mDAAQ;AACnB;;;;;;;;;;;;;;;;;ACHsC;AAC/B;AACP,WAAW,mDAAQ;AACnB;;;;;;;;;;;;;;;;;ACHiG;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kEAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+DAAc,eAAe,kEAAqB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AClE2C;AACA;AACpC,2CAA2C,mDAAK;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,mDAAU;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC5B2C;AACH;AACG;AACI;AACxC,kCAAkC,mDAAK;AAC9C,0BAA0B,oDAAM;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mDAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAuB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sEAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjF2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAU;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnC2C;AACI;AACxC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,mDAAU;AAC1C;AACA;AACA,qBAAqB,uDAAY;AACjC;AACA;;;;;;;;;;;;;;;;;;;;;;AClBgD;AACd;AACJ;AACoB;AACJ;AACF;AACrC;AACP;AACA,+CAA+C,+CAAM,sCAAsC,oDAAQ,EAAE,2CAAI,uBAAuB,+DAAc,iBAAiB,2DAAY,WAAW,wDAAU;AAChM;;;;;;;;;;;;;;;;;;;;;;ACTgD;AACd;AACI;AACQ;AACI;AACN;AACrC;AACP;AACA,+CAA+C,+CAAM,sCAAsC,oDAAQ,EAAE,mDAAQ,uBAAuB,+DAAc,iBAAiB,2DAAY,WAAW,wDAAU;AACpM;;;;;;;;;;;;;;;;;;ACT2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mDAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACpCsC;AACM;AACrC;AACP,WAAW,mDAAQ,CAAC,oDAAQ;AAC5B;;;;;;;;;;;;;;;;;;;;;;ACJ4B;AACc;AACuD;AAC1F;AACP;AACA,0DAA0D,sDAAI,qBAAqB,yCAAG;AACtF;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,iCAAiC,kEAAqB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAqB;AACzD;AACA;AACA,kCAAkC,+DAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;;;;;;;;;;;;;;;;;;AClF+E;AAC/E;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,8FAA+B;AACjF;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACjC2C;AACI;AACxC;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,kCAAkC,mDAAU;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kEAAuB;AACpD;AACA;AACA,6BAA6B,mEAAwB;AACrD;AACA;AACA;AACA,6BAA6B,sEAA2B;AACxD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3B2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClD2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACxDwC;AACF;AACD;AACrC;AACA,eAAe,6CAAO;AACtB;AACO;AACP,uBAAuB,mDAAQ,GAAG,qDAAS;AAC3C;;;;;;;;;;;;;;;;;ACRiD;AAC1C;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iHAAiH;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,yDAAa;AACvC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;;;;;;;;;;;;;;;;AC7D2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB8C;AACI;AAC3C;AACP;AACA,QAAQ,8DAAW;AACnB;AACA,2BAA2B,0DAAM;AACjC;AACA;AACA,2BAA2B,0DAAM;AACjC;AACA;;;;;;;;;;;;;;;;;;;ACX4B;AACc;AACuD;AAC1F;AACP;AACA,2DAA2D,sDAAI,qBAAqB,yCAAG;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAqB;AACzD;AACA;AACA,iCAAiC,+DAAc;AAC/C;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACnE2C;AAC+B;AAC9B;AACrC;AACP;AACA;AACA,mBAAmB,wDAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,mDAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzC2C;AAC+B;AAC9B;AACrC;AACP;AACA;AACA,mBAAmB,wDAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kFAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,mDAAU;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxDiG;AAC1F;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,+DAAc,oBAAoB,kEAAqB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kEAAqB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7B2C;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,mDAAU;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5C2C;AACP;AACY;AACzC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mDAAU;AACtC;AACA;AACA,wBAAwB,4CAAI;AAC5B,yBAAyB,4CAAI;AAC7B,4BAA4B,4CAAI;AAChC,kCAAkC,4CAAI;AACtC,wCAAwC,4CAAI;AAC5C,YAAY,4DAAU;AACtB;AACA;AACA;AACA;AACA;AACA,mDAAmD,4CAAI;AACvD,qDAAqD,4CAAI;AACzD,2DAA2D,4CAAI;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACnEgD;AACL;AACpC;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,mDAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wDAAU;AACzB;;;;;;;;;;;;;;;;;;;;AC3C2C;AACS;AACR;AACU;AAC/C,kCAAkC,mDAAK;AAC9C,WAAW,yDAAW,MAAM,kEAAU,KAAK,4DAAY;AACvD;;;;;;;;;;;;;;;;;;;ACN2C;AACH;AACyD;AAC1F,sDAAsD,mDAAK;AAClE;AACA,8BAA8B,oDAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kEAAqB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA,uBAAuB,+DAAc,qBAAqB,kEAAqB;AAC/E;AACA;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvD2C;AACI;AACxC;AACP,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;AClB2C;AACI;AACkB;AAC1D;AACP;AACA;AACA;AACA,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,6BAA6B,sDAAe;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;AC3C2C;AACI;AACwB;AAChE;AACP,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA,qCAAqC,0DAAiB;AACtD;AACA,8BAA8B,4DAA4D;AAC1F,6BAA6B,2DAA2D;AACxF,6BAA6B,2DAA2D;AACxF,aAAa;AACb,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;AChB2C;AACI;AACxC;AACP,eAAe,mDAAU;AACzB,wBAAwB,uDAAY;AACpC;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA,SAAS;AACT;AACA,KAAK;AACL;;;;;;;;;;;;;;;;;;;;;;;;ACf0D;AACN;AACJ;AACM;AACY;AACpB;AACI;AACF;AACzC;AACP;AACA,YAAY,8EAAmB;AAC/B,mBAAmB,uEAAkB;AACrC;AACA,iBAAiB,0DAAS;AAC1B,mBAAmB,iEAAe;AAClC;AACA,iBAAiB,8DAAW;AAC5B,mBAAmB,6DAAa;AAChC;AACA,iBAAiB,4DAAU;AAC3B,mBAAmB,mEAAgB;AACnC;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxB+C;AACxC,qBAAqB,uDAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACR4C;AACrC,mCAAmC,qDAAW;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxBkD;AAC3C,sCAAsC,2DAAc;AAC3D;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACvB8C;AACF;AACrC,yBAAyB,qDAAW;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mEAAsB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAwB;AACpC;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACzBkD;AAC3C,4BAA4B,2DAAc;AACjD;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACvBkC;AAC3B,0BAA0B,2CAAM;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC9EyC;AAClC,6BAA6B,iDAAS;AAC7C,uCAAuC,qDAAa;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,UAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5C4C;AACrC,0BAA0B,qDAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3BkD;AAC3C,6BAA6B,2DAAc;AAClD;;;;;;;;;;;;;;;;;;;ACF8D;AACM;AAC7D,oCAAoC,6EAAuB,CAAC,uEAAoB;AAChF;;;;;;;;;;;;;;;;;;;ACHmC;AACM;AACzC,0BAA0B,yDAAa,CAAC,mDAAU;AAClD;;;;;;;;;;;;;;;;;;;ACHqC;AACM;AAC3C,2BAA2B,2DAAc,CAAC,qDAAW;AACrD;;;;;;;;;;;;;;;;;;;ACHqC;AACM;AAC3C,2BAA2B,2DAAc,CAAC,qDAAW;AACrD;;;;;;;;;;;;;;;;;;ACHA;AACP;AACA;AACA;AACA;AACA;AACO;AACA;;;;;;;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;ACAA;AACP;AACA;AACO;;;;;;;;;;;;;;;;ACHP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;ACVP;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,EAAE,0BAA0B,MAAM,IAAI,eAAe,gBAAgB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACM;;;;;;;;;;;;;;;;;ACboC;AACpC;AACP;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA,uDAAuD,mDAAU;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACfO;AACP,uBAAuB,YAAY;AACnC;;;;;;;;;;;;;;;;ACFO;AACP;AACA;;;;;;;;;;;;;;;;ACFO;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;AACP;AACA;;;;;;;;;;;;;;;;ACFO;AACP;AACA;;;;;;;;;;;;;;;;;ACFuE;AAChE;AACP,iCAAiC,0DAAiB;AAClD;;;;;;;;;;;;;;;;;ACHiE;AAC1D;AACP,iCAAiC,sDAAe;AAChD;;;;;;;;;;;;;;;;;ACHoC;AAC7B;AACP,YAAY,iDAAO;AACnB;;;;;;;;;;;;;;;;ACHO;AACP;AACA;;;;;;;;;;;;;;;;;ACF2C;AACpC;AACP,oCAAoC,mDAAU;AAC9C;;;;;;;;;;;;;;;;ACHO;AACP;AACA;;;;;;;;;;;;;;;;ACFO;AACP;AACA;;;;;;;;;;;;;;;;ACFO;;;;;;;;;;;;;;;;;;ACA+B;AAC/B;AACP;AACA;AACO;AACP;AACA,eAAe,+CAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACdsD;AACI;AACE;AACI;AACpB;AACJ;AACF;AAC2B;AACM;AAChE;AACP,kCAAkC,0DAAiB;AACnD,eAAe,6EAAqB;AACpC;AACA,aAAa,yDAAW;AACxB,eAAe,mEAAgB;AAC/B;AACA,aAAa,qDAAS;AACtB,eAAe,uEAAkB;AACjC;AACA,uCAAuC,sDAAe;AACtD,eAAe,yEAAmB;AAClC;AACA;AACA,sBAAsB,mDAAQ,qCAAqC,OAAO;AAC1E,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC5BO;AACP,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACLiE;AAC1D;AACP,8BAA8B,sDAAe;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;;;;;;;;;;;;;;;;AC7BuE;AAChE;AACP,oBAAoB,0DAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACToD;AAC7C;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,6DAAe;AACnC;AACA;;;;;;;;;;;;;;;;;;;ACVqD;AACT;AACD;AACpC,kGAAkG,6DAAe;AACxH;AACA;AACA;AACA,0BAA0B,mDAAU;AACpC;AACA;AACA,WAAW,yDAAW;AACtB;;;;;;;;;;;;;;;;;;;ACX2C;AACiC;AACvB;AAC9C;AACP;AACA,sCAAsC,mDAAU;AAChD;AACA;AACA,2BAA2B,8DAAkB;AAC7C,kCAAkC,8DAAkB;AACpD;AACA;AACA;AACA,mBAAmB,mDAAU,CAAC,4CAAa;AAC3C;AACA,eAAe,mDAAU;AACzB;;;;;;;;;;;;AChBa;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,sBAAW;AACnC,gCAAgC,mBAAO,CAAC,0CAAgC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uBAAuB;;;;;;;;;;;;ACtDV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB,mBAAO,CAAC,kCAAuB;AACtD,qBAAqB,mBAAO,CAAC,6BAAqB;AAClD,mBAAmB,mBAAO,CAAC,gCAAqB;AAChD,aAAa,mBAAO,CAAC,wBAAa;AAClC,eAAe,mBAAO,CAAC,qBAAU;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB,mBAAmB,qBAAqB,gBAAgB,wBAAwB;AAC9I,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnHa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,qBAAU;AACjC,wBAAwB,mBAAO,CAAC,mCAAwB;AACxD,aAAa;AACb;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;AChBa;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,yBAAc;AACzC,mBAAmB,mBAAO,CAAC,yBAAc;AACzC,qBAAqB,mBAAO,CAAC,2BAAgB;AAC7C,gCAAgC,mBAAO,CAAC,0CAAgC;AACxE,4BAA4B,mBAAO,CAAC,kCAAuB;AAC3D,qBAAqB,mBAAO,CAAC,4CAAiC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,wBAAwB;;;;;;;;;;;;ACzKX;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,mBAAO,CAAC,2BAAgB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2BAA2B;;;;;;;;;;;;AC3Cd;AACb;AACA;AACA;AACA,eAAe,gBAAgB,sCAAsC,kBAAkB;AACvF,8BAA8B;AAC9B;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,CAAC;AACD,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C,iBAAiB,mBAAO,CAAC,uBAAY;AACrC,qBAAqB,mBAAO,CAAC,2BAAgB;AAC7C,qBAAqB,mBAAO,CAAC,4CAAiC;AAC9D,eAAe,mBAAO,CAAC,qBAAU;AACjC,wBAAwB,mBAAO,CAAC,mCAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,sBAAsB;;;;;;;;;;;;ACpPT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,gBAAgB,mBAAO,CAAC,0BAAgB;AACxC,iBAAiB,mBAAO,CAAC,4BAAiB;AAC1C,mBAAmB,mBAAO,CAAC,8BAAmB;AAC9C,4BAA4B,mBAAO,CAAC,uCAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD,oBAAoB;AACpB;AACA,gDAAgD,oGAAoG;AACpJ;;;;;;;;;;;;AC3Ia;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;;;;;;;;;;;;AClBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,kBAAkB,6EAA6E;;;;;;;;;;;;ACFpG;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB;AACA;AACA;AACA,CAAC;AACD,sBAAsB;;;;;;;;;;;;ACPT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,+BAA+B;;;;;;;;;;;;ACZlB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA,yGAAyG,uCAAuC;AAChJ;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,2BAA2B;;;;;;;;;;;;ACdd;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,0BAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;;;;;;;;;;;AClBT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA,6BAA6B,YAAY;AACzC;AACA,uBAAuB;;;;;;;;;;;;ACLV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACLH;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,kBAAkB,wCAAwC,2CAA2C,IAAI;;;;;;;;;;;;ACF3G;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA,kBAAkB;;;;;;;;;;;;ACLL;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA,gBAAgB;;;;;;;;;;;;ACLH;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,mBAAO,CAAC,sBAAY;AACrC;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,kBAAkB;AAClE;AACA;AACA,qBAAqB;;;;;;;;;;;;ACtBR;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,mBAAO,CAAC,0BAAe;AAC1C,qBAAqB,mBAAO,CAAC,mCAAwB;AACrD,iBAAiB,mBAAO,CAAC,wBAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;;;;;;ACvPa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAuD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kCAAkC,mDAAmD,GAAG,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,EAAE;AACvF;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA,mFAAmF,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,4BAA4B,kBAAkB;AAC9C,yBAAyB,kBAAkB;AAC3C;AACA,yBAAyB,kBAAkB;AAC3C,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA,wBAAwB,wCAAwC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,8CAA8C,mDAAmD,GAAG,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,6CAA6C,mDAAmD,GAAG,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8CAA8C,mDAAmD,GAAG,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,qCAAqC,kEAAkE,GAAG,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,yDAAyD,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC,2CAA2C,mDAAmD,GAAG,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,6CAA6C,mDAAmD,GAAG,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,qDAAqD,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,GAAG;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,UAAU;AACV;AACA;AACA;AACA,mBAAmB,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,EAAE;AAC/C,0CAA0C,GAAG,SAAS,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC,UAAU,yBAAyB;AACnC;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,GAAG;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK;AACvB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA,kCAAkC,mDAAmD,GAAG,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,8CAA8C,KAAK,MAAM,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,eAAe,QAAQ;AACvB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA,kCAAkC,6BAA6B,GAAG,GAAG;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA,8BAA8B,mDAAmD,GAAG,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM;AACf;AACA;AACA,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,KAAK;AAC5B;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA,iEAAe,SAAS,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACx0FzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B,+BAA+B,gBAAgB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;AACzF,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wBAAwB;AACnC;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,2BAA2B,gBAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB,2BAA2B,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C;AACA;AACA,WAAW,uBAAuB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,mCAAmC;AAChD,aAAa,sCAAsC;AACnD,aAAa,wCAAwC;AACrD,aAAa,qCAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wBAAwB;AACrC,aAAa,yBAAyB;AACtC,aAAa,2BAA2B;AACxC,aAAa,0BAA0B;AACvC;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,WAAW;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,oBAAoB,qCAAqC;AACzD,oBAAoB,iCAAiC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa,QAAQ,GAAG;AACrC,iBAAiB,OAAO;AACxB,aAAa,aAAa,MAAM,EAAE;AAClC;AACA,OAAO,UAAU,mCAAmC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,UAAU;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C,oCAAoC,YAAY;AAChD;AACA;AACA,4CAA4C,YAAY;AACxD,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA,mCAAmC,YAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,+BAA+B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEyQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/rCzQ;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMi+B,aAAa,GAAG,OAAOC,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA5D;AACA,MAAMC,UAAU,GAAG,OAAnB;;AACA,SAASC,kBAAT,CAA4BC,GAA5B,EAAiC;AAC7B,SAAO,IAAIN,2DAAJ,CAAkB;AAAK;AAAvB,IAAmDE,aAAa,IAAK,8BAA6BI,GAAI,eAAtG,CAAP;AACH;;AACD,SAASC,iBAAT,GAA6B;AACzB,SAAO,IAAIP,2DAAJ,CAAkB;AAAK;AAAvB,IAAkDE,aAAa,IAAI,kEAAnE,CAAP;AACH;;AACD,SAASM,kBAAT,GAA8B;AAC1B,SAAO,IAAIR,2DAAJ,CAAkB;AAAK;AAAvB,IAAmDE,aAAa,IAAI,+DAApE,CAAP;AACH;;AACD,SAASO,kBAAT,CAA4BC,OAA5B,EAAqC;AACjC,SAAO,IAAIV,2DAAJ,CAAkB;AAAK;AAAvB,IAAmDE,aAAa,IAClE,+CAA8CQ,OAAQ,8BADpD,CAAP;AAEH;;AACD,SAASC,iBAAT,CAA2BD,OAA3B,EAAoC;AAChC,SAAO,IAAIV,2DAAJ,CAAkB;AAAK;AAAvB,IAAkDE,aAAa,IAAK,kDAAiDQ,OAAQ,EAA7H,CAAP;AACH;;AACD,SAASE,eAAT,CAAyBlxC,QAAzB,EAAmC;AAC/B,SAAO,IAAIswC,2DAAJ,CAAkB;AAAK;AAAvB,IAAgDE,aAAa,IAAK,8CAA6CxwC,QAAS,EAAxH,CAAP;AACH;;AACD,SAASmxC,mBAAT,CAA6BC,oBAA7B,EAAmDhjE,KAAnD,EAA0D;AACtD,SAAO,IAAIkiE,2DAAJ,CAAkB;AAAK;AAAvB,IAAqDE,aAAa,IAAK,uCAAsCY,oBAAqB,IAAGhjE,KAAM,EAA3I,CAAP;AACH;;AACD,SAASijE,cAAT,GAA0B;AACtB,SAAO,IAAIf,2DAAJ,CAAkB;AAAK;AAAvB,IAA8CE,aAAa,IAC9D,wFADG,CAAP;AAEH;;AACD,SAASc,iBAAT,GAA6B;AACzB,SAAO,IAAIhB,2DAAJ,CAAkB;AAAK;AAAvB,IAAiDE,aAAa,IAAI,yEAAlE,CAAP;AACH;;AACD,SAASe,YAAT,CAAsBC,YAAtB,EAAoCC,WAApC,EAAiD;AAC7C,SAAO,IAAInB,2DAAJ,CAAkB;AAAK;AAAvB,IAA4CE,aAAa,IAC3D,UAASgB,YAAa,iFAAgFC,WAAW,CAACr/D,IAAZ,CAAiB,IAAjB,CAAuB,EAD3H,CAAP;AAEH;;AACD,SAASs/D,iBAAT,CAA2BtjE,KAA3B,EAAkC;AAC9B,SAAO,IAAIkiE,2DAAJ,CAAkB;AAAK;AAAvB,IAAkDE,aAAa,IAAK,mCAAkCpiE,KAAM,kBAA5G,CAAP;AACH;;AACD,SAASujE,eAAT,CAAyB3hC,IAAzB,EAA+B;AAC3B,SAAO,IAAIsgC,2DAAJ,CAAkB;AAAK;AAAvB,IAA+CE,aAAa,IAC9D,oCAAmCxgC,IAAK,kDADtC,CAAP;AAEH;;AACD,SAAS4hC,wBAAT,CAAkC5hC,IAAlC,EAAwC6hC,UAAxC,EAAoDC,QAApD,EAA8DC,WAA9D,EAA2EC,SAA3E,EAAsF;AAClF,SAAO,IAAI1B,2DAAJ,CAAkB;AAAK;AAAvB,IAAyDE,aAAa,IACxE,qBAAoBxgC,IAAK,uCAAsC6hC,UAAW,YAAWC,QAAS,4EAA2EC,WAAY,YAAWC,SAAU,KADxM,CAAP;AAEH;;AACD,SAASC,gBAAT,GAA4B;AACxB,SAAO,IAAI3B,2DAAJ,CAAkB;AAAK;AAAvB,IAAgDE,aAAa,IAAK,0DAAlE,CAAP;AACH;;AACD,SAAS0B,aAAT,GAAyB;AACrB,SAAO,IAAI5B,2DAAJ,CAAkB;AAAK;AAAvB,IAA6CE,aAAa,IAAK,6DAA/D,CAAP;AACH;;AACD,SAAS2B,yBAAT,GAAqC;AACjC,SAAO,IAAI7B,2DAAJ,CAAkB;AAAK;AAAvB,IAA4DE,aAAa,IAAK,sDAA9E,CAAP;AACH;;AACD,SAAS4B,uBAAT,GAAmC;AAC/B,SAAO,IAAI9B,2DAAJ,CAAkB;AAAK;AAAvB,IAAwDE,aAAa,IAAK,uEAA1E,CAAP;AACH;;AACD,SAAS6B,cAAT,GAA0B;AACtB,SAAO,IAAI/B,2DAAJ,CAAkB;AAAK;AAAvB,IAA8CE,aAAa,IAAK,8CAAhE,CAAP;AACH;;AACD,SAAS8B,YAAT,CAAsBl7D,QAAtB,EAAgC;AAC5B,SAAO,IAAIk5D,2DAAJ,CAAkB;AAAK;AAAvB,IAA4CE,aAAa,IAC3D,YAAWp5D,QAAS,8CAA6CA,QAAS,sDADxE,CAAP;AAEH;;AACD,SAASm7D,iBAAT,CAA2Bl1B,IAA3B,EAAiC;AAC7B,SAAO,IAAIizB,2DAAJ,CAAkB;AAAK;AAAvB,IAAiDE,aAAa,IAAK,uCAAsCnzB,IAAK,oBAA9G,CAAP;AACH;;AACD,SAASm1B,sBAAT,CAAgCtmD,KAAhC,EAAuC;AACnC,SAAO,IAAIokD,2DAAJ,CAAkB;AAAK;AAAvB,IAAuDE,aAAa,IAAK,+BAA8BtkD,KAAM,oBAA7G,CAAP;AACH;;AACD,SAASumD,gBAAT,CAA0Bx7D,MAA1B,EAAkC;AAC9B,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAgDE,aAAa,IAAK,iCAAgCv5D,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoC,IAApC,CAA0C,EAA5I,CAAP;AACH;;AACD,SAASsgE,cAAT,CAAwBz7D,MAAxB,EAAgC;AAC5B,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAA8CE,aAAa,IAAK,+BAA8Bv5D,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoC,IAApC,CAA0C,EAAxI,CAAP;AACH;;AACD,SAASugE,kBAAT,CAA4Bp8D,IAA5B,EAAkCU,MAAlC,EAA0C;AACtC,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAmDE,aAAa,IAClE,0BAAyBj6D,IAAK,0DAAyDU,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoC,OAApC,CAA6C,EADlI,CAAP;AAEH;;AACD,SAASwgE,eAAT,CAAyB37D,MAAzB,EAAiC;AAC7B,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAA+CE,aAAa,IAC9D,iDAAgDE,UAAW,GAAEz5D,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoCs+D,UAApC,CAAgD,EAD3G,CAAP;AAEH;;AACD,SAASmC,cAAT,CAAwB57D,MAAxB,EAAgC;AAC5B,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAkDE,aAAa,IACjE,8DAA6Dv5D,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoC,IAApC,CAA0C,EADrG,CAAP;AAEH;;AACD,SAAS0gE,2BAAT,GAAuC;AACnC,SAAO,IAAIxC,2DAAJ,CAAkB;AAAK;AAAvB,IAA6DE,aAAa,IAAI,sEAA9E,CAAP;AACH;;AACD,SAASuC,qBAAT,CAA+B97D,MAA/B,EAAuC;AACnC,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAsDE,aAAa,IACrE,8DAA6Dv5D,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoC,IAApC,CAA0C,EADrG,CAAP;AAEH;;AACD,SAAS4gE,aAAT,CAAuB35B,EAAvB,EAA2B;AACvB,SAAO,IAAIi3B,2DAAJ,CAAkB;AAAK;AAAvB,IAA6CE,aAAa,IAAK,oDAAmDn3B,EAAG,EAArH,CAAP;AACH;;AACD,SAAS45B,cAAT,CAAwBC,KAAxB,EAA+B38D,IAA/B,EAAqC;AACjC,SAAO,IAAI+5D,2DAAJ,CAAkB;AAAK;AAAvB,IAA8CE,aAAa,IAC7D,oDAAmD0C,KAAM,oCAAmC38D,IAAK,mBAD/F,CAAP;AAEH;;AACD,SAAS48D,YAAT,CAAsB58D,IAAtB,EAA4B;AACxB,SAAO,IAAI+5D,2DAAJ,CAAkB;AAAK;AAAvB,IAA4CE,aAAa,IAC3D,8CAA6Cj6D,IAAK,4CADhD,CAAP;AAEH;;AACD,SAAS68D,uBAAT,CAAiCF,KAAjC,EAAwC38D,IAAxC,EAA8C;AAC1C,SAAO,IAAI+5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAwDE,aAAa,IACvE,yCAAwC0C,KAAM,gCAA+B38D,IAAK,qBADhF,CAAP;AAEH;;AACD,SAAS88D,mBAAT,CAA6B98D,IAA7B,EAAmC;AAC/B,SAAO,IAAI+5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAmDE,aAAa,IAAK,mCAAkCj6D,IAAK,4BAA5G,CAAP;AACH;;AACD,SAAS+8D,wBAAT,CAAkCr8D,MAAlC,EAA0C;AACtC,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAyDE,aAAa,IACxE,kFAAiFv5D,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoC,IAApC,CAA0C,EADzH,CAAP;AAEH;;AACD,SAASmhE,oBAAT,CAA8Bh9D,IAA9B,EAAoCU,MAApC,EAA4C;AACxC,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAqDE,aAAa,IACpE,6BAA4Bj6D,IAAK,wBAAuBm6D,UAAW,GAAEz5D,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoCs+D,UAApC,CAAgD,EADnH,CAAP;AAEH;;AACD,SAAS8C,gBAAT,CAA0Bj9D,IAA1B,EAAgCU,MAAhC,EAAwC;AACpC,SAAO,IAAIq5D,2DAAJ,CAAkB;AAAK;AAAvB,IAAgDE,aAAa,IAC/D,IAAGj6D,IAAK,yBAAwBU,MAAM,CAACtF,GAAP,CAAW4f,GAAG,IAAIA,GAAG,CAACxU,OAAtB,EAA+B3K,IAA/B,CAAoC,MAApC,CAA4C,EAD1E,CAAP;AAEH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqhE,SAAT,GAAqB;AACjB,SAAQ,OAAOhmD,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAACsjB,QAAd,KAA2B,WAApE;AACH;;AACD,SAAS2iC,MAAT,GAAkB;AACd;AACA;AACA;AACA;AACA;AACA,SAAO,OAAOtgD,OAAP,KAAmB,WAAnB,IAAkC,GAAG5Z,QAAH,CAAY5C,IAAZ,CAAiBwc,OAAjB,MAA8B,kBAAvE;AACH;;AACD,SAASugD,mBAAT,CAA6BC,OAA7B,EAAsC;AAClC,UAAQA,OAAO,CAACniE,MAAhB;AACI,SAAK,CAAL;AACI,aAAO,IAAIw+D,oEAAJ,EAAP;;AACJ,SAAK,CAAL;AACI,aAAO2D,OAAO,CAAC,CAAD,CAAd;;AACJ;AACI,aAAO,IAAI5D,yEAAJ,CAA0B4D,OAA1B,CAAP;AANR;AAQH;;AACD,SAASC,kBAAT,CAA4BC,MAA5B,EAAoCC,UAApC,EAAgDC,OAAhD,EAAyDC,SAAzD,EAAoEC,SAAS,GAAG,EAAhF,EAAoFC,UAAU,GAAG,EAAjG,EAAqG;AACjG,QAAMl9D,MAAM,GAAG,EAAf;AACA,QAAMm9D,mBAAmB,GAAG,EAA5B;AACA,MAAIC,cAAc,GAAG,CAAC,CAAtB;AACA,MAAIC,gBAAgB,GAAG,IAAvB;AACAL,EAAAA,SAAS,CAACliE,OAAV,CAAkBwiE,EAAE,IAAI;AACpB,UAAMp/D,MAAM,GAAGo/D,EAAE,CAAC,QAAD,CAAjB;AACA,UAAMC,YAAY,GAAGr/D,MAAM,IAAIk/D,cAA/B;AACA,UAAMI,kBAAkB,GAAID,YAAY,IAAIF,gBAAjB,IAAsC,EAAjE;AACAriE,IAAAA,MAAM,CAACC,IAAP,CAAYqiE,EAAZ,EAAgBxiE,OAAhB,CAAwBi+B,IAAI,IAAI;AAC5B,UAAI0kC,cAAc,GAAG1kC,IAArB;AACA,UAAI2kC,eAAe,GAAGJ,EAAE,CAACvkC,IAAD,CAAxB;;AACA,UAAIA,IAAI,KAAK,QAAb,EAAuB;AACnB0kC,QAAAA,cAAc,GAAGX,UAAU,CAACa,qBAAX,CAAiCF,cAAjC,EAAiDz9D,MAAjD,CAAjB;;AACA,gBAAQ09D,eAAR;AACI,eAAKxE,8DAAL;AACIwE,YAAAA,eAAe,GAAGT,SAAS,CAAClkC,IAAD,CAA3B;AACA;;AACJ,eAAKkgC,2DAAL;AACIyE,YAAAA,eAAe,GAAGR,UAAU,CAACnkC,IAAD,CAA5B;AACA;;AACJ;AACI2kC,YAAAA,eAAe,GACXZ,UAAU,CAACc,mBAAX,CAA+B7kC,IAA/B,EAAqC0kC,cAArC,EAAqDC,eAArD,EAAsE19D,MAAtE,CADJ;AAEA;AAVR;AAYH;;AACDw9D,MAAAA,kBAAkB,CAACC,cAAD,CAAlB,GAAqCC,eAArC;AACH,KAnBD;;AAoBA,QAAI,CAACH,YAAL,EAAmB;AACfJ,MAAAA,mBAAmB,CAACh+D,IAApB,CAAyBq+D,kBAAzB;AACH;;AACDH,IAAAA,gBAAgB,GAAGG,kBAAnB;AACAJ,IAAAA,cAAc,GAAGl/D,MAAjB;AACH,GA7BD;;AA8BA,MAAI8B,MAAM,CAACxF,MAAX,EAAmB;AACf,UAAMmhE,eAAe,CAAC37D,MAAD,CAArB;AACH;;AACD,SAAOm9D,mBAAP;AACH;;AACD,SAASU,cAAT,CAAwBC,MAAxB,EAAgCriE,SAAhC,EAA2CmB,KAA3C,EAAkD+iB,QAAlD,EAA4D;AACxD,UAAQlkB,SAAR;AACI,SAAK,OAAL;AACIqiE,MAAAA,MAAM,CAACC,OAAP,CAAe,MAAMp+C,QAAQ,CAAC/iB,KAAK,IAAIohE,kBAAkB,CAACphE,KAAD,EAAQ,OAAR,EAAiBkhE,MAAjB,CAA5B,CAA7B;AACA;;AACJ,SAAK,MAAL;AACIA,MAAAA,MAAM,CAACG,MAAP,CAAc,MAAMt+C,QAAQ,CAAC/iB,KAAK,IAAIohE,kBAAkB,CAACphE,KAAD,EAAQ,MAAR,EAAgBkhE,MAAhB,CAA5B,CAA5B;AACA;;AACJ,SAAK,SAAL;AACIA,MAAAA,MAAM,CAACI,SAAP,CAAiB,MAAMv+C,QAAQ,CAAC/iB,KAAK,IAAIohE,kBAAkB,CAACphE,KAAD,EAAQ,SAAR,EAAmBkhE,MAAnB,CAA5B,CAA/B;AACA;AATR;AAWH;;AACD,SAASE,kBAAT,CAA4BtmE,CAA5B,EAA+BymE,SAA/B,EAA0CL,MAA1C,EAAkD;AAC9C,QAAMM,SAAS,GAAGN,MAAM,CAACM,SAAzB;AACA,QAAM58B,QAAQ,GAAGs8B,MAAM,CAACt8B,QAAP,GAAkB,IAAlB,GAAyB,KAA1C;AACA,QAAM5kC,KAAK,GAAGyhE,kBAAkB,CAAC3mE,CAAC,CAACqlE,OAAH,EAAYrlE,CAAC,CAAC4mE,WAAd,EAA2B5mE,CAAC,CAAC6mE,SAA7B,EAAwC7mE,CAAC,CAAC8mE,OAA1C,EAAmDL,SAAS,IAAIzmE,CAAC,CAACymE,SAAlE,EAA6EC,SAAS,IAAIn5D,SAAb,GAAyBvN,CAAC,CAAC0mE,SAA3B,GAAuCA,SAApH,EAA+H58B,QAA/H,CAAhC;AACA,QAAMnmC,IAAI,GAAG3D,CAAC,CAAC,OAAD,CAAd;;AACA,MAAI2D,IAAI,IAAI,IAAZ,EAAkB;AACduB,IAAAA,KAAK,CAAC,OAAD,CAAL,GAAiBvB,IAAjB;AACH;;AACD,SAAOuB,KAAP;AACH;;AACD,SAASyhE,kBAAT,CAA4BtB,OAA5B,EAAqCuB,WAArC,EAAkDC,SAAlD,EAA6DC,OAA7D,EAAsEL,SAAS,GAAG,EAAlF,EAAsFC,SAAS,GAAG,CAAlG,EAAqG58B,QAArG,EAA+G;AAC3G,SAAO;AAAEu7B,IAAAA,OAAF;AAAWuB,IAAAA,WAAX;AAAwBC,IAAAA,SAAxB;AAAmCC,IAAAA,OAAnC;AAA4CL,IAAAA,SAA5C;AAAuDC,IAAAA,SAAvD;AAAkE58B,IAAAA,QAAQ,EAAE,CAAC,CAACA;AAA9E,GAAP;AACH;;AACD,SAASi9B,eAAT,CAAyB/jE,GAAzB,EAA8B4I,GAA9B,EAAmCqpC,YAAnC,EAAiD;AAC7C,MAAIx1C,KAAJ;;AACA,MAAIuD,GAAG,YAAY8X,GAAnB,EAAwB;AACpBrb,IAAAA,KAAK,GAAGuD,GAAG,CAAC6V,GAAJ,CAAQjN,GAAR,CAAR;;AACA,QAAI,CAACnM,KAAL,EAAY;AACRuD,MAAAA,GAAG,CAACiE,GAAJ,CAAQ2E,GAAR,EAAanM,KAAK,GAAGw1C,YAArB;AACH;AACJ,GALD,MAMK;AACDx1C,IAAAA,KAAK,GAAGuD,GAAG,CAAC4I,GAAD,CAAX;;AACA,QAAI,CAACnM,KAAL,EAAY;AACRA,MAAAA,KAAK,GAAGuD,GAAG,CAAC4I,GAAD,CAAH,GAAWqpC,YAAnB;AACH;AACJ;;AACD,SAAOx1C,KAAP;AACH;;AACD,SAASunE,oBAAT,CAA8BC,OAA9B,EAAuC;AACnC,QAAMC,YAAY,GAAGD,OAAO,CAACjjE,OAAR,CAAgB,GAAhB,CAArB;AACA,QAAM0mC,EAAE,GAAGu8B,OAAO,CAACpgE,SAAR,CAAkB,CAAlB,EAAqBqgE,YAArB,CAAX;AACA,QAAMC,MAAM,GAAGF,OAAO,CAACG,MAAR,CAAeF,YAAY,GAAG,CAA9B,CAAf;AACA,SAAO,CAACx8B,EAAD,EAAKy8B,MAAL,CAAP;AACH;;AACD,IAAIE,SAAS,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB,KAAhC;;AACA,IAAIC,MAAM,GAAG,CAACnC,OAAD,EAAU58D,QAAV,EAAoBg/D,KAApB,KAA8B;AACvC,SAAO,EAAP;AACH,CAFD;;AAGA,IAAIC,gBAAgB,GAAG,IAAvB;;AACA,SAASC,gBAAT,CAA0BtC,OAA1B,EAAmC;AAC/B,QAAM70B,MAAM,GAAG60B,OAAO,CAAC5hC,UAAR,IAAsB4hC,OAAO,CAAC1J,IAA7C,CAD+B,CACoB;;AACnD,MAAInrB,MAAM,KAAKk3B,gBAAf,EAAiC;AAC7B,WAAO,IAAP;AACH;;AACD,SAAOl3B,MAAP;AACH,EACD;AACA;;;AACA,MAAMo3B,OAAO,GAAG7C,MAAM,EAAtB;;AACA,IAAI6C,OAAO,IAAI,OAAOC,OAAP,KAAmB,WAAlC,EAA+C;AAC3C,MAAI,CAAC/C,SAAS,EAAd,EAAkB;AACduC,IAAAA,SAAS,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgBD,IAAI,CAACrgC,QAAL,CAAcsgC,IAAd,CAA5B;AACH,GAFD,MAGK;AACD;AACA;AACAG,IAAAA,gBAAgB,GAAG,eAAgB,CAAC,MAAMtlC,QAAQ,CAACwK,eAAhB,GAAnC;;AACAy6B,IAAAA,SAAS,GAAG,CAACC,IAAD,EAAOC,IAAP,KAAgB;AACxB,aAAOA,IAAP,EAAa;AACT,YAAIA,IAAI,KAAKD,IAAb,EAAmB;AACf,iBAAO,IAAP;AACH;;AACDC,QAAAA,IAAI,GAAGI,gBAAgB,CAACJ,IAAD,CAAvB;AACH;;AACD,aAAO,KAAP;AACH,KARD;AASH;;AACDC,EAAAA,MAAM,GAAG,CAACnC,OAAD,EAAU58D,QAAV,EAAoBg/D,KAApB,KAA8B;AACnC,QAAIA,KAAJ,EAAW;AACP,aAAOxkE,KAAK,CAAC6C,IAAN,CAAWu/D,OAAO,CAACj6B,gBAAR,CAAyB3iC,QAAzB,CAAX,CAAP;AACH;;AACD,UAAM87B,IAAI,GAAG8gC,OAAO,CAACyC,aAAR,CAAsBr/D,QAAtB,CAAb;AACA,WAAO87B,IAAI,GAAG,CAACA,IAAD,CAAH,GAAY,EAAvB;AACH,GAND;AAOH;;AACD,SAASwjC,oBAAT,CAA8B1mC,IAA9B,EAAoC;AAChC;AACA;AACA,SAAOA,IAAI,CAACx6B,SAAL,CAAe,CAAf,EAAkB,CAAlB,KAAwB,OAA/B,CAHgC,CAGQ;AAC3C;;AACD,IAAImhE,YAAY,GAAG,IAAnB;AACA,IAAIC,UAAU,GAAG,KAAjB;;AACA,SAASC,qBAAT,CAA+B7mC,IAA/B,EAAqC;AACjC,MAAI,CAAC2mC,YAAL,EAAmB;AACfA,IAAAA,YAAY,GAAGG,WAAW,MAAM,EAAhC;AACAF,IAAAA,UAAU,GAAGD,YAAY,CAAC1pC,KAAb,GAAsB,sBAAsB0pC,YAAY,CAAC1pC,KAAzD,GAAkE,KAA/E;AACH;;AACD,MAAIp+B,MAAM,GAAG,IAAb;;AACA,MAAI8nE,YAAY,CAAC1pC,KAAb,IAAsB,CAACypC,oBAAoB,CAAC1mC,IAAD,CAA/C,EAAuD;AACnDnhC,IAAAA,MAAM,GAAGmhC,IAAI,IAAI2mC,YAAY,CAAC1pC,KAA9B;;AACA,QAAI,CAACp+B,MAAD,IAAW+nE,UAAf,EAA2B;AACvB,YAAMG,SAAS,GAAG,WAAW/mC,IAAI,CAACgnC,MAAL,CAAY,CAAZ,EAAe/qC,WAAf,EAAX,GAA0C+D,IAAI,CAAC+lC,MAAL,CAAY,CAAZ,CAA5D;AACAlnE,MAAAA,MAAM,GAAGkoE,SAAS,IAAIJ,YAAY,CAAC1pC,KAAnC;AACH;AACJ;;AACD,SAAOp+B,MAAP;AACH;;AACD,SAASioE,WAAT,GAAuB;AACnB,MAAI,OAAO/lC,QAAP,IAAmB,WAAvB,EAAoC;AAChC,WAAOA,QAAQ,CAACkc,IAAhB;AACH;;AACD,SAAO,IAAP;AACH;;AACD,MAAMgqB,eAAe,GAAGjB,SAAxB;AACA,MAAMkB,WAAW,GAAGf,MAApB;;AACA,SAASgB,mBAAT,CAA6B/9C,MAA7B,EAAqC;AACjC,QAAMg+C,MAAM,GAAG,EAAf;AACAnlE,EAAAA,MAAM,CAACC,IAAP,CAAYknB,MAAZ,EAAoBrnB,OAApB,CAA4Bi+B,IAAI,IAAI;AAChC,UAAMqnC,OAAO,GAAGrnC,IAAI,CAACt2B,OAAL,CAAa,iBAAb,EAAgC,OAAhC,CAAhB;AACA09D,IAAAA,MAAM,CAACC,OAAD,CAAN,GAAkBj+C,MAAM,CAAC4W,IAAD,CAAxB;AACH,GAHD;AAIA,SAAOonC,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAME,mBAAN,CAA0B;AACtBT,EAAAA,qBAAqB,CAAC7mC,IAAD,EAAO;AACxB,WAAO6mC,qBAAqB,CAAC7mC,IAAD,CAA5B;AACH;;AACDunC,EAAAA,cAAc,CAACC,QAAD,EAAWC,SAAX,EAAsB;AAChC;AACA,WAAO,KAAP;AACH;;AACDR,EAAAA,eAAe,CAAChB,IAAD,EAAOC,IAAP,EAAa;AACxB,WAAOe,eAAe,CAAChB,IAAD,EAAOC,IAAP,CAAtB;AACH;;AACDI,EAAAA,gBAAgB,CAACtC,OAAD,EAAU;AACtB,WAAOsC,gBAAgB,CAACtC,OAAD,CAAvB;AACH;;AACD0D,EAAAA,KAAK,CAAC1D,OAAD,EAAU58D,QAAV,EAAoBg/D,KAApB,EAA2B;AAC5B,WAAOc,WAAW,CAAClD,OAAD,EAAU58D,QAAV,EAAoBg/D,KAApB,CAAlB;AACH;;AACDuB,EAAAA,YAAY,CAAC3D,OAAD,EAAUhkC,IAAV,EAAgB4T,YAAhB,EAA8B;AACtC,WAAOA,YAAY,IAAI,EAAvB;AACH;;AACDsd,EAAAA,OAAO,CAAC8S,OAAD,EAAUC,SAAV,EAAqB9gE,QAArB,EAA+B6uD,KAA/B,EAAsCvE,MAAtC,EAA8Cma,eAAe,GAAG,EAAhE,EAAoEC,uBAApE,EAA6F;AAChG,WAAO,IAAI5H,oEAAJ,CAAwB98D,QAAxB,EAAkC6uD,KAAlC,CAAP;AACH;;AAtBqB;;AAwB1BsV,mBAAmB,CAACQ,IAApB;AAAA,mBAAiHR,mBAAjH;AAAA;;AACAA,mBAAmB,CAACS,KAApB,kBADuG1H,gEACvG;AAAA,SAAqHiH,mBAArH;AAAA,WAAqHA,mBAArH;AAAA;;AACA;AAAA,qDAFuGjH,+DAEvG,CAA4FiH,mBAA5F,EAA6H,CAAC;AAClHxjE,IAAAA,IAAI,EAAEy8D,qDAAUA;AADkG,GAAD,CAA7H;AAAA;AAGA;AACA;AACA;;;AACA,MAAMyH,eAAN,CAAsB;;AAEtBA,eAAe,CAACC,IAAhB,GAAyB,eAAe,IAAIX,mBAAJ,EAAxC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMY,UAAU,GAAG,IAAnB;AACA,MAAMC,uBAAuB,GAAG,IAAhC;AACA,MAAMC,qBAAqB,GAAG,IAA9B;AACA,MAAMC,eAAe,GAAG,UAAxB;AACA,MAAMC,eAAe,GAAG,UAAxB;AACA,MAAMC,oBAAoB,GAAG,YAA7B;AACA,MAAMC,mBAAmB,GAAG,aAA5B;AACA,MAAMC,sBAAsB,GAAG,cAA/B;AACA,MAAMC,qBAAqB,GAAG,eAA9B;;AACA,SAASC,kBAAT,CAA4BvqE,KAA5B,EAAmC;AAC/B,MAAI,OAAOA,KAAP,IAAgB,QAApB,EACI,OAAOA,KAAP;AACJ,QAAMsmC,OAAO,GAAGtmC,KAAK,CAACmH,KAAN,CAAY,mBAAZ,CAAhB;AACA,MAAI,CAACm/B,OAAD,IAAYA,OAAO,CAACjjC,MAAR,GAAiB,CAAjC,EACI,OAAO,CAAP;AACJ,SAAOmnE,qBAAqB,CAACjvD,UAAU,CAAC+qB,OAAO,CAAC,CAAD,CAAR,CAAX,EAAyBA,OAAO,CAAC,CAAD,CAAhC,CAA5B;AACH;;AACD,SAASkkC,qBAAT,CAA+BxqE,KAA/B,EAAsCw+C,IAAtC,EAA4C;AACxC,UAAQA,IAAR;AACI,SAAK,GAAL;AACI,aAAOx+C,KAAK,GAAG8pE,UAAf;;AACJ;AAAS;AACL,aAAO9pE,KAAP;AAJR;AAMH;;AACD,SAASyqE,aAAT,CAAuBC,OAAvB,EAAgC7hE,MAAhC,EAAwC8hE,mBAAxC,EAA6D;AACzD,SAAOD,OAAO,CAAC/2C,cAAR,CAAuB,UAAvB,IACH+2C,OADG,GAEHE,mBAAmB,CAACF,OAAD,EAAU7hE,MAAV,EAAkB8hE,mBAAlB,CAFvB;AAGH;;AACD,SAASC,mBAAT,CAA6BpI,GAA7B,EAAkC35D,MAAlC,EAA0C8hE,mBAA1C,EAA+D;AAC3D,QAAME,KAAK,GAAG,0EAAd;AACA,MAAI9lE,QAAJ;AACA,MAAI6uD,KAAK,GAAG,CAAZ;AACA,MAAIvE,MAAM,GAAG,EAAb;;AACA,MAAI,OAAOmT,GAAP,KAAe,QAAnB,EAA6B;AACzB,UAAMl8B,OAAO,GAAGk8B,GAAG,CAACr7D,KAAJ,CAAU0jE,KAAV,CAAhB;;AACA,QAAIvkC,OAAO,KAAK,IAAhB,EAAsB;AAClBz9B,MAAAA,MAAM,CAACb,IAAP,CAAYu6D,kBAAkB,CAACC,GAAD,CAA9B;AACA,aAAO;AAAEz9D,QAAAA,QAAQ,EAAE,CAAZ;AAAe6uD,QAAAA,KAAK,EAAE,CAAtB;AAAyBvE,QAAAA,MAAM,EAAE;AAAjC,OAAP;AACH;;AACDtqD,IAAAA,QAAQ,GAAGylE,qBAAqB,CAACjvD,UAAU,CAAC+qB,OAAO,CAAC,CAAD,CAAR,CAAX,EAAyBA,OAAO,CAAC,CAAD,CAAhC,CAAhC;AACA,UAAMwkC,UAAU,GAAGxkC,OAAO,CAAC,CAAD,CAA1B;;AACA,QAAIwkC,UAAU,IAAI,IAAlB,EAAwB;AACpBlX,MAAAA,KAAK,GAAG4W,qBAAqB,CAACjvD,UAAU,CAACuvD,UAAD,CAAX,EAAyBxkC,OAAO,CAAC,CAAD,CAAhC,CAA7B;AACH;;AACD,UAAMykC,SAAS,GAAGzkC,OAAO,CAAC,CAAD,CAAzB;;AACA,QAAIykC,SAAJ,EAAe;AACX1b,MAAAA,MAAM,GAAG0b,SAAT;AACH;AACJ,GAfD,MAgBK;AACDhmE,IAAAA,QAAQ,GAAGy9D,GAAX;AACH;;AACD,MAAI,CAACmI,mBAAL,EAA0B;AACtB,QAAIK,cAAc,GAAG,KAArB;AACA,QAAIC,UAAU,GAAGpiE,MAAM,CAACxF,MAAxB;;AACA,QAAI0B,QAAQ,GAAG,CAAf,EAAkB;AACd8D,MAAAA,MAAM,CAACb,IAAP,CAAYy6D,iBAAiB,EAA7B;AACAuI,MAAAA,cAAc,GAAG,IAAjB;AACH;;AACD,QAAIpX,KAAK,GAAG,CAAZ,EAAe;AACX/qD,MAAAA,MAAM,CAACb,IAAP,CAAY06D,kBAAkB,EAA9B;AACAsI,MAAAA,cAAc,GAAG,IAAjB;AACH;;AACD,QAAIA,cAAJ,EAAoB;AAChBniE,MAAAA,MAAM,CAACgU,MAAP,CAAcouD,UAAd,EAA0B,CAA1B,EAA6B1I,kBAAkB,CAACC,GAAD,CAA/C;AACH;AACJ;;AACD,SAAO;AAAEz9D,IAAAA,QAAF;AAAY6uD,IAAAA,KAAZ;AAAmBvE,IAAAA;AAAnB,GAAP;AACH;;AACD,SAAS6b,OAAT,CAAiBxrD,GAAjB,EAAsByrD,WAAW,GAAG,EAApC,EAAwC;AACpCtnE,EAAAA,MAAM,CAACC,IAAP,CAAY4b,GAAZ,EAAiB/b,OAAjB,CAAyBi+B,IAAI,IAAI;AAC7BupC,IAAAA,WAAW,CAACvpC,IAAD,CAAX,GAAoBliB,GAAG,CAACkiB,IAAD,CAAvB;AACH,GAFD;AAGA,SAAOupC,WAAP;AACH;;AACD,SAASC,eAAT,CAAyBzsC,MAAzB,EAAiC;AAC7B,QAAM0sC,gBAAgB,GAAG,EAAzB;;AACA,MAAI7nE,KAAK,CAACC,OAAN,CAAck7B,MAAd,CAAJ,EAA2B;AACvBA,IAAAA,MAAM,CAACh7B,OAAP,CAAeO,IAAI,IAAIonE,UAAU,CAACpnE,IAAD,EAAO,KAAP,EAAcmnE,gBAAd,CAAjC;AACH,GAFD,MAGK;AACDC,IAAAA,UAAU,CAAC3sC,MAAD,EAAS,KAAT,EAAgB0sC,gBAAhB,CAAV;AACH;;AACD,SAAOA,gBAAP;AACH;;AACD,SAASC,UAAT,CAAoB3sC,MAApB,EAA4B4sC,aAA5B,EAA2CJ,WAAW,GAAG,EAAzD,EAA6D;AACzD,MAAII,aAAJ,EAAmB;AACf;AACA;AACA;AACA,SAAK,IAAI3pC,IAAT,IAAiBjD,MAAjB,EAAyB;AACrBwsC,MAAAA,WAAW,CAACvpC,IAAD,CAAX,GAAoBjD,MAAM,CAACiD,IAAD,CAA1B;AACH;AACJ,GAPD,MAQK;AACDspC,IAAAA,OAAO,CAACvsC,MAAD,EAASwsC,WAAT,CAAP;AACH;;AACD,SAAOA,WAAP;AACH;;AACD,SAASK,uBAAT,CAAiC5F,OAAjC,EAA0Cz5D,GAA1C,EAA+CnM,KAA/C,EAAsD;AAClD;AACA;AACA,MAAIA,KAAJ,EAAW;AACP,WAAOmM,GAAG,GAAG,GAAN,GAAYnM,KAAZ,GAAoB,GAA3B;AACH,GAFD,MAGK;AACD,WAAO,EAAP;AACH;AACJ;;AACD,SAASyrE,mBAAT,CAA6B7F,OAA7B,EAAsC;AAClC;AACA;AACA;AACA;AACA,MAAI8F,cAAc,GAAG,EAArB;;AACA,OAAK,IAAI3jE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG69D,OAAO,CAAC/mC,KAAR,CAAcx7B,MAAlC,EAA0C0E,CAAC,EAA3C,EAA+C;AAC3C,UAAMoE,GAAG,GAAGy5D,OAAO,CAAC/mC,KAAR,CAAcuE,IAAd,CAAmBr7B,CAAnB,CAAZ;AACA2jE,IAAAA,cAAc,IAAIF,uBAAuB,CAAC5F,OAAD,EAAUz5D,GAAV,EAAey5D,OAAO,CAAC/mC,KAAR,CAAc0tB,gBAAd,CAA+BpgD,GAA/B,CAAf,CAAzC;AACH;;AACD,OAAK,MAAMA,GAAX,IAAkBy5D,OAAO,CAAC/mC,KAA1B,EAAiC;AAC7B;AACA,QAAI,CAAC+mC,OAAO,CAAC/mC,KAAR,CAAclL,cAAd,CAA6BxnB,GAA7B,CAAD,IAAsCA,GAAG,CAACw/D,UAAJ,CAAe,GAAf,CAA1C,EAA+D;AAC3D;AACH;;AACD,UAAMC,OAAO,GAAGC,mBAAmB,CAAC1/D,GAAD,CAAnC;AACAu/D,IAAAA,cAAc,IAAIF,uBAAuB,CAAC5F,OAAD,EAAUgG,OAAV,EAAmBhG,OAAO,CAAC/mC,KAAR,CAAc1yB,GAAd,CAAnB,CAAzC;AACH;;AACDy5D,EAAAA,OAAO,CAAC9hC,YAAR,CAAqB,OAArB,EAA8B4nC,cAA9B;AACH;;AACD,SAASI,SAAT,CAAmBlG,OAAnB,EAA4BjnC,MAA5B,EAAoCotC,YAApC,EAAkD;AAC9C,MAAInG,OAAO,CAAC,OAAD,CAAX,EAAsB;AAClB/hE,IAAAA,MAAM,CAACC,IAAP,CAAY66B,MAAZ,EAAoBh7B,OAApB,CAA4Bi+B,IAAI,IAAI;AAChC,YAAM+mC,SAAS,GAAGqD,mBAAmB,CAACpqC,IAAD,CAArC;;AACA,UAAImqC,YAAY,IAAI,CAACA,YAAY,CAACp4C,cAAb,CAA4BiO,IAA5B,CAArB,EAAwD;AACpDmqC,QAAAA,YAAY,CAACnqC,IAAD,CAAZ,GAAqBgkC,OAAO,CAAC/mC,KAAR,CAAc8pC,SAAd,CAArB;AACH;;AACD/C,MAAAA,OAAO,CAAC/mC,KAAR,CAAc8pC,SAAd,IAA2BhqC,MAAM,CAACiD,IAAD,CAAjC;AACH,KAND,EADkB,CAQlB;;AACA,QAAI0jC,MAAM,EAAV,EAAc;AACVmG,MAAAA,mBAAmB,CAAC7F,OAAD,CAAnB;AACH;AACJ;AACJ;;AACD,SAASqG,WAAT,CAAqBrG,OAArB,EAA8BjnC,MAA9B,EAAsC;AAClC,MAAIinC,OAAO,CAAC,OAAD,CAAX,EAAsB;AAClB/hE,IAAAA,MAAM,CAACC,IAAP,CAAY66B,MAAZ,EAAoBh7B,OAApB,CAA4Bi+B,IAAI,IAAI;AAChC,YAAM+mC,SAAS,GAAGqD,mBAAmB,CAACpqC,IAAD,CAArC;AACAgkC,MAAAA,OAAO,CAAC/mC,KAAR,CAAc8pC,SAAd,IAA2B,EAA3B;AACH,KAHD,EADkB,CAKlB;;AACA,QAAIrD,MAAM,EAAV,EAAc;AACVmG,MAAAA,mBAAmB,CAAC7F,OAAD,CAAnB;AACH;AACJ;AACJ;;AACD,SAASsG,uBAAT,CAAiCC,KAAjC,EAAwC;AACpC,MAAI3oE,KAAK,CAACC,OAAN,CAAc0oE,KAAd,CAAJ,EAA0B;AACtB,QAAIA,KAAK,CAAC9oE,MAAN,IAAgB,CAApB,EACI,OAAO8oE,KAAK,CAAC,CAAD,CAAZ;AACJ,WAAOnK,6DAAQ,CAACmK,KAAD,CAAf;AACH;;AACD,SAAOA,KAAP;AACH;;AACD,SAASC,mBAAT,CAA6BpsE,KAA7B,EAAoC8gB,OAApC,EAA6CjY,MAA7C,EAAqD;AACjD,QAAMiL,MAAM,GAAGgN,OAAO,CAAChN,MAAR,IAAkB,EAAjC;AACA,QAAMwyB,OAAO,GAAG+lC,kBAAkB,CAACrsE,KAAD,CAAlC;;AACA,MAAIsmC,OAAO,CAACjjC,MAAZ,EAAoB;AAChBijC,IAAAA,OAAO,CAAC3iC,OAAR,CAAgBi/D,OAAO,IAAI;AACvB,UAAI,CAAC9uD,MAAM,CAAC6f,cAAP,CAAsBivC,OAAtB,CAAL,EAAqC;AACjC/5D,QAAAA,MAAM,CAACb,IAAP,CAAY26D,kBAAkB,CAACC,OAAD,CAA9B;AACH;AACJ,KAJD;AAKH;AACJ;;AACD,MAAM0J,WAAW,GAAG,IAAI7lE,MAAJ,CAAY,GAAEsjE,uBAAwB,gBAAeC,qBAAsB,EAA3E,EAA8E,GAA9E,CAApB;;AACA,SAASqC,kBAAT,CAA4BrsE,KAA5B,EAAmC;AAC/B,MAAI8T,MAAM,GAAG,EAAb;;AACA,MAAI,OAAO9T,KAAP,KAAiB,QAArB,EAA+B;AAC3B,QAAImH,KAAJ;;AACA,WAAOA,KAAK,GAAGmlE,WAAW,CAACrvD,IAAZ,CAAiBjd,KAAjB,CAAf,EAAwC;AACpC8T,MAAAA,MAAM,CAAC9L,IAAP,CAAYb,KAAK,CAAC,CAAD,CAAjB;AACH;;AACDmlE,IAAAA,WAAW,CAACv2C,SAAZ,GAAwB,CAAxB;AACH;;AACD,SAAOjiB,MAAP;AACH;;AACD,SAASy4D,iBAAT,CAA2BvsE,KAA3B,EAAkC8T,MAAlC,EAA0CjL,MAA1C,EAAkD;AAC9C,QAAMk5B,QAAQ,GAAG/hC,KAAK,CAACoL,QAAN,EAAjB;AACA,QAAM0xB,GAAG,GAAGiF,QAAQ,CAACz2B,OAAT,CAAiBghE,WAAjB,EAA8B,CAACzhD,CAAD,EAAI+3C,OAAJ,KAAgB;AACtD,QAAI4J,QAAQ,GAAG14D,MAAM,CAAC8uD,OAAD,CAArB,CADsD,CAEtD;;AACA,QAAI,CAAC9uD,MAAM,CAAC6f,cAAP,CAAsBivC,OAAtB,CAAL,EAAqC;AACjC/5D,MAAAA,MAAM,CAACb,IAAP,CAAY66D,iBAAiB,CAACD,OAAD,CAA7B;AACA4J,MAAAA,QAAQ,GAAG,EAAX;AACH;;AACD,WAAOA,QAAQ,CAACphE,QAAT,EAAP;AACH,GARW,CAAZ,CAF8C,CAW9C;;AACA,SAAO0xB,GAAG,IAAIiF,QAAP,GAAkB/hC,KAAlB,GAA0B88B,GAAjC;AACH;;AACD,SAAS2vC,eAAT,CAAyBvyD,QAAzB,EAAmC;AAC/B,QAAM4oB,GAAG,GAAG,EAAZ;AACA,MAAIM,IAAI,GAAGlpB,QAAQ,CAAC5Z,IAAT,EAAX;;AACA,SAAO,CAAC8iC,IAAI,CAAC1iC,IAAb,EAAmB;AACfoiC,IAAAA,GAAG,CAAC96B,IAAJ,CAASo7B,IAAI,CAACpjC,KAAd;AACAojC,IAAAA,IAAI,GAAGlpB,QAAQ,CAAC5Z,IAAT,EAAP;AACH;;AACD,SAAOwiC,GAAP;AACH;;AACD,MAAM4pC,gBAAgB,GAAG,eAAzB;;AACA,SAASV,mBAAT,CAA6Bz+C,KAA7B,EAAoC;AAChC,SAAOA,KAAK,CAACjiB,OAAN,CAAcohE,gBAAd,EAAgC,CAAC,GAAG79D,CAAJ,KAAUA,CAAC,CAAC,CAAD,CAAD,CAAKgvB,WAAL,EAA1C,CAAP;AACH;;AACD,SAASguC,mBAAT,CAA6Bt+C,KAA7B,EAAoC;AAChC,SAAOA,KAAK,CAACjiB,OAAN,CAAc,iBAAd,EAAiC,OAAjC,EAA0CrI,WAA1C,EAAP;AACH;;AACD,SAAS0pE,8BAAT,CAAwC5nE,QAAxC,EAAkD6uD,KAAlD,EAAyD;AACrD,SAAO7uD,QAAQ,KAAK,CAAb,IAAkB6uD,KAAK,KAAK,CAAnC;AACH;;AACD,SAASgZ,kCAAT,CAA4ChH,OAA5C,EAAqDC,SAArD,EAAgEgH,cAAhE,EAAgF;AAC5E,QAAMC,kBAAkB,GAAGjpE,MAAM,CAACC,IAAP,CAAY+oE,cAAZ,CAA3B;;AACA,MAAIC,kBAAkB,CAACzpE,MAAnB,IAA6BwiE,SAAS,CAACxiE,MAA3C,EAAmD;AAC/C,QAAI0pE,gBAAgB,GAAGlH,SAAS,CAAC,CAAD,CAAhC;AACA,QAAImH,iBAAiB,GAAG,EAAxB;AACAF,IAAAA,kBAAkB,CAACnpE,OAAnB,CAA2Bi+B,IAAI,IAAI;AAC/B,UAAI,CAACmrC,gBAAgB,CAACp5C,cAAjB,CAAgCiO,IAAhC,CAAL,EAA4C;AACxCorC,QAAAA,iBAAiB,CAAChlE,IAAlB,CAAuB45B,IAAvB;AACH;;AACDmrC,MAAAA,gBAAgB,CAACnrC,IAAD,CAAhB,GAAyBirC,cAAc,CAACjrC,IAAD,CAAvC;AACH,KALD;;AAMA,QAAIorC,iBAAiB,CAAC3pE,MAAtB,EAA8B;AAC1B;AACA,WAAK,IAAI0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG89D,SAAS,CAACxiE,MAA9B,EAAsC0E,CAAC,EAAvC,EAA2C;AACvC,YAAIo+D,EAAE,GAAGN,SAAS,CAAC99D,CAAD,CAAlB;AACAilE,QAAAA,iBAAiB,CAACrpE,OAAlB,CAA0B,UAAUi+B,IAAV,EAAgB;AACtCukC,UAAAA,EAAE,CAACvkC,IAAD,CAAF,GAAW2nC,YAAY,CAAC3D,OAAD,EAAUhkC,IAAV,CAAvB;AACH,SAFD;AAGH;AACJ;AACJ;;AACD,SAAOikC,SAAP;AACH;;AACD,SAASoH,YAAT,CAAsBC,OAAtB,EAA+B71D,IAA/B,EAAqC+sB,OAArC,EAA8C;AAC1C,UAAQ/sB,IAAI,CAAC3R,IAAb;AACI,SAAK;AAAE;AAAP;AACI,aAAOwnE,OAAO,CAACC,YAAR,CAAqB91D,IAArB,EAA2B+sB,OAA3B,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACE,UAAR,CAAmB/1D,IAAnB,EAAyB+sB,OAAzB,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACG,eAAR,CAAwBh2D,IAAxB,EAA8B+sB,OAA9B,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACI,aAAR,CAAsBj2D,IAAtB,EAA4B+sB,OAA5B,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACK,UAAR,CAAmBl2D,IAAnB,EAAyB+sB,OAAzB,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACM,YAAR,CAAqBn2D,IAArB,EAA2B+sB,OAA3B,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACO,cAAR,CAAuBp2D,IAAvB,EAA6B+sB,OAA7B,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACQ,UAAR,CAAmBr2D,IAAnB,EAAyB+sB,OAAzB,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACS,cAAR,CAAuBt2D,IAAvB,EAA6B+sB,OAA7B,CAAP;;AACJ,SAAK;AAAE;AAAP;AACI,aAAO8oC,OAAO,CAACU,iBAAR,CAA0Bv2D,IAA1B,EAAgC+sB,OAAhC,CAAP;;AACJ,SAAK;AAAG;AAAR;AACI,aAAO8oC,OAAO,CAACW,eAAR,CAAwBx2D,IAAxB,EAA8B+sB,OAA9B,CAAP;;AACJ,SAAK;AAAG;AAAR;AACI,aAAO8oC,OAAO,CAACY,UAAR,CAAmBz2D,IAAnB,EAAyB+sB,OAAzB,CAAP;;AACJ,SAAK;AAAG;AAAR;AACI,aAAO8oC,OAAO,CAACa,YAAR,CAAqB12D,IAArB,EAA2B+sB,OAA3B,CAAP;;AACJ;AACI,YAAM0+B,eAAe,CAACzrD,IAAI,CAAC3R,IAAN,CAArB;AA5BR;AA8BH;;AACD,SAAS6jE,YAAT,CAAsB3D,OAAtB,EAA+BhkC,IAA/B,EAAqC;AACjC,SAAOviB,MAAM,CAACwqC,gBAAP,CAAwB+b,OAAxB,EAAiChkC,IAAjC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMosC,WAAW,GAAG,OAAO3L,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;;AACA,SAAS4L,oBAAT,CAA8BC,QAA9B,EAAwC;AACpC,QAAM5L,UAAU,GAAG,OAAnB;AACA,SAAQ,GAAEA,UAAW,GAAE4L,QAAQ,CAACtoE,MAAT,CAAgByU,OAAhB,EAAyB9W,GAAzB,CAA6B4qE,OAAO,IAAIA,OAAxC,EAAiDnqE,IAAjD,CAAsDs+D,UAAtD,CAAkE,EAAzF;AACH;;AACD,SAAS8L,cAAT,CAAwBF,QAAxB,EAAkC;AAC9BF,EAAAA,WAAW,IAAI1wC,OAAO,CAAC74B,IAAR,CAAc,iCAAgCwpE,oBAAoB,CAACC,QAAD,CAAW,EAA7E,CAAf;AACH;;AACD,SAASG,gBAAT,CAA0BlmE,IAA1B,EAAgC+lE,QAAhC,EAA0C;AACtCF,EAAAA,WAAW,IACP1wC,OAAO,CAAC74B,IAAR,CAAc,0BAAyB0D,IAAK,2CAA0C8lE,oBAAoB,CAACC,QAAD,CAAW,EAArH,CADJ;AAEH;;AACD,SAASI,YAAT,CAAsBJ,QAAtB,EAAgC;AAC5BF,EAAAA,WAAW,IACP1wC,OAAO,CAAC74B,IAAR,CAAc,+CAA8CwpE,oBAAoB,CAACC,QAAD,CAAW,EAA3F,CADJ;AAEH;;AACD,SAASK,sBAAT,CAAgCpmE,IAAhC,EAAsC+lE,QAAtC,EAAgD;AAC5CF,EAAAA,WAAW,IACP1wC,OAAO,CAAC74B,IAAR,CAAc,6BAA4B0D,IAAK,4CAA2C8lE,oBAAoB,CAACC,QAAD,CAAW,EAAzH,CADJ;AAEH;;AACD,SAASM,iCAAT,CAA2CN,QAA3C,EAAqDxpB,KAArD,EAA4D;AACxD,MAAI2d,SAAS,IAAI3d,KAAK,CAACrhD,MAAvB,EAA+B;AAC3B6qE,IAAAA,QAAQ,CAAClmE,IAAT,CAAe,uFAAsF08C,KAAK,CAAC1gD,IAAN,CAAW,IAAX,CAAiB,EAAtH;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMyqE,SAAS,GAAG,GAAlB;;AACA,SAASC,mBAAT,CAA6BC,eAA7B,EAA8C9lE,MAA9C,EAAsD;AAClD,QAAM+lE,WAAW,GAAG,EAApB;;AACA,MAAI,OAAOD,eAAP,IAA0B,QAA9B,EAAwC;AACpCA,IAAAA,eAAe,CAACxqE,KAAhB,CAAsB,SAAtB,EAAiCR,OAAjC,CAAyCm5B,GAAG,IAAI+xC,uBAAuB,CAAC/xC,GAAD,EAAM8xC,WAAN,EAAmB/lE,MAAnB,CAAvE;AACH,GAFD,MAGK;AACD+lE,IAAAA,WAAW,CAAC5mE,IAAZ,CAAiB2mE,eAAjB;AACH;;AACD,SAAOC,WAAP;AACH;;AACD,SAASC,uBAAT,CAAiCC,QAAjC,EAA2CF,WAA3C,EAAwD/lE,MAAxD,EAAgE;AAC5D,MAAIimE,QAAQ,CAAC,CAAD,CAAR,IAAe,GAAnB,EAAwB;AACpB,UAAMruE,MAAM,GAAGsuE,mBAAmB,CAACD,QAAD,EAAWjmE,MAAX,CAAlC;;AACA,QAAI,OAAOpI,MAAP,IAAiB,UAArB,EAAiC;AAC7BmuE,MAAAA,WAAW,CAAC5mE,IAAZ,CAAiBvH,MAAjB;AACA;AACH;;AACDquE,IAAAA,QAAQ,GAAGruE,MAAX;AACH;;AACD,QAAM0G,KAAK,GAAG2nE,QAAQ,CAAC3nE,KAAT,CAAe,yCAAf,CAAd;;AACA,MAAIA,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAAC9D,MAAN,GAAe,CAApC,EAAuC;AACnCwF,IAAAA,MAAM,CAACb,IAAP,CAAYm8D,iBAAiB,CAAC2K,QAAD,CAA7B;AACA,WAAOF,WAAP;AACH;;AACD,QAAMxH,SAAS,GAAGjgE,KAAK,CAAC,CAAD,CAAvB;AACA,QAAM6nE,SAAS,GAAG7nE,KAAK,CAAC,CAAD,CAAvB;AACA,QAAMkgE,OAAO,GAAGlgE,KAAK,CAAC,CAAD,CAArB;AACAynE,EAAAA,WAAW,CAAC5mE,IAAZ,CAAiBinE,oBAAoB,CAAC7H,SAAD,EAAYC,OAAZ,CAArC;AACA,QAAM6H,kBAAkB,GAAG9H,SAAS,IAAIqH,SAAb,IAA0BpH,OAAO,IAAIoH,SAAhE;;AACA,MAAIO,SAAS,CAAC,CAAD,CAAT,IAAgB,GAAhB,IAAuB,CAACE,kBAA5B,EAAgD;AAC5CN,IAAAA,WAAW,CAAC5mE,IAAZ,CAAiBinE,oBAAoB,CAAC5H,OAAD,EAAUD,SAAV,CAArC;AACH;AACJ;;AACD,SAAS2H,mBAAT,CAA6BjxD,KAA7B,EAAoCjV,MAApC,EAA4C;AACxC,UAAQiV,KAAR;AACI,SAAK,QAAL;AACI,aAAO,WAAP;;AACJ,SAAK,QAAL;AACI,aAAO,WAAP;;AACJ,SAAK,YAAL;AACI,aAAO,CAACspD,SAAD,EAAYC,OAAZ,KAAwB9rD,UAAU,CAAC8rD,OAAD,CAAV,GAAsB9rD,UAAU,CAAC6rD,SAAD,CAA/D;;AACJ,SAAK,YAAL;AACI,aAAO,CAACA,SAAD,EAAYC,OAAZ,KAAwB9rD,UAAU,CAAC8rD,OAAD,CAAV,GAAsB9rD,UAAU,CAAC6rD,SAAD,CAA/D;;AACJ;AACIv+D,MAAAA,MAAM,CAACb,IAAP,CAAYo8D,sBAAsB,CAACtmD,KAAD,CAAlC;AACA,aAAO,QAAP;AAXR;AAaH,EACD;AACA;AACA;AACA;;;AACA,MAAMqxD,mBAAmB,GAAG,IAAIvzD,GAAJ,CAAQ,CAAC,MAAD,EAAS,GAAT,CAAR,CAA5B;AACA,MAAMwzD,oBAAoB,GAAG,IAAIxzD,GAAJ,CAAQ,CAAC,OAAD,EAAU,GAAV,CAAR,CAA7B;;AACA,SAASqzD,oBAAT,CAA8BI,GAA9B,EAAmCC,GAAnC,EAAwC;AACpC,QAAMC,iBAAiB,GAAGJ,mBAAmB,CAACp8C,GAApB,CAAwBs8C,GAAxB,KAAgCD,oBAAoB,CAACr8C,GAArB,CAAyBs8C,GAAzB,CAA1D;AACA,QAAMG,iBAAiB,GAAGL,mBAAmB,CAACp8C,GAApB,CAAwBu8C,GAAxB,KAAgCF,oBAAoB,CAACr8C,GAArB,CAAyBu8C,GAAzB,CAA1D;AACA,SAAO,CAAClI,SAAD,EAAYC,OAAZ,KAAwB;AAC3B,QAAIoI,QAAQ,GAAGJ,GAAG,IAAIZ,SAAP,IAAoBY,GAAG,IAAIjI,SAA1C;AACA,QAAIsI,QAAQ,GAAGJ,GAAG,IAAIb,SAAP,IAAoBa,GAAG,IAAIjI,OAA1C;;AACA,QAAI,CAACoI,QAAD,IAAaF,iBAAb,IAAkC,OAAOnI,SAAP,KAAqB,SAA3D,EAAsE;AAClEqI,MAAAA,QAAQ,GAAGrI,SAAS,GAAG+H,mBAAmB,CAACp8C,GAApB,CAAwBs8C,GAAxB,CAAH,GAAkCD,oBAAoB,CAACr8C,GAArB,CAAyBs8C,GAAzB,CAAtD;AACH;;AACD,QAAI,CAACK,QAAD,IAAaF,iBAAb,IAAkC,OAAOnI,OAAP,KAAmB,SAAzD,EAAoE;AAChEqI,MAAAA,QAAQ,GAAGrI,OAAO,GAAG8H,mBAAmB,CAACp8C,GAApB,CAAwBu8C,GAAxB,CAAH,GAAkCF,oBAAoB,CAACr8C,GAArB,CAAyBu8C,GAAzB,CAApD;AACH;;AACD,WAAOG,QAAQ,IAAIC,QAAnB;AACH,GAVD;AAWH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,UAAU,GAAG,OAAnB;AACA,MAAMC,gBAAgB,GAAG,IAAInpE,MAAJ,CAAY,MAAKkpE,UAAW,OAA5B,EAAoC,GAApC,CAAzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,iBAAT,CAA2BnK,MAA3B,EAAmCn6D,QAAnC,EAA6C1C,MAA7C,EAAqDqlE,QAArD,EAA+D;AAC3D,SAAO,IAAI4B,0BAAJ,CAA+BpK,MAA/B,EAAuCqK,KAAvC,CAA6CxkE,QAA7C,EAAuD1C,MAAvD,EAA+DqlE,QAA/D,CAAP;AACH;;AACD,MAAM8B,aAAa,GAAG,EAAtB;;AACA,MAAMF,0BAAN,CAAiC;AAC7B3qE,EAAAA,WAAW,CAAC8qE,OAAD,EAAU;AACjB,SAAKA,OAAL,GAAeA,OAAf;AACH;;AACDF,EAAAA,KAAK,CAACxkE,QAAD,EAAW1C,MAAX,EAAmBqlE,QAAnB,EAA6B;AAC9B,UAAM9pC,OAAO,GAAG,IAAI8rC,0BAAJ,CAA+BrnE,MAA/B,CAAhB;;AACA,SAAKsnE,6BAAL,CAAmC/rC,OAAnC;;AACA,UAAMgsC,GAAG,GAAGnD,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAAC3gE,QAAD,CAA9B,EAA0C64B,OAA1C,CAAxB;;AACA,QAAIA,OAAO,CAACisC,6BAAR,CAAsCn9C,IAA1C,EAAgD;AAC5Cs7C,MAAAA,iCAAiC,CAACN,QAAD,EAAW,CAAC,GAAG9pC,OAAO,CAACisC,6BAAR,CAAsCvsE,IAAtC,EAAJ,CAAX,CAAjC;AACH;;AACD,WAAOssE,GAAP;AACH;;AACDD,EAAAA,6BAA6B,CAAC/rC,OAAD,EAAU;AACnCA,IAAAA,OAAO,CAACksC,oBAAR,GAA+BN,aAA/B;AACA5rC,IAAAA,OAAO,CAACmsC,eAAR,GAA0B,EAA1B;AACAnsC,IAAAA,OAAO,CAACmsC,eAAR,CAAwBP,aAAxB,IAAyC,EAAzC;AACA5rC,IAAAA,OAAO,CAAC6tB,WAAR,GAAsB,CAAtB;AACH;;AACDkb,EAAAA,YAAY,CAAC5hE,QAAD,EAAW64B,OAAX,EAAoB;AAC5B,QAAIosC,UAAU,GAAGpsC,OAAO,CAACosC,UAAR,GAAqB,CAAtC;AACA,QAAIC,QAAQ,GAAGrsC,OAAO,CAACqsC,QAAR,GAAmB,CAAlC;AACA,UAAMC,MAAM,GAAG,EAAf;AACA,UAAMC,WAAW,GAAG,EAApB;;AACA,QAAIplE,QAAQ,CAACpD,IAAT,CAAcygE,MAAd,CAAqB,CAArB,KAA2B,GAA/B,EAAoC;AAChCxkC,MAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoBi7D,cAAc,EAAlC;AACH;;AACD13D,IAAAA,QAAQ,CAACqlE,WAAT,CAAqBjtE,OAArB,CAA6BktE,GAAG,IAAI;AAChC,WAAKV,6BAAL,CAAmC/rC,OAAnC;;AACA,UAAIysC,GAAG,CAACnrE,IAAJ,IAAY;AAAE;AAAlB,QAA+B;AAC3B,cAAMorE,QAAQ,GAAGD,GAAjB;AACA,cAAM1oE,IAAI,GAAG2oE,QAAQ,CAAC3oE,IAAtB;AACAA,QAAAA,IAAI,CAACiD,QAAL,GAAgBjH,KAAhB,CAAsB,SAAtB,EAAiCR,OAAjC,CAAyC4gB,CAAC,IAAI;AAC1CusD,UAAAA,QAAQ,CAAC3oE,IAAT,GAAgBoc,CAAhB;AACAmsD,UAAAA,MAAM,CAAC1oE,IAAP,CAAY,KAAKolE,UAAL,CAAgB0D,QAAhB,EAA0B1sC,OAA1B,CAAZ;AACH,SAHD;AAIA0sC,QAAAA,QAAQ,CAAC3oE,IAAT,GAAgBA,IAAhB;AACH,OARD,MASK,IAAI0oE,GAAG,CAACnrE,IAAJ,IAAY;AAAE;AAAlB,QAAoC;AACrC,cAAMqrE,UAAU,GAAG,KAAK1D,eAAL,CAAqBwD,GAArB,EAA0BzsC,OAA1B,CAAnB;AACAosC,QAAAA,UAAU,IAAIO,UAAU,CAACP,UAAzB;AACAC,QAAAA,QAAQ,IAAIM,UAAU,CAACN,QAAvB;AACAE,QAAAA,WAAW,CAAC3oE,IAAZ,CAAiB+oE,UAAjB;AACH,OALI,MAMA;AACD3sC,QAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoBk7D,iBAAiB,EAArC;AACH;AACJ,KApBD;AAqBA,WAAO;AACHx9D,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHyC,MAAAA,IAAI,EAAEoD,QAAQ,CAACpD,IAFZ;AAGHuoE,MAAAA,MAHG;AAIHC,MAAAA,WAJG;AAKHH,MAAAA,UALG;AAMHC,MAAAA,QANG;AAOH3vD,MAAAA,OAAO,EAAE;AAPN,KAAP;AASH;;AACDssD,EAAAA,UAAU,CAAC7hE,QAAD,EAAW64B,OAAX,EAAoB;AAC1B,UAAM4sC,QAAQ,GAAG,KAAKtD,UAAL,CAAgBniE,QAAQ,CAACozB,MAAzB,EAAiCyF,OAAjC,CAAjB;AACA,UAAM6sC,SAAS,GAAI1lE,QAAQ,CAACuV,OAAT,IAAoBvV,QAAQ,CAACuV,OAAT,CAAiBhN,MAAtC,IAAiD,IAAnE;;AACA,QAAIk9D,QAAQ,CAACE,qBAAb,EAAoC;AAChC,YAAM7N,WAAW,GAAG,IAAIznD,GAAJ,EAApB;AACA,YAAM9H,MAAM,GAAGm9D,SAAS,IAAI,EAA5B;AACAD,MAAAA,QAAQ,CAACryC,MAAT,CAAgBh7B,OAAhB,CAAwB3D,KAAK,IAAI;AAC7B,YAAI65B,QAAQ,CAAC75B,KAAD,CAAZ,EAAqB;AACjB,gBAAMmxE,SAAS,GAAGnxE,KAAlB;AACA6D,UAAAA,MAAM,CAACC,IAAP,CAAYqtE,SAAZ,EAAuBxtE,OAAvB,CAA+Bi+B,IAAI,IAAI;AACnCyqC,YAAAA,kBAAkB,CAAC8E,SAAS,CAACvvC,IAAD,CAAV,CAAlB,CAAoCj+B,OAApC,CAA4CytE,GAAG,IAAI;AAC/C,kBAAI,CAACt9D,MAAM,CAAC6f,cAAP,CAAsBy9C,GAAtB,CAAL,EAAiC;AAC7B/N,gBAAAA,WAAW,CAAC1sC,GAAZ,CAAgBy6C,GAAhB;AACH;AACJ,aAJD;AAKH,WAND;AAOH;AACJ,OAXD;;AAYA,UAAI/N,WAAW,CAACnwC,IAAhB,EAAsB;AAClB,cAAMm+C,cAAc,GAAG5E,eAAe,CAACpJ,WAAW,CAACxuD,MAAZ,EAAD,CAAtC;AACAuvB,QAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoBm7D,YAAY,CAAC53D,QAAQ,CAACpD,IAAV,EAAgBkpE,cAAhB,CAAhC;AACH;AACJ;;AACD,WAAO;AACH3rE,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHyC,MAAAA,IAAI,EAAEoD,QAAQ,CAACpD,IAFZ;AAGH02B,MAAAA,KAAK,EAAEmyC,QAHJ;AAIHlwD,MAAAA,OAAO,EAAEmwD,SAAS,GAAG;AAAEn9D,QAAAA,MAAM,EAAEm9D;AAAV,OAAH,GAA2B;AAJ1C,KAAP;AAMH;;AACD5D,EAAAA,eAAe,CAAC9hE,QAAD,EAAW64B,OAAX,EAAoB;AAC/BA,IAAAA,OAAO,CAACosC,UAAR,GAAqB,CAArB;AACApsC,IAAAA,OAAO,CAACqsC,QAAR,GAAmB,CAAnB;AACA,UAAM1f,SAAS,GAAGkc,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAAC3gE,QAAQ,CAACwlD,SAAV,CAA9B,EAAoD3sB,OAApD,CAA9B;AACA,UAAM19B,QAAQ,GAAGgoE,mBAAmB,CAACnjE,QAAQ,CAAC0jC,IAAV,EAAgB7K,OAAO,CAACv7B,MAAxB,CAApC;AACA,WAAO;AACHnD,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHgB,MAAAA,QAFG;AAGHqqD,MAAAA,SAHG;AAIHyf,MAAAA,UAAU,EAAEpsC,OAAO,CAACosC,UAJjB;AAKHC,MAAAA,QAAQ,EAAErsC,OAAO,CAACqsC,QALf;AAMH3vD,MAAAA,OAAO,EAAEwwD,yBAAyB,CAAC/lE,QAAQ,CAACuV,OAAV;AAN/B,KAAP;AAQH;;AACDwsD,EAAAA,aAAa,CAAC/hE,QAAD,EAAW64B,OAAX,EAAoB;AAC7B,WAAO;AACH1+B,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHymE,MAAAA,KAAK,EAAE5gE,QAAQ,CAAC4gE,KAAT,CAAe5oE,GAAf,CAAmB6zD,CAAC,IAAI6V,YAAY,CAAC,IAAD,EAAO7V,CAAP,EAAUhzB,OAAV,CAApC,CAFJ;AAGHtjB,MAAAA,OAAO,EAAEwwD,yBAAyB,CAAC/lE,QAAQ,CAACuV,OAAV;AAH/B,KAAP;AAKH;;AACDysD,EAAAA,UAAU,CAAChiE,QAAD,EAAW64B,OAAX,EAAoB;AAC1B,UAAM6tB,WAAW,GAAG7tB,OAAO,CAAC6tB,WAA5B;AACA,QAAIsf,YAAY,GAAG,CAAnB;AACA,UAAMpF,KAAK,GAAG5gE,QAAQ,CAAC4gE,KAAT,CAAe5oE,GAAf,CAAmBlD,IAAI,IAAI;AACrC+jC,MAAAA,OAAO,CAAC6tB,WAAR,GAAsBA,WAAtB;AACA,YAAMuf,QAAQ,GAAGvE,YAAY,CAAC,IAAD,EAAO5sE,IAAP,EAAa+jC,OAAb,CAA7B;AACAmtC,MAAAA,YAAY,GAAG7pE,IAAI,CAACgmD,GAAL,CAAS6jB,YAAT,EAAuBntC,OAAO,CAAC6tB,WAA/B,CAAf;AACA,aAAOuf,QAAP;AACH,KALa,CAAd;AAMAptC,IAAAA,OAAO,CAAC6tB,WAAR,GAAsBsf,YAAtB;AACA,WAAO;AACH7rE,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHymE,MAAAA,KAFG;AAGHrrD,MAAAA,OAAO,EAAEwwD,yBAAyB,CAAC/lE,QAAQ,CAACuV,OAAV;AAH/B,KAAP;AAKH;;AACD0sD,EAAAA,YAAY,CAACjiE,QAAD,EAAW64B,OAAX,EAAoB;AAC5B,UAAMqtC,SAAS,GAAGC,kBAAkB,CAACnmE,QAAQ,CAACm/D,OAAV,EAAmBtmC,OAAO,CAACv7B,MAA3B,CAApC;AACAu7B,IAAAA,OAAO,CAACutC,qBAAR,GAAgCF,SAAhC;AACA,QAAIT,QAAJ;AACA,QAAIY,aAAa,GAAGrmE,QAAQ,CAACozB,MAAT,GAAkBpzB,QAAQ,CAACozB,MAA3B,GAAoCE,0DAAK,CAAC,EAAD,CAA7D;;AACA,QAAI+yC,aAAa,CAAClsE,IAAd,IAAsB;AAAE;AAA5B,MAA6C;AACzCsrE,MAAAA,QAAQ,GAAG,KAAKvD,cAAL,CAAoBmE,aAApB,EAAmCxtC,OAAnC,CAAX;AACH,KAFD,MAGK;AACD,UAAIwtC,aAAa,GAAGrmE,QAAQ,CAACozB,MAA7B;AACA,UAAIkzC,OAAO,GAAG,KAAd;;AACA,UAAI,CAACD,aAAL,EAAoB;AAChBC,QAAAA,OAAO,GAAG,IAAV;AACA,cAAMC,YAAY,GAAG,EAArB;;AACA,YAAIL,SAAS,CAACpiB,MAAd,EAAsB;AAClByiB,UAAAA,YAAY,CAAC,QAAD,CAAZ,GAAyBL,SAAS,CAACpiB,MAAnC;AACH;;AACDuiB,QAAAA,aAAa,GAAG/yC,0DAAK,CAACizC,YAAD,CAArB;AACH;;AACD1tC,MAAAA,OAAO,CAAC6tB,WAAR,IAAuBwf,SAAS,CAAC1sE,QAAV,GAAqB0sE,SAAS,CAAC7d,KAAtD;;AACA,YAAMme,SAAS,GAAG,KAAKrE,UAAL,CAAgBkE,aAAhB,EAA+BxtC,OAA/B,CAAlB;;AACA2tC,MAAAA,SAAS,CAACC,WAAV,GAAwBH,OAAxB;AACAb,MAAAA,QAAQ,GAAGe,SAAX;AACH;;AACD3tC,IAAAA,OAAO,CAACutC,qBAAR,GAAgC,IAAhC;AACA,WAAO;AACHjsE,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHglE,MAAAA,OAAO,EAAE+G,SAFN;AAGH5yC,MAAAA,KAAK,EAAEmyC,QAHJ;AAIHlwD,MAAAA,OAAO,EAAE;AAJN,KAAP;AAMH;;AACD4sD,EAAAA,UAAU,CAACniE,QAAD,EAAW64B,OAAX,EAAoB;AAC1B,UAAMgsC,GAAG,GAAG,KAAK6B,aAAL,CAAmB1mE,QAAnB,EAA6B64B,OAA7B,CAAZ;;AACA,SAAK8tC,iBAAL,CAAuB9B,GAAvB,EAA4BhsC,OAA5B;;AACA,WAAOgsC,GAAP;AACH;;AACD6B,EAAAA,aAAa,CAAC1mE,QAAD,EAAW64B,OAAX,EAAoB;AAC7B,UAAMzF,MAAM,GAAG,EAAf;;AACA,QAAIn7B,KAAK,CAACC,OAAN,CAAc8H,QAAQ,CAACozB,MAAvB,CAAJ,EAAoC;AAChCpzB,MAAAA,QAAQ,CAACozB,MAAT,CAAgBh7B,OAAhB,CAAwBwuE,UAAU,IAAI;AAClC,YAAI,OAAOA,UAAP,IAAqB,QAAzB,EAAmC;AAC/B,cAAIA,UAAU,IAAIrQ,2DAAlB,EAA8B;AAC1BnjC,YAAAA,MAAM,CAAC32B,IAAP,CAAYmqE,UAAZ;AACH,WAFD,MAGK;AACD/tC,YAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoBs7D,iBAAiB,CAAC6O,UAAD,CAArC;AACH;AACJ,SAPD,MAQK;AACDxzC,UAAAA,MAAM,CAAC32B,IAAP,CAAYmqE,UAAZ;AACH;AACJ,OAZD;AAaH,KAdD,MAeK;AACDxzC,MAAAA,MAAM,CAAC32B,IAAP,CAAYuD,QAAQ,CAACozB,MAArB;AACH;;AACD,QAAIuyC,qBAAqB,GAAG,KAA5B;AACA,QAAIkB,eAAe,GAAG,IAAtB;AACAzzC,IAAAA,MAAM,CAACh7B,OAAP,CAAe0uE,SAAS,IAAI;AACxB,UAAIx4C,QAAQ,CAACw4C,SAAD,CAAZ,EAAyB;AACrB,cAAMC,QAAQ,GAAGD,SAAjB;AACA,cAAMhjB,MAAM,GAAGijB,QAAQ,CAAC,QAAD,CAAvB;;AACA,YAAIjjB,MAAJ,EAAY;AACR+iB,UAAAA,eAAe,GAAG/iB,MAAlB;AACA,iBAAOijB,QAAQ,CAAC,QAAD,CAAf;AACH;;AACD,YAAI,CAACpB,qBAAL,EAA4B;AACxB,eAAK,IAAItvC,IAAT,IAAiB0wC,QAAjB,EAA2B;AACvB,kBAAMtyE,KAAK,GAAGsyE,QAAQ,CAAC1wC,IAAD,CAAtB;;AACA,gBAAI5hC,KAAK,CAACoL,QAAN,GAAiB7G,OAAjB,CAAyBwlE,uBAAzB,KAAqD,CAAzD,EAA4D;AACxDmH,cAAAA,qBAAqB,GAAG,IAAxB;AACA;AACH;AACJ;AACJ;AACJ;AACJ,KAlBD;AAmBA,WAAO;AACHxrE,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHi5B,MAAAA,MAFG;AAGH0wB,MAAAA,MAAM,EAAE+iB,eAHL;AAIHrrE,MAAAA,MAAM,EAAEwE,QAAQ,CAACxE,MAJd;AAKHmqE,MAAAA,qBALG;AAMHpwD,MAAAA,OAAO,EAAE;AANN,KAAP;AAQH;;AACDoxD,EAAAA,iBAAiB,CAAC9B,GAAD,EAAMhsC,OAAN,EAAe;AAC5B,UAAMsmC,OAAO,GAAGtmC,OAAO,CAACutC,qBAAxB;AACA,QAAIY,OAAO,GAAGnuC,OAAO,CAAC6tB,WAAtB;AACA,QAAIC,SAAS,GAAG9tB,OAAO,CAAC6tB,WAAxB;;AACA,QAAIyY,OAAO,IAAIxY,SAAS,GAAG,CAA3B,EAA8B;AAC1BA,MAAAA,SAAS,IAAIwY,OAAO,CAAC3lE,QAAR,GAAmB2lE,OAAO,CAAC9W,KAAxC;AACH;;AACDwc,IAAAA,GAAG,CAACzxC,MAAJ,CAAWh7B,OAAX,CAAmBy1C,KAAK,IAAI;AACxB,UAAI,OAAOA,KAAP,IAAgB,QAApB,EACI;AACJv1C,MAAAA,MAAM,CAACC,IAAP,CAAYs1C,KAAZ,EAAmBz1C,OAAnB,CAA2Bi+B,IAAI,IAAI;AAC/B,YAAI,CAAC,KAAKquC,OAAL,CAAaxH,qBAAb,CAAmC7mC,IAAnC,CAAL,EAA+C;AAC3C,iBAAOwX,KAAK,CAACxX,IAAD,CAAZ;AACAwC,UAAAA,OAAO,CAACisC,6BAAR,CAAsC15C,GAAtC,CAA0CiL,IAA1C;AACA;AACH;;AACD,cAAM2uC,eAAe,GAAGnsC,OAAO,CAACmsC,eAAR,CAAwBnsC,OAAO,CAACksC,oBAAhC,CAAxB;AACA,cAAMkC,cAAc,GAAGjC,eAAe,CAAC3uC,IAAD,CAAtC;AACA,YAAI6wC,oBAAoB,GAAG,IAA3B;;AACA,YAAID,cAAJ,EAAoB;AAChB,cAAItgB,SAAS,IAAIqgB,OAAb,IAAwBrgB,SAAS,IAAIsgB,cAAc,CAACtgB,SAApD,IACAqgB,OAAO,IAAIC,cAAc,CAACD,OAD9B,EACuC;AACnCnuC,YAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoBw7D,wBAAwB,CAAC5hC,IAAD,EAAO4wC,cAAc,CAACtgB,SAAtB,EAAiCsgB,cAAc,CAACD,OAAhD,EAAyDrgB,SAAzD,EAAoEqgB,OAApE,CAA5C;AACAE,YAAAA,oBAAoB,GAAG,KAAvB;AACH,WALe,CAMhB;AACA;AACA;;;AACAvgB,UAAAA,SAAS,GAAGsgB,cAAc,CAACtgB,SAA3B;AACH;;AACD,YAAIugB,oBAAJ,EAA0B;AACtBlC,UAAAA,eAAe,CAAC3uC,IAAD,CAAf,GAAwB;AAAEswB,YAAAA,SAAF;AAAaqgB,YAAAA;AAAb,WAAxB;AACH;;AACD,YAAInuC,OAAO,CAACtjB,OAAZ,EAAqB;AACjBsrD,UAAAA,mBAAmB,CAAChzB,KAAK,CAACxX,IAAD,CAAN,EAAcwC,OAAO,CAACtjB,OAAtB,EAA+BsjB,OAAO,CAACv7B,MAAvC,CAAnB;AACH;AACJ,OA1BD;AA2BH,KA9BD;AA+BH;;AACD4kE,EAAAA,cAAc,CAACliE,QAAD,EAAW64B,OAAX,EAAoB;AAC9B,UAAMgsC,GAAG,GAAG;AAAE1qE,MAAAA,IAAI,EAAE;AAAE;AAAV;AAA2Bi5B,MAAAA,MAAM,EAAE,EAAnC;AAAuC7d,MAAAA,OAAO,EAAE;AAAhD,KAAZ;;AACA,QAAI,CAACsjB,OAAO,CAACutC,qBAAb,EAAoC;AAChCvtC,MAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoB67D,gBAAgB,EAApC;AACA,aAAOuM,GAAP;AACH;;AACD,UAAMsC,mBAAmB,GAAG,CAA5B;AACA,QAAIC,yBAAyB,GAAG,CAAhC;AACA,UAAMC,OAAO,GAAG,EAAhB;AACA,QAAIC,iBAAiB,GAAG,KAAxB;AACA,QAAIC,mBAAmB,GAAG,KAA1B;AACA,QAAI7M,cAAc,GAAG,CAArB;AACA,UAAMJ,SAAS,GAAGt6D,QAAQ,CAAC4gE,KAAT,CAAe5oE,GAAf,CAAmBo7B,MAAM,IAAI;AAC3C,YAAME,KAAK,GAAG,KAAKozC,aAAL,CAAmBtzC,MAAnB,EAA2ByF,OAA3B,CAAd;;AACA,UAAI2uC,SAAS,GAAGl0C,KAAK,CAAC93B,MAAN,IAAgB,IAAhB,GAAuB83B,KAAK,CAAC93B,MAA7B,GAAsCisE,aAAa,CAACn0C,KAAK,CAACF,MAAP,CAAnE;AACA,UAAI53B,MAAM,GAAG,CAAb;;AACA,UAAIgsE,SAAS,IAAI,IAAjB,EAAuB;AACnBJ,QAAAA,yBAAyB;AACzB5rE,QAAAA,MAAM,GAAG83B,KAAK,CAAC93B,MAAN,GAAegsE,SAAxB;AACH;;AACDD,MAAAA,mBAAmB,GAAGA,mBAAmB,IAAI/rE,MAAM,GAAG,CAAhC,IAAqCA,MAAM,GAAG,CAApE;AACA8rE,MAAAA,iBAAiB,GAAGA,iBAAiB,IAAI9rE,MAAM,GAAGk/D,cAAlD;AACAA,MAAAA,cAAc,GAAGl/D,MAAjB;AACA6rE,MAAAA,OAAO,CAAC5qE,IAAR,CAAajB,MAAb;AACA,aAAO83B,KAAP;AACH,KAbiB,CAAlB;;AAcA,QAAIi0C,mBAAJ,EAAyB;AACrB1uC,MAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoB87D,aAAa,EAAjC;AACH;;AACD,QAAI+O,iBAAJ,EAAuB;AACnBzuC,MAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoB+7D,yBAAyB,EAA7C;AACH;;AACD,UAAM1gE,MAAM,GAAGkI,QAAQ,CAAC4gE,KAAT,CAAe9oE,MAA9B;AACA,QAAI4vE,eAAe,GAAG,CAAtB;;AACA,QAAIN,yBAAyB,GAAG,CAA5B,IAAiCA,yBAAyB,GAAGtvE,MAAjE,EAAyE;AACrE+gC,MAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoBg8D,uBAAuB,EAA3C;AACH,KAFD,MAGK,IAAI2O,yBAAyB,IAAI,CAAjC,EAAoC;AACrCM,MAAAA,eAAe,GAAGP,mBAAmB,IAAIrvE,MAAM,GAAG,CAAb,CAArC;AACH;;AACD,UAAM6vE,KAAK,GAAG7vE,MAAM,GAAG,CAAvB;AACA,UAAM4uD,WAAW,GAAG7tB,OAAO,CAAC6tB,WAA5B;AACA,UAAM0f,qBAAqB,GAAGvtC,OAAO,CAACutC,qBAAtC;AACA,UAAMwB,eAAe,GAAGxB,qBAAqB,CAAC5sE,QAA9C;AACA8gE,IAAAA,SAAS,CAACliE,OAAV,CAAkB,CAACwiE,EAAD,EAAKp+D,CAAL,KAAW;AACzB,YAAMhB,MAAM,GAAGksE,eAAe,GAAG,CAAlB,GAAuBlrE,CAAC,IAAImrE,KAAL,GAAa,CAAb,GAAkBD,eAAe,GAAGlrE,CAA3D,GAAiE6qE,OAAO,CAAC7qE,CAAD,CAAvF;AACA,YAAMqrE,qBAAqB,GAAGrsE,MAAM,GAAGosE,eAAvC;AACA/uC,MAAAA,OAAO,CAAC6tB,WAAR,GAAsBA,WAAW,GAAG0f,qBAAqB,CAAC/d,KAApC,GAA4Cwf,qBAAlE;AACAzB,MAAAA,qBAAqB,CAAC5sE,QAAtB,GAAiCquE,qBAAjC;;AACA,WAAKlB,iBAAL,CAAuB/L,EAAvB,EAA2B/hC,OAA3B;;AACA+hC,MAAAA,EAAE,CAACp/D,MAAH,GAAYA,MAAZ;AACAqpE,MAAAA,GAAG,CAACzxC,MAAJ,CAAW32B,IAAX,CAAgBm+D,EAAhB;AACH,KARD;AASA,WAAOiK,GAAP;AACH;;AACDzC,EAAAA,cAAc,CAACpiE,QAAD,EAAW64B,OAAX,EAAoB;AAC9B,WAAO;AACH1+B,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHqrD,MAAAA,SAAS,EAAEkc,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAAC3gE,QAAQ,CAACwlD,SAAV,CAA9B,EAAoD3sB,OAApD,CAFpB;AAGHtjB,MAAAA,OAAO,EAAEwwD,yBAAyB,CAAC/lE,QAAQ,CAACuV,OAAV;AAH/B,KAAP;AAKH;;AACD8sD,EAAAA,iBAAiB,CAACriE,QAAD,EAAW64B,OAAX,EAAoB;AACjCA,IAAAA,OAAO,CAACqsC,QAAR;AACA,WAAO;AACH/qE,MAAAA,IAAI,EAAE;AAAE;AADL;AAEHob,MAAAA,OAAO,EAAEwwD,yBAAyB,CAAC/lE,QAAQ,CAACuV,OAAV;AAF/B,KAAP;AAIH;;AACD+sD,EAAAA,eAAe,CAACtiE,QAAD,EAAW64B,OAAX,EAAoB;AAC/B,WAAO;AACH1+B,MAAAA,IAAI,EAAE;AAAG;AADN;AAEHqrD,MAAAA,SAAS,EAAE,KAAK4c,cAAL,CAAoBpiE,QAAQ,CAACwlD,SAA7B,EAAwC3sB,OAAxC,CAFR;AAGHtjB,MAAAA,OAAO,EAAEwwD,yBAAyB,CAAC/lE,QAAQ,CAACuV,OAAV;AAH/B,KAAP;AAKH;;AACDgtD,EAAAA,UAAU,CAACviE,QAAD,EAAW64B,OAAX,EAAoB;AAC1B,UAAMivC,cAAc,GAAGjvC,OAAO,CAACksC,oBAA/B;AACA,UAAMxvD,OAAO,GAAIvV,QAAQ,CAACuV,OAAT,IAAoB,EAArC;AACAsjB,IAAAA,OAAO,CAACosC,UAAR;AACApsC,IAAAA,OAAO,CAACkvC,YAAR,GAAuB/nE,QAAvB;AACA,UAAM,CAACvC,QAAD,EAAWuqE,WAAX,IAA0BC,iBAAiB,CAACjoE,QAAQ,CAACvC,QAAV,CAAjD;AACAo7B,IAAAA,OAAO,CAACksC,oBAAR,GACI+C,cAAc,CAAChwE,MAAf,GAAyBgwE,cAAc,GAAG,GAAjB,GAAuBrqE,QAAhD,GAA4DA,QADhE;AAEAs+D,IAAAA,eAAe,CAACljC,OAAO,CAACmsC,eAAT,EAA0BnsC,OAAO,CAACksC,oBAAlC,EAAwD,EAAxD,CAAf;AACA,UAAMvf,SAAS,GAAGkc,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAAC3gE,QAAQ,CAACwlD,SAAV,CAA9B,EAAoD3sB,OAApD,CAA9B;AACAA,IAAAA,OAAO,CAACkvC,YAAR,GAAuB,IAAvB;AACAlvC,IAAAA,OAAO,CAACksC,oBAAR,GAA+B+C,cAA/B;AACA,WAAO;AACH3tE,MAAAA,IAAI,EAAE;AAAG;AADN;AAEHsD,MAAAA,QAFG;AAGHkqE,MAAAA,KAAK,EAAEpyD,OAAO,CAACoyD,KAAR,IAAiB,CAHrB;AAIHO,MAAAA,QAAQ,EAAE,CAAC,CAAC3yD,OAAO,CAAC2yD,QAJjB;AAKHF,MAAAA,WALG;AAMHxiB,MAAAA,SANG;AAOH2iB,MAAAA,gBAAgB,EAAEnoE,QAAQ,CAACvC,QAPxB;AAQH8X,MAAAA,OAAO,EAAEwwD,yBAAyB,CAAC/lE,QAAQ,CAACuV,OAAV;AAR/B,KAAP;AAUH;;AACDitD,EAAAA,YAAY,CAACxiE,QAAD,EAAW64B,OAAX,EAAoB;AAC5B,QAAI,CAACA,OAAO,CAACkvC,YAAb,EAA2B;AACvBlvC,MAAAA,OAAO,CAACv7B,MAAR,CAAeb,IAAf,CAAoBi8D,cAAc,EAAlC;AACH;;AACD,UAAMyG,OAAO,GAAGn/D,QAAQ,CAACm/D,OAAT,KAAqB,MAArB,GACZ;AAAE3lE,MAAAA,QAAQ,EAAE,CAAZ;AAAe6uD,MAAAA,KAAK,EAAE,CAAtB;AAAyBvE,MAAAA,MAAM,EAAE;AAAjC,KADY,GAEZob,aAAa,CAACl/D,QAAQ,CAACm/D,OAAV,EAAmBtmC,OAAO,CAACv7B,MAA3B,EAAmC,IAAnC,CAFjB;AAGA,WAAO;AACHnD,MAAAA,IAAI,EAAE;AAAG;AADN;AAEHqrD,MAAAA,SAAS,EAAEkc,YAAY,CAAC,IAAD,EAAOf,uBAAuB,CAAC3gE,QAAQ,CAACwlD,SAAV,CAA9B,EAAoD3sB,OAApD,CAFpB;AAGHsmC,MAAAA,OAHG;AAIH5pD,MAAAA,OAAO,EAAE;AAJN,KAAP;AAMH;;AA3W4B;;AA6WjC,SAAS0yD,iBAAT,CAA2BxqE,QAA3B,EAAqC;AACjC,QAAM2qE,YAAY,GAAG3qE,QAAQ,CAAC7E,KAAT,CAAe,SAAf,EAA0B4pC,IAA1B,CAA+BsH,KAAK,IAAIA,KAAK,IAAIs6B,UAAjD,IAA+D,IAA/D,GAAsE,KAA3F;;AACA,MAAIgE,YAAJ,EAAkB;AACd3qE,IAAAA,QAAQ,GAAGA,QAAQ,CAACsC,OAAT,CAAiBskE,gBAAjB,EAAmC,EAAnC,CAAX;AACH,GAJgC,CAKjC;AACA;;;AACA5mE,EAAAA,QAAQ,GAAGA,QAAQ,CAACsC,OAAT,CAAiB,MAAjB,EAAyB8+D,mBAAzB,EACN9+D,OADM,CACE,OADF,EACWnE,KAAK,IAAIijE,mBAAmB,GAAG,GAAtB,GAA4BjjE,KAAK,CAACwgE,MAAN,CAAa,CAAb,CADhD,EAENr8D,OAFM,CAEE,aAFF,EAEiBg/D,qBAFjB,CAAX;AAGA,SAAO,CAACthE,QAAD,EAAW2qE,YAAX,CAAP;AACH;;AACD,SAASC,eAAT,CAAyBl0D,GAAzB,EAA8B;AAC1B,SAAOA,GAAG,GAAGwrD,OAAO,CAACxrD,GAAD,CAAV,GAAkB,IAA5B;AACH;;AACD,MAAMwwD,0BAAN,CAAiC;AAC7B/qE,EAAAA,WAAW,CAAC0D,MAAD,EAAS;AAChB,SAAKA,MAAL,GAAcA,MAAd;AACA,SAAK2nE,UAAL,GAAkB,CAAlB;AACA,SAAKC,QAAL,GAAgB,CAAhB;AACA,SAAKoD,iBAAL,GAAyB,IAAzB;AACA,SAAKP,YAAL,GAAoB,IAApB;AACA,SAAKhD,oBAAL,GAA4B,IAA5B;AACA,SAAKqB,qBAAL,GAA6B,IAA7B;AACA,SAAK1f,WAAL,GAAmB,CAAnB;AACA,SAAKse,eAAL,GAAuB,EAAvB;AACA,SAAKzvD,OAAL,GAAe,IAAf;AACA,SAAKuvD,6BAAL,GAAqC,IAAIz0D,GAAJ,EAArC;AACH;;AAb4B;;AAejC,SAASo3D,aAAT,CAAuBr0C,MAAvB,EAA+B;AAC3B,MAAI,OAAOA,MAAP,IAAiB,QAArB,EACI,OAAO,IAAP;AACJ,MAAI53B,MAAM,GAAG,IAAb;;AACA,MAAIvD,KAAK,CAACC,OAAN,CAAck7B,MAAd,CAAJ,EAA2B;AACvBA,IAAAA,MAAM,CAACh7B,OAAP,CAAewuE,UAAU,IAAI;AACzB,UAAIt4C,QAAQ,CAACs4C,UAAD,CAAR,IAAwBA,UAAU,CAACx+C,cAAX,CAA0B,QAA1B,CAA5B,EAAiE;AAC7D,cAAMjU,GAAG,GAAGyyD,UAAZ;AACAprE,QAAAA,MAAM,GAAGwU,UAAU,CAACmE,GAAG,CAAC,QAAD,CAAJ,CAAnB;AACA,eAAOA,GAAG,CAAC,QAAD,CAAV;AACH;AACJ,KAND;AAOH,GARD,MASK,IAAIma,QAAQ,CAAC8E,MAAD,CAAR,IAAoBA,MAAM,CAAChL,cAAP,CAAsB,QAAtB,CAAxB,EAAyD;AAC1D,UAAMjU,GAAG,GAAGif,MAAZ;AACA53B,IAAAA,MAAM,GAAGwU,UAAU,CAACmE,GAAG,CAAC,QAAD,CAAJ,CAAnB;AACA,WAAOA,GAAG,CAAC,QAAD,CAAV;AACH;;AACD,SAAO3Y,MAAP;AACH;;AACD,SAAS8yB,QAAT,CAAkB75B,KAAlB,EAAyB;AACrB,SAAO,CAACwD,KAAK,CAACC,OAAN,CAAczD,KAAd,CAAD,IAAyB,OAAOA,KAAP,IAAgB,QAAhD;AACH;;AACD,SAAS0xE,kBAAT,CAA4B1xE,KAA5B,EAAmC6I,MAAnC,EAA2C;AACvC,MAAI7I,KAAK,CAAC2zB,cAAN,CAAqB,UAArB,CAAJ,EAAsC;AAClC,WAAO3zB,KAAP;AACH;;AACD,MAAI,OAAOA,KAAP,IAAgB,QAApB,EAA8B;AAC1B,UAAM+E,QAAQ,GAAG0lE,aAAa,CAACzqE,KAAD,EAAQ6I,MAAR,CAAb,CAA6B9D,QAA9C;AACA,WAAO+uE,aAAa,CAAC/uE,QAAD,EAAW,CAAX,EAAc,EAAd,CAApB;AACH;;AACD,QAAMgvE,QAAQ,GAAG/zE,KAAjB;AACA,QAAMg0E,SAAS,GAAGD,QAAQ,CAAC5vE,KAAT,CAAe,KAAf,EAAsB8vE,IAAtB,CAA2Bn/D,CAAC,IAAIA,CAAC,CAAC8zD,MAAF,CAAS,CAAT,KAAe,GAAf,IAAsB9zD,CAAC,CAAC8zD,MAAF,CAAS,CAAT,KAAe,GAArE,CAAlB;;AACA,MAAIoL,SAAJ,EAAe;AACX,UAAM5D,GAAG,GAAG0D,aAAa,CAAC,CAAD,EAAI,CAAJ,EAAO,EAAP,CAAzB;AACA1D,IAAAA,GAAG,CAAC8D,OAAJ,GAAc,IAAd;AACA9D,IAAAA,GAAG,CAAC2D,QAAJ,GAAeA,QAAf;AACA,WAAO3D,GAAP;AACH;;AACD,QAAM1F,OAAO,GAAGD,aAAa,CAACsJ,QAAD,EAAWlrE,MAAX,CAA7B;AACA,SAAOirE,aAAa,CAACpJ,OAAO,CAAC3lE,QAAT,EAAmB2lE,OAAO,CAAC9W,KAA3B,EAAkC8W,OAAO,CAACrb,MAA1C,CAApB;AACH;;AACD,SAASiiB,yBAAT,CAAmCxwD,OAAnC,EAA4C;AACxC,MAAIA,OAAJ,EAAa;AACTA,IAAAA,OAAO,GAAGoqD,OAAO,CAACpqD,OAAD,CAAjB;;AACA,QAAIA,OAAO,CAAC,QAAD,CAAX,EAAuB;AACnBA,MAAAA,OAAO,CAAC,QAAD,CAAP,GAAoB8yD,eAAe,CAAC9yD,OAAO,CAAC,QAAD,CAAR,CAAnC;AACH;AACJ,GALD,MAMK;AACDA,IAAAA,OAAO,GAAG,EAAV;AACH;;AACD,SAAOA,OAAP;AACH;;AACD,SAASgzD,aAAT,CAAuB/uE,QAAvB,EAAiC6uD,KAAjC,EAAwCvE,MAAxC,EAAgD;AAC5C,SAAO;AAAEtqD,IAAAA,QAAF;AAAY6uD,IAAAA,KAAZ;AAAmBvE,IAAAA;AAAnB,GAAP;AACH;;AAED,SAAS8kB,yBAAT,CAAmCvO,OAAnC,EAA4CC,SAA5C,EAAuDuO,aAAvD,EAAsEC,cAAtE,EAAsFtvE,QAAtF,EAAgG6uD,KAAhG,EAAuGvE,MAAM,GAAG,IAAhH,EAAsHilB,WAAW,GAAG,KAApI,EAA2I;AACvI,SAAO;AACH5uE,IAAAA,IAAI,EAAE;AAAE;AADL;AAEHkgE,IAAAA,OAFG;AAGHC,IAAAA,SAHG;AAIHuO,IAAAA,aAJG;AAKHC,IAAAA,cALG;AAMHtvE,IAAAA,QANG;AAOH6uD,IAAAA,KAPG;AAQHqT,IAAAA,SAAS,EAAEliE,QAAQ,GAAG6uD,KARnB;AASHvE,IAAAA,MATG;AAUHilB,IAAAA;AAVG,GAAP;AAYH;;AAED,MAAMC,qBAAN,CAA4B;AACxBpvE,EAAAA,WAAW,GAAG;AACV,SAAKqvE,IAAL,GAAY,IAAIn5D,GAAJ,EAAZ;AACH;;AACDjC,EAAAA,GAAG,CAACwsD,OAAD,EAAU;AACT,WAAO,KAAK4O,IAAL,CAAUp7D,GAAV,CAAcwsD,OAAd,KAA0B,EAAjC;AACH;;AACD/c,EAAAA,MAAM,CAAC+c,OAAD,EAAU6O,YAAV,EAAwB;AAC1B,QAAIC,oBAAoB,GAAG,KAAKF,IAAL,CAAUp7D,GAAV,CAAcwsD,OAAd,CAA3B;;AACA,QAAI,CAAC8O,oBAAL,EAA2B;AACvB,WAAKF,IAAL,CAAUhtE,GAAV,CAAco+D,OAAd,EAAuB8O,oBAAoB,GAAG,EAA9C;AACH;;AACDA,IAAAA,oBAAoB,CAAC1sE,IAArB,CAA0B,GAAGysE,YAA7B;AACH;;AACD1hD,EAAAA,GAAG,CAAC6yC,OAAD,EAAU;AACT,WAAO,KAAK4O,IAAL,CAAUzhD,GAAV,CAAc6yC,OAAd,CAAP;AACH;;AACDxhD,EAAAA,KAAK,GAAG;AACJ,SAAKowD,IAAL,CAAUpwD,KAAV;AACH;;AAnBuB;AAsB5B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMuwD,yBAAyB,GAAG,CAAlC;AACA,MAAMC,WAAW,GAAG,QAApB;AACA,MAAMC,iBAAiB,GAAG,IAAIpuE,MAAJ,CAAWmuE,WAAX,EAAwB,GAAxB,CAA1B;AACA,MAAME,WAAW,GAAG,QAApB;AACA,MAAMC,iBAAiB,GAAG,IAAItuE,MAAJ,CAAWquE,WAAX,EAAwB,GAAxB,CAA1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASE,uBAAT,CAAiCtP,MAAjC,EAAyCuP,WAAzC,EAAsD7E,GAAtD,EAA2D8E,cAA3D,EAA2EC,cAA3E,EAA2FC,cAAc,GAAG,EAA5G,EAAgHC,WAAW,GAAG,EAA9H,EAAkIv0D,OAAlI,EAA2Iw0D,eAA3I,EAA4JzsE,MAAM,GAAG,EAArK,EAAyK;AACrK,SAAO,IAAI0sE,+BAAJ,GAAsCC,cAAtC,CAAqD9P,MAArD,EAA6DuP,WAA7D,EAA0E7E,GAA1E,EAA+E8E,cAA/E,EAA+FC,cAA/F,EAA+GC,cAA/G,EAA+HC,WAA/H,EAA4Iv0D,OAA5I,EAAqJw0D,eAArJ,EAAsKzsE,MAAtK,CAAP;AACH;;AACD,MAAM0sE,+BAAN,CAAsC;AAClCC,EAAAA,cAAc,CAAC9P,MAAD,EAASuP,WAAT,EAAsB7E,GAAtB,EAA2B8E,cAA3B,EAA2CC,cAA3C,EAA2DC,cAA3D,EAA2EC,WAA3E,EAAwFv0D,OAAxF,EAAiGw0D,eAAjG,EAAkHzsE,MAAM,GAAG,EAA3H,EAA+H;AACzIysE,IAAAA,eAAe,GAAGA,eAAe,IAAI,IAAIf,qBAAJ,EAArC;AACA,UAAMnwC,OAAO,GAAG,IAAIqxC,wBAAJ,CAA6B/P,MAA7B,EAAqCuP,WAArC,EAAkDK,eAAlD,EAAmEJ,cAAnE,EAAmFC,cAAnF,EAAmGtsE,MAAnG,EAA2G,EAA3G,CAAhB;AACAu7B,IAAAA,OAAO,CAACtjB,OAAR,GAAkBA,OAAlB;AACAsjB,IAAAA,OAAO,CAACsxC,eAAR,CAAwB5J,SAAxB,CAAkC,CAACsJ,cAAD,CAAlC,EAAoD,IAApD,EAA0DhxC,OAAO,CAACv7B,MAAlE,EAA0EiY,OAA1E;AACAmsD,IAAAA,YAAY,CAAC,IAAD,EAAOmD,GAAP,EAAYhsC,OAAZ,CAAZ,CALyI,CAMzI;;AACA,UAAMuxC,SAAS,GAAGvxC,OAAO,CAACuxC,SAAR,CAAkB/vE,MAAlB,CAAyBgwE,QAAQ,IAAIA,QAAQ,CAACC,iBAAT,EAArC,CAAlB;;AACA,QAAIhyE,MAAM,CAACC,IAAP,CAAYuxE,WAAZ,EAAyBhyE,MAA7B,EAAqC;AACjC;AACA;AACA;AACA;AACA,UAAIyyE,gBAAJ;;AACA,WAAK,IAAI/tE,CAAC,GAAG4tE,SAAS,CAACtyE,MAAV,GAAmB,CAAhC,EAAmC0E,CAAC,IAAI,CAAxC,EAA2CA,CAAC,EAA5C,EAAgD;AAC5C,cAAM6tE,QAAQ,GAAGD,SAAS,CAAC5tE,CAAD,CAA1B;;AACA,YAAI6tE,QAAQ,CAAChQ,OAAT,KAAqBqP,WAAzB,EAAsC;AAClCa,UAAAA,gBAAgB,GAAGF,QAAnB;AACA;AACH;AACJ;;AACD,UAAIE,gBAAgB,IAAI,CAACA,gBAAgB,CAACC,uBAAjB,EAAzB,EAAqE;AACjED,QAAAA,gBAAgB,CAAChK,SAAjB,CAA2B,CAACuJ,WAAD,CAA3B,EAA0C,IAA1C,EAAgDjxC,OAAO,CAACv7B,MAAxD,EAAgEiY,OAAhE;AACH;AACJ;;AACD,WAAO60D,SAAS,CAACtyE,MAAV,GAAmBsyE,SAAS,CAACpyE,GAAV,CAAcqyE,QAAQ,IAAIA,QAAQ,CAACJ,cAAT,EAA1B,CAAnB,GACH,CAACrB,yBAAyB,CAACc,WAAD,EAAc,EAAd,EAAkB,EAAlB,EAAsB,EAAtB,EAA0B,CAA1B,EAA6B,CAA7B,EAAgC,EAAhC,EAAoC,KAApC,CAA1B,CADJ;AAEH;;AACD9H,EAAAA,YAAY,CAACiD,GAAD,EAAMhsC,OAAN,EAAe,CACvB;AACH;;AACDgpC,EAAAA,UAAU,CAACgD,GAAD,EAAMhsC,OAAN,EAAe,CACrB;AACH;;AACDipC,EAAAA,eAAe,CAAC+C,GAAD,EAAMhsC,OAAN,EAAe,CAC1B;AACH;;AACDwpC,EAAAA,iBAAiB,CAACwC,GAAD,EAAMhsC,OAAN,EAAe;AAC5B,UAAM4xC,mBAAmB,GAAG5xC,OAAO,CAACkxC,eAAR,CAAwBl8D,GAAxB,CAA4BgrB,OAAO,CAACwhC,OAApC,CAA5B;;AACA,QAAIoQ,mBAAJ,EAAyB;AACrB,YAAMC,YAAY,GAAG7xC,OAAO,CAAC8xC,gBAAR,CAAyB9F,GAAG,CAACtvD,OAA7B,CAArB;AACA,YAAMoxC,SAAS,GAAG9tB,OAAO,CAACsxC,eAAR,CAAwBzjB,WAA1C;;AACA,YAAMsgB,OAAO,GAAG,KAAK4D,qBAAL,CAA2BH,mBAA3B,EAAgDC,YAAhD,EAA8DA,YAAY,CAACn1D,OAA3E,CAAhB;;AACA,UAAIoxC,SAAS,IAAIqgB,OAAjB,EAA0B;AACtB;AACA;AACAnuC,QAAAA,OAAO,CAACgyC,wBAAR,CAAiC7D,OAAjC;AACH;AACJ;;AACDnuC,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACDvC,EAAAA,eAAe,CAACuC,GAAD,EAAMhsC,OAAN,EAAe;AAC1B,UAAM6xC,YAAY,GAAG7xC,OAAO,CAAC8xC,gBAAR,CAAyB9F,GAAG,CAACtvD,OAA7B,CAArB;AACAm1D,IAAAA,YAAY,CAACG,wBAAb;AACA,SAAKzI,cAAL,CAAoByC,GAAG,CAACrf,SAAxB,EAAmCklB,YAAnC;AACA7xC,IAAAA,OAAO,CAACgyC,wBAAR,CAAiCH,YAAY,CAACP,eAAb,CAA6BzjB,WAA9D;AACA7tB,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACD+F,EAAAA,qBAAqB,CAAC1B,YAAD,EAAerwC,OAAf,EAAwBtjB,OAAxB,EAAiC;AAClD,UAAMoxC,SAAS,GAAG9tB,OAAO,CAACsxC,eAAR,CAAwBzjB,WAA1C;AACA,QAAIsf,YAAY,GAAGrf,SAAnB,CAFkD,CAGlD;AACA;;AACA,UAAMntD,QAAQ,GAAG+b,OAAO,CAAC/b,QAAR,IAAoB,IAApB,GAA2BwlE,kBAAkB,CAACzpD,OAAO,CAAC/b,QAAT,CAA7C,GAAkE,IAAnF;AACA,UAAM6uD,KAAK,GAAG9yC,OAAO,CAAC8yC,KAAR,IAAiB,IAAjB,GAAwB2W,kBAAkB,CAACzpD,OAAO,CAAC8yC,KAAT,CAA1C,GAA4D,IAA1E;;AACA,QAAI7uD,QAAQ,KAAK,CAAjB,EAAoB;AAChB0vE,MAAAA,YAAY,CAAC9wE,OAAb,CAAqB2yE,WAAW,IAAI;AAChC,cAAMC,kBAAkB,GAAGnyC,OAAO,CAACoyC,2BAAR,CAAoCF,WAApC,EAAiDvxE,QAAjD,EAA2D6uD,KAA3D,CAA3B;AACA2d,QAAAA,YAAY,GACR7pE,IAAI,CAACgmD,GAAL,CAAS6jB,YAAT,EAAuBgF,kBAAkB,CAACxxE,QAAnB,GAA8BwxE,kBAAkB,CAAC3iB,KAAxE,CADJ;AAEH,OAJD;AAKH;;AACD,WAAO2d,YAAP;AACH;;AACD5D,EAAAA,cAAc,CAACyC,GAAD,EAAMhsC,OAAN,EAAe;AACzBA,IAAAA,OAAO,CAACqyC,aAAR,CAAsBrG,GAAG,CAACtvD,OAA1B,EAAmC,IAAnC;AACAmsD,IAAAA,YAAY,CAAC,IAAD,EAAOmD,GAAG,CAACrf,SAAX,EAAsB3sB,OAAtB,CAAZ;AACAA,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACD9C,EAAAA,aAAa,CAAC8C,GAAD,EAAMhsC,OAAN,EAAe;AACxB,UAAMsyC,eAAe,GAAGtyC,OAAO,CAACsyC,eAAhC;AACA,QAAI34C,GAAG,GAAGqG,OAAV;AACA,UAAMtjB,OAAO,GAAGsvD,GAAG,CAACtvD,OAApB;;AACA,QAAIA,OAAO,KAAKA,OAAO,CAAChN,MAAR,IAAkBgN,OAAO,CAAC8yC,KAA/B,CAAX,EAAkD;AAC9C71B,MAAAA,GAAG,GAAGqG,OAAO,CAAC8xC,gBAAR,CAAyBp1D,OAAzB,CAAN;AACAid,MAAAA,GAAG,CAACq4C,wBAAJ;;AACA,UAAIt1D,OAAO,CAAC8yC,KAAR,IAAiB,IAArB,EAA2B;AACvB,YAAI71B,GAAG,CAACs4C,YAAJ,CAAiB3wE,IAAjB,IAAyB;AAAE;AAA/B,UAA4C;AACxCq4B,UAAAA,GAAG,CAAC23C,eAAJ,CAAoBiB,qBAApB;AACA54C,UAAAA,GAAG,CAACs4C,YAAJ,GAAmBO,0BAAnB;AACH;;AACD,cAAMhjB,KAAK,GAAG2W,kBAAkB,CAACzpD,OAAO,CAAC8yC,KAAT,CAAhC;AACA71B,QAAAA,GAAG,CAAC84C,aAAJ,CAAkBjjB,KAAlB;AACH;AACJ;;AACD,QAAIwc,GAAG,CAACjE,KAAJ,CAAU9oE,MAAd,EAAsB;AAClB+sE,MAAAA,GAAG,CAACjE,KAAJ,CAAUxoE,OAAV,CAAkByzD,CAAC,IAAI6V,YAAY,CAAC,IAAD,EAAO7V,CAAP,EAAUr5B,GAAV,CAAnC,EADkB,CAElB;;AACAA,MAAAA,GAAG,CAAC23C,eAAJ,CAAoBoB,qBAApB,GAHkB,CAIlB;AACA;AACA;;AACA,UAAI/4C,GAAG,CAAC24C,eAAJ,GAAsBA,eAA1B,EAA2C;AACvC34C,QAAAA,GAAG,CAACq4C,wBAAJ;AACH;AACJ;;AACDhyC,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACD7C,EAAAA,UAAU,CAAC6C,GAAD,EAAMhsC,OAAN,EAAe;AACrB,UAAM2yC,cAAc,GAAG,EAAvB;AACA,QAAIxF,YAAY,GAAGntC,OAAO,CAACsxC,eAAR,CAAwBzjB,WAA3C;AACA,UAAM2B,KAAK,GAAGwc,GAAG,CAACtvD,OAAJ,IAAesvD,GAAG,CAACtvD,OAAJ,CAAY8yC,KAA3B,GAAmC2W,kBAAkB,CAAC6F,GAAG,CAACtvD,OAAJ,CAAY8yC,KAAb,CAArD,GAA2E,CAAzF;AACAwc,IAAAA,GAAG,CAACjE,KAAJ,CAAUxoE,OAAV,CAAkByzD,CAAC,IAAI;AACnB,YAAM6e,YAAY,GAAG7xC,OAAO,CAAC8xC,gBAAR,CAAyB9F,GAAG,CAACtvD,OAA7B,CAArB;;AACA,UAAI8yC,KAAJ,EAAW;AACPqiB,QAAAA,YAAY,CAACY,aAAb,CAA2BjjB,KAA3B;AACH;;AACDqZ,MAAAA,YAAY,CAAC,IAAD,EAAO7V,CAAP,EAAU6e,YAAV,CAAZ;AACA1E,MAAAA,YAAY,GAAG7pE,IAAI,CAACgmD,GAAL,CAAS6jB,YAAT,EAAuB0E,YAAY,CAACP,eAAb,CAA6BzjB,WAApD,CAAf;AACA8kB,MAAAA,cAAc,CAAC/uE,IAAf,CAAoBiuE,YAAY,CAACP,eAAjC;AACH,KARD,EAJqB,CAarB;AACA;AACA;;AACAqB,IAAAA,cAAc,CAACpzE,OAAf,CAAuBiyE,QAAQ,IAAIxxC,OAAO,CAACsxC,eAAR,CAAwBsB,4BAAxB,CAAqDpB,QAArD,CAAnC;AACAxxC,IAAAA,OAAO,CAACgyC,wBAAR,CAAiC7E,YAAjC;AACAntC,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACD6G,EAAAA,YAAY,CAAC7G,GAAD,EAAMhsC,OAAN,EAAe;AACvB,QAAIgsC,GAAG,CAAC8D,OAAR,EAAiB;AACb,YAAMH,QAAQ,GAAG3D,GAAG,CAAC2D,QAArB;AACA,YAAMmD,WAAW,GAAG9yC,OAAO,CAACtwB,MAAR,GAAiBy4D,iBAAiB,CAACwH,QAAD,EAAW3vC,OAAO,CAACtwB,MAAnB,EAA2BswB,OAAO,CAACv7B,MAAnC,CAAlC,GAA+EkrE,QAAnG;AACA,aAAOtJ,aAAa,CAACyM,WAAD,EAAc9yC,OAAO,CAACv7B,MAAtB,CAApB;AACH,KAJD,MAKK;AACD,aAAO;AAAE9D,QAAAA,QAAQ,EAAEqrE,GAAG,CAACrrE,QAAhB;AAA0B6uD,QAAAA,KAAK,EAAEwc,GAAG,CAACxc,KAArC;AAA4CvE,QAAAA,MAAM,EAAE+gB,GAAG,CAAC/gB;AAAxD,OAAP;AACH;AACJ;;AACDme,EAAAA,YAAY,CAAC4C,GAAD,EAAMhsC,OAAN,EAAe;AACvB,UAAMsmC,OAAO,GAAGtmC,OAAO,CAACutC,qBAAR,GAAgC,KAAKsF,YAAL,CAAkB7G,GAAG,CAAC1F,OAAtB,EAA+BtmC,OAA/B,CAAhD;;AACA,UAAMwxC,QAAQ,GAAGxxC,OAAO,CAACsxC,eAAzB;;AACA,QAAIhL,OAAO,CAAC9W,KAAZ,EAAmB;AACfxvB,MAAAA,OAAO,CAAC+yC,aAAR,CAAsBzM,OAAO,CAAC9W,KAA9B;AACAgiB,MAAAA,QAAQ,CAACe,qBAAT;AACH;;AACD,UAAM93C,KAAK,GAAGuxC,GAAG,CAACvxC,KAAlB;;AACA,QAAIA,KAAK,CAACn5B,IAAN,IAAc;AAAE;AAApB,MAAqC;AACjC,WAAK+nE,cAAL,CAAoB5uC,KAApB,EAA2BuF,OAA3B;AACH,KAFD,MAGK;AACDA,MAAAA,OAAO,CAAC+yC,aAAR,CAAsBzM,OAAO,CAAC3lE,QAA9B;AACA,WAAK2oE,UAAL,CAAgB7uC,KAAhB,EAAuBuF,OAAvB;AACAwxC,MAAAA,QAAQ,CAACkB,qBAAT;AACH;;AACD1yC,IAAAA,OAAO,CAACutC,qBAAR,GAAgC,IAAhC;AACAvtC,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACD1C,EAAAA,UAAU,CAAC0C,GAAD,EAAMhsC,OAAN,EAAe;AACrB,UAAMwxC,QAAQ,GAAGxxC,OAAO,CAACsxC,eAAzB;AACA,UAAMhL,OAAO,GAAGtmC,OAAO,CAACutC,qBAAxB,CAFqB,CAGrB;AACA;;AACA,QAAI,CAACjH,OAAD,IAAYkL,QAAQ,CAACwB,yBAAT,GAAqC/zE,MAArD,EAA6D;AACzDuyE,MAAAA,QAAQ,CAACyB,YAAT;AACH;;AACD,UAAMhoB,MAAM,GAAIqb,OAAO,IAAIA,OAAO,CAACrb,MAApB,IAA+B+gB,GAAG,CAAC/gB,MAAlD;;AACA,QAAI+gB,GAAG,CAAC4B,WAAR,EAAqB;AACjB4D,MAAAA,QAAQ,CAAC0B,cAAT,CAAwBjoB,MAAxB;AACH,KAFD,MAGK;AACDumB,MAAAA,QAAQ,CAAC9J,SAAT,CAAmBsE,GAAG,CAACzxC,MAAvB,EAA+B0wB,MAA/B,EAAuCjrB,OAAO,CAACv7B,MAA/C,EAAuDu7B,OAAO,CAACtjB,OAA/D;AACH;;AACDsjB,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACD3C,EAAAA,cAAc,CAAC2C,GAAD,EAAMhsC,OAAN,EAAe;AACzB,UAAMutC,qBAAqB,GAAGvtC,OAAO,CAACutC,qBAAtC;AACA,UAAMzf,SAAS,GAAI9tB,OAAO,CAACsxC,eAAT,CAA0B3wE,QAA5C;AACA,UAAMA,QAAQ,GAAG4sE,qBAAqB,CAAC5sE,QAAvC;AACA,UAAMkxE,YAAY,GAAG7xC,OAAO,CAAC8xC,gBAAR,EAArB;AACA,UAAMqB,aAAa,GAAGtB,YAAY,CAACP,eAAnC;AACA6B,IAAAA,aAAa,CAACloB,MAAd,GAAuBsiB,qBAAqB,CAACtiB,MAA7C;AACA+gB,IAAAA,GAAG,CAACzxC,MAAJ,CAAWh7B,OAAX,CAAmBtD,IAAI,IAAI;AACvB,YAAM0G,MAAM,GAAG1G,IAAI,CAAC0G,MAAL,IAAe,CAA9B;AACAwwE,MAAAA,aAAa,CAACC,WAAd,CAA0BzwE,MAAM,GAAGhC,QAAnC;AACAwyE,MAAAA,aAAa,CAACzL,SAAd,CAAwBzrE,IAAI,CAACs+B,MAA7B,EAAqCt+B,IAAI,CAACgvD,MAA1C,EAAkDjrB,OAAO,CAACv7B,MAA1D,EAAkEu7B,OAAO,CAACtjB,OAA1E;AACAy2D,MAAAA,aAAa,CAACT,qBAAd;AACH,KALD,EAPyB,CAazB;AACA;;AACA1yC,IAAAA,OAAO,CAACsxC,eAAR,CAAwBsB,4BAAxB,CAAqDO,aAArD,EAfyB,CAgBzB;AACA;;AACAnzC,IAAAA,OAAO,CAACgyC,wBAAR,CAAiClkB,SAAS,GAAGntD,QAA7C;AACAq/B,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACDtC,EAAAA,UAAU,CAACsC,GAAD,EAAMhsC,OAAN,EAAe;AACrB;AACA;AACA,UAAM8tB,SAAS,GAAG9tB,OAAO,CAACsxC,eAAR,CAAwBzjB,WAA1C;AACA,UAAMnxC,OAAO,GAAIsvD,GAAG,CAACtvD,OAAJ,IAAe,EAAhC;AACA,UAAM8yC,KAAK,GAAG9yC,OAAO,CAAC8yC,KAAR,GAAgB2W,kBAAkB,CAACzpD,OAAO,CAAC8yC,KAAT,CAAlC,GAAoD,CAAlE;;AACA,QAAIA,KAAK,KACJxvB,OAAO,CAACiyC,YAAR,CAAqB3wE,IAArB,KAA8B;AAAE;AAAhC,OACIwsD,SAAS,IAAI,CAAb,IAAkB9tB,OAAO,CAACsxC,eAAR,CAAwB0B,yBAAxB,GAAoD/zE,MAFtE,CAAT,EAEyF;AACrF+gC,MAAAA,OAAO,CAACsxC,eAAR,CAAwBiB,qBAAxB;AACAvyC,MAAAA,OAAO,CAACiyC,YAAR,GAAuBO,0BAAvB;AACH;;AACD,QAAIrF,YAAY,GAAGrf,SAAnB;AACA,UAAMulB,IAAI,GAAGrzC,OAAO,CAAC0kC,WAAR,CAAoBsH,GAAG,CAACpnE,QAAxB,EAAkConE,GAAG,CAACsD,gBAAtC,EAAwDtD,GAAG,CAAC8C,KAA5D,EAAmE9C,GAAG,CAACmD,WAAvE,EAAoFzyD,OAAO,CAAC2yD,QAAR,GAAmB,IAAnB,GAA0B,KAA9G,EAAqHrvC,OAAO,CAACv7B,MAA7H,CAAb;AACAu7B,IAAAA,OAAO,CAACszC,iBAAR,GAA4BD,IAAI,CAACp0E,MAAjC;AACA,QAAIs0E,mBAAmB,GAAG,IAA1B;AACAF,IAAAA,IAAI,CAAC9zE,OAAL,CAAa,CAACiiE,OAAD,EAAU79D,CAAV,KAAgB;AACzBq8B,MAAAA,OAAO,CAACwzC,iBAAR,GAA4B7vE,CAA5B;AACA,YAAMkuE,YAAY,GAAG7xC,OAAO,CAAC8xC,gBAAR,CAAyB9F,GAAG,CAACtvD,OAA7B,EAAsC8kD,OAAtC,CAArB;;AACA,UAAIhS,KAAJ,EAAW;AACPqiB,QAAAA,YAAY,CAACY,aAAb,CAA2BjjB,KAA3B;AACH;;AACD,UAAIgS,OAAO,KAAKxhC,OAAO,CAACwhC,OAAxB,EAAiC;AAC7B+R,QAAAA,mBAAmB,GAAG1B,YAAY,CAACP,eAAnC;AACH;;AACDzI,MAAAA,YAAY,CAAC,IAAD,EAAOmD,GAAG,CAACrf,SAAX,EAAsBklB,YAAtB,CAAZ,CATyB,CAUzB;AACA;AACA;;AACAA,MAAAA,YAAY,CAACP,eAAb,CAA6BoB,qBAA7B;AACA,YAAMvE,OAAO,GAAG0D,YAAY,CAACP,eAAb,CAA6BzjB,WAA7C;AACAsf,MAAAA,YAAY,GAAG7pE,IAAI,CAACgmD,GAAL,CAAS6jB,YAAT,EAAuBgB,OAAvB,CAAf;AACH,KAhBD;AAiBAnuC,IAAAA,OAAO,CAACwzC,iBAAR,GAA4B,CAA5B;AACAxzC,IAAAA,OAAO,CAACszC,iBAAR,GAA4B,CAA5B;AACAtzC,IAAAA,OAAO,CAACgyC,wBAAR,CAAiC7E,YAAjC;;AACA,QAAIoG,mBAAJ,EAAyB;AACrBvzC,MAAAA,OAAO,CAACsxC,eAAR,CAAwBsB,4BAAxB,CAAqDW,mBAArD;AACAvzC,MAAAA,OAAO,CAACsxC,eAAR,CAAwBiB,qBAAxB;AACH;;AACDvyC,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB;AACH;;AACDrC,EAAAA,YAAY,CAACqC,GAAD,EAAMhsC,OAAN,EAAe;AACvB,UAAMyzC,aAAa,GAAGzzC,OAAO,CAACyzC,aAA9B;AACA,UAAMC,EAAE,GAAG1zC,OAAO,CAACsxC,eAAnB;AACA,UAAMhL,OAAO,GAAG0F,GAAG,CAAC1F,OAApB;AACA,UAAM3lE,QAAQ,GAAG2C,IAAI,CAACkI,GAAL,CAAS86D,OAAO,CAAC3lE,QAAjB,CAAjB;AACA,UAAMgzE,OAAO,GAAGhzE,QAAQ,IAAIq/B,OAAO,CAACszC,iBAAR,GAA4B,CAAhC,CAAxB;AACA,QAAI9jB,KAAK,GAAG7uD,QAAQ,GAAGq/B,OAAO,CAACwzC,iBAA/B;AACA,QAAII,kBAAkB,GAAGtN,OAAO,CAAC3lE,QAAR,GAAmB,CAAnB,GAAuB,SAAvB,GAAmC2lE,OAAO,CAACrb,MAApE;;AACA,YAAQ2oB,kBAAR;AACI,WAAK,SAAL;AACIpkB,QAAAA,KAAK,GAAGmkB,OAAO,GAAGnkB,KAAlB;AACA;;AACJ,WAAK,MAAL;AACIA,QAAAA,KAAK,GAAGikB,aAAa,CAACI,kBAAtB;AACA;AANR;;AAQA,UAAMrC,QAAQ,GAAGxxC,OAAO,CAACsxC,eAAzB;;AACA,QAAI9hB,KAAJ,EAAW;AACPgiB,MAAAA,QAAQ,CAACiB,aAAT,CAAuBjjB,KAAvB;AACH;;AACD,UAAMskB,YAAY,GAAGtC,QAAQ,CAAC3jB,WAA9B;AACAgb,IAAAA,YAAY,CAAC,IAAD,EAAOmD,GAAG,CAACrf,SAAX,EAAsB3sB,OAAtB,CAAZ;AACAA,IAAAA,OAAO,CAACiyC,YAAR,GAAuBjG,GAAvB,CAtBuB,CAuBvB;AACA;AACA;AACA;;AACAyH,IAAAA,aAAa,CAACI,kBAAd,GACKH,EAAE,CAAC7lB,WAAH,GAAiBimB,YAAlB,IAAmCJ,EAAE,CAAC5lB,SAAH,GAAe2lB,aAAa,CAACnC,eAAd,CAA8BxjB,SAAhF,CADJ;AAEH;;AA3QiC;;AA6QtC,MAAM0kB,0BAA0B,GAAG,EAAnC;;AACA,MAAMnB,wBAAN,CAA+B;AAC3BtwE,EAAAA,WAAW,CAAC8qE,OAAD,EAAUrK,OAAV,EAAmB0P,eAAnB,EAAoC6C,eAApC,EAAqDC,eAArD,EAAsEvvE,MAAtE,EAA8E8sE,SAA9E,EAAyF0C,eAAzF,EAA0G;AACjH,SAAKpI,OAAL,GAAeA,OAAf;AACA,SAAKrK,OAAL,GAAeA,OAAf;AACA,SAAK0P,eAAL,GAAuBA,eAAvB;AACA,SAAK6C,eAAL,GAAuBA,eAAvB;AACA,SAAKC,eAAL,GAAuBA,eAAvB;AACA,SAAKvvE,MAAL,GAAcA,MAAd;AACA,SAAK8sE,SAAL,GAAiBA,SAAjB;AACA,SAAKkC,aAAL,GAAqB,IAArB;AACA,SAAKlG,qBAAL,GAA6B,IAA7B;AACA,SAAK0E,YAAL,GAAoBO,0BAApB;AACA,SAAKF,eAAL,GAAuB,CAAvB;AACA,SAAK51D,OAAL,GAAe,EAAf;AACA,SAAK82D,iBAAL,GAAyB,CAAzB;AACA,SAAKF,iBAAL,GAAyB,CAAzB;AACA,SAAKO,kBAAL,GAA0B,CAA1B;AACA,SAAKvC,eAAL,GAAuB2C,eAAe,IAAI,IAAIC,eAAJ,CAAoB,KAAKrI,OAAzB,EAAkCrK,OAAlC,EAA2C,CAA3C,CAA1C;AACA+P,IAAAA,SAAS,CAAC3tE,IAAV,CAAe,KAAK0tE,eAApB;AACH;;AACS,MAAN5hE,MAAM,GAAG;AACT,WAAO,KAAKgN,OAAL,CAAahN,MAApB;AACH;;AACD2iE,EAAAA,aAAa,CAAC31D,OAAD,EAAUy3D,YAAV,EAAwB;AACjC,QAAI,CAACz3D,OAAL,EACI;AACJ,UAAM03D,UAAU,GAAG13D,OAAnB;AACA,QAAI23D,eAAe,GAAG,KAAK33D,OAA3B,CAJiC,CAKjC;;AACA,QAAI03D,UAAU,CAACzzE,QAAX,IAAuB,IAA3B,EAAiC;AAC7B0zE,MAAAA,eAAe,CAAC1zE,QAAhB,GAA2BwlE,kBAAkB,CAACiO,UAAU,CAACzzE,QAAZ,CAA7C;AACH;;AACD,QAAIyzE,UAAU,CAAC5kB,KAAX,IAAoB,IAAxB,EAA8B;AAC1B6kB,MAAAA,eAAe,CAAC7kB,KAAhB,GAAwB2W,kBAAkB,CAACiO,UAAU,CAAC5kB,KAAZ,CAA1C;AACH;;AACD,UAAM8kB,SAAS,GAAGF,UAAU,CAAC1kE,MAA7B;;AACA,QAAI4kE,SAAJ,EAAe;AACX,UAAIC,cAAc,GAAGF,eAAe,CAAC3kE,MAArC;;AACA,UAAI,CAAC6kE,cAAL,EAAqB;AACjBA,QAAAA,cAAc,GAAG,KAAK73D,OAAL,CAAahN,MAAb,GAAsB,EAAvC;AACH;;AACDjQ,MAAAA,MAAM,CAACC,IAAP,CAAY40E,SAAZ,EAAuB/0E,OAAvB,CAA+BwE,IAAI,IAAI;AACnC,YAAI,CAACowE,YAAD,IAAiB,CAACI,cAAc,CAAChlD,cAAf,CAA8BxrB,IAA9B,CAAtB,EAA2D;AACvDwwE,UAAAA,cAAc,CAACxwE,IAAD,CAAd,GAAuBokE,iBAAiB,CAACmM,SAAS,CAACvwE,IAAD,CAAV,EAAkBwwE,cAAlB,EAAkC,KAAK9vE,MAAvC,CAAxC;AACH;AACJ,OAJD;AAKH;AACJ;;AACD+vE,EAAAA,YAAY,GAAG;AACX,UAAM93D,OAAO,GAAG,EAAhB;;AACA,QAAI,KAAKA,OAAT,EAAkB;AACd,YAAM+3D,SAAS,GAAG,KAAK/3D,OAAL,CAAahN,MAA/B;;AACA,UAAI+kE,SAAJ,EAAe;AACX,cAAM/kE,MAAM,GAAGgN,OAAO,CAAC,QAAD,CAAP,GAAoB,EAAnC;AACAjd,QAAAA,MAAM,CAACC,IAAP,CAAY+0E,SAAZ,EAAuBl1E,OAAvB,CAA+BwE,IAAI,IAAI;AACnC2L,UAAAA,MAAM,CAAC3L,IAAD,CAAN,GAAe0wE,SAAS,CAAC1wE,IAAD,CAAxB;AACH,SAFD;AAGH;AACJ;;AACD,WAAO2Y,OAAP;AACH;;AACDo1D,EAAAA,gBAAgB,CAACp1D,OAAO,GAAG,IAAX,EAAiB8kD,OAAjB,EAA0BkT,OAA1B,EAAmC;AAC/C,UAAMhsE,MAAM,GAAG84D,OAAO,IAAI,KAAKA,OAA/B;AACA,UAAMxhC,OAAO,GAAG,IAAIqxC,wBAAJ,CAA6B,KAAKxF,OAAlC,EAA2CnjE,MAA3C,EAAmD,KAAKwoE,eAAxD,EAAyE,KAAK6C,eAA9E,EAA+F,KAAKC,eAApG,EAAqH,KAAKvvE,MAA1H,EAAkI,KAAK8sE,SAAvI,EAAkJ,KAAKD,eAAL,CAAqBqD,IAArB,CAA0BjsE,MAA1B,EAAkCgsE,OAAO,IAAI,CAA7C,CAAlJ,CAAhB;AACA10C,IAAAA,OAAO,CAACiyC,YAAR,GAAuB,KAAKA,YAA5B;AACAjyC,IAAAA,OAAO,CAACutC,qBAAR,GAAgC,KAAKA,qBAArC;AACAvtC,IAAAA,OAAO,CAACtjB,OAAR,GAAkB,KAAK83D,YAAL,EAAlB;AACAx0C,IAAAA,OAAO,CAACqyC,aAAR,CAAsB31D,OAAtB;AACAsjB,IAAAA,OAAO,CAACwzC,iBAAR,GAA4B,KAAKA,iBAAjC;AACAxzC,IAAAA,OAAO,CAACszC,iBAAR,GAA4B,KAAKA,iBAAjC;AACAtzC,IAAAA,OAAO,CAACyzC,aAAR,GAAwB,IAAxB;AACA,SAAKnB,eAAL;AACA,WAAOtyC,OAAP;AACH;;AACDgyC,EAAAA,wBAAwB,CAAC0C,OAAD,EAAU;AAC9B,SAAKzC,YAAL,GAAoBO,0BAApB;AACA,SAAKlB,eAAL,GAAuB,KAAKA,eAAL,CAAqBqD,IAArB,CAA0B,KAAKnT,OAA/B,EAAwCkT,OAAxC,CAAvB;AACA,SAAKnD,SAAL,CAAe3tE,IAAf,CAAoB,KAAK0tE,eAAzB;AACA,WAAO,KAAKA,eAAZ;AACH;;AACDc,EAAAA,2BAA2B,CAACF,WAAD,EAAcvxE,QAAd,EAAwB6uD,KAAxB,EAA+B;AACtD,UAAMolB,cAAc,GAAG;AACnBj0E,MAAAA,QAAQ,EAAEA,QAAQ,IAAI,IAAZ,GAAmBA,QAAnB,GAA8BuxE,WAAW,CAACvxE,QADjC;AAEnB6uD,MAAAA,KAAK,EAAE,KAAK8hB,eAAL,CAAqBzjB,WAArB,IAAoC2B,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwB,CAA5D,IAAiE0iB,WAAW,CAAC1iB,KAFjE;AAGnBvE,MAAAA,MAAM,EAAE;AAHW,KAAvB;AAKA,UAAM4pB,OAAO,GAAG,IAAIC,kBAAJ,CAAuB,KAAKjJ,OAA5B,EAAqCqG,WAAW,CAAC1Q,OAAjD,EAA0D0Q,WAAW,CAACzQ,SAAtE,EAAiFyQ,WAAW,CAAClC,aAA7F,EAA4GkC,WAAW,CAACjC,cAAxH,EAAwI2E,cAAxI,EAAwJ1C,WAAW,CAAC6C,uBAApK,CAAhB;AACA,SAAKxD,SAAL,CAAe3tE,IAAf,CAAoBixE,OAApB;AACA,WAAOD,cAAP;AACH;;AACD7B,EAAAA,aAAa,CAAC/1C,IAAD,EAAO;AAChB,SAAKs0C,eAAL,CAAqB8B,WAArB,CAAiC,KAAK9B,eAAL,CAAqB3wE,QAArB,GAAgCq8B,IAAjE;AACH;;AACDy1C,EAAAA,aAAa,CAACjjB,KAAD,EAAQ;AACjB;AACA,QAAIA,KAAK,GAAG,CAAZ,EAAe;AACX,WAAK8hB,eAAL,CAAqBmB,aAArB,CAAmCjjB,KAAnC;AACH;AACJ;;AACDkV,EAAAA,WAAW,CAAC9/D,QAAD,EAAW0qE,gBAAX,EAA6BR,KAA7B,EAAoCK,WAApC,EAAiDE,QAAjD,EAA2D5qE,MAA3D,EAAmE;AAC1E,QAAIo9B,OAAO,GAAG,EAAd;;AACA,QAAIstC,WAAJ,EAAiB;AACbttC,MAAAA,OAAO,CAACj+B,IAAR,CAAa,KAAK49D,OAAlB;AACH;;AACD,QAAI58D,QAAQ,CAAC3F,MAAT,GAAkB,CAAtB,EAAyB;AAAE;AACvB2F,MAAAA,QAAQ,GAAGA,QAAQ,CAACsC,OAAT,CAAiBupE,iBAAjB,EAAoC,MAAM,KAAKsD,eAA/C,CAAX;AACAnvE,MAAAA,QAAQ,GAAGA,QAAQ,CAACsC,OAAT,CAAiBypE,iBAAjB,EAAoC,MAAM,KAAKqD,eAA/C,CAAX;AACA,YAAMpQ,KAAK,GAAGkL,KAAK,IAAI,CAAvB;;AACA,UAAIhkC,QAAQ,GAAG,KAAK+gC,OAAL,CAAa3G,KAAb,CAAmB,KAAK1D,OAAxB,EAAiC58D,QAAjC,EAA2Cg/D,KAA3C,CAAf;;AACA,UAAIkL,KAAK,KAAK,CAAd,EAAiB;AACbhkC,QAAAA,QAAQ,GAAGgkC,KAAK,GAAG,CAAR,GAAYhkC,QAAQ,CAAC9rC,KAAT,CAAe8rC,QAAQ,CAAC7rC,MAAT,GAAkB6vE,KAAjC,EAAwChkC,QAAQ,CAAC7rC,MAAjD,CAAZ,GACP6rC,QAAQ,CAAC9rC,KAAT,CAAe,CAAf,EAAkB8vE,KAAlB,CADJ;AAEH;;AACDjtC,MAAAA,OAAO,CAACj+B,IAAR,CAAa,GAAGknC,QAAhB;AACH;;AACD,QAAI,CAACukC,QAAD,IAAaxtC,OAAO,CAAC5iC,MAAR,IAAkB,CAAnC,EAAsC;AAClCwF,MAAAA,MAAM,CAACb,IAAP,CAAYk8D,YAAY,CAACwP,gBAAD,CAAxB;AACH;;AACD,WAAOztC,OAAP;AACH;;AAvH0B;;AAyH/B,MAAMqyC,eAAN,CAAsB;AAClBnzE,EAAAA,WAAW,CAAC8qE,OAAD,EAAUrK,OAAV,EAAmB1T,SAAnB,EAA8BknB,4BAA9B,EAA4D;AACnE,SAAKnJ,OAAL,GAAeA,OAAf;AACA,SAAKrK,OAAL,GAAeA,OAAf;AACA,SAAK1T,SAAL,GAAiBA,SAAjB;AACA,SAAKknB,4BAAL,GAAoCA,4BAApC;AACA,SAAKr0E,QAAL,GAAgB,CAAhB;AACA,SAAKs0E,iBAAL,GAAyB,EAAzB;AACA,SAAKC,gBAAL,GAAwB,EAAxB;AACA,SAAKC,UAAL,GAAkB,IAAIl+D,GAAJ,EAAlB;AACA,SAAKm+D,aAAL,GAAqB,EAArB;AACA,SAAKC,cAAL,GAAsB,EAAtB;AACA,SAAKC,SAAL,GAAiB,EAAjB;AACA,SAAKC,yBAAL,GAAiC,IAAjC;;AACA,QAAI,CAAC,KAAKP,4BAAV,EAAwC;AACpC,WAAKA,4BAAL,GAAoC,IAAI/9D,GAAJ,EAApC;AACH;;AACD,SAAKu+D,oBAAL,GAA4B/1E,MAAM,CAACkrB,MAAP,CAAc,KAAK2qD,SAAnB,EAA8B,EAA9B,CAA5B;AACA,SAAKG,qBAAL,GAA6B,KAAKT,4BAAL,CAAkChgE,GAAlC,CAAsCwsD,OAAtC,CAA7B;;AACA,QAAI,CAAC,KAAKiU,qBAAV,EAAiC;AAC7B,WAAKA,qBAAL,GAA6B,KAAKD,oBAAlC;;AACA,WAAKR,4BAAL,CAAkC5xE,GAAlC,CAAsCo+D,OAAtC,EAA+C,KAAKgU,oBAApD;AACH;;AACD,SAAKE,aAAL;AACH;;AACDjE,EAAAA,iBAAiB,GAAG;AAChB,YAAQ,KAAK0D,UAAL,CAAgBrmD,IAAxB;AACI,WAAK,CAAL;AACI,eAAO,KAAP;;AACJ,WAAK,CAAL;AACI,eAAO,KAAKkkD,yBAAL,GAAiC/zE,MAAjC,GAA0C,CAAjD;;AACJ;AACI,eAAO,IAAP;AANR;AAQH;;AACD+zE,EAAAA,yBAAyB,GAAG;AACxB,WAAOvzE,MAAM,CAACC,IAAP,CAAY,KAAKw1E,gBAAjB,CAAP;AACH;;AACc,MAAXrnB,WAAW,GAAG;AACd,WAAO,KAAKC,SAAL,GAAiB,KAAKntD,QAA7B;AACH;;AACD8xE,EAAAA,aAAa,CAACjjB,KAAD,EAAQ;AACjB;AACA;AACA;AACA;AACA,UAAMmmB,eAAe,GAAG,KAAKR,UAAL,CAAgBrmD,IAAhB,IAAwB,CAAxB,IAA6BrvB,MAAM,CAACC,IAAP,CAAY,KAAK21E,cAAjB,EAAiCp2E,MAAtF;;AACA,QAAI,KAAK0B,QAAL,IAAiBg1E,eAArB,EAAsC;AAClC,WAAKvC,WAAL,CAAiB,KAAKvlB,WAAL,GAAmB2B,KAApC;;AACA,UAAImmB,eAAJ,EAAqB;AACjB,aAAKpD,qBAAL;AACH;AACJ,KALD,MAMK;AACD,WAAKzkB,SAAL,IAAkB0B,KAAlB;AACH;AACJ;;AACDmlB,EAAAA,IAAI,CAACnT,OAAD,EAAU3T,WAAV,EAAuB;AACvB,SAAK6kB,qBAAL;AACA,WAAO,IAAIwB,eAAJ,CAAoB,KAAKrI,OAAzB,EAAkCrK,OAAlC,EAA2C3T,WAAW,IAAI,KAAKA,WAA/D,EAA4E,KAAKmnB,4BAAjF,CAAP;AACH;;AACDU,EAAAA,aAAa,GAAG;AACZ,QAAI,KAAKR,gBAAT,EAA2B;AACvB,WAAKD,iBAAL,GAAyB,KAAKC,gBAA9B;AACH;;AACD,SAAKA,gBAAL,GAAwB,KAAKC,UAAL,CAAgBngE,GAAhB,CAAoB,KAAKrU,QAAzB,CAAxB;;AACA,QAAI,CAAC,KAAKu0E,gBAAV,EAA4B;AACxB,WAAKA,gBAAL,GAAwBz1E,MAAM,CAACkrB,MAAP,CAAc,KAAK2qD,SAAnB,EAA8B,EAA9B,CAAxB;;AACA,WAAKH,UAAL,CAAgB/xE,GAAhB,CAAoB,KAAKzC,QAAzB,EAAmC,KAAKu0E,gBAAxC;AACH;AACJ;;AACDjC,EAAAA,YAAY,GAAG;AACX,SAAKtyE,QAAL,IAAiB4vE,yBAAjB;;AACA,SAAKmF,aAAL;AACH;;AACDtC,EAAAA,WAAW,CAACp2C,IAAD,EAAO;AACd,SAAK01C,qBAAL;AACA,SAAK/xE,QAAL,GAAgBq8B,IAAhB;;AACA,SAAK04C,aAAL;AACH;;AACDE,EAAAA,YAAY,CAACp4C,IAAD,EAAO5hC,KAAP,EAAc;AACtB,SAAK45E,oBAAL,CAA0Bh4C,IAA1B,IAAkC5hC,KAAlC;AACA,SAAK65E,qBAAL,CAA2Bj4C,IAA3B,IAAmC5hC,KAAnC;AACA,SAAKw5E,aAAL,CAAmB53C,IAAnB,IAA2B;AAAER,MAAAA,IAAI,EAAE,KAAK6wB,WAAb;AAA0BjyD,MAAAA;AAA1B,KAA3B;AACH;;AACD+1E,EAAAA,uBAAuB,GAAG;AACtB,WAAO,KAAK4D,yBAAL,KAAmC,KAAKL,gBAA/C;AACH;;AACDhC,EAAAA,cAAc,CAACjoB,MAAD,EAAS;AACnB,QAAIA,MAAJ,EAAY;AACR,WAAKgqB,iBAAL,CAAuB,QAAvB,IAAmChqB,MAAnC;AACH,KAHkB,CAInB;AACA;AACA;AACA;AACA;AACA;;;AACAxrD,IAAAA,MAAM,CAACC,IAAP,CAAY,KAAK+1E,qBAAjB,EAAwCl2E,OAAxC,CAAgDi+B,IAAI,IAAI;AACpD,WAAK83C,SAAL,CAAe93C,IAAf,IAAuB,KAAKi4C,qBAAL,CAA2Bj4C,IAA3B,KAAoCkgC,2DAA3D;AACA,WAAKwX,gBAAL,CAAsB13C,IAAtB,IAA8BkgC,2DAA9B;AACH,KAHD;AAIA,SAAK6X,yBAAL,GAAiC,KAAKL,gBAAtC;AACH;;AACDxN,EAAAA,SAAS,CAACv+C,KAAD,EAAQ8hC,MAAR,EAAgBxmD,MAAhB,EAAwBiY,OAAxB,EAAiC;AACtC,QAAIuuC,MAAJ,EAAY;AACR,WAAKgqB,iBAAL,CAAuB,QAAvB,IAAmChqB,MAAnC;AACH;;AACD,UAAMv7C,MAAM,GAAIgN,OAAO,IAAIA,OAAO,CAAChN,MAApB,IAA+B,EAA9C;AACA,UAAM6qB,MAAM,GAAGs7C,aAAa,CAAC1sD,KAAD,EAAQ,KAAKssD,qBAAb,CAA5B;AACAh2E,IAAAA,MAAM,CAACC,IAAP,CAAY66B,MAAZ,EAAoBh7B,OAApB,CAA4Bi+B,IAAI,IAAI;AAChC,YAAM7C,GAAG,GAAGwtC,iBAAiB,CAAC5tC,MAAM,CAACiD,IAAD,CAAP,EAAe9tB,MAAf,EAAuBjL,MAAvB,CAA7B;AACA,WAAK4wE,cAAL,CAAoB73C,IAApB,IAA4B7C,GAA5B;;AACA,UAAI,CAAC,KAAK66C,oBAAL,CAA0BjmD,cAA1B,CAAyCiO,IAAzC,CAAL,EAAqD;AACjD,aAAK83C,SAAL,CAAe93C,IAAf,IAAuB,KAAKi4C,qBAAL,CAA2BlmD,cAA3B,CAA0CiO,IAA1C,IACnB,KAAKi4C,qBAAL,CAA2Bj4C,IAA3B,CADmB,GAEnBkgC,2DAFJ;AAGH;;AACD,WAAKkY,YAAL,CAAkBp4C,IAAlB,EAAwB7C,GAAxB;AACH,KATD;AAUH;;AACD+3C,EAAAA,qBAAqB,GAAG;AACpB,UAAMn4C,MAAM,GAAG,KAAK86C,cAApB;AACA,UAAM/0B,KAAK,GAAG7gD,MAAM,CAACC,IAAP,CAAY66B,MAAZ,CAAd;AACA,QAAI+lB,KAAK,CAACrhD,MAAN,IAAgB,CAApB,EACI;AACJ,SAAKo2E,cAAL,GAAsB,EAAtB;AACA/0B,IAAAA,KAAK,CAAC/gD,OAAN,CAAci+B,IAAI,IAAI;AAClB,YAAM7C,GAAG,GAAGJ,MAAM,CAACiD,IAAD,CAAlB;AACA,WAAK03C,gBAAL,CAAsB13C,IAAtB,IAA8B7C,GAA9B;AACH,KAHD;AAIAl7B,IAAAA,MAAM,CAACC,IAAP,CAAY,KAAK81E,oBAAjB,EAAuCj2E,OAAvC,CAA+Ci+B,IAAI,IAAI;AACnD,UAAI,CAAC,KAAK03C,gBAAL,CAAsB3lD,cAAtB,CAAqCiO,IAArC,CAAL,EAAiD;AAC7C,aAAK03C,gBAAL,CAAsB13C,IAAtB,IAA8B,KAAKg4C,oBAAL,CAA0Bh4C,IAA1B,CAA9B;AACH;AACJ,KAJD;AAKH;;AACD+0C,EAAAA,qBAAqB,GAAG;AACpB9yE,IAAAA,MAAM,CAACC,IAAP,CAAY,KAAK81E,oBAAjB,EAAuCj2E,OAAvC,CAA+Ci+B,IAAI,IAAI;AACnD,YAAM7C,GAAG,GAAG,KAAK66C,oBAAL,CAA0Bh4C,IAA1B,CAAZ;AACA,WAAK63C,cAAL,CAAoB73C,IAApB,IAA4B7C,GAA5B;;AACA,WAAKi7C,YAAL,CAAkBp4C,IAAlB,EAAwB7C,GAAxB;AACH,KAJD;AAKH;;AACDm7C,EAAAA,gBAAgB,GAAG;AACf,WAAO,KAAKX,UAAL,CAAgBngE,GAAhB,CAAoB,KAAKrU,QAAzB,CAAP;AACH;;AACa,MAAVgtD,UAAU,GAAG;AACb,UAAMA,UAAU,GAAG,EAAnB;;AACA,SAAK,IAAInwB,IAAT,IAAiB,KAAK03C,gBAAtB,EAAwC;AACpCvnB,MAAAA,UAAU,CAAC/pD,IAAX,CAAgB45B,IAAhB;AACH;;AACD,WAAOmwB,UAAP;AACH;;AACDilB,EAAAA,4BAA4B,CAACpB,QAAD,EAAW;AACnC/xE,IAAAA,MAAM,CAACC,IAAP,CAAY8xE,QAAQ,CAAC4D,aAArB,EAAoC71E,OAApC,CAA4Ci+B,IAAI,IAAI;AAChD,YAAMu4C,QAAQ,GAAG,KAAKX,aAAL,CAAmB53C,IAAnB,CAAjB;AACA,YAAMw4C,QAAQ,GAAGxE,QAAQ,CAAC4D,aAAT,CAAuB53C,IAAvB,CAAjB;;AACA,UAAI,CAACu4C,QAAD,IAAaC,QAAQ,CAACh5C,IAAT,GAAgB+4C,QAAQ,CAAC/4C,IAA1C,EAAgD;AAC5C,aAAK44C,YAAL,CAAkBp4C,IAAlB,EAAwBw4C,QAAQ,CAACp6E,KAAjC;AACH;AACJ,KAND;AAOH;;AACDw1E,EAAAA,cAAc,GAAG;AACb,SAAKsB,qBAAL;AACA,UAAM1C,aAAa,GAAG,IAAIx4D,GAAJ,EAAtB;AACA,UAAMy4D,cAAc,GAAG,IAAIz4D,GAAJ,EAAvB;AACA,UAAMi2D,OAAO,GAAG,KAAK0H,UAAL,CAAgBrmD,IAAhB,KAAyB,CAAzB,IAA8B,KAAKnuB,QAAL,KAAkB,CAAhE;AACA,QAAIs1E,cAAc,GAAG,EAArB;;AACA,SAAKd,UAAL,CAAgB51E,OAAhB,CAAwB,CAAC22E,QAAD,EAAWl5C,IAAX,KAAoB;AACxC,YAAMm5C,aAAa,GAAGjP,UAAU,CAACgP,QAAD,EAAW,IAAX,CAAhC;AACAz2E,MAAAA,MAAM,CAACC,IAAP,CAAYy2E,aAAZ,EAA2B52E,OAA3B,CAAmCi+B,IAAI,IAAI;AACvC,cAAM5hC,KAAK,GAAGu6E,aAAa,CAAC34C,IAAD,CAA3B;;AACA,YAAI5hC,KAAK,IAAI+hE,8DAAb,EAAyB;AACrBqS,UAAAA,aAAa,CAACz9C,GAAd,CAAkBiL,IAAlB;AACH,SAFD,MAGK,IAAI5hC,KAAK,IAAI8hE,2DAAb,EAAyB;AAC1BuS,UAAAA,cAAc,CAAC19C,GAAf,CAAmBiL,IAAnB;AACH;AACJ,OARD;;AASA,UAAI,CAACiwC,OAAL,EAAc;AACV0I,QAAAA,aAAa,CAAC,QAAD,CAAb,GAA0Bn5C,IAAI,GAAG,KAAKr8B,QAAtC;AACH;;AACDs1E,MAAAA,cAAc,CAACryE,IAAf,CAAoBuyE,aAApB;AACH,KAfD;;AAgBA,UAAMC,QAAQ,GAAGpG,aAAa,CAAClhD,IAAd,GAAqBu5C,eAAe,CAAC2H,aAAa,CAACv/D,MAAd,EAAD,CAApC,GAA+D,EAAhF;AACA,UAAM4lE,SAAS,GAAGpG,cAAc,CAACnhD,IAAf,GAAsBu5C,eAAe,CAAC4H,cAAc,CAACx/D,MAAf,EAAD,CAArC,GAAiE,EAAnF,CAvBa,CAwBb;;AACA,QAAIg9D,OAAJ,EAAa;AACT,YAAM6I,GAAG,GAAGL,cAAc,CAAC,CAAD,CAA1B;AACA,YAAMM,GAAG,GAAGzP,OAAO,CAACwP,GAAD,CAAnB;AACAA,MAAAA,GAAG,CAAC,QAAD,CAAH,GAAgB,CAAhB;AACAC,MAAAA,GAAG,CAAC,QAAD,CAAH,GAAgB,CAAhB;AACAN,MAAAA,cAAc,GAAG,CAACK,GAAD,EAAMC,GAAN,CAAjB;AACH;;AACD,WAAOxG,yBAAyB,CAAC,KAAKvO,OAAN,EAAeyU,cAAf,EAA+BG,QAA/B,EAAyCC,SAAzC,EAAoD,KAAK11E,QAAzD,EAAmE,KAAKmtD,SAAxE,EAAmF,KAAK7C,MAAxF,EAAgG,KAAhG,CAAhC;AACH;;AApMiB;;AAsMtB,MAAM6pB,kBAAN,SAAiCZ,eAAjC,CAAiD;AAC7CnzE,EAAAA,WAAW,CAACugE,MAAD,EAASE,OAAT,EAAkBC,SAAlB,EAA6BuO,aAA7B,EAA4CC,cAA5C,EAA4D3J,OAA5D,EAAqEkQ,wBAAwB,GAAG,KAAhG,EAAuG;AAC9G,UAAMlV,MAAN,EAAcE,OAAd,EAAuB8E,OAAO,CAAC9W,KAA/B;AACA,SAAKiS,SAAL,GAAiBA,SAAjB;AACA,SAAKuO,aAAL,GAAqBA,aAArB;AACA,SAAKC,cAAL,GAAsBA,cAAtB;AACA,SAAKuG,wBAAL,GAAgCA,wBAAhC;AACA,SAAKlQ,OAAL,GAAe;AAAE3lE,MAAAA,QAAQ,EAAE2lE,OAAO,CAAC3lE,QAApB;AAA8B6uD,MAAAA,KAAK,EAAE8W,OAAO,CAAC9W,KAA7C;AAAoDvE,MAAAA,MAAM,EAAEqb,OAAO,CAACrb;AAApE,KAAf;AACH;;AACDwmB,EAAAA,iBAAiB,GAAG;AAChB,WAAO,KAAKhQ,SAAL,CAAexiE,MAAf,GAAwB,CAA/B;AACH;;AACDmyE,EAAAA,cAAc,GAAG;AACb,QAAI3P,SAAS,GAAG,KAAKA,SAArB;AACA,QAAI;AAAEjS,MAAAA,KAAF;AAAS7uD,MAAAA,QAAT;AAAmBsqD,MAAAA;AAAnB,QAA8B,KAAKqb,OAAvC;;AACA,QAAI,KAAKkQ,wBAAL,IAAiChnB,KAArC,EAA4C;AACxC,YAAMinB,YAAY,GAAG,EAArB;AACA,YAAM5T,SAAS,GAAGliE,QAAQ,GAAG6uD,KAA7B;AACA,YAAMknB,WAAW,GAAGlnB,KAAK,GAAGqT,SAA5B,CAHwC,CAIxC;;AACA,YAAM8T,gBAAgB,GAAGzP,UAAU,CAACzF,SAAS,CAAC,CAAD,CAAV,EAAe,KAAf,CAAnC;AACAkV,MAAAA,gBAAgB,CAAC,QAAD,CAAhB,GAA6B,CAA7B;AACAF,MAAAA,YAAY,CAAC7yE,IAAb,CAAkB+yE,gBAAlB;AACA,YAAMC,gBAAgB,GAAG1P,UAAU,CAACzF,SAAS,CAAC,CAAD,CAAV,EAAe,KAAf,CAAnC;AACAmV,MAAAA,gBAAgB,CAAC,QAAD,CAAhB,GAA6BC,WAAW,CAACH,WAAD,CAAxC;AACAD,MAAAA,YAAY,CAAC7yE,IAAb,CAAkBgzE,gBAAlB;AACA;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIY;;AACA,YAAM9H,KAAK,GAAGrN,SAAS,CAACxiE,MAAV,GAAmB,CAAjC;;AACA,WAAK,IAAI0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAImrE,KAArB,EAA4BnrE,CAAC,EAA7B,EAAiC;AAC7B,YAAIo+D,EAAE,GAAGmF,UAAU,CAACzF,SAAS,CAAC99D,CAAD,CAAV,EAAe,KAAf,CAAnB;AACA,cAAMmzE,SAAS,GAAG/U,EAAE,CAAC,QAAD,CAApB;AACA,cAAMgV,cAAc,GAAGvnB,KAAK,GAAGsnB,SAAS,GAAGn2E,QAA3C;AACAohE,QAAAA,EAAE,CAAC,QAAD,CAAF,GAAe8U,WAAW,CAACE,cAAc,GAAGlU,SAAlB,CAA1B;AACA4T,QAAAA,YAAY,CAAC7yE,IAAb,CAAkBm+D,EAAlB;AACH,OAjCuC,CAkCxC;;;AACAphE,MAAAA,QAAQ,GAAGkiE,SAAX;AACArT,MAAAA,KAAK,GAAG,CAAR;AACAvE,MAAAA,MAAM,GAAG,EAAT;AACAwW,MAAAA,SAAS,GAAGgV,YAAZ;AACH;;AACD,WAAO1G,yBAAyB,CAAC,KAAKvO,OAAN,EAAeC,SAAf,EAA0B,KAAKuO,aAA/B,EAA8C,KAAKC,cAAnD,EAAmEtvE,QAAnE,EAA6E6uD,KAA7E,EAAoFvE,MAApF,EAA4F,IAA5F,CAAhC;AACH;;AAxD4C;;AA0DjD,SAAS4rB,WAAT,CAAqBl0E,MAArB,EAA6Bq0E,aAAa,GAAG,CAA7C,EAAgD;AAC5C,QAAMC,IAAI,GAAG3zE,IAAI,CAAC4zE,GAAL,CAAS,EAAT,EAAaF,aAAa,GAAG,CAA7B,CAAb;AACA,SAAO1zE,IAAI,CAACujD,KAAL,CAAWlkD,MAAM,GAAGs0E,IAApB,IAA4BA,IAAnC;AACH;;AACD,SAASpB,aAAT,CAAuB1sD,KAAvB,EAA8BguD,SAA9B,EAAyC;AACrC,QAAM58C,MAAM,GAAG,EAAf;AACA,MAAI68C,aAAJ;AACAjuD,EAAAA,KAAK,CAAC5pB,OAAN,CAAc0xC,KAAK,IAAI;AACnB,QAAIA,KAAK,KAAK,GAAd,EAAmB;AACfmmC,MAAAA,aAAa,GAAGA,aAAa,IAAI33E,MAAM,CAACC,IAAP,CAAYy3E,SAAZ,CAAjC;AACAC,MAAAA,aAAa,CAAC73E,OAAd,CAAsBi+B,IAAI,IAAI;AAC1BjD,QAAAA,MAAM,CAACiD,IAAD,CAAN,GAAekgC,2DAAf;AACH,OAFD;AAGH,KALD,MAMK;AACDwJ,MAAAA,UAAU,CAACj2B,KAAD,EAAQ,KAAR,EAAe1W,MAAf,CAAV;AACH;AACJ,GAVD;AAWA,SAAOA,MAAP;AACH;;AAED,MAAMqyB,SAAN,CAAgB;AACZ7rD,EAAAA,WAAW,CAAC8qE,OAAD,EAAU1iD,KAAV,EAAiB;AACxB,SAAK0iD,OAAL,GAAeA,OAAf;AACA,UAAMpnE,MAAM,GAAG,EAAf;AACA,UAAMqlE,QAAQ,GAAG,EAAjB;AACA,UAAMkC,GAAG,GAAGP,iBAAiB,CAACI,OAAD,EAAU1iD,KAAV,EAAiB1kB,MAAjB,EAAyBqlE,QAAzB,CAA7B;;AACA,QAAIrlE,MAAM,CAACxF,MAAX,EAAmB;AACf,YAAMghE,gBAAgB,CAACx7D,MAAD,CAAtB;AACH;;AACD,QAAIqlE,QAAQ,CAAC7qE,MAAb,EAAqB;AACjB+qE,MAAAA,cAAc,CAACF,QAAD,CAAd;AACH;;AACD,SAAKuN,aAAL,GAAqBrL,GAArB;AACH;;AACDsL,EAAAA,cAAc,CAAC9V,OAAD,EAAUwP,cAAV,EAA0BuG,iBAA1B,EAA6C76D,OAA7C,EAAsDw0D,eAAtD,EAAuE;AACjF,UAAM1uE,KAAK,GAAGpD,KAAK,CAACC,OAAN,CAAc2xE,cAAd,IAAgChK,eAAe,CAACgK,cAAD,CAA/C,GACVA,cADJ;AAEA,UAAM9vD,IAAI,GAAG9hB,KAAK,CAACC,OAAN,CAAck4E,iBAAd,IAAmCvQ,eAAe,CAACuQ,iBAAD,CAAlD,GACTA,iBADJ;AAEA,UAAM9yE,MAAM,GAAG,EAAf;AACAysE,IAAAA,eAAe,GAAGA,eAAe,IAAI,IAAIf,qBAAJ,EAArC;AACA,UAAM9zE,MAAM,GAAGu0E,uBAAuB,CAAC,KAAK/E,OAAN,EAAerK,OAAf,EAAwB,KAAK6V,aAA7B,EAA4CxR,eAA5C,EAA6DC,eAA7D,EAA8EtjE,KAA9E,EAAqF0e,IAArF,EAA2FxE,OAA3F,EAAoGw0D,eAApG,EAAqHzsE,MAArH,CAAtC;;AACA,QAAIA,MAAM,CAACxF,MAAX,EAAmB;AACf,YAAMihE,cAAc,CAACz7D,MAAD,CAApB;AACH;;AACD,WAAOpI,MAAP;AACH;;AA1BW;AA6BhB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMm7E,wBAAN,CAA+B;AAE/B;AACA;AACA;;;AACA,MAAMC,4BAAN,CAAmC;AAC/BrV,EAAAA,qBAAqB,CAACsV,YAAD,EAAejzE,MAAf,EAAuB;AACxC,WAAOizE,YAAP;AACH;;AACDrV,EAAAA,mBAAmB,CAACzD,oBAAD,EAAuB+Y,kBAAvB,EAA2C/7E,KAA3C,EAAkD6I,MAAlD,EAA0D;AACzE,WAAO7I,KAAP;AACH;;AAN8B;AASnC;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMg8E,4BAAN,SAA2CJ,wBAA3C,CAAoE;AAChEpV,EAAAA,qBAAqB,CAACsV,YAAD,EAAejzE,MAAf,EAAuB;AACxC,WAAOmjE,mBAAmB,CAAC8P,YAAD,CAA1B;AACH;;AACDrV,EAAAA,mBAAmB,CAACzD,oBAAD,EAAuB+Y,kBAAvB,EAA2C/7E,KAA3C,EAAkD6I,MAAlD,EAA0D;AACzE,QAAI21C,IAAI,GAAG,EAAX;AACA,UAAMy9B,MAAM,GAAGj8E,KAAK,CAACoL,QAAN,GAAiBi2D,IAAjB,EAAf;;AACA,QAAI6a,oBAAoB,CAACH,kBAAD,CAApB,IAA4C/7E,KAAK,KAAK,CAAtD,IAA2DA,KAAK,KAAK,GAAzE,EAA8E;AAC1E,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC3Bw+C,QAAAA,IAAI,GAAG,IAAP;AACH,OAFD,MAGK;AACD,cAAM29B,iBAAiB,GAAGn8E,KAAK,CAACmH,KAAN,CAAY,wBAAZ,CAA1B;;AACA,YAAIg1E,iBAAiB,IAAIA,iBAAiB,CAAC,CAAD,CAAjB,CAAqB94E,MAArB,IAA+B,CAAxD,EAA2D;AACvDwF,UAAAA,MAAM,CAACb,IAAP,CAAY+6D,mBAAmB,CAACC,oBAAD,EAAuBhjE,KAAvB,CAA/B;AACH;AACJ;AACJ;;AACD,WAAOi8E,MAAM,GAAGz9B,IAAhB;AACH;;AAnB+D;;AAqBpE,MAAM09B,oBAAoB,GAAG,CAAC,MAAME,cAAc,CAAC,iUAC9Cj4E,KAD8C,CACxC,GADwC,CAAD,CAArB,GAA7B;;AAEA,SAASi4E,cAAT,CAAwBt4E,IAAxB,EAA8B;AAC1B,QAAMP,GAAG,GAAG,EAAZ;AACAO,EAAAA,IAAI,CAACH,OAAL,CAAawI,GAAG,IAAI5I,GAAG,CAAC4I,GAAD,CAAH,GAAW,IAA/B;AACA,SAAO5I,GAAP;AACH;;AAED,SAAS84E,2BAAT,CAAqCzW,OAArC,EAA8CuB,WAA9C,EAA2DC,SAA3D,EAAsEC,OAAtE,EAA+EiV,mBAA/E,EAAoGC,UAApG,EAAgHC,QAAhH,EAA0H7G,SAA1H,EAAqI8G,eAArI,EAAsJrI,aAAtJ,EAAqKC,cAArK,EAAqLpN,SAArL,EAAgMp+D,MAAhM,EAAwM;AACpM,SAAO;AACHnD,IAAAA,IAAI,EAAE;AAAE;AADL;AAEHkgE,IAAAA,OAFG;AAGHuB,IAAAA,WAHG;AAIHmV,IAAAA,mBAJG;AAKHlV,IAAAA,SALG;AAMHmV,IAAAA,UANG;AAOHlV,IAAAA,OAPG;AAQHmV,IAAAA,QARG;AASH7G,IAAAA,SATG;AAUH8G,IAAAA,eAVG;AAWHrI,IAAAA,aAXG;AAYHC,IAAAA,cAZG;AAaHpN,IAAAA,SAbG;AAcHp+D,IAAAA;AAdG,GAAP;AAgBH;;AAED,MAAM6zE,YAAY,GAAG,EAArB;;AACA,MAAMC,0BAAN,CAAiC;AAC7Bx3E,EAAAA,WAAW,CAACy3E,YAAD,EAAexM,GAAf,EAAoByM,YAApB,EAAkC;AACzC,SAAKD,YAAL,GAAoBA,YAApB;AACA,SAAKxM,GAAL,GAAWA,GAAX;AACA,SAAKyM,YAAL,GAAoBA,YAApB;AACH;;AACD11E,EAAAA,KAAK,CAAC21E,YAAD,EAAeC,SAAf,EAA0BnX,OAA1B,EAAmC9xD,MAAnC,EAA2C;AAC5C,WAAOkpE,yBAAyB,CAAC,KAAK5M,GAAL,CAAS1pE,QAAV,EAAoBo2E,YAApB,EAAkCC,SAAlC,EAA6CnX,OAA7C,EAAsD9xD,MAAtD,CAAhC;AACH;;AACDmpE,EAAAA,WAAW,CAACC,SAAD,EAAYppE,MAAZ,EAAoBjL,MAApB,EAA4B;AACnC,UAAMs0E,iBAAiB,GAAG,KAAKN,YAAL,CAAkB,GAAlB,CAA1B;AACA,UAAMO,WAAW,GAAG,KAAKP,YAAL,CAAkBK,SAAlB,CAApB;AACA,UAAMG,YAAY,GAAGF,iBAAiB,GAAGA,iBAAiB,CAACF,WAAlB,CAA8BnpE,MAA9B,EAAsCjL,MAAtC,CAAH,GAAmD,EAAzF;AACA,WAAOu0E,WAAW,GAAGA,WAAW,CAACH,WAAZ,CAAwBnpE,MAAxB,EAAgCjL,MAAhC,CAAH,GAA6Cw0E,YAA/D;AACH;;AACDtN,EAAAA,KAAK,CAACrK,MAAD,EAASE,OAAT,EAAkBkX,YAAlB,EAAgCC,SAAhC,EAA2C7H,cAA3C,EAA2DC,cAA3D,EAA2EmI,cAA3E,EAA2FC,WAA3F,EAAwGjI,eAAxG,EAAyHkI,YAAzH,EAAuI;AACxI,UAAM30E,MAAM,GAAG,EAAf;AACA,UAAM40E,yBAAyB,GAAG,KAAKrN,GAAL,CAAStvD,OAAT,IAAoB,KAAKsvD,GAAL,CAAStvD,OAAT,CAAiBhN,MAArC,IAA+C4oE,YAAjF;AACA,UAAMgB,sBAAsB,GAAGJ,cAAc,IAAIA,cAAc,CAACxpE,MAAjC,IAA2C4oE,YAA1E;AACA,UAAMiB,kBAAkB,GAAG,KAAKV,WAAL,CAAiBH,YAAjB,EAA+BY,sBAA/B,EAAuD70E,MAAvD,CAA3B;AACA,UAAM+0E,mBAAmB,GAAGL,WAAW,IAAIA,WAAW,CAACzpE,MAA3B,IAAqC4oE,YAAjE;AACA,UAAMmB,eAAe,GAAG,KAAKZ,WAAL,CAAiBF,SAAjB,EAA4Ba,mBAA5B,EAAiD/0E,MAAjD,CAAxB;AACA,UAAM4zE,eAAe,GAAG,IAAI7gE,GAAJ,EAAxB;AACA,UAAMkiE,WAAW,GAAG,IAAIziE,GAAJ,EAApB;AACA,UAAM0iE,YAAY,GAAG,IAAI1iE,GAAJ,EAArB;AACA,UAAM2iE,SAAS,GAAGjB,SAAS,KAAK,MAAhC;AACA,UAAMkB,gBAAgB,GAAG;AAAEnqE,MAAAA,MAAM,EAAEjQ,MAAM,CAACq6E,MAAP,CAAcr6E,MAAM,CAACq6E,MAAP,CAAc,EAAd,EAAkBT,yBAAlB,CAAd,EAA4DG,mBAA5D;AAAV,KAAzB;AACA,UAAMjI,SAAS,GAAG6H,YAAY,GAC1B,EAD0B,GAE1BxI,uBAAuB,CAACtP,MAAD,EAASE,OAAT,EAAkB,KAAKwK,GAAL,CAASrf,SAA3B,EAAsCmkB,cAAtC,EAAsDC,cAAtD,EAAsEwI,kBAAtE,EAA0FE,eAA1F,EAA2GI,gBAA3G,EAA6H3I,eAA7H,EAA8IzsE,MAA9I,CAF3B;AAGA,QAAIo+D,SAAS,GAAG,CAAhB;AACA0O,IAAAA,SAAS,CAAChyE,OAAV,CAAkBm0E,EAAE,IAAI;AACpB7Q,MAAAA,SAAS,GAAGv/D,IAAI,CAACgmD,GAAL,CAASoqB,EAAE,CAAC/yE,QAAH,GAAc+yE,EAAE,CAAClkB,KAA1B,EAAiCqT,SAAjC,CAAZ;AACH,KAFD;;AAGA,QAAIp+D,MAAM,CAACxF,MAAX,EAAmB;AACf,aAAOg5E,2BAA2B,CAACzW,OAAD,EAAU,KAAKgX,YAAf,EAA6BE,YAA7B,EAA2CC,SAA3C,EAAsDiB,SAAtD,EAAiEL,kBAAjE,EAAqFE,eAArF,EAAsG,EAAtG,EAA0G,EAA1G,EAA8GC,WAA9G,EAA2HC,YAA3H,EAAyI9W,SAAzI,EAAoJp+D,MAApJ,CAAlC;AACH;;AACD8sE,IAAAA,SAAS,CAAChyE,OAAV,CAAkBm0E,EAAE,IAAI;AACpB,YAAMqG,GAAG,GAAGrG,EAAE,CAAClS,OAAf;AACA,YAAM4U,QAAQ,GAAGlT,eAAe,CAACwW,WAAD,EAAcK,GAAd,EAAmB,EAAnB,CAAhC;AACArG,MAAAA,EAAE,CAAC1D,aAAH,CAAiBzwE,OAAjB,CAAyBi+B,IAAI,IAAI44C,QAAQ,CAAC54C,IAAD,CAAR,GAAiB,IAAlD;AACA,YAAM64C,SAAS,GAAGnT,eAAe,CAACyW,YAAD,EAAeI,GAAf,EAAoB,EAApB,CAAjC;AACArG,MAAAA,EAAE,CAACzD,cAAH,CAAkB1wE,OAAlB,CAA0Bi+B,IAAI,IAAI64C,SAAS,CAAC74C,IAAD,CAAT,GAAkB,IAApD;;AACA,UAAIu8C,GAAG,KAAKvY,OAAZ,EAAqB;AACjB6W,QAAAA,eAAe,CAAC9lD,GAAhB,CAAoBwnD,GAApB;AACH;AACJ,KATD;AAUA,UAAMC,mBAAmB,GAAG3R,eAAe,CAACgQ,eAAe,CAAC5nE,MAAhB,EAAD,CAA3C;AACA,WAAOwnE,2BAA2B,CAACzW,OAAD,EAAU,KAAKgX,YAAf,EAA6BE,YAA7B,EAA2CC,SAA3C,EAAsDiB,SAAtD,EAAiEL,kBAAjE,EAAqFE,eAArF,EAAsGlI,SAAtG,EAAiHyI,mBAAjH,EAAsIN,WAAtI,EAAmJC,YAAnJ,EAAiK9W,SAAjK,CAAlC;AACH;;AAjD4B;;AAmDjC,SAAS+V,yBAAT,CAAmCqB,QAAnC,EAA6CvB,YAA7C,EAA2DC,SAA3D,EAAsEnX,OAAtE,EAA+E9xD,MAA/E,EAAuF;AACnF,SAAOuqE,QAAQ,CAACpK,IAAT,CAAc33D,EAAE,IAAIA,EAAE,CAACwgE,YAAD,EAAeC,SAAf,EAA0BnX,OAA1B,EAAmC9xD,MAAnC,CAAtB,CAAP;AACH;;AACD,MAAMwqE,oBAAN,CAA2B;AACvBn5E,EAAAA,WAAW,CAACw5B,MAAD,EAAS4/C,aAAT,EAAwB5Y,UAAxB,EAAoC;AAC3C,SAAKhnC,MAAL,GAAcA,MAAd;AACA,SAAK4/C,aAAL,GAAqBA,aAArB;AACA,SAAK5Y,UAAL,GAAkBA,UAAlB;AACH;;AACDsX,EAAAA,WAAW,CAACnpE,MAAD,EAASjL,MAAT,EAAiB;AACxB,UAAMwsE,WAAW,GAAG,EAApB;AACA,UAAMmJ,cAAc,GAAGtT,OAAO,CAAC,KAAKqT,aAAN,CAA9B;AACA16E,IAAAA,MAAM,CAACC,IAAP,CAAYgQ,MAAZ,EAAoBnQ,OAApB,CAA4BwI,GAAG,IAAI;AAC/B,YAAMnM,KAAK,GAAG8T,MAAM,CAAC3H,GAAD,CAApB;;AACA,UAAInM,KAAK,IAAI,IAAb,EAAmB;AACfw+E,QAAAA,cAAc,CAACryE,GAAD,CAAd,GAAsBnM,KAAtB;AACH;AACJ,KALD;AAMA,SAAK2+B,MAAL,CAAYA,MAAZ,CAAmBh7B,OAAnB,CAA2B3D,KAAK,IAAI;AAChC,UAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC3B,cAAMy+E,QAAQ,GAAGz+E,KAAjB;AACA6D,QAAAA,MAAM,CAACC,IAAP,CAAY26E,QAAZ,EAAsB96E,OAAtB,CAA8Bi+B,IAAI,IAAI;AAClC,cAAI7C,GAAG,GAAG0/C,QAAQ,CAAC78C,IAAD,CAAlB;;AACA,cAAI7C,GAAG,CAAC17B,MAAJ,GAAa,CAAjB,EAAoB;AAChB07B,YAAAA,GAAG,GAAGwtC,iBAAiB,CAACxtC,GAAD,EAAMy/C,cAAN,EAAsB31E,MAAtB,CAAvB;AACH;;AACD,gBAAMy9D,cAAc,GAAG,KAAKX,UAAL,CAAgBa,qBAAhB,CAAsC5kC,IAAtC,EAA4C/4B,MAA5C,CAAvB;AACAk2B,UAAAA,GAAG,GAAG,KAAK4mC,UAAL,CAAgBc,mBAAhB,CAAoC7kC,IAApC,EAA0C0kC,cAA1C,EAA0DvnC,GAA1D,EAA+Dl2B,MAA/D,CAAN;AACAwsE,UAAAA,WAAW,CAAC/O,cAAD,CAAX,GAA8BvnC,GAA9B;AACH,SARD;AASH;AACJ,KAbD;AAcA,WAAOs2C,WAAP;AACH;;AA9BsB;;AAiC3B,SAASqJ,YAAT,CAAsBv2E,IAAtB,EAA4BioE,GAA5B,EAAiCzK,UAAjC,EAA6C;AACzC,SAAO,IAAIgZ,gBAAJ,CAAqBx2E,IAArB,EAA2BioE,GAA3B,EAAgCzK,UAAhC,CAAP;AACH;;AACD,MAAMgZ,gBAAN,CAAuB;AACnBx5E,EAAAA,WAAW,CAACgD,IAAD,EAAOioE,GAAP,EAAYwO,WAAZ,EAAyB;AAChC,SAAKz2E,IAAL,GAAYA,IAAZ;AACA,SAAKioE,GAAL,GAAWA,GAAX;AACA,SAAKwO,WAAL,GAAmBA,WAAnB;AACA,SAAKC,mBAAL,GAA2B,EAA3B;AACA,SAAKnO,MAAL,GAAc,EAAd;AACAN,IAAAA,GAAG,CAACM,MAAJ,CAAW/sE,OAAX,CAAmBysE,GAAG,IAAI;AACtB,YAAMmO,aAAa,GAAInO,GAAG,CAACtvD,OAAJ,IAAesvD,GAAG,CAACtvD,OAAJ,CAAYhN,MAA5B,IAAuC,EAA7D;AACA,WAAK48D,MAAL,CAAYN,GAAG,CAACjoE,IAAhB,IAAwB,IAAIm2E,oBAAJ,CAAyBlO,GAAG,CAACvxC,KAA7B,EAAoC0/C,aAApC,EAAmDK,WAAnD,CAAxB;AACH,KAHD;AAIAE,IAAAA,iBAAiB,CAAC,KAAKpO,MAAN,EAAc,MAAd,EAAsB,GAAtB,CAAjB;AACAoO,IAAAA,iBAAiB,CAAC,KAAKpO,MAAN,EAAc,OAAd,EAAuB,GAAvB,CAAjB;AACAN,IAAAA,GAAG,CAACO,WAAJ,CAAgBhtE,OAAhB,CAAwBysE,GAAG,IAAI;AAC3B,WAAKyO,mBAAL,CAAyB72E,IAAzB,CAA8B,IAAI20E,0BAAJ,CAA+Bx0E,IAA/B,EAAqCioE,GAArC,EAA0C,KAAKM,MAA/C,CAA9B;AACH,KAFD;AAGA,SAAKqO,kBAAL,GAA0BC,wBAAwB,CAAC72E,IAAD,EAAO,KAAKuoE,MAAZ,EAAoB,KAAKkO,WAAzB,CAAlD;AACH;;AACkB,MAAfK,eAAe,GAAG;AAClB,WAAO,KAAK7O,GAAL,CAASI,UAAT,GAAsB,CAA7B;AACH;;AACD0O,EAAAA,eAAe,CAACpC,YAAD,EAAeC,SAAf,EAA0BnX,OAA1B,EAAmC9xD,MAAnC,EAA2C;AACtD,UAAM4U,KAAK,GAAG,KAAKm2D,mBAAL,CAAyB9wC,IAAzB,CAA8BrR,CAAC,IAAIA,CAAC,CAACv1B,KAAF,CAAQ21E,YAAR,EAAsBC,SAAtB,EAAiCnX,OAAjC,EAA0C9xD,MAA1C,CAAnC,CAAd;AACA,WAAO4U,KAAK,IAAI,IAAhB;AACH;;AACDy2D,EAAAA,WAAW,CAACrC,YAAD,EAAehpE,MAAf,EAAuBjL,MAAvB,EAA+B;AACtC,WAAO,KAAKk2E,kBAAL,CAAwB9B,WAAxB,CAAoCH,YAApC,EAAkDhpE,MAAlD,EAA0DjL,MAA1D,CAAP;AACH;;AA3BkB;;AA6BvB,SAASm2E,wBAAT,CAAkC7X,WAAlC,EAA+CuJ,MAA/C,EAAuD/K,UAAvD,EAAmE;AAC/D,QAAMj/D,QAAQ,GAAG,CAAC,CAAC0gE,SAAD,EAAYC,OAAZ,KAAwB,IAAzB,CAAjB;AACA,QAAMtW,SAAS,GAAG;AAAErrD,IAAAA,IAAI,EAAE;AAAE;AAAV;AAA0BymE,IAAAA,KAAK,EAAE,EAAjC;AAAqCrrD,IAAAA,OAAO,EAAE;AAA9C,GAAlB;AACA,QAAMiwD,UAAU,GAAG;AACfrrE,IAAAA,IAAI,EAAE;AAAE;AADO;AAEfqrD,IAAAA,SAFe;AAGfrqD,IAAAA,QAHe;AAIfoa,IAAAA,OAAO,EAAE,IAJM;AAKf0vD,IAAAA,UAAU,EAAE,CALG;AAMfC,IAAAA,QAAQ,EAAE;AANK,GAAnB;AAQA,SAAO,IAAIkM,0BAAJ,CAA+BxV,WAA/B,EAA4C4J,UAA5C,EAAwDL,MAAxD,CAAP;AACH;;AACD,SAASoO,iBAAT,CAA2Bp/D,GAA3B,EAAgC0/D,IAAhC,EAAsCC,IAAtC,EAA4C;AACxC,MAAI3/D,GAAG,CAACiU,cAAJ,CAAmByrD,IAAnB,CAAJ,EAA8B;AAC1B,QAAI,CAAC1/D,GAAG,CAACiU,cAAJ,CAAmB0rD,IAAnB,CAAL,EAA+B;AAC3B3/D,MAAAA,GAAG,CAAC2/D,IAAD,CAAH,GAAY3/D,GAAG,CAAC0/D,IAAD,CAAf;AACH;AACJ,GAJD,MAKK,IAAI1/D,GAAG,CAACiU,cAAJ,CAAmB0rD,IAAnB,CAAJ,EAA8B;AAC/B3/D,IAAAA,GAAG,CAAC0/D,IAAD,CAAH,GAAY1/D,GAAG,CAAC2/D,IAAD,CAAf;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,qBAAqB,GAAG,IAAI/K,qBAAJ,EAA9B;;AACA,MAAMgL,uBAAN,CAA8B;AAC1Bp6E,EAAAA,WAAW,CAACq6E,QAAD,EAAWvP,OAAX,EAAoB2O,WAApB,EAAiC;AACxC,SAAKY,QAAL,GAAgBA,QAAhB;AACA,SAAKvP,OAAL,GAAeA,OAAf;AACA,SAAK2O,WAAL,GAAmBA,WAAnB;AACA,SAAKa,WAAL,GAAmB,EAAnB;AACA,SAAKC,YAAL,GAAoB,EAApB;AACA,SAAKla,OAAL,GAAe,EAAf;AACH;;AACDma,EAAAA,QAAQ,CAAC10C,EAAD,EAAK1/B,QAAL,EAAe;AACnB,UAAM1C,MAAM,GAAG,EAAf;AACA,UAAMqlE,QAAQ,GAAG,EAAjB;AACA,UAAMkC,GAAG,GAAGP,iBAAiB,CAAC,KAAKI,OAAN,EAAe1kE,QAAf,EAAyB1C,MAAzB,EAAiCqlE,QAAjC,CAA7B;;AACA,QAAIrlE,MAAM,CAACxF,MAAX,EAAmB;AACf,YAAMohE,cAAc,CAAC57D,MAAD,CAApB;AACH,KAFD,MAGK;AACD,UAAIqlE,QAAQ,CAAC7qE,MAAb,EAAqB;AACjBirE,QAAAA,YAAY,CAACJ,QAAD,CAAZ;AACH;;AACD,WAAKuR,WAAL,CAAiBx0C,EAAjB,IAAuBmlC,GAAvB;AACH;AACJ;;AACDwP,EAAAA,YAAY,CAAC73E,CAAD,EAAI+9D,SAAJ,EAAeC,UAAf,EAA2B;AACnC,UAAMH,OAAO,GAAG79D,CAAC,CAAC69D,OAAlB;AACA,UAAMC,SAAS,GAAGJ,kBAAkB,CAAC,KAAKwK,OAAN,EAAe,KAAK2O,WAApB,EAAiChZ,OAAjC,EAA0C79D,CAAC,CAAC89D,SAA5C,EAAuDC,SAAvD,EAAkEC,UAAlE,CAApC;AACA,WAAO,KAAKkK,OAAL,CAAand,OAAb,CAAqB8S,OAArB,EAA8BC,SAA9B,EAAyC99D,CAAC,CAAChD,QAA3C,EAAqDgD,CAAC,CAAC6rD,KAAvD,EAA8D7rD,CAAC,CAACsnD,MAAhE,EAAwE,EAAxE,EAA4E,IAA5E,CAAP;AACH;;AACDtgC,EAAAA,MAAM,CAACkc,EAAD,EAAK26B,OAAL,EAAc9kD,OAAO,GAAG,EAAxB,EAA4B;AAC9B,UAAMjY,MAAM,GAAG,EAAf;AACA,UAAMunE,GAAG,GAAG,KAAKqP,WAAL,CAAiBx0C,EAAjB,CAAZ;AACA,QAAIwpC,YAAJ;AACA,UAAMoL,aAAa,GAAG,IAAIxkE,GAAJ,EAAtB;;AACA,QAAI+0D,GAAJ,EAAS;AACLqE,MAAAA,YAAY,GAAGO,uBAAuB,CAAC,KAAK/E,OAAN,EAAerK,OAAf,EAAwBwK,GAAxB,EAA6BnG,eAA7B,EAA8CC,eAA9C,EAA+D,EAA/D,EAAmE,EAAnE,EAAuEppD,OAAvE,EAAgFw+D,qBAAhF,EAAuGz2E,MAAvG,CAAtC;AACA4rE,MAAAA,YAAY,CAAC9wE,OAAb,CAAqBm8E,IAAI,IAAI;AACzB,cAAMnhD,MAAM,GAAG2oC,eAAe,CAACuY,aAAD,EAAgBC,IAAI,CAACla,OAArB,EAA8B,EAA9B,CAA9B;AACAka,QAAAA,IAAI,CAACzL,cAAL,CAAoB1wE,OAApB,CAA4Bi+B,IAAI,IAAIjD,MAAM,CAACiD,IAAD,CAAN,GAAe,IAAnD;AACH,OAHD;AAIH,KAND,MAOK;AACD/4B,MAAAA,MAAM,CAACb,IAAP,CAAY08D,2BAA2B,EAAvC;AACA+P,MAAAA,YAAY,GAAG,EAAf;AACH;;AACD,QAAI5rE,MAAM,CAACxF,MAAX,EAAmB;AACf,YAAMshE,qBAAqB,CAAC97D,MAAD,CAA3B;AACH;;AACDg3E,IAAAA,aAAa,CAACl8E,OAAd,CAAsB,CAACg7B,MAAD,EAASinC,OAAT,KAAqB;AACvC/hE,MAAAA,MAAM,CAACC,IAAP,CAAY66B,MAAZ,EAAoBh7B,OAApB,CAA4Bi+B,IAAI,IAAI;AAChCjD,QAAAA,MAAM,CAACiD,IAAD,CAAN,GAAe,KAAKquC,OAAL,CAAa1G,YAAb,CAA0B3D,OAA1B,EAAmChkC,IAAnC,EAAyCkgC,2DAAzC,CAAf;AACH,OAFD;AAGH,KAJD;AAKA,UAAM0D,OAAO,GAAGiP,YAAY,CAAClxE,GAAb,CAAiBwE,CAAC,IAAI;AAClC,YAAM42B,MAAM,GAAGkhD,aAAa,CAACzmE,GAAd,CAAkBrR,CAAC,CAAC69D,OAApB,CAAf;AACA,aAAO,KAAKga,YAAL,CAAkB73E,CAAlB,EAAqB,EAArB,EAAyB42B,MAAzB,CAAP;AACH,KAHe,CAAhB;AAIA,UAAMgoC,MAAM,GAAGpB,mBAAmB,CAACC,OAAD,CAAlC;AACA,SAAKka,YAAL,CAAkBz0C,EAAlB,IAAwB07B,MAAxB;AACAA,IAAAA,MAAM,CAACI,SAAP,CAAiB,MAAM,KAAKlkD,OAAL,CAAaooB,EAAb,CAAvB;AACA,SAAKu6B,OAAL,CAAax9D,IAAb,CAAkB2+D,MAAlB;AACA,WAAOA,MAAP;AACH;;AACD9jD,EAAAA,OAAO,CAACooB,EAAD,EAAK;AACR,UAAM07B,MAAM,GAAG,KAAKoZ,UAAL,CAAgB90C,EAAhB,CAAf;;AACA07B,IAAAA,MAAM,CAAC9jD,OAAP;AACA,WAAO,KAAK68D,YAAL,CAAkBz0C,EAAlB,CAAP;AACA,UAAMjkB,KAAK,GAAG,KAAKw+C,OAAL,CAAajhE,OAAb,CAAqBoiE,MAArB,CAAd;;AACA,QAAI3/C,KAAK,IAAI,CAAb,EAAgB;AACZ,WAAKw+C,OAAL,CAAa3oD,MAAb,CAAoBmK,KAApB,EAA2B,CAA3B;AACH;AACJ;;AACD+4D,EAAAA,UAAU,CAAC90C,EAAD,EAAK;AACX,UAAM07B,MAAM,GAAG,KAAK+Y,YAAL,CAAkBz0C,EAAlB,CAAf;;AACA,QAAI,CAAC07B,MAAL,EAAa;AACT,YAAM/B,aAAa,CAAC35B,EAAD,CAAnB;AACH;;AACD,WAAO07B,MAAP;AACH;;AACDqZ,EAAAA,MAAM,CAAC/0C,EAAD,EAAK26B,OAAL,EAActhE,SAAd,EAAyBkkB,QAAzB,EAAmC;AACrC;AACA,UAAMy3D,SAAS,GAAG/Y,kBAAkB,CAACtB,OAAD,EAAU,EAAV,EAAc,EAAd,EAAkB,EAAlB,CAApC;AACAc,IAAAA,cAAc,CAAC,KAAKqZ,UAAL,CAAgB90C,EAAhB,CAAD,EAAsB3mC,SAAtB,EAAiC27E,SAAjC,EAA4Cz3D,QAA5C,CAAd;AACA,WAAO,MAAM,CAAG,CAAhB;AACH;;AACDg/C,EAAAA,OAAO,CAACv8B,EAAD,EAAK26B,OAAL,EAAc4B,OAAd,EAAuB3vD,IAAvB,EAA6B;AAChC,QAAI2vD,OAAO,IAAI,UAAf,EAA2B;AACvB,WAAKmY,QAAL,CAAc10C,EAAd,EAAkBpzB,IAAI,CAAC,CAAD,CAAtB;AACA;AACH;;AACD,QAAI2vD,OAAO,IAAI,QAAf,EAAyB;AACrB,YAAM1mD,OAAO,GAAIjJ,IAAI,CAAC,CAAD,CAAJ,IAAW,EAA5B;AACA,WAAKkX,MAAL,CAAYkc,EAAZ,EAAgB26B,OAAhB,EAAyB9kD,OAAzB;AACA;AACH;;AACD,UAAM6lD,MAAM,GAAG,KAAKoZ,UAAL,CAAgB90C,EAAhB,CAAf;;AACA,YAAQu8B,OAAR;AACI,WAAK,MAAL;AACIb,QAAAA,MAAM,CAACuZ,IAAP;AACA;;AACJ,WAAK,OAAL;AACIvZ,QAAAA,MAAM,CAAC//C,KAAP;AACA;;AACJ,WAAK,OAAL;AACI+/C,QAAAA,MAAM,CAACp0B,KAAP;AACA;;AACJ,WAAK,SAAL;AACIo0B,QAAAA,MAAM,CAACwZ,OAAP;AACA;;AACJ,WAAK,QAAL;AACIxZ,QAAAA,MAAM,CAACh+C,MAAP;AACA;;AACJ,WAAK,MAAL;AACIg+C,QAAAA,MAAM,CAACtiC,IAAP;AACA;;AACJ,WAAK,aAAL;AACIsiC,QAAAA,MAAM,CAACyZ,WAAP,CAAmB7kE,UAAU,CAAC1D,IAAI,CAAC,CAAD,CAAL,CAA7B;AACA;;AACJ,WAAK,SAAL;AACI,aAAKgL,OAAL,CAAaooB,EAAb;AACA;AAxBR;AA0BH;;AAzHyB;AA4H9B;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMo1C,gBAAgB,GAAG,mBAAzB;AACA,MAAMC,eAAe,GAAG,oBAAxB;AACA,MAAMC,kBAAkB,GAAG,qBAA3B;AACA,MAAMC,iBAAiB,GAAG,sBAA1B;AACA,MAAMC,cAAc,GAAG,kBAAvB;AACA,MAAMC,aAAa,GAAG,mBAAtB;AACA,MAAMC,kBAAkB,GAAG,EAA3B;AACA,MAAMC,kBAAkB,GAAG;AACvBC,EAAAA,WAAW,EAAE,EADU;AAEvBC,EAAAA,aAAa,EAAE,KAFQ;AAGvBC,EAAAA,UAAU,EAAE,KAHW;AAIvBC,EAAAA,YAAY,EAAE,KAJS;AAKvBC,EAAAA,oBAAoB,EAAE;AALC,CAA3B;AAOA,MAAMC,0BAA0B,GAAG;AAC/BL,EAAAA,WAAW,EAAE,EADkB;AAE/BE,EAAAA,UAAU,EAAE,KAFmB;AAG/BD,EAAAA,aAAa,EAAE,KAHgB;AAI/BE,EAAAA,YAAY,EAAE,KAJiB;AAK/BC,EAAAA,oBAAoB,EAAE;AALS,CAAnC;AAOA,MAAME,YAAY,GAAG,cAArB;;AACA,MAAMC,UAAN,CAAiB;AACbj8E,EAAAA,WAAW,CAACooB,KAAD,EAAQszD,WAAW,GAAG,EAAtB,EAA0B;AACjC,SAAKA,WAAL,GAAmBA,WAAnB;AACA,UAAMQ,KAAK,GAAG9zD,KAAK,IAAIA,KAAK,CAACoG,cAAN,CAAqB,OAArB,CAAvB;AACA,UAAM3zB,KAAK,GAAGqhF,KAAK,GAAG9zD,KAAK,CAAC,OAAD,CAAR,GAAoBA,KAAvC;AACA,SAAKvtB,KAAL,GAAashF,qBAAqB,CAACthF,KAAD,CAAlC;;AACA,QAAIqhF,KAAJ,EAAW;AACP,YAAMvgE,OAAO,GAAGoqD,OAAO,CAAC39C,KAAD,CAAvB;AACA,aAAOzM,OAAO,CAAC,OAAD,CAAd;AACA,WAAKA,OAAL,GAAeA,OAAf;AACH,KAJD,MAKK;AACD,WAAKA,OAAL,GAAe,EAAf;AACH;;AACD,QAAI,CAAC,KAAKA,OAAL,CAAahN,MAAlB,EAA0B;AACtB,WAAKgN,OAAL,CAAahN,MAAb,GAAsB,EAAtB;AACH;AACJ;;AACS,MAANA,MAAM,GAAG;AACT,WAAO,KAAKgN,OAAL,CAAahN,MAApB;AACH;;AACDytE,EAAAA,aAAa,CAACzgE,OAAD,EAAU;AACnB,UAAM43D,SAAS,GAAG53D,OAAO,CAAChN,MAA1B;;AACA,QAAI4kE,SAAJ,EAAe;AACX,YAAMG,SAAS,GAAG,KAAK/3D,OAAL,CAAahN,MAA/B;AACAjQ,MAAAA,MAAM,CAACC,IAAP,CAAY40E,SAAZ,EAAuB/0E,OAAvB,CAA+Bi+B,IAAI,IAAI;AACnC,YAAIi3C,SAAS,CAACj3C,IAAD,CAAT,IAAmB,IAAvB,EAA6B;AACzBi3C,UAAAA,SAAS,CAACj3C,IAAD,CAAT,GAAkB82C,SAAS,CAAC92C,IAAD,CAA3B;AACH;AACJ,OAJD;AAKH;AACJ;;AA/BY;;AAiCjB,MAAM4/C,UAAU,GAAG,MAAnB;AACA,MAAMC,mBAAmB,GAAG,IAAIL,UAAJ,CAAeI,UAAf,CAA5B;;AACA,MAAME,4BAAN,CAAmC;AAC/Bv8E,EAAAA,WAAW,CAAC8lC,EAAD,EAAK02C,WAAL,EAAkBC,OAAlB,EAA2B;AAClC,SAAK32C,EAAL,GAAUA,EAAV;AACA,SAAK02C,WAAL,GAAmBA,WAAnB;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKpc,OAAL,GAAe,EAAf;AACA,SAAKqc,SAAL,GAAiB,EAAjB;AACA,SAAKC,MAAL,GAAc,EAAd;AACA,SAAKC,iBAAL,GAAyB,IAAI1mE,GAAJ,EAAzB;AACA,SAAK2mE,cAAL,GAAsB,YAAY/2C,EAAlC;AACA+pB,IAAAA,QAAQ,CAAC2sB,WAAD,EAAc,KAAKK,cAAnB,CAAR;AACH;;AACDhC,EAAAA,MAAM,CAACpa,OAAD,EAAUz9D,IAAV,EAAgB28D,KAAhB,EAAuBt8C,QAAvB,EAAiC;AACnC,QAAI,CAAC,KAAKq5D,SAAL,CAAeluD,cAAf,CAA8BxrB,IAA9B,CAAL,EAA0C;AACtC,YAAM08D,cAAc,CAACC,KAAD,EAAQ38D,IAAR,CAApB;AACH;;AACD,QAAI28D,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACzhE,MAAN,IAAgB,CAArC,EAAwC;AACpC,YAAM0hE,YAAY,CAAC58D,IAAD,CAAlB;AACH;;AACD,QAAI,CAAC85E,mBAAmB,CAACnd,KAAD,CAAxB,EAAiC;AAC7B,YAAME,uBAAuB,CAACF,KAAD,EAAQ38D,IAAR,CAA7B;AACH;;AACD,UAAM8P,SAAS,GAAGqvD,eAAe,CAAC,KAAKya,iBAAN,EAAyBnc,OAAzB,EAAkC,EAAlC,CAAjC;AACA,UAAM1hE,IAAI,GAAG;AAAEiE,MAAAA,IAAF;AAAQ28D,MAAAA,KAAR;AAAet8C,MAAAA;AAAf,KAAb;AACAvQ,IAAAA,SAAS,CAACjQ,IAAV,CAAe9D,IAAf;AACA,UAAMg+E,kBAAkB,GAAG5a,eAAe,CAAC,KAAKsa,OAAL,CAAaO,eAAd,EAA+Bvc,OAA/B,EAAwC,EAAxC,CAA1C;;AACA,QAAI,CAACsc,kBAAkB,CAACvuD,cAAnB,CAAkCxrB,IAAlC,CAAL,EAA8C;AAC1C6sD,MAAAA,QAAQ,CAAC4Q,OAAD,EAAUuE,oBAAV,CAAR;AACAnV,MAAAA,QAAQ,CAAC4Q,OAAD,EAAUuE,oBAAoB,GAAG,GAAvB,GAA6BhiE,IAAvC,CAAR;AACA+5E,MAAAA,kBAAkB,CAAC/5E,IAAD,CAAlB,GAA2Bs5E,mBAA3B;AACH;;AACD,WAAO,MAAM;AACT;AACA;AACA;AACA,WAAKG,OAAL,CAAaQ,UAAb,CAAwB,MAAM;AAC1B,cAAMp7D,KAAK,GAAG/O,SAAS,CAAC1T,OAAV,CAAkBL,IAAlB,CAAd;;AACA,YAAI8iB,KAAK,IAAI,CAAb,EAAgB;AACZ/O,UAAAA,SAAS,CAAC4E,MAAV,CAAiBmK,KAAjB,EAAwB,CAAxB;AACH;;AACD,YAAI,CAAC,KAAK66D,SAAL,CAAe15E,IAAf,CAAL,EAA2B;AACvB,iBAAO+5E,kBAAkB,CAAC/5E,IAAD,CAAzB;AACH;AACJ,OARD;AASH,KAbD;AAcH;;AACDw3E,EAAAA,QAAQ,CAACx3E,IAAD,EAAOioE,GAAP,EAAY;AAChB,QAAI,KAAKyR,SAAL,CAAe15E,IAAf,CAAJ,EAA0B;AACtB;AACA,aAAO,KAAP;AACH,KAHD,MAIK;AACD,WAAK05E,SAAL,CAAe15E,IAAf,IAAuBioE,GAAvB;AACA,aAAO,IAAP;AACH;AACJ;;AACDiS,EAAAA,WAAW,CAACl6E,IAAD,EAAO;AACd,UAAMg8C,OAAO,GAAG,KAAK09B,SAAL,CAAe15E,IAAf,CAAhB;;AACA,QAAI,CAACg8C,OAAL,EAAc;AACV,YAAM8gB,mBAAmB,CAAC98D,IAAD,CAAzB;AACH;;AACD,WAAOg8C,OAAP;AACH;;AACDA,EAAAA,OAAO,CAACyhB,OAAD,EAAUuB,WAAV,EAAuBnnE,KAAvB,EAA8BsiF,iBAAiB,GAAG,IAAlD,EAAwD;AAC3D,UAAMn+B,OAAO,GAAG,KAAKk+B,WAAL,CAAiBlb,WAAjB,CAAhB;;AACA,UAAMR,MAAM,GAAG,IAAI4b,yBAAJ,CAA8B,KAAKt3C,EAAnC,EAAuCk8B,WAAvC,EAAoDvB,OAApD,CAAf;;AACA,QAAIsc,kBAAkB,GAAG,KAAKN,OAAL,CAAaO,eAAb,CAA6B/oE,GAA7B,CAAiCwsD,OAAjC,CAAzB;;AACA,QAAI,CAACsc,kBAAL,EAAyB;AACrBltB,MAAAA,QAAQ,CAAC4Q,OAAD,EAAUuE,oBAAV,CAAR;AACAnV,MAAAA,QAAQ,CAAC4Q,OAAD,EAAUuE,oBAAoB,GAAG,GAAvB,GAA6BhD,WAAvC,CAAR;;AACA,WAAKya,OAAL,CAAaO,eAAb,CAA6B36E,GAA7B,CAAiCo+D,OAAjC,EAA0Csc,kBAAkB,GAAG,EAA/D;AACH;;AACD,QAAI9a,SAAS,GAAG8a,kBAAkB,CAAC/a,WAAD,CAAlC;AACA,UAAME,OAAO,GAAG,IAAI+Z,UAAJ,CAAephF,KAAf,EAAsB,KAAKirC,EAA3B,CAAhB;AACA,UAAMo2C,KAAK,GAAGrhF,KAAK,IAAIA,KAAK,CAAC2zB,cAAN,CAAqB,OAArB,CAAvB;;AACA,QAAI,CAAC0tD,KAAD,IAAUja,SAAd,EAAyB;AACrBC,MAAAA,OAAO,CAACka,aAAR,CAAsBna,SAAS,CAACtmD,OAAhC;AACH;;AACDohE,IAAAA,kBAAkB,CAAC/a,WAAD,CAAlB,GAAkCE,OAAlC;;AACA,QAAI,CAACD,SAAL,EAAgB;AACZA,MAAAA,SAAS,GAAGqa,mBAAZ;AACH;;AACD,UAAMzD,SAAS,GAAG3W,OAAO,CAACrnE,KAAR,KAAkBwhF,UAApC,CAnB2D,CAoB3D;AACA;AACA;AACA;AACA;AACA;;AACA,QAAI,CAACxD,SAAD,IAAc5W,SAAS,CAACpnE,KAAV,KAAoBqnE,OAAO,CAACrnE,KAA9C,EAAqD;AACjD;AACA;AACA,UAAI,CAACwiF,SAAS,CAACpb,SAAS,CAACtzD,MAAX,EAAmBuzD,OAAO,CAACvzD,MAA3B,CAAd,EAAkD;AAC9C,cAAMjL,MAAM,GAAG,EAAf;AACA,cAAM0zE,UAAU,GAAGp4B,OAAO,CAACg7B,WAAR,CAAoB/X,SAAS,CAACpnE,KAA9B,EAAqConE,SAAS,CAACtzD,MAA/C,EAAuDjL,MAAvD,CAAnB;AACA,cAAM2zE,QAAQ,GAAGr4B,OAAO,CAACg7B,WAAR,CAAoB9X,OAAO,CAACrnE,KAA5B,EAAmCqnE,OAAO,CAACvzD,MAA3C,EAAmDjL,MAAnD,CAAjB;;AACA,YAAIA,MAAM,CAACxF,MAAX,EAAmB;AACf,eAAKu+E,OAAL,CAAaa,WAAb,CAAyB55E,MAAzB;AACH,SAFD,MAGK;AACD,eAAK+4E,OAAL,CAAaQ,UAAb,CAAwB,MAAM;AAC1BnW,YAAAA,WAAW,CAACrG,OAAD,EAAU2W,UAAV,CAAX;AACAzQ,YAAAA,SAAS,CAAClG,OAAD,EAAU4W,QAAV,CAAT;AACH,WAHD;AAIH;AACJ;;AACD;AACH;;AACD,UAAMkG,gBAAgB,GAAGpb,eAAe,CAAC,KAAKsa,OAAL,CAAae,gBAAd,EAAgC/c,OAAhC,EAAyC,EAAzC,CAAxC;AACA8c,IAAAA,gBAAgB,CAAC/+E,OAAjB,CAAyBgjE,MAAM,IAAI;AAC/B;AACA;AACA;AACA;AACA,UAAIA,MAAM,CAACka,WAAP,IAAsB,KAAK51C,EAA3B,IAAiC07B,MAAM,CAACQ,WAAP,IAAsBA,WAAvD,IAAsER,MAAM,CAACic,MAAjF,EAAyF;AACrFjc,QAAAA,MAAM,CAAC9jD,OAAP;AACH;AACJ,KARD;AASA,QAAIkuD,UAAU,GAAG5sB,OAAO,CAAC+6B,eAAR,CAAwB9X,SAAS,CAACpnE,KAAlC,EAAyCqnE,OAAO,CAACrnE,KAAjD,EAAwD4lE,OAAxD,EAAiEyB,OAAO,CAACvzD,MAAzE,CAAjB;AACA,QAAI+uE,oBAAoB,GAAG,KAA3B;;AACA,QAAI,CAAC9R,UAAL,EAAiB;AACb,UAAI,CAACuR,iBAAL,EACI;AACJvR,MAAAA,UAAU,GAAG5sB,OAAO,CAAC46B,kBAArB;AACA8D,MAAAA,oBAAoB,GAAG,IAAvB;AACH;;AACD,SAAKjB,OAAL,CAAakB,kBAAb;;AACA,SAAKhB,MAAL,CAAY95E,IAAZ,CAAiB;AAAE49D,MAAAA,OAAF;AAAWuB,MAAAA,WAAX;AAAwB4J,MAAAA,UAAxB;AAAoC3J,MAAAA,SAApC;AAA+CC,MAAAA,OAA/C;AAAwDV,MAAAA,MAAxD;AAAgEkc,MAAAA;AAAhE,KAAjB;;AACA,QAAI,CAACA,oBAAL,EAA2B;AACvB7tB,MAAAA,QAAQ,CAAC4Q,OAAD,EAAUya,gBAAV,CAAR;AACA1Z,MAAAA,MAAM,CAACC,OAAP,CAAe,MAAM;AACjBxR,QAAAA,WAAW,CAACwQ,OAAD,EAAUya,gBAAV,CAAX;AACH,OAFD;AAGH;;AACD1Z,IAAAA,MAAM,CAACG,MAAP,CAAc,MAAM;AAChB,UAAI9/C,KAAK,GAAG,KAAKw+C,OAAL,CAAajhE,OAAb,CAAqBoiE,MAArB,CAAZ;;AACA,UAAI3/C,KAAK,IAAI,CAAb,EAAgB;AACZ,aAAKw+C,OAAL,CAAa3oD,MAAb,CAAoBmK,KAApB,EAA2B,CAA3B;AACH;;AACD,YAAMw+C,OAAO,GAAG,KAAKoc,OAAL,CAAae,gBAAb,CAA8BvpE,GAA9B,CAAkCwsD,OAAlC,CAAhB;;AACA,UAAIJ,OAAJ,EAAa;AACT,YAAIx+C,KAAK,GAAGw+C,OAAO,CAACjhE,OAAR,CAAgBoiE,MAAhB,CAAZ;;AACA,YAAI3/C,KAAK,IAAI,CAAb,EAAgB;AACZw+C,UAAAA,OAAO,CAAC3oD,MAAR,CAAemK,KAAf,EAAsB,CAAtB;AACH;AACJ;AACJ,KAZD;AAaA,SAAKw+C,OAAL,CAAax9D,IAAb,CAAkB2+D,MAAlB;AACA+b,IAAAA,gBAAgB,CAAC16E,IAAjB,CAAsB2+D,MAAtB;AACA,WAAOA,MAAP;AACH;;AACDoc,EAAAA,UAAU,CAAC56E,IAAD,EAAO;AACb,WAAO,KAAK05E,SAAL,CAAe15E,IAAf,CAAP;;AACA,SAAKy5E,OAAL,CAAaO,eAAb,CAA6Bx+E,OAA7B,CAAqC,CAACq/E,QAAD,EAAWpd,OAAX,KAAuB;AACxD,aAAOod,QAAQ,CAAC76E,IAAD,CAAf;AACH,KAFD;;AAGA,SAAK45E,iBAAL,CAAuBp+E,OAAvB,CAA+B,CAACsU,SAAD,EAAY2tD,OAAZ,KAAwB;AACnD,WAAKmc,iBAAL,CAAuBv6E,GAAvB,CAA2Bo+D,OAA3B,EAAoC3tD,SAAS,CAACrS,MAAV,CAAiB8iB,KAAK,IAAI;AAC1D,eAAOA,KAAK,CAACvgB,IAAN,IAAcA,IAArB;AACH,OAFmC,CAApC;AAGH,KAJD;AAKH;;AACD86E,EAAAA,iBAAiB,CAACrd,OAAD,EAAU;AACvB,SAAKgc,OAAL,CAAaO,eAAb,CAA6Be,MAA7B,CAAoCtd,OAApC;;AACA,SAAKmc,iBAAL,CAAuBmB,MAAvB,CAA8Btd,OAA9B;;AACA,UAAMud,cAAc,GAAG,KAAKvB,OAAL,CAAae,gBAAb,CAA8BvpE,GAA9B,CAAkCwsD,OAAlC,CAAvB;;AACA,QAAIud,cAAJ,EAAoB;AAChBA,MAAAA,cAAc,CAACx/E,OAAf,CAAuBgjE,MAAM,IAAIA,MAAM,CAAC9jD,OAAP,EAAjC;;AACA,WAAK++D,OAAL,CAAae,gBAAb,CAA8BO,MAA9B,CAAqCtd,OAArC;AACH;AACJ;;AACDwd,EAAAA,8BAA8B,CAACnO,WAAD,EAAc7wC,OAAd,EAAuB;AACjD,UAAM8K,QAAQ,GAAG,KAAK0yC,OAAL,CAAalc,MAAb,CAAoB4D,KAApB,CAA0B2L,WAA1B,EAAuC7K,mBAAvC,EAA4D,IAA5D,CAAjB,CADiD,CAEjD;AACA;AACA;;;AACAl7B,IAAAA,QAAQ,CAACvrC,OAAT,CAAiBw6E,GAAG,IAAI;AACpB;AACA;AACA,UAAIA,GAAG,CAACgD,YAAD,CAAP,EACI;;AACJ,YAAMp/B,UAAU,GAAG,KAAK6/B,OAAL,CAAayB,wBAAb,CAAsClF,GAAtC,CAAnB;;AACA,UAAIp8B,UAAU,CAAC7uB,IAAf,EAAqB;AACjB6uB,QAAAA,UAAU,CAACp+C,OAAX,CAAmB2/E,EAAE,IAAIA,EAAE,CAACC,qBAAH,CAAyBpF,GAAzB,EAA8B/5C,OAA9B,EAAuC,KAAvC,EAA8C,IAA9C,CAAzB;AACH,OAFD,MAGK;AACD,aAAK6+C,iBAAL,CAAuB9E,GAAvB;AACH;AACJ,KAZD,EALiD,CAkBjD;AACA;;AACA,SAAKyD,OAAL,CAAa4B,wBAAb,CAAsC,MAAMt0C,QAAQ,CAACvrC,OAAT,CAAiBw6E,GAAG,IAAI,KAAK8E,iBAAL,CAAuB9E,GAAvB,CAAxB,CAA5C;AACH;;AACDoF,EAAAA,qBAAqB,CAAC3d,OAAD,EAAUxhC,OAAV,EAAmBq/C,oBAAnB,EAAyCnB,iBAAzC,EAA4D;AAC7E,UAAMoB,aAAa,GAAG,KAAK9B,OAAL,CAAaO,eAAb,CAA6B/oE,GAA7B,CAAiCwsD,OAAjC,CAAtB;;AACA,UAAM+d,sBAAsB,GAAG,IAAItoE,GAAJ,EAA/B;;AACA,QAAIqoE,aAAJ,EAAmB;AACf,YAAMle,OAAO,GAAG,EAAhB;AACA3hE,MAAAA,MAAM,CAACC,IAAP,CAAY4/E,aAAZ,EAA2B//E,OAA3B,CAAmCwjE,WAAW,IAAI;AAC9Cwc,QAAAA,sBAAsB,CAACn8E,GAAvB,CAA2B2/D,WAA3B,EAAwCuc,aAAa,CAACvc,WAAD,CAAb,CAA2BnnE,KAAnE,EAD8C,CAE9C;AACA;;AACA,YAAI,KAAK6hF,SAAL,CAAe1a,WAAf,CAAJ,EAAiC;AAC7B,gBAAMR,MAAM,GAAG,KAAKxiB,OAAL,CAAayhB,OAAb,EAAsBuB,WAAtB,EAAmCqa,UAAnC,EAA+Cc,iBAA/C,CAAf;;AACA,cAAI3b,MAAJ,EAAY;AACRnB,YAAAA,OAAO,CAACx9D,IAAR,CAAa2+D,MAAb;AACH;AACJ;AACJ,OAVD;;AAWA,UAAInB,OAAO,CAACniE,MAAZ,EAAoB;AAChB,aAAKu+E,OAAL,CAAagC,oBAAb,CAAkC,KAAK34C,EAAvC,EAA2C26B,OAA3C,EAAoD,IAApD,EAA0DxhC,OAA1D,EAAmEu/C,sBAAnE;;AACA,YAAIF,oBAAJ,EAA0B;AACtBle,UAAAA,mBAAmB,CAACC,OAAD,CAAnB,CAA6BsB,MAA7B,CAAoC,MAAM,KAAK8a,OAAL,CAAaiC,gBAAb,CAA8Bje,OAA9B,CAA1C;AACH;;AACD,eAAO,IAAP;AACH;AACJ;;AACD,WAAO,KAAP;AACH;;AACDke,EAAAA,8BAA8B,CAACle,OAAD,EAAU;AACpC,UAAM3tD,SAAS,GAAG,KAAK8pE,iBAAL,CAAuB3oE,GAAvB,CAA2BwsD,OAA3B,CAAlB;;AACA,UAAMme,aAAa,GAAG,KAAKnC,OAAL,CAAaO,eAAb,CAA6B/oE,GAA7B,CAAiCwsD,OAAjC,CAAtB,CAFoC,CAGpC;AACA;;;AACA,QAAI3tD,SAAS,IAAI8rE,aAAjB,EAAgC;AAC5B,YAAMC,eAAe,GAAG,IAAIpoE,GAAJ,EAAxB;AACA3D,MAAAA,SAAS,CAACtU,OAAV,CAAkB0B,QAAQ,IAAI;AAC1B,cAAM8hE,WAAW,GAAG9hE,QAAQ,CAAC8C,IAA7B;AACA,YAAI67E,eAAe,CAACjxD,GAAhB,CAAoBo0C,WAApB,CAAJ,EACI;AACJ6c,QAAAA,eAAe,CAACrtD,GAAhB,CAAoBwwC,WAApB;AACA,cAAMhjB,OAAO,GAAG,KAAK09B,SAAL,CAAe1a,WAAf,CAAhB;AACA,cAAM4J,UAAU,GAAG5sB,OAAO,CAAC46B,kBAA3B;AACA,cAAM3X,SAAS,GAAG2c,aAAa,CAAC5c,WAAD,CAAb,IAA8Bsa,mBAAhD;AACA,cAAMpa,OAAO,GAAG,IAAI+Z,UAAJ,CAAeI,UAAf,CAAhB;AACA,cAAM7a,MAAM,GAAG,IAAI4b,yBAAJ,CAA8B,KAAKt3C,EAAnC,EAAuCk8B,WAAvC,EAAoDvB,OAApD,CAAf;AACA,aAAKgc,OAAL,CAAakB,kBAAb;;AACA,aAAKhB,MAAL,CAAY95E,IAAZ,CAAiB;AACb49D,UAAAA,OADa;AAEbuB,UAAAA,WAFa;AAGb4J,UAAAA,UAHa;AAIb3J,UAAAA,SAJa;AAKbC,UAAAA,OALa;AAMbV,UAAAA,MANa;AAObkc,UAAAA,oBAAoB,EAAE;AAPT,SAAjB;AASH,OApBD;AAqBH;AACJ;;AACDoB,EAAAA,UAAU,CAACre,OAAD,EAAUxhC,OAAV,EAAmB;AACzB,UAAM8/C,MAAM,GAAG,KAAKtC,OAApB;;AACA,QAAIhc,OAAO,CAACue,iBAAZ,EAA+B;AAC3B,WAAKf,8BAAL,CAAoCxd,OAApC,EAA6CxhC,OAA7C;AACH,KAJwB,CAKzB;;;AACA,QAAI,KAAKm/C,qBAAL,CAA2B3d,OAA3B,EAAoCxhC,OAApC,EAA6C,IAA7C,CAAJ,EACI,OAPqB,CAQzB;AACA;;AACA,QAAIggD,iCAAiC,GAAG,KAAxC;;AACA,QAAIF,MAAM,CAACG,eAAX,EAA4B;AACxB,YAAMC,cAAc,GAAGJ,MAAM,CAAC1e,OAAP,CAAeniE,MAAf,GAAwB6gF,MAAM,CAACK,uBAAP,CAA+BnrE,GAA/B,CAAmCwsD,OAAnC,CAAxB,GAAsE,EAA7F,CADwB,CAExB;AACA;AACA;AACA;;AACA,UAAI0e,cAAc,IAAIA,cAAc,CAACjhF,MAArC,EAA6C;AACzC+gF,QAAAA,iCAAiC,GAAG,IAApC;AACH,OAFD,MAGK;AACD,YAAIrzC,MAAM,GAAG60B,OAAb;;AACA,eAAO70B,MAAM,GAAGA,MAAM,CAAC/M,UAAvB,EAAmC;AAC/B,gBAAMwgD,QAAQ,GAAGN,MAAM,CAAC/B,eAAP,CAAuB/oE,GAAvB,CAA2B23B,MAA3B,CAAjB;;AACA,cAAIyzC,QAAJ,EAAc;AACVJ,YAAAA,iCAAiC,GAAG,IAApC;AACA;AACH;AACJ;AACJ;AACJ,KA9BwB,CA+BzB;AACA;AACA;AACA;;;AACA,SAAKN,8BAAL,CAAoCle,OAApC,EAnCyB,CAoCzB;AACA;;AACA,QAAIwe,iCAAJ,EAAuC;AACnCF,MAAAA,MAAM,CAACN,oBAAP,CAA4B,KAAK34C,EAAjC,EAAqC26B,OAArC,EAA8C,KAA9C,EAAqDxhC,OAArD;AACH,KAFD,MAGK;AACD,YAAMqgD,WAAW,GAAG7e,OAAO,CAACub,YAAD,CAA3B;;AACA,UAAI,CAACsD,WAAD,IAAgBA,WAAW,KAAK7D,kBAApC,EAAwD;AACpD;AACA;AACAsD,QAAAA,MAAM,CAAC9B,UAAP,CAAkB,MAAM,KAAKa,iBAAL,CAAuBrd,OAAvB,CAAxB;AACAse,QAAAA,MAAM,CAACQ,sBAAP,CAA8B9e,OAA9B;;AACAse,QAAAA,MAAM,CAACS,kBAAP,CAA0B/e,OAA1B,EAAmCxhC,OAAnC;AACH;AACJ;AACJ;;AACDwgD,EAAAA,UAAU,CAAChf,OAAD,EAAU70B,MAAV,EAAkB;AACxBikB,IAAAA,QAAQ,CAAC4Q,OAAD,EAAU,KAAKoc,cAAf,CAAR;AACH;;AACD6C,EAAAA,sBAAsB,CAACC,WAAD,EAAc;AAChC,UAAMrQ,YAAY,GAAG,EAArB;;AACA,SAAKqN,MAAL,CAAYn+E,OAAZ,CAAoB+kB,KAAK,IAAI;AACzB,YAAMi+C,MAAM,GAAGj+C,KAAK,CAACi+C,MAArB;AACA,UAAIA,MAAM,CAACxkD,SAAX,EACI;AACJ,YAAMyjD,OAAO,GAAGl9C,KAAK,CAACk9C,OAAtB;;AACA,YAAM3tD,SAAS,GAAG,KAAK8pE,iBAAL,CAAuB3oE,GAAvB,CAA2BwsD,OAA3B,CAAlB;;AACA,UAAI3tD,SAAJ,EAAe;AACXA,QAAAA,SAAS,CAACtU,OAAV,CAAmB0B,QAAD,IAAc;AAC5B,cAAIA,QAAQ,CAAC8C,IAAT,IAAiBugB,KAAK,CAACy+C,WAA3B,EAAwC;AACpC,kBAAM8Y,SAAS,GAAG/Y,kBAAkB,CAACtB,OAAD,EAAUl9C,KAAK,CAACy+C,WAAhB,EAA6Bz+C,KAAK,CAAC0+C,SAAN,CAAgBpnE,KAA7C,EAAoD0oB,KAAK,CAAC2+C,OAAN,CAAcrnE,KAAlE,CAApC;AACAigF,YAAAA,SAAS,CAAC,OAAD,CAAT,GAAqB6E,WAArB;AACApe,YAAAA,cAAc,CAACh+C,KAAK,CAACi+C,MAAP,EAAethE,QAAQ,CAACy/D,KAAxB,EAA+Bmb,SAA/B,EAA0C56E,QAAQ,CAACmjB,QAAnD,CAAd;AACH;AACJ,SAND;AAOH;;AACD,UAAIm+C,MAAM,CAACoe,gBAAX,EAA6B;AACzB,aAAKnD,OAAL,CAAaQ,UAAb,CAAwB,MAAM;AAC1B;AACA;AACAzb,UAAAA,MAAM,CAAC9jD,OAAP;AACH,SAJD;AAKH,OAND,MAOK;AACD4xD,QAAAA,YAAY,CAACzsE,IAAb,CAAkB0gB,KAAlB;AACH;AACJ,KAzBD;;AA0BA,SAAKo5D,MAAL,GAAc,EAAd;AACA,WAAOrN,YAAY,CAAC1wE,IAAb,CAAkB,CAACmI,CAAD,EAAI+7B,CAAJ,KAAU;AAC/B;AACA;AACA,YAAM+8C,EAAE,GAAG94E,CAAC,CAAC6kE,UAAF,CAAaX,GAAb,CAAiBK,QAA5B;AACA,YAAMwU,EAAE,GAAGh9C,CAAC,CAAC8oC,UAAF,CAAaX,GAAb,CAAiBK,QAA5B;;AACA,UAAIuU,EAAE,IAAI,CAAN,IAAWC,EAAE,IAAI,CAArB,EAAwB;AACpB,eAAOD,EAAE,GAAGC,EAAZ;AACH;;AACD,aAAO,KAAKrD,OAAL,CAAalc,MAAb,CAAoBmD,eAApB,CAAoC38D,CAAC,CAAC05D,OAAtC,EAA+C39B,CAAC,CAAC29B,OAAjD,IAA4D,CAA5D,GAAgE,CAAC,CAAxE;AACH,KATM,CAAP;AAUH;;AACD/iD,EAAAA,OAAO,CAACuhB,OAAD,EAAU;AACb,SAAKohC,OAAL,CAAa7hE,OAAb,CAAqBwQ,CAAC,IAAIA,CAAC,CAAC0O,OAAF,EAA1B;;AACA,SAAKugE,8BAAL,CAAoC,KAAKzB,WAAzC,EAAsDv9C,OAAtD;AACH;;AACD8gD,EAAAA,mBAAmB,CAACtf,OAAD,EAAU;AACzB,QAAIuf,YAAY,GAAG,KAAnB;AACA,QAAI,KAAKpD,iBAAL,CAAuBhvD,GAAvB,CAA2B6yC,OAA3B,CAAJ,EACIuf,YAAY,GAAG,IAAf;AACJA,IAAAA,YAAY,GACR,CAAC,KAAKrD,MAAL,CAAY/zC,IAAZ,CAAiBrlB,KAAK,IAAIA,KAAK,CAACk9C,OAAN,KAAkBA,OAA5C,IAAuD,IAAvD,GAA8D,KAA/D,KAAyEuf,YAD7E;AAEA,WAAOA,YAAP;AACH;;AAnW8B;;AAqWnC,MAAMC,yBAAN,CAAgC;AAC5BjgF,EAAAA,WAAW,CAACq6E,QAAD,EAAW9Z,MAAX,EAAmBkZ,WAAnB,EAAgC;AACvC,SAAKY,QAAL,GAAgBA,QAAhB;AACA,SAAK9Z,MAAL,GAAcA,MAAd;AACA,SAAKkZ,WAAL,GAAmBA,WAAnB;AACA,SAAKpZ,OAAL,GAAe,EAAf;AACA,SAAK6f,eAAL,GAAuB,IAAIhqE,GAAJ,EAAvB;AACA,SAAKsnE,gBAAL,GAAwB,IAAItnE,GAAJ,EAAxB;AACA,SAAKkpE,uBAAL,GAA+B,IAAIlpE,GAAJ,EAA/B;AACA,SAAK8mE,eAAL,GAAuB,IAAI9mE,GAAJ,EAAvB;AACA,SAAKiqE,aAAL,GAAqB,IAAI1pE,GAAJ,EAArB;AACA,SAAKyoE,eAAL,GAAuB,CAAvB;AACA,SAAKvB,kBAAL,GAA0B,CAA1B;AACA,SAAKyC,gBAAL,GAAwB,EAAxB;AACA,SAAKC,cAAL,GAAsB,EAAtB;AACA,SAAKC,SAAL,GAAiB,EAAjB;AACA,SAAKC,aAAL,GAAqB,EAArB;AACA,SAAKC,uBAAL,GAA+B,IAAItqE,GAAJ,EAA/B;AACA,SAAKuqE,sBAAL,GAA8B,EAA9B;AACA,SAAKC,sBAAL,GAA8B,EAA9B,CAlBuC,CAmBvC;;AACA,SAAKC,iBAAL,GAAyB,CAAClgB,OAAD,EAAUxhC,OAAV,KAAsB,CAAG,CAAlD;AACH;AACD;;;AACAugD,EAAAA,kBAAkB,CAAC/e,OAAD,EAAUxhC,OAAV,EAAmB;AACjC,SAAK0hD,iBAAL,CAAuBlgB,OAAvB,EAAgCxhC,OAAhC;AACH;;AACgB,MAAb2hD,aAAa,GAAG;AAChB,UAAMvgB,OAAO,GAAG,EAAhB;;AACA,SAAKggB,cAAL,CAAoB7hF,OAApB,CAA4B2/E,EAAE,IAAI;AAC9BA,MAAAA,EAAE,CAAC9d,OAAH,CAAW7hE,OAAX,CAAmBgjE,MAAM,IAAI;AACzB,YAAIA,MAAM,CAACic,MAAX,EAAmB;AACfpd,UAAAA,OAAO,CAACx9D,IAAR,CAAa2+D,MAAb;AACH;AACJ,OAJD;AAKH,KAND;;AAOA,WAAOnB,OAAP;AACH;;AACDwgB,EAAAA,eAAe,CAACnF,WAAD,EAAcc,WAAd,EAA2B;AACtC,UAAM2B,EAAE,GAAG,IAAI5B,4BAAJ,CAAiCb,WAAjC,EAA8Cc,WAA9C,EAA2D,IAA3D,CAAX;;AACA,QAAI,KAAKnC,QAAL,IAAiB,KAAK9Z,MAAL,CAAYmD,eAAZ,CAA4B,KAAK2W,QAAjC,EAA2CmC,WAA3C,CAArB,EAA8E;AAC1E,WAAKsE,qBAAL,CAA2B3C,EAA3B,EAA+B3B,WAA/B;AACH,KAFD,MAGK;AACD;AACA;AACA;AACA,WAAK0D,eAAL,CAAqB79E,GAArB,CAAyBm6E,WAAzB,EAAsC2B,EAAtC,EAJC,CAKD;AACA;AACA;AACA;AACA;;AACA,WAAK4C,mBAAL,CAAyBvE,WAAzB;AACH;;AACD,WAAO,KAAK4D,gBAAL,CAAsB1E,WAAtB,IAAqCyC,EAA5C;AACH;;AACD2C,EAAAA,qBAAqB,CAAC3C,EAAD,EAAK3B,WAAL,EAAkB;AACnC,UAAMwE,aAAa,GAAG,KAAKX,cAA3B;AACA,UAAMG,uBAAuB,GAAG,KAAKA,uBAArC;AACA,UAAMzS,KAAK,GAAGiT,aAAa,CAAC9iF,MAAd,GAAuB,CAArC;;AACA,QAAI6vE,KAAK,IAAI,CAAb,EAAgB;AACZ,UAAI96D,KAAK,GAAG,KAAZ;;AACA,UAAI,KAAKstD,MAAL,CAAYwC,gBAAZ,KAAiCp6D,SAArC,EAAgD;AAC5C;AACA;AACA;AACA,YAAIs4E,QAAQ,GAAG,KAAK1gB,MAAL,CAAYwC,gBAAZ,CAA6ByZ,WAA7B,CAAf;;AACA,eAAOyE,QAAP,EAAiB;AACb,gBAAMC,UAAU,GAAGV,uBAAuB,CAACvsE,GAAxB,CAA4BgtE,QAA5B,CAAnB;;AACA,cAAIC,UAAJ,EAAgB;AACZ;AACA;AACA,kBAAMr/D,KAAK,GAAGm/D,aAAa,CAAC5hF,OAAd,CAAsB8hF,UAAtB,CAAd;AACAF,YAAAA,aAAa,CAACtpE,MAAd,CAAqBmK,KAAK,GAAG,CAA7B,EAAgC,CAAhC,EAAmCs8D,EAAnC;AACAlrE,YAAAA,KAAK,GAAG,IAAR;AACA;AACH;;AACDguE,UAAAA,QAAQ,GAAG,KAAK1gB,MAAL,CAAYwC,gBAAZ,CAA6Bke,QAA7B,CAAX;AACH;AACJ,OAjBD,MAkBK;AACD;AACA;AACA,aAAK,IAAIr+E,CAAC,GAAGmrE,KAAb,EAAoBnrE,CAAC,IAAI,CAAzB,EAA4BA,CAAC,EAA7B,EAAiC;AAC7B,gBAAMu+E,aAAa,GAAGH,aAAa,CAACp+E,CAAD,CAAnC;;AACA,cAAI,KAAK29D,MAAL,CAAYmD,eAAZ,CAA4Byd,aAAa,CAAC3E,WAA1C,EAAuDA,WAAvD,CAAJ,EAAyE;AACrEwE,YAAAA,aAAa,CAACtpE,MAAd,CAAqB9U,CAAC,GAAG,CAAzB,EAA4B,CAA5B,EAA+Bu7E,EAA/B;AACAlrE,YAAAA,KAAK,GAAG,IAAR;AACA;AACH;AACJ;AACJ;;AACD,UAAI,CAACA,KAAL,EAAY;AACR;AACA;AACA;AACA+tE,QAAAA,aAAa,CAACh8E,OAAd,CAAsBm5E,EAAtB;AACH;AACJ,KAtCD,MAuCK;AACD6C,MAAAA,aAAa,CAACn+E,IAAd,CAAmBs7E,EAAnB;AACH;;AACDqC,IAAAA,uBAAuB,CAACn+E,GAAxB,CAA4Bm6E,WAA5B,EAAyC2B,EAAzC;AACA,WAAOA,EAAP;AACH;;AACD3D,EAAAA,QAAQ,CAACkB,WAAD,EAAcc,WAAd,EAA2B;AAC/B,QAAI2B,EAAE,GAAG,KAAKiC,gBAAL,CAAsB1E,WAAtB,CAAT;;AACA,QAAI,CAACyC,EAAL,EAAS;AACLA,MAAAA,EAAE,GAAG,KAAK0C,eAAL,CAAqBnF,WAArB,EAAkCc,WAAlC,CAAL;AACH;;AACD,WAAO2B,EAAP;AACH;;AACDiD,EAAAA,eAAe,CAAC1F,WAAD,EAAc14E,IAAd,EAAoBg8C,OAApB,EAA6B;AACxC,QAAIm/B,EAAE,GAAG,KAAKiC,gBAAL,CAAsB1E,WAAtB,CAAT;;AACA,QAAIyC,EAAE,IAAIA,EAAE,CAAC3D,QAAH,CAAYx3E,IAAZ,EAAkBg8C,OAAlB,CAAV,EAAsC;AAClC,WAAKkgC,eAAL;AACH;AACJ;;AACDxhE,EAAAA,OAAO,CAACg+D,WAAD,EAAcz8C,OAAd,EAAuB;AAC1B,QAAI,CAACy8C,WAAL,EACI;;AACJ,UAAMyC,EAAE,GAAG,KAAKkD,eAAL,CAAqB3F,WAArB,CAAX;;AACA,SAAKuB,UAAL,CAAgB,MAAM;AAClB,WAAKuD,uBAAL,CAA6BzC,MAA7B,CAAoCI,EAAE,CAAC3B,WAAvC;AACA,aAAO,KAAK4D,gBAAL,CAAsB1E,WAAtB,CAAP;;AACA,YAAM75D,KAAK,GAAG,KAAKw+D,cAAL,CAAoBjhF,OAApB,CAA4B++E,EAA5B,CAAd;;AACA,UAAIt8D,KAAK,IAAI,CAAb,EAAgB;AACZ,aAAKw+D,cAAL,CAAoB3oE,MAApB,CAA2BmK,KAA3B,EAAkC,CAAlC;AACH;AACJ,KAPD;AAQA,SAAKw8D,wBAAL,CAA8B,MAAMF,EAAE,CAACzgE,OAAH,CAAWuhB,OAAX,CAApC;AACH;;AACDoiD,EAAAA,eAAe,CAACv7C,EAAD,EAAK;AAChB,WAAO,KAAKs6C,gBAAL,CAAsBt6C,EAAtB,CAAP;AACH;;AACDo4C,EAAAA,wBAAwB,CAACzd,OAAD,EAAU;AAC9B;AACA;AACA;AACA;AACA;AACA,UAAM7jB,UAAU,GAAG,IAAInmC,GAAJ,EAAnB;AACA,UAAMmoE,aAAa,GAAG,KAAK5B,eAAL,CAAqB/oE,GAArB,CAAyBwsD,OAAzB,CAAtB;;AACA,QAAIme,aAAJ,EAAmB;AACf,YAAMjgF,IAAI,GAAGD,MAAM,CAACC,IAAP,CAAYigF,aAAZ,CAAb;;AACA,WAAK,IAAIh8E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGjE,IAAI,CAACT,MAAzB,EAAiC0E,CAAC,EAAlC,EAAsC;AAClC,cAAM0+E,IAAI,GAAG1C,aAAa,CAACjgF,IAAI,CAACiE,CAAD,CAAL,CAAb,CAAuB84E,WAApC;;AACA,YAAI4F,IAAJ,EAAU;AACN,gBAAMnD,EAAE,GAAG,KAAKkD,eAAL,CAAqBC,IAArB,CAAX;;AACA,cAAInD,EAAJ,EAAQ;AACJvhC,YAAAA,UAAU,CAACprB,GAAX,CAAe2sD,EAAf;AACH;AACJ;AACJ;AACJ;;AACD,WAAOvhC,UAAP;AACH;;AACDoC,EAAAA,OAAO,CAAC08B,WAAD,EAAcjb,OAAd,EAAuBz9D,IAAvB,EAA6BnI,KAA7B,EAAoC;AACvC,QAAI0mF,aAAa,CAAC9gB,OAAD,CAAjB,EAA4B;AACxB,YAAM0d,EAAE,GAAG,KAAKkD,eAAL,CAAqB3F,WAArB,CAAX;;AACA,UAAIyC,EAAJ,EAAQ;AACJA,QAAAA,EAAE,CAACn/B,OAAH,CAAWyhB,OAAX,EAAoBz9D,IAApB,EAA0BnI,KAA1B;AACA,eAAO,IAAP;AACH;AACJ;;AACD,WAAO,KAAP;AACH;;AACD4kF,EAAAA,UAAU,CAAC/D,WAAD,EAAcjb,OAAd,EAAuB70B,MAAvB,EAA+BgY,YAA/B,EAA6C;AACnD,QAAI,CAAC29B,aAAa,CAAC9gB,OAAD,CAAlB,EACI,OAF+C,CAGnD;AACA;;AACA,UAAM+gB,OAAO,GAAG/gB,OAAO,CAACub,YAAD,CAAvB;;AACA,QAAIwF,OAAO,IAAIA,OAAO,CAAC7F,aAAvB,EAAsC;AAClC6F,MAAAA,OAAO,CAAC7F,aAAR,GAAwB,KAAxB;AACA6F,MAAAA,OAAO,CAAC5F,UAAR,GAAqB,IAArB;AACA,YAAM/5D,KAAK,GAAG,KAAK6+D,sBAAL,CAA4BthF,OAA5B,CAAoCqhE,OAApC,CAAd;;AACA,UAAI5+C,KAAK,IAAI,CAAb,EAAgB;AACZ,aAAK6+D,sBAAL,CAA4BhpE,MAA5B,CAAmCmK,KAAnC,EAA0C,CAA1C;AACH;AACJ,KAbkD,CAcnD;AACA;AACA;;;AACA,QAAI65D,WAAJ,EAAiB;AACb,YAAMyC,EAAE,GAAG,KAAKkD,eAAL,CAAqB3F,WAArB,CAAX,CADa,CAEb;AACA;AACA;AACA;AACA;AACA;;;AACA,UAAIyC,EAAJ,EAAQ;AACJA,QAAAA,EAAE,CAACsB,UAAH,CAAchf,OAAd,EAAuB70B,MAAvB;AACH;AACJ,KA5BkD,CA6BnD;;;AACA,QAAIgY,YAAJ,EAAkB;AACd,WAAKm9B,mBAAL,CAAyBtgB,OAAzB;AACH;AACJ;;AACDsgB,EAAAA,mBAAmB,CAACtgB,OAAD,EAAU;AACzB,SAAKggB,sBAAL,CAA4B59E,IAA5B,CAAiC49D,OAAjC;AACH;;AACDghB,EAAAA,qBAAqB,CAAChhB,OAAD,EAAU5lE,KAAV,EAAiB;AAClC,QAAIA,KAAJ,EAAW;AACP,UAAI,CAAC,KAAKslF,aAAL,CAAmBvyD,GAAnB,CAAuB6yC,OAAvB,CAAL,EAAsC;AAClC,aAAK0f,aAAL,CAAmB3uD,GAAnB,CAAuBivC,OAAvB;AACA5Q,QAAAA,QAAQ,CAAC4Q,OAAD,EAAU2a,kBAAV,CAAR;AACH;AACJ,KALD,MAMK,IAAI,KAAK+E,aAAL,CAAmBvyD,GAAnB,CAAuB6yC,OAAvB,CAAJ,EAAqC;AACtC,WAAK0f,aAAL,CAAmBpC,MAAnB,CAA0Btd,OAA1B;AACAxQ,MAAAA,WAAW,CAACwQ,OAAD,EAAU2a,kBAAV,CAAX;AACH;AACJ;;AACD0D,EAAAA,UAAU,CAACpD,WAAD,EAAcjb,OAAd,EAAuBihB,aAAvB,EAAsCziD,OAAtC,EAA+C;AACrD,QAAIsiD,aAAa,CAAC9gB,OAAD,CAAjB,EAA4B;AACxB,YAAM0d,EAAE,GAAGzC,WAAW,GAAG,KAAK2F,eAAL,CAAqB3F,WAArB,CAAH,GAAuC,IAA7D;;AACA,UAAIyC,EAAJ,EAAQ;AACJA,QAAAA,EAAE,CAACW,UAAH,CAAcre,OAAd,EAAuBxhC,OAAvB;AACH,OAFD,MAGK;AACD,aAAKw/C,oBAAL,CAA0B/C,WAA1B,EAAuCjb,OAAvC,EAAgD,KAAhD,EAAuDxhC,OAAvD;AACH;;AACD,UAAIyiD,aAAJ,EAAmB;AACf,cAAMC,MAAM,GAAG,KAAKnB,uBAAL,CAA6BvsE,GAA7B,CAAiCwsD,OAAjC,CAAf;;AACA,YAAIkhB,MAAM,IAAIA,MAAM,CAAC77C,EAAP,KAAc41C,WAA5B,EAAyC;AACrCiG,UAAAA,MAAM,CAAC7C,UAAP,CAAkBre,OAAlB,EAA2BxhC,OAA3B;AACH;AACJ;AACJ,KAdD,MAeK;AACD,WAAKugD,kBAAL,CAAwB/e,OAAxB,EAAiCxhC,OAAjC;AACH;AACJ;;AACDw/C,EAAAA,oBAAoB,CAAC/C,WAAD,EAAcjb,OAAd,EAAuBob,YAAvB,EAAqC58C,OAArC,EAA8Cu/C,sBAA9C,EAAsE;AACtF,SAAKkC,sBAAL,CAA4B79E,IAA5B,CAAiC49D,OAAjC;AACAA,IAAAA,OAAO,CAACub,YAAD,CAAP,GAAwB;AACpBN,MAAAA,WADoB;AAEpBC,MAAAA,aAAa,EAAE18C,OAFK;AAGpB48C,MAAAA,YAHoB;AAIpBC,MAAAA,oBAAoB,EAAE,KAJF;AAKpB0C,MAAAA;AALoB,KAAxB;AAOH;;AACD3D,EAAAA,MAAM,CAACa,WAAD,EAAcjb,OAAd,EAAuBz9D,IAAvB,EAA6B28D,KAA7B,EAAoCt8C,QAApC,EAA8C;AAChD,QAAIk+D,aAAa,CAAC9gB,OAAD,CAAjB,EAA4B;AACxB,aAAO,KAAK4gB,eAAL,CAAqB3F,WAArB,EAAkCb,MAAlC,CAAyCpa,OAAzC,EAAkDz9D,IAAlD,EAAwD28D,KAAxD,EAA+Dt8C,QAA/D,CAAP;AACH;;AACD,WAAO,MAAM,CAAG,CAAhB;AACH;;AACDu+D,EAAAA,iBAAiB,CAACr+D,KAAD,EAAQs+D,YAAR,EAAsB9R,cAAtB,EAAsCC,cAAtC,EAAsD8R,YAAtD,EAAoE;AACjF,WAAOv+D,KAAK,CAACqoD,UAAN,CAAiBhB,KAAjB,CAAuB,KAAKrK,MAA5B,EAAoCh9C,KAAK,CAACk9C,OAA1C,EAAmDl9C,KAAK,CAAC0+C,SAAN,CAAgBpnE,KAAnE,EAA0E0oB,KAAK,CAAC2+C,OAAN,CAAcrnE,KAAxF,EAA+Fk1E,cAA/F,EAA+GC,cAA/G,EAA+HzsD,KAAK,CAAC0+C,SAAN,CAAgBtmD,OAA/I,EAAwJ4H,KAAK,CAAC2+C,OAAN,CAAcvmD,OAAtK,EAA+KkmE,YAA/K,EAA6LC,YAA7L,CAAP;AACH;;AACDvC,EAAAA,sBAAsB,CAACwC,gBAAD,EAAmB;AACrC,QAAIh4C,QAAQ,GAAG,KAAKw2B,MAAL,CAAY4D,KAAZ,CAAkB4d,gBAAlB,EAAoC9c,mBAApC,EAAyD,IAAzD,CAAf;AACAl7B,IAAAA,QAAQ,CAACvrC,OAAT,CAAiBiiE,OAAO,IAAI,KAAKuhB,iCAAL,CAAuCvhB,OAAvC,CAA5B;AACA,QAAI,KAAK2e,uBAAL,CAA6BrxD,IAA7B,IAAqC,CAAzC,EACI;AACJgc,IAAAA,QAAQ,GAAG,KAAKw2B,MAAL,CAAY4D,KAAZ,CAAkB4d,gBAAlB,EAAoC5c,qBAApC,EAA2D,IAA3D,CAAX;AACAp7B,IAAAA,QAAQ,CAACvrC,OAAT,CAAiBiiE,OAAO,IAAI,KAAKwhB,qCAAL,CAA2CxhB,OAA3C,CAA5B;AACH;;AACDuhB,EAAAA,iCAAiC,CAACvhB,OAAD,EAAU;AACvC,UAAMJ,OAAO,GAAG,KAAKmd,gBAAL,CAAsBvpE,GAAtB,CAA0BwsD,OAA1B,CAAhB;;AACA,QAAIJ,OAAJ,EAAa;AACTA,MAAAA,OAAO,CAAC7hE,OAAR,CAAgBgjE,MAAM,IAAI;AACtB;AACA;AACA;AACA,YAAIA,MAAM,CAACic,MAAX,EAAmB;AACfjc,UAAAA,MAAM,CAACoe,gBAAP,GAA0B,IAA1B;AACH,SAFD,MAGK;AACDpe,UAAAA,MAAM,CAAC9jD,OAAP;AACH;AACJ,OAVD;AAWH;AACJ;;AACDukE,EAAAA,qCAAqC,CAACxhB,OAAD,EAAU;AAC3C,UAAMJ,OAAO,GAAG,KAAK+e,uBAAL,CAA6BnrE,GAA7B,CAAiCwsD,OAAjC,CAAhB;;AACA,QAAIJ,OAAJ,EAAa;AACTA,MAAAA,OAAO,CAAC7hE,OAAR,CAAgBgjE,MAAM,IAAIA,MAAM,CAACh+C,MAAP,EAA1B;AACH;AACJ;;AACD0+D,EAAAA,iBAAiB,GAAG;AAChB,WAAO,IAAInnF,OAAJ,CAAYD,OAAO,IAAI;AAC1B,UAAI,KAAKulE,OAAL,CAAaniE,MAAjB,EAAyB;AACrB,eAAOkiE,mBAAmB,CAAC,KAAKC,OAAN,CAAnB,CAAkCsB,MAAlC,CAAyC,MAAM7mE,OAAO,EAAtD,CAAP;AACH,OAFD,MAGK;AACDA,QAAAA,OAAO;AACV;AACJ,KAPM,CAAP;AAQH;;AACD4jF,EAAAA,gBAAgB,CAACje,OAAD,EAAU;AACtB,QAAI0hB,EAAJ;;AACA,UAAMX,OAAO,GAAG/gB,OAAO,CAACub,YAAD,CAAvB;;AACA,QAAIwF,OAAO,IAAIA,OAAO,CAAC7F,aAAvB,EAAsC;AAClC;AACAlb,MAAAA,OAAO,CAACub,YAAD,CAAP,GAAwBP,kBAAxB;;AACA,UAAI+F,OAAO,CAAC9F,WAAZ,EAAyB;AACrB,aAAK6D,sBAAL,CAA4B9e,OAA5B;;AACA,cAAM0d,EAAE,GAAG,KAAKkD,eAAL,CAAqBG,OAAO,CAAC9F,WAA7B,CAAX;;AACA,YAAIyC,EAAJ,EAAQ;AACJA,UAAAA,EAAE,CAACL,iBAAH,CAAqBrd,OAArB;AACH;AACJ;;AACD,WAAK+e,kBAAL,CAAwB/e,OAAxB,EAAiC+gB,OAAO,CAAC7F,aAAzC;AACH;;AACD,QAAI,CAACwG,EAAE,GAAG1hB,OAAO,CAAC2hB,SAAd,MAA6B,IAA7B,IAAqCD,EAAE,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,EAAE,CAAC9/C,QAAH,CAAY+4C,kBAAZ,CAAlE,EAAmG;AAC/F,WAAKqG,qBAAL,CAA2BhhB,OAA3B,EAAoC,KAApC;AACH;;AACD,SAAKF,MAAL,CAAY4D,KAAZ,CAAkB1D,OAAlB,EAA2B4a,iBAA3B,EAA8C,IAA9C,EAAoD78E,OAApD,CAA4D0T,IAAI,IAAI;AAChE,WAAKuvE,qBAAL,CAA2BvvE,IAA3B,EAAiC,KAAjC;AACH,KAFD;AAGH;;AACDmwE,EAAAA,KAAK,CAAC1C,WAAW,GAAG,CAAC,CAAhB,EAAmB;AACpB,QAAItf,OAAO,GAAG,EAAd;;AACA,QAAI,KAAK6f,eAAL,CAAqBnyD,IAAzB,EAA+B;AAC3B,WAAKmyD,eAAL,CAAqB1hF,OAArB,CAA6B,CAAC2/E,EAAD,EAAK1d,OAAL,KAAiB,KAAKqgB,qBAAL,CAA2B3C,EAA3B,EAA+B1d,OAA/B,CAA9C;AACA,WAAKyf,eAAL,CAAqBjhE,KAArB;AACH;;AACD,QAAI,KAAKigE,eAAL,IAAwB,KAAKuB,sBAAL,CAA4BviF,MAAxD,EAAgE;AAC5D,WAAK,IAAI0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK69E,sBAAL,CAA4BviF,MAAhD,EAAwD0E,CAAC,EAAzD,EAA6D;AACzD,cAAMo2E,GAAG,GAAG,KAAKyH,sBAAL,CAA4B79E,CAA5B,CAAZ;AACAitD,QAAAA,QAAQ,CAACmpB,GAAD,EAAMsC,cAAN,CAAR;AACH;AACJ;;AACD,QAAI,KAAK+E,cAAL,CAAoBniF,MAApB,KACC,KAAKy/E,kBAAL,IAA2B,KAAK+C,sBAAL,CAA4BxiF,MADxD,CAAJ,EACqE;AACjE,YAAMokF,UAAU,GAAG,EAAnB;;AACA,UAAI;AACAjiB,QAAAA,OAAO,GAAG,KAAKkiB,gBAAL,CAAsBD,UAAtB,EAAkC3C,WAAlC,CAAV;AACH,OAFD,SAGQ;AACJ,aAAK,IAAI/8E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0/E,UAAU,CAACpkF,MAA/B,EAAuC0E,CAAC,EAAxC,EAA4C;AACxC0/E,UAAAA,UAAU,CAAC1/E,CAAD,CAAV;AACH;AACJ;AACJ,KAXD,MAYK;AACD,WAAK,IAAIA,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK89E,sBAAL,CAA4BxiF,MAAhD,EAAwD0E,CAAC,EAAzD,EAA6D;AACzD,cAAM69D,OAAO,GAAG,KAAKigB,sBAAL,CAA4B99E,CAA5B,CAAhB;AACA,aAAK87E,gBAAL,CAAsBje,OAAtB;AACH;AACJ;;AACD,SAAKkd,kBAAL,GAA0B,CAA1B;AACA,SAAK8C,sBAAL,CAA4BviF,MAA5B,GAAqC,CAArC;AACA,SAAKwiF,sBAAL,CAA4BxiF,MAA5B,GAAqC,CAArC;;AACA,SAAKoiF,SAAL,CAAe9hF,OAAf,CAAuB2Y,EAAE,IAAIA,EAAE,EAA/B;;AACA,SAAKmpE,SAAL,GAAiB,EAAjB;;AACA,QAAI,KAAKC,aAAL,CAAmBriF,MAAvB,EAA+B;AAC3B;AACA;AACA;AACA,YAAMskF,QAAQ,GAAG,KAAKjC,aAAtB;AACA,WAAKA,aAAL,GAAqB,EAArB;;AACA,UAAIlgB,OAAO,CAACniE,MAAZ,EAAoB;AAChBkiE,QAAAA,mBAAmB,CAACC,OAAD,CAAnB,CAA6BsB,MAA7B,CAAoC,MAAM;AACtC6gB,UAAAA,QAAQ,CAAChkF,OAAT,CAAiB2Y,EAAE,IAAIA,EAAE,EAAzB;AACH,SAFD;AAGH,OAJD,MAKK;AACDqrE,QAAAA,QAAQ,CAAChkF,OAAT,CAAiB2Y,EAAE,IAAIA,EAAE,EAAzB;AACH;AACJ;AACJ;;AACDmmE,EAAAA,WAAW,CAAC55E,MAAD,EAAS;AAChB,UAAMq8D,wBAAwB,CAACr8D,MAAD,CAA9B;AACH;;AACD6+E,EAAAA,gBAAgB,CAACD,UAAD,EAAa3C,WAAb,EAA0B;AACtC,UAAMkC,YAAY,GAAG,IAAIzS,qBAAJ,EAArB;AACA,UAAMqT,cAAc,GAAG,EAAvB;AACA,UAAMC,iBAAiB,GAAG,IAAIxsE,GAAJ,EAA1B;AACA,UAAMysE,kBAAkB,GAAG,EAA3B;AACA,UAAMrL,eAAe,GAAG,IAAIphE,GAAJ,EAAxB;AACA,UAAM0sE,mBAAmB,GAAG,IAAI1sE,GAAJ,EAA5B;AACA,UAAM2sE,oBAAoB,GAAG,IAAI3sE,GAAJ,EAA7B;AACA,UAAM4sE,mBAAmB,GAAG,IAAIrsE,GAAJ,EAA5B;AACA,SAAK0pE,aAAL,CAAmB3hF,OAAnB,CAA2B0T,IAAI,IAAI;AAC/B4wE,MAAAA,mBAAmB,CAACtxD,GAApB,CAAwBtf,IAAxB;AACA,YAAM6wE,oBAAoB,GAAG,KAAKxiB,MAAL,CAAY4D,KAAZ,CAAkBjyD,IAAlB,EAAwBipE,eAAxB,EAAyC,IAAzC,CAA7B;;AACA,WAAK,IAAIv4E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmgF,oBAAoB,CAAC7kF,MAAzC,EAAiD0E,CAAC,EAAlD,EAAsD;AAClDkgF,QAAAA,mBAAmB,CAACtxD,GAApB,CAAwBuxD,oBAAoB,CAACngF,CAAD,CAA5C;AACH;AACJ,KAND;AAOA,UAAMy3E,QAAQ,GAAG,KAAKA,QAAtB;AACA,UAAM2I,kBAAkB,GAAG3kF,KAAK,CAAC6C,IAAN,CAAW,KAAK87E,eAAL,CAAqBr+E,IAArB,EAAX,CAA3B;AACA,UAAMskF,YAAY,GAAGC,YAAY,CAACF,kBAAD,EAAqB,KAAKvC,sBAA1B,CAAjC,CAlBsC,CAmBtC;AACA;AACA;;AACA,UAAM0C,eAAe,GAAG,IAAIjtE,GAAJ,EAAxB;AACA,QAAItT,CAAC,GAAG,CAAR;AACAqgF,IAAAA,YAAY,CAACzkF,OAAb,CAAqB,CAACq9C,KAAD,EAAQtvB,IAAR,KAAiB;AAClC,YAAMgc,SAAS,GAAGu8B,eAAe,GAAGliE,CAAC,EAArC;AACAugF,MAAAA,eAAe,CAAC9gF,GAAhB,CAAoBkqB,IAApB,EAA0Bgc,SAA1B;AACAsT,MAAAA,KAAK,CAACr9C,OAAN,CAAc0T,IAAI,IAAI29C,QAAQ,CAAC39C,IAAD,EAAOq2B,SAAP,CAA9B;AACH,KAJD;AAKA,UAAM66C,aAAa,GAAG,EAAtB;AACA,UAAMC,gBAAgB,GAAG,IAAI5sE,GAAJ,EAAzB;AACA,UAAM6sE,2BAA2B,GAAG,IAAI7sE,GAAJ,EAApC;;AACA,SAAK,IAAI7T,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAK89E,sBAAL,CAA4BxiF,MAAhD,EAAwD0E,CAAC,EAAzD,EAA6D;AACzD,YAAM69D,OAAO,GAAG,KAAKigB,sBAAL,CAA4B99E,CAA5B,CAAhB;AACA,YAAM4+E,OAAO,GAAG/gB,OAAO,CAACub,YAAD,CAAvB;;AACA,UAAIwF,OAAO,IAAIA,OAAO,CAAC7F,aAAvB,EAAsC;AAClCyH,QAAAA,aAAa,CAACvgF,IAAd,CAAmB49D,OAAnB;AACA4iB,QAAAA,gBAAgB,CAAC7xD,GAAjB,CAAqBivC,OAArB;;AACA,YAAI+gB,OAAO,CAAC3F,YAAZ,EAA0B;AACtB,eAAKtb,MAAL,CAAY4D,KAAZ,CAAkB1D,OAAlB,EAA2B8a,aAA3B,EAA0C,IAA1C,EAAgD/8E,OAAhD,CAAwDw6E,GAAG,IAAIqK,gBAAgB,CAAC7xD,GAAjB,CAAqBwnD,GAArB,CAA/D;AACH,SAFD,MAGK;AACDsK,UAAAA,2BAA2B,CAAC9xD,GAA5B,CAAgCivC,OAAhC;AACH;AACJ;AACJ;;AACD,UAAM8iB,eAAe,GAAG,IAAIrtE,GAAJ,EAAxB;AACA,UAAMstE,YAAY,GAAGN,YAAY,CAACF,kBAAD,EAAqB3kF,KAAK,CAAC6C,IAAN,CAAWmiF,gBAAX,CAArB,CAAjC;AACAG,IAAAA,YAAY,CAAChlF,OAAb,CAAqB,CAACq9C,KAAD,EAAQtvB,IAAR,KAAiB;AAClC,YAAMgc,SAAS,GAAGw8B,eAAe,GAAGniE,CAAC,EAArC;AACA2gF,MAAAA,eAAe,CAAClhF,GAAhB,CAAoBkqB,IAApB,EAA0Bgc,SAA1B;AACAsT,MAAAA,KAAK,CAACr9C,OAAN,CAAc0T,IAAI,IAAI29C,QAAQ,CAAC39C,IAAD,EAAOq2B,SAAP,CAA9B;AACH,KAJD;AAKA+5C,IAAAA,UAAU,CAACz/E,IAAX,CAAgB,MAAM;AAClBogF,MAAAA,YAAY,CAACzkF,OAAb,CAAqB,CAACq9C,KAAD,EAAQtvB,IAAR,KAAiB;AAClC,cAAMgc,SAAS,GAAG46C,eAAe,CAAClvE,GAAhB,CAAoBsY,IAApB,CAAlB;AACAsvB,QAAAA,KAAK,CAACr9C,OAAN,CAAc0T,IAAI,IAAI+9C,WAAW,CAAC/9C,IAAD,EAAOq2B,SAAP,CAAjC;AACH,OAHD;AAIAi7C,MAAAA,YAAY,CAAChlF,OAAb,CAAqB,CAACq9C,KAAD,EAAQtvB,IAAR,KAAiB;AAClC,cAAMgc,SAAS,GAAGg7C,eAAe,CAACtvE,GAAhB,CAAoBsY,IAApB,CAAlB;AACAsvB,QAAAA,KAAK,CAACr9C,OAAN,CAAc0T,IAAI,IAAI+9C,WAAW,CAAC/9C,IAAD,EAAOq2B,SAAP,CAAjC;AACH,OAHD;AAIA66C,MAAAA,aAAa,CAAC5kF,OAAd,CAAsBiiE,OAAO,IAAI;AAC7B,aAAKie,gBAAL,CAAsBje,OAAtB;AACH,OAFD;AAGH,KAZD;AAaA,UAAMgjB,UAAU,GAAG,EAAnB;AACA,UAAMC,oBAAoB,GAAG,EAA7B;;AACA,SAAK,IAAI9gF,CAAC,GAAG,KAAKy9E,cAAL,CAAoBniF,MAApB,GAA6B,CAA1C,EAA6C0E,CAAC,IAAI,CAAlD,EAAqDA,CAAC,EAAtD,EAA0D;AACtD,YAAMu7E,EAAE,GAAG,KAAKkC,cAAL,CAAoBz9E,CAApB,CAAX;AACAu7E,MAAAA,EAAE,CAACuB,sBAAH,CAA0BC,WAA1B,EAAuCnhF,OAAvC,CAA+C+kB,KAAK,IAAI;AACpD,cAAMi+C,MAAM,GAAGj+C,KAAK,CAACi+C,MAArB;AACA,cAAMf,OAAO,GAAGl9C,KAAK,CAACk9C,OAAtB;AACAgjB,QAAAA,UAAU,CAAC5gF,IAAX,CAAgB2+D,MAAhB;;AACA,YAAI,KAAKif,sBAAL,CAA4BviF,MAAhC,EAAwC;AACpC,gBAAMsjF,OAAO,GAAG/gB,OAAO,CAACub,YAAD,CAAvB,CADoC,CAEpC;AACA;;AACA,cAAIwF,OAAO,IAAIA,OAAO,CAAC5F,UAAvB,EAAmC;AAC/B,gBAAI4F,OAAO,CAAChD,sBAAR,IACAgD,OAAO,CAAChD,sBAAR,CAA+B5wD,GAA/B,CAAmCrK,KAAK,CAACy+C,WAAzC,CADJ,EAC2D;AACvD,oBAAM2hB,aAAa,GAAGnC,OAAO,CAAChD,sBAAR,CAA+BvqE,GAA/B,CAAmCsP,KAAK,CAACy+C,WAAzC,CAAtB,CADuD,CAEvD;AACA;;AACA,oBAAM+a,kBAAkB,GAAG,KAAKC,eAAL,CAAqB/oE,GAArB,CAAyBsP,KAAK,CAACk9C,OAA/B,CAA3B;;AACA,kBAAIsc,kBAAkB,IAAIA,kBAAkB,CAACx5D,KAAK,CAACy+C,WAAP,CAA5C,EAAiE;AAC7D+a,gBAAAA,kBAAkB,CAACx5D,KAAK,CAACy+C,WAAP,CAAlB,CAAsCnnE,KAAtC,GAA8C8oF,aAA9C;AACH;AACJ;;AACDniB,YAAAA,MAAM,CAAC9jD,OAAP;AACA;AACH;AACJ;;AACD,cAAMkmE,cAAc,GAAG,CAACvJ,QAAD,IAAa,CAAC,KAAK9Z,MAAL,CAAYmD,eAAZ,CAA4B2W,QAA5B,EAAsC5Z,OAAtC,CAArC;AACA,cAAMuP,cAAc,GAAGuT,eAAe,CAACtvE,GAAhB,CAAoBwsD,OAApB,CAAvB;AACA,cAAMsP,cAAc,GAAGoT,eAAe,CAAClvE,GAAhB,CAAoBwsD,OAApB,CAAvB;;AACA,cAAM0Q,WAAW,GAAG,KAAKyQ,iBAAL,CAAuBr+D,KAAvB,EAA8Bs+D,YAA9B,EAA4C9R,cAA5C,EAA4DC,cAA5D,EAA4E4T,cAA5E,CAApB;;AACA,YAAIzS,WAAW,CAACztE,MAAZ,IAAsBytE,WAAW,CAACztE,MAAZ,CAAmBxF,MAA7C,EAAqD;AACjDwlF,UAAAA,oBAAoB,CAAC7gF,IAArB,CAA0BsuE,WAA1B;AACA;AACH,SA9BmD,CA+BpD;AACA;AACA;AACA;;;AACA,YAAIyS,cAAJ,EAAoB;AAChBpiB,UAAAA,MAAM,CAACC,OAAP,CAAe,MAAMqF,WAAW,CAACrG,OAAD,EAAU0Q,WAAW,CAACiG,UAAtB,CAAhC;AACA5V,UAAAA,MAAM,CAACI,SAAP,CAAiB,MAAM+E,SAAS,CAAClG,OAAD,EAAU0Q,WAAW,CAACkG,QAAtB,CAAhC;AACAoL,UAAAA,cAAc,CAAC5/E,IAAf,CAAoB2+D,MAApB;AACA;AACH,SAxCmD,CAyCpD;AACA;AACA;;;AACA,YAAIj+C,KAAK,CAACm6D,oBAAV,EAAgC;AAC5Blc,UAAAA,MAAM,CAACC,OAAP,CAAe,MAAMqF,WAAW,CAACrG,OAAD,EAAU0Q,WAAW,CAACiG,UAAtB,CAAhC;AACA5V,UAAAA,MAAM,CAACI,SAAP,CAAiB,MAAM+E,SAAS,CAAClG,OAAD,EAAU0Q,WAAW,CAACkG,QAAtB,CAAhC;AACAoL,UAAAA,cAAc,CAAC5/E,IAAf,CAAoB2+D,MAApB;AACA;AACH,SAjDmD,CAkDpD;AACA;AACA;AACA;AACA;;;AACA,cAAMgP,SAAS,GAAG,EAAlB;AACAW,QAAAA,WAAW,CAACX,SAAZ,CAAsBhyE,OAAtB,CAA8Bm0E,EAAE,IAAI;AAChCA,UAAAA,EAAE,CAACqB,uBAAH,GAA6B,IAA7B;;AACA,cAAI,CAAC,KAAKmM,aAAL,CAAmBvyD,GAAnB,CAAuB+kD,EAAE,CAAClS,OAA1B,CAAL,EAAyC;AACrC+P,YAAAA,SAAS,CAAC3tE,IAAV,CAAe8vE,EAAf;AACH;AACJ,SALD;AAMAxB,QAAAA,WAAW,CAACX,SAAZ,GAAwBA,SAAxB;AACAqR,QAAAA,YAAY,CAACn+B,MAAb,CAAoB+c,OAApB,EAA6B0Q,WAAW,CAACX,SAAzC;AACA,cAAMv8B,KAAK,GAAG;AAAEk9B,UAAAA,WAAF;AAAe3P,UAAAA,MAAf;AAAuBf,UAAAA;AAAvB,SAAd;AACAkiB,QAAAA,kBAAkB,CAAC9/E,IAAnB,CAAwBoxC,KAAxB;AACAk9B,QAAAA,WAAW,CAACmG,eAAZ,CAA4B94E,OAA5B,CAAoCiiE,OAAO,IAAI0B,eAAe,CAACmV,eAAD,EAAkB7W,OAAlB,EAA2B,EAA3B,CAAf,CAA8C59D,IAA9C,CAAmD2+D,MAAnD,CAA/C;AACA2P,QAAAA,WAAW,CAAClC,aAAZ,CAA0BzwE,OAA1B,CAAkC,CAACqlF,SAAD,EAAYpjB,OAAZ,KAAwB;AACtD,gBAAMlhB,KAAK,GAAG7gD,MAAM,CAACC,IAAP,CAAYklF,SAAZ,CAAd;;AACA,cAAItkC,KAAK,CAACrhD,MAAV,EAAkB;AACd,gBAAI4lF,MAAM,GAAGlB,mBAAmB,CAAC3uE,GAApB,CAAwBwsD,OAAxB,CAAb;;AACA,gBAAI,CAACqjB,MAAL,EAAa;AACTlB,cAAAA,mBAAmB,CAACvgF,GAApB,CAAwBo+D,OAAxB,EAAiCqjB,MAAM,GAAG,IAAIrtE,GAAJ,EAA1C;AACH;;AACD8oC,YAAAA,KAAK,CAAC/gD,OAAN,CAAci+B,IAAI,IAAIqnD,MAAM,CAACtyD,GAAP,CAAWiL,IAAX,CAAtB;AACH;AACJ,SATD;AAUA00C,QAAAA,WAAW,CAACjC,cAAZ,CAA2B1wE,OAA3B,CAAmC,CAACqlF,SAAD,EAAYpjB,OAAZ,KAAwB;AACvD,gBAAMlhB,KAAK,GAAG7gD,MAAM,CAACC,IAAP,CAAYklF,SAAZ,CAAd;AACA,cAAIC,MAAM,GAAGjB,oBAAoB,CAAC5uE,GAArB,CAAyBwsD,OAAzB,CAAb;;AACA,cAAI,CAACqjB,MAAL,EAAa;AACTjB,YAAAA,oBAAoB,CAACxgF,GAArB,CAAyBo+D,OAAzB,EAAkCqjB,MAAM,GAAG,IAAIrtE,GAAJ,EAA3C;AACH;;AACD8oC,UAAAA,KAAK,CAAC/gD,OAAN,CAAci+B,IAAI,IAAIqnD,MAAM,CAACtyD,GAAP,CAAWiL,IAAX,CAAtB;AACH,SAPD;AAQH,OArFD;AAsFH;;AACD,QAAIinD,oBAAoB,CAACxlF,MAAzB,EAAiC;AAC7B,YAAMwF,MAAM,GAAG,EAAf;AACAggF,MAAAA,oBAAoB,CAACllF,OAArB,CAA6B2yE,WAAW,IAAI;AACxCztE,QAAAA,MAAM,CAACb,IAAP,CAAYo9D,gBAAgB,CAACkR,WAAW,CAACnP,WAAb,EAA0BmP,WAAW,CAACztE,MAAtC,CAA5B;AACH,OAFD;AAGA+/E,MAAAA,UAAU,CAACjlF,OAAX,CAAmBgjE,MAAM,IAAIA,MAAM,CAAC9jD,OAAP,EAA7B;AACA,WAAK4/D,WAAL,CAAiB55E,MAAjB;AACH;;AACD,UAAMqgF,qBAAqB,GAAG,IAAI7tE,GAAJ,EAA9B,CArKsC,CAsKtC;AACA;AACA;AACA;;AACA,UAAM8tE,mBAAmB,GAAG,IAAI9tE,GAAJ,EAA5B;AACAysE,IAAAA,kBAAkB,CAACnkF,OAAnB,CAA2B+kB,KAAK,IAAI;AAChC,YAAMk9C,OAAO,GAAGl9C,KAAK,CAACk9C,OAAtB;;AACA,UAAIohB,YAAY,CAACj0D,GAAb,CAAiB6yC,OAAjB,CAAJ,EAA+B;AAC3BujB,QAAAA,mBAAmB,CAAC3hF,GAApB,CAAwBo+D,OAAxB,EAAiCA,OAAjC;;AACA,aAAKwjB,qBAAL,CAA2B1gE,KAAK,CAACi+C,MAAN,CAAaka,WAAxC,EAAqDn4D,KAAK,CAAC4tD,WAA3D,EAAwE4S,qBAAxE;AACH;AACJ,KAND;AAOAtB,IAAAA,cAAc,CAACjkF,OAAf,CAAuBgjE,MAAM,IAAI;AAC7B,YAAMf,OAAO,GAAGe,MAAM,CAACf,OAAvB;;AACA,YAAM4D,eAAe,GAAG,KAAK6f,mBAAL,CAAyBzjB,OAAzB,EAAkC,KAAlC,EAAyCe,MAAM,CAACka,WAAhD,EAA6Dla,MAAM,CAACQ,WAApE,EAAiF,IAAjF,CAAxB;;AACAqC,MAAAA,eAAe,CAAC7lE,OAAhB,CAAwB2lF,UAAU,IAAI;AAClChiB,QAAAA,eAAe,CAAC4hB,qBAAD,EAAwBtjB,OAAxB,EAAiC,EAAjC,CAAf,CAAoD59D,IAApD,CAAyDshF,UAAzD;AACAA,QAAAA,UAAU,CAACzmE,OAAX;AACH,OAHD;AAIH,KAPD,EAlLsC,CA0LtC;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,UAAM0mE,YAAY,GAAGhB,aAAa,CAAC3iF,MAAd,CAAqByR,IAAI,IAAI;AAC9C,aAAOmyE,sBAAsB,CAACnyE,IAAD,EAAO0wE,mBAAP,EAA4BC,oBAA5B,CAA7B;AACH,KAFoB,CAArB,CAjMsC,CAoMtC;;AACA,UAAMyB,aAAa,GAAG,IAAIpuE,GAAJ,EAAtB;AACA,UAAMquE,oBAAoB,GAAGC,qBAAqB,CAACF,aAAD,EAAgB,KAAK/jB,MAArB,EAA6B+iB,2BAA7B,EAA0DT,oBAA1D,EAAgFlmB,2DAAhF,CAAlD;AACA4nB,IAAAA,oBAAoB,CAAC/lF,OAArB,CAA6B0T,IAAI,IAAI;AACjC,UAAImyE,sBAAsB,CAACnyE,IAAD,EAAO0wE,mBAAP,EAA4BC,oBAA5B,CAA1B,EAA6E;AACzEuB,QAAAA,YAAY,CAACvhF,IAAb,CAAkBqP,IAAlB;AACH;AACJ,KAJD,EAvMsC,CA4MtC;;AACA,UAAMuyE,YAAY,GAAG,IAAIvuE,GAAJ,EAArB;AACA+sE,IAAAA,YAAY,CAACzkF,OAAb,CAAqB,CAACq9C,KAAD,EAAQtvB,IAAR,KAAiB;AAClCi4D,MAAAA,qBAAqB,CAACC,YAAD,EAAe,KAAKlkB,MAApB,EAA4B,IAAI9pD,GAAJ,CAAQolC,KAAR,CAA5B,EAA4C+mC,mBAA5C,EAAiEhmB,8DAAjE,CAArB;AACH,KAFD;AAGAwnB,IAAAA,YAAY,CAAC5lF,OAAb,CAAqB0T,IAAI,IAAI;AACzB,YAAMwyE,IAAI,GAAGJ,aAAa,CAACrwE,GAAd,CAAkB/B,IAAlB,CAAb;AACA,YAAMyyE,GAAG,GAAGF,YAAY,CAACxwE,GAAb,CAAiB/B,IAAjB,CAAZ;AACAoyE,MAAAA,aAAa,CAACjiF,GAAd,CAAkB6P,IAAlB,EAAwBxT,MAAM,CAACq6E,MAAP,CAAcr6E,MAAM,CAACq6E,MAAP,CAAc,EAAd,EAAkB2L,IAAlB,CAAd,EAAuCC,GAAvC,CAAxB;AACH,KAJD;AAKA,UAAMC,WAAW,GAAG,EAApB;AACA,UAAMC,UAAU,GAAG,EAAnB;AACA,UAAMC,oCAAoC,GAAG,EAA7C;AACAnC,IAAAA,kBAAkB,CAACnkF,OAAnB,CAA2B+kB,KAAK,IAAI;AAChC,YAAM;AAAEk9C,QAAAA,OAAF;AAAWe,QAAAA,MAAX;AAAmB2P,QAAAA;AAAnB,UAAmC5tD,KAAzC,CADgC,CAEhC;AACA;;AACA,UAAIs+D,YAAY,CAACj0D,GAAb,CAAiB6yC,OAAjB,CAAJ,EAA+B;AAC3B,YAAIqiB,mBAAmB,CAACl1D,GAApB,CAAwB6yC,OAAxB,CAAJ,EAAsC;AAClCe,UAAAA,MAAM,CAACI,SAAP,CAAiB,MAAM+E,SAAS,CAAClG,OAAD,EAAU0Q,WAAW,CAACkG,QAAtB,CAAhC;AACA7V,UAAAA,MAAM,CAACt8B,QAAP,GAAkB,IAAlB;AACAs8B,UAAAA,MAAM,CAACujB,iBAAP,CAAyB5T,WAAW,CAACrP,SAArC;AACA2gB,UAAAA,cAAc,CAAC5/E,IAAf,CAAoB2+D,MAApB;AACA;AACH,SAP0B,CAQ3B;AACA;AACA;AACA;AACA;AACA;;;AACA,YAAIwjB,mBAAmB,GAAGF,oCAA1B;;AACA,YAAId,mBAAmB,CAACj2D,IAApB,GAA2B,CAA/B,EAAkC;AAC9B,cAAIirD,GAAG,GAAGvY,OAAV;AACA,gBAAMwkB,YAAY,GAAG,EAArB;;AACA,iBAAOjM,GAAG,GAAGA,GAAG,CAACn6C,UAAjB,EAA6B;AACzB,kBAAMqmD,cAAc,GAAGlB,mBAAmB,CAAC/vE,GAApB,CAAwB+kE,GAAxB,CAAvB;;AACA,gBAAIkM,cAAJ,EAAoB;AAChBF,cAAAA,mBAAmB,GAAGE,cAAtB;AACA;AACH;;AACDD,YAAAA,YAAY,CAACpiF,IAAb,CAAkBm2E,GAAlB;AACH;;AACDiM,UAAAA,YAAY,CAACzmF,OAAb,CAAqBotC,MAAM,IAAIo4C,mBAAmB,CAAC3hF,GAApB,CAAwBupC,MAAxB,EAAgCo5C,mBAAhC,CAA/B;AACH;;AACD,cAAMG,WAAW,GAAG,KAAKC,eAAL,CAAqB5jB,MAAM,CAACka,WAA5B,EAAyCvK,WAAzC,EAAsD4S,qBAAtD,EAA6ErB,iBAA7E,EAAgG+B,YAAhG,EAA8GH,aAA9G,CAApB;;AACA9iB,QAAAA,MAAM,CAAC6jB,aAAP,CAAqBF,WAArB;;AACA,YAAIH,mBAAmB,KAAKF,oCAA5B,EAAkE;AAC9DF,UAAAA,WAAW,CAAC/hF,IAAZ,CAAiB2+D,MAAjB;AACH,SAFD,MAGK;AACD,gBAAM8jB,aAAa,GAAG,KAAK9H,gBAAL,CAAsBvpE,GAAtB,CAA0B+wE,mBAA1B,CAAtB;;AACA,cAAIM,aAAa,IAAIA,aAAa,CAACpnF,MAAnC,EAA2C;AACvCsjE,YAAAA,MAAM,CAAC+jB,YAAP,GAAsBnlB,mBAAmB,CAACklB,aAAD,CAAzC;AACH;;AACD7C,UAAAA,cAAc,CAAC5/E,IAAf,CAAoB2+D,MAApB;AACH;AACJ,OAxCD,MAyCK;AACDsF,QAAAA,WAAW,CAACrG,OAAD,EAAU0Q,WAAW,CAACiG,UAAtB,CAAX;AACA5V,QAAAA,MAAM,CAACI,SAAP,CAAiB,MAAM+E,SAAS,CAAClG,OAAD,EAAU0Q,WAAW,CAACkG,QAAtB,CAAhC,EAFC,CAGD;AACA;AACA;;AACAwN,QAAAA,UAAU,CAAChiF,IAAX,CAAgB2+D,MAAhB;;AACA,YAAIshB,mBAAmB,CAACl1D,GAApB,CAAwB6yC,OAAxB,CAAJ,EAAsC;AAClCgiB,UAAAA,cAAc,CAAC5/E,IAAf,CAAoB2+D,MAApB;AACH;AACJ;AACJ,KAxDD,EAzNsC,CAkRtC;;AACAqjB,IAAAA,UAAU,CAACrmF,OAAX,CAAmBgjE,MAAM,IAAI;AACzB;AACA;AACA,YAAMgkB,iBAAiB,GAAG9C,iBAAiB,CAACzuE,GAAlB,CAAsButD,MAAM,CAACf,OAA7B,CAA1B;;AACA,UAAI+kB,iBAAiB,IAAIA,iBAAiB,CAACtnF,MAA3C,EAAmD;AAC/C,cAAMinF,WAAW,GAAG/kB,mBAAmB,CAAColB,iBAAD,CAAvC;AACAhkB,QAAAA,MAAM,CAAC6jB,aAAP,CAAqBF,WAArB;AACH;AACJ,KARD,EAnRsC,CA4RtC;AACA;AACA;;AACA1C,IAAAA,cAAc,CAACjkF,OAAf,CAAuBgjE,MAAM,IAAI;AAC7B,UAAIA,MAAM,CAAC+jB,YAAX,EAAyB;AACrB/jB,QAAAA,MAAM,CAACikB,gBAAP,CAAwBjkB,MAAM,CAAC+jB,YAA/B;AACH,OAFD,MAGK;AACD/jB,QAAAA,MAAM,CAAC9jD,OAAP;AACH;AACJ,KAPD,EA/RsC,CAuStC;AACA;AACA;;AACA,SAAK,IAAI9a,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwgF,aAAa,CAACllF,MAAlC,EAA0C0E,CAAC,EAA3C,EAA+C;AAC3C,YAAM69D,OAAO,GAAG2iB,aAAa,CAACxgF,CAAD,CAA7B;AACA,YAAM4+E,OAAO,GAAG/gB,OAAO,CAACub,YAAD,CAAvB;AACA/rB,MAAAA,WAAW,CAACwQ,OAAD,EAAUsE,eAAV,CAAX,CAH2C,CAI3C;AACA;AACA;;AACA,UAAIyc,OAAO,IAAIA,OAAO,CAAC3F,YAAvB,EACI;AACJ,UAAIxb,OAAO,GAAG,EAAd,CAT2C,CAU3C;AACA;AACA;;AACA,UAAIiX,eAAe,CAACvpD,IAApB,EAA0B;AACtB,YAAI23D,oBAAoB,GAAGpO,eAAe,CAACrjE,GAAhB,CAAoBwsD,OAApB,CAA3B;;AACA,YAAIilB,oBAAoB,IAAIA,oBAAoB,CAACxnF,MAAjD,EAAyD;AACrDmiE,UAAAA,OAAO,CAACx9D,IAAR,CAAa,GAAG6iF,oBAAhB;AACH;;AACD,YAAIC,oBAAoB,GAAG,KAAKplB,MAAL,CAAY4D,KAAZ,CAAkB1D,OAAlB,EAA2B0E,qBAA3B,EAAkD,IAAlD,CAA3B;;AACA,aAAK,IAAInlC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2lD,oBAAoB,CAACznF,MAAzC,EAAiD8hC,CAAC,EAAlD,EAAsD;AAClD,cAAI4lD,cAAc,GAAGtO,eAAe,CAACrjE,GAAhB,CAAoB0xE,oBAAoB,CAAC3lD,CAAD,CAAxC,CAArB;;AACA,cAAI4lD,cAAc,IAAIA,cAAc,CAAC1nF,MAArC,EAA6C;AACzCmiE,YAAAA,OAAO,CAACx9D,IAAR,CAAa,GAAG+iF,cAAhB;AACH;AACJ;AACJ;;AACD,YAAMC,aAAa,GAAGxlB,OAAO,CAAC5/D,MAAR,CAAeuO,CAAC,IAAI,CAACA,CAAC,CAACgO,SAAvB,CAAtB;;AACA,UAAI6oE,aAAa,CAAC3nF,MAAlB,EAA0B;AACtB4nF,QAAAA,6BAA6B,CAAC,IAAD,EAAOrlB,OAAP,EAAgBolB,aAAhB,CAA7B;AACH,OAFD,MAGK;AACD,aAAKnH,gBAAL,CAAsBje,OAAtB;AACH;AACJ,KA3UqC,CA4UtC;;;AACA2iB,IAAAA,aAAa,CAACllF,MAAd,GAAuB,CAAvB;AACA0mF,IAAAA,WAAW,CAACpmF,OAAZ,CAAoBgjE,MAAM,IAAI;AAC1B,WAAKnB,OAAL,CAAax9D,IAAb,CAAkB2+D,MAAlB;AACAA,MAAAA,MAAM,CAACG,MAAP,CAAc,MAAM;AAChBH,QAAAA,MAAM,CAAC9jD,OAAP;AACA,cAAMmE,KAAK,GAAG,KAAKw+C,OAAL,CAAajhE,OAAb,CAAqBoiE,MAArB,CAAd;AACA,aAAKnB,OAAL,CAAa3oD,MAAb,CAAoBmK,KAApB,EAA2B,CAA3B;AACH,OAJD;AAKA2/C,MAAAA,MAAM,CAACuZ,IAAP;AACH,KARD;AASA,WAAO6J,WAAP;AACH;;AACD7E,EAAAA,mBAAmB,CAACrE,WAAD,EAAcjb,OAAd,EAAuB;AACtC,QAAIuf,YAAY,GAAG,KAAnB;AACA,UAAMwB,OAAO,GAAG/gB,OAAO,CAACub,YAAD,CAAvB;AACA,QAAIwF,OAAO,IAAIA,OAAO,CAAC7F,aAAvB,EACIqE,YAAY,GAAG,IAAf;AACJ,QAAI,KAAKxC,gBAAL,CAAsB5vD,GAAtB,CAA0B6yC,OAA1B,CAAJ,EACIuf,YAAY,GAAG,IAAf;AACJ,QAAI,KAAKZ,uBAAL,CAA6BxxD,GAA7B,CAAiC6yC,OAAjC,CAAJ,EACIuf,YAAY,GAAG,IAAf;AACJ,QAAI,KAAKhD,eAAL,CAAqBpvD,GAArB,CAAyB6yC,OAAzB,CAAJ,EACIuf,YAAY,GAAG,IAAf;AACJ,WAAO,KAAKqB,eAAL,CAAqB3F,WAArB,EAAkCqE,mBAAlC,CAAsDtf,OAAtD,KAAkEuf,YAAzE;AACH;;AACD/C,EAAAA,UAAU,CAAC55D,QAAD,EAAW;AACjB,SAAKi9D,SAAL,CAAez9E,IAAf,CAAoBwgB,QAApB;AACH;;AACDg7D,EAAAA,wBAAwB,CAACh7D,QAAD,EAAW;AAC/B,SAAKk9D,aAAL,CAAmB19E,IAAnB,CAAwBwgB,QAAxB;AACH;;AACD6gE,EAAAA,mBAAmB,CAACzjB,OAAD,EAAUslB,gBAAV,EAA4BrK,WAA5B,EAAyC1Z,WAAzC,EAAsDgkB,YAAtD,EAAoE;AACnF,QAAI3lB,OAAO,GAAG,EAAd;;AACA,QAAI0lB,gBAAJ,EAAsB;AAClB,YAAME,qBAAqB,GAAG,KAAK7G,uBAAL,CAA6BnrE,GAA7B,CAAiCwsD,OAAjC,CAA9B;;AACA,UAAIwlB,qBAAJ,EAA2B;AACvB5lB,QAAAA,OAAO,GAAG4lB,qBAAV;AACH;AACJ,KALD,MAMK;AACD,YAAMjI,cAAc,GAAG,KAAKR,gBAAL,CAAsBvpE,GAAtB,CAA0BwsD,OAA1B,CAAvB;;AACA,UAAIud,cAAJ,EAAoB;AAChB,cAAMkI,kBAAkB,GAAG,CAACF,YAAD,IAAiBA,YAAY,IAAI3J,UAA5D;AACA2B,QAAAA,cAAc,CAACx/E,OAAf,CAAuBgjE,MAAM,IAAI;AAC7B,cAAIA,MAAM,CAACic,MAAX,EACI;AACJ,cAAI,CAACyI,kBAAD,IAAuB1kB,MAAM,CAACQ,WAAP,IAAsBA,WAAjD,EACI;AACJ3B,UAAAA,OAAO,CAACx9D,IAAR,CAAa2+D,MAAb;AACH,SAND;AAOH;AACJ;;AACD,QAAIka,WAAW,IAAI1Z,WAAnB,EAAgC;AAC5B3B,MAAAA,OAAO,GAAGA,OAAO,CAAC5/D,MAAR,CAAe+gE,MAAM,IAAI;AAC/B,YAAIka,WAAW,IAAIA,WAAW,IAAIla,MAAM,CAACka,WAAzC,EACI,OAAO,KAAP;AACJ,YAAI1Z,WAAW,IAAIA,WAAW,IAAIR,MAAM,CAACQ,WAAzC,EACI,OAAO,KAAP;AACJ,eAAO,IAAP;AACH,OANS,CAAV;AAOH;;AACD,WAAO3B,OAAP;AACH;;AACD4jB,EAAAA,qBAAqB,CAACvI,WAAD,EAAcvK,WAAd,EAA2B4S,qBAA3B,EAAkD;AACnE,UAAM/hB,WAAW,GAAGmP,WAAW,CAACnP,WAAhC;AACA,UAAM8N,WAAW,GAAGqB,WAAW,CAAC1Q,OAAhC,CAFmE,CAGnE;AACA;;AACA,UAAM0lB,iBAAiB,GAAGhV,WAAW,CAACgG,mBAAZ,GAAkCxuE,SAAlC,GAA8C+yE,WAAxE;AACA,UAAM0K,iBAAiB,GAAGjV,WAAW,CAACgG,mBAAZ,GAAkCxuE,SAAlC,GAA8Cq5D,WAAxE;;AACA,SAAK,MAAMqkB,mBAAX,IAAkClV,WAAW,CAACX,SAA9C,EAAyD;AACrD,YAAM/P,OAAO,GAAG4lB,mBAAmB,CAAC5lB,OAApC;AACA,YAAMslB,gBAAgB,GAAGtlB,OAAO,KAAKqP,WAArC;AACA,YAAMzP,OAAO,GAAG8B,eAAe,CAAC4hB,qBAAD,EAAwBtjB,OAAxB,EAAiC,EAAjC,CAA/B;;AACA,YAAM4D,eAAe,GAAG,KAAK6f,mBAAL,CAAyBzjB,OAAzB,EAAkCslB,gBAAlC,EAAoDI,iBAApD,EAAuEC,iBAAvE,EAA0FjV,WAAW,CAACjP,OAAtG,CAAxB;;AACAmC,MAAAA,eAAe,CAAC7lE,OAAhB,CAAwBgjE,MAAM,IAAI;AAC9B,cAAM8kB,UAAU,GAAG9kB,MAAM,CAAC+kB,aAAP,EAAnB;;AACA,YAAID,UAAU,CAACE,aAAf,EAA8B;AAC1BF,UAAAA,UAAU,CAACE,aAAX;AACH;;AACDhlB,QAAAA,MAAM,CAAC9jD,OAAP;AACA2iD,QAAAA,OAAO,CAACx9D,IAAR,CAAa2+D,MAAb;AACH,OAPD;AAQH,KApBkE,CAqBnE;AACA;;;AACAsF,IAAAA,WAAW,CAACgJ,WAAD,EAAcqB,WAAW,CAACiG,UAA1B,CAAX;AACH;;AACDgO,EAAAA,eAAe,CAAC1J,WAAD,EAAcvK,WAAd,EAA2B4S,qBAA3B,EAAkDrB,iBAAlD,EAAqE+B,YAArE,EAAmFH,aAAnF,EAAkG;AAC7G,UAAMtiB,WAAW,GAAGmP,WAAW,CAACnP,WAAhC;AACA,UAAM8N,WAAW,GAAGqB,WAAW,CAAC1Q,OAAhC,CAF6G,CAG7G;AACA;;AACA,UAAMgmB,iBAAiB,GAAG,EAA1B;AACA,UAAMC,mBAAmB,GAAG,IAAIjwE,GAAJ,EAA5B;AACA,UAAMkwE,cAAc,GAAG,IAAIlwE,GAAJ,EAAvB;AACA,UAAMmwE,aAAa,GAAGzV,WAAW,CAACX,SAAZ,CAAsBpyE,GAAtB,CAA0BioF,mBAAmB,IAAI;AACnE,YAAM5lB,OAAO,GAAG4lB,mBAAmB,CAAC5lB,OAApC;AACAimB,MAAAA,mBAAmB,CAACl1D,GAApB,CAAwBivC,OAAxB,EAFmE,CAGnE;;AACA,YAAM+gB,OAAO,GAAG/gB,OAAO,CAACub,YAAD,CAAvB;AACA,UAAIwF,OAAO,IAAIA,OAAO,CAAC1F,oBAAvB,EACI,OAAO,IAAIpf,oEAAJ,CAAwB2pB,mBAAmB,CAACzmF,QAA5C,EAAsDymF,mBAAmB,CAAC53B,KAA1E,CAAP;AACJ,YAAMs3B,gBAAgB,GAAGtlB,OAAO,KAAKqP,WAArC;AACA,YAAMzL,eAAe,GAAGwiB,mBAAmB,CAAC,CAAC9C,qBAAqB,CAAC9vE,GAAtB,CAA0BwsD,OAA1B,KAAsC+a,kBAAvC,EACvCp9E,GADuC,CACnC4Q,CAAC,IAAIA,CAAC,CAACu3E,aAAF,EAD8B,CAAD,CAAnB,CAEnB9lF,MAFmB,CAEZuO,CAAC,IAAI;AACb;AACA;AACA;AACA;AACA,cAAM83E,EAAE,GAAG93E,CAAX;AACA,eAAO83E,EAAE,CAACrmB,OAAH,GAAaqmB,EAAE,CAACrmB,OAAH,KAAeA,OAA5B,GAAsC,KAA7C;AACH,OATuB,CAAxB;AAUA,YAAME,SAAS,GAAG8jB,YAAY,CAACxwE,GAAb,CAAiBwsD,OAAjB,CAAlB;AACA,YAAMG,UAAU,GAAG0jB,aAAa,CAACrwE,GAAd,CAAkBwsD,OAAlB,CAAnB;AACA,YAAMC,SAAS,GAAGJ,kBAAkB,CAAC,KAAKC,MAAN,EAAc,KAAKkZ,WAAnB,EAAgChZ,OAAhC,EAAyC4lB,mBAAmB,CAAC3lB,SAA7D,EAAwEC,SAAxE,EAAmFC,UAAnF,CAApC;;AACA,YAAMY,MAAM,GAAG,KAAKiZ,YAAL,CAAkB4L,mBAAlB,EAAuC3lB,SAAvC,EAAkD2D,eAAlD,CAAf,CArBmE,CAsBnE;AACA;;;AACA,UAAIgiB,mBAAmB,CAAClX,WAApB,IAAmCuT,iBAAvC,EAA0D;AACtDiE,QAAAA,cAAc,CAACn1D,GAAf,CAAmBivC,OAAnB;AACH;;AACD,UAAIslB,gBAAJ,EAAsB;AAClB,cAAMgB,aAAa,GAAG,IAAI3J,yBAAJ,CAA8B1B,WAA9B,EAA2C1Z,WAA3C,EAAwDvB,OAAxD,CAAtB;AACAsmB,QAAAA,aAAa,CAAC1B,aAAd,CAA4B7jB,MAA5B;AACAilB,QAAAA,iBAAiB,CAAC5jF,IAAlB,CAAuBkkF,aAAvB;AACH;;AACD,aAAOvlB,MAAP;AACH,KAjCqB,CAAtB;AAkCAilB,IAAAA,iBAAiB,CAACjoF,OAAlB,CAA0BgjE,MAAM,IAAI;AAChCW,MAAAA,eAAe,CAAC,KAAKid,uBAAN,EAA+B5d,MAAM,CAACf,OAAtC,EAA+C,EAA/C,CAAf,CAAkE59D,IAAlE,CAAuE2+D,MAAvE;AACAA,MAAAA,MAAM,CAACG,MAAP,CAAc,MAAMqlB,kBAAkB,CAAC,KAAK5H,uBAAN,EAA+B5d,MAAM,CAACf,OAAtC,EAA+Ce,MAA/C,CAAtC;AACH,KAHD;AAIAklB,IAAAA,mBAAmB,CAACloF,OAApB,CAA4BiiE,OAAO,IAAI5Q,QAAQ,CAAC4Q,OAAD,EAAUyE,sBAAV,CAA/C;AACA,UAAM1D,MAAM,GAAGpB,mBAAmB,CAACwmB,aAAD,CAAlC;AACAplB,IAAAA,MAAM,CAACI,SAAP,CAAiB,MAAM;AACnB8kB,MAAAA,mBAAmB,CAACloF,OAApB,CAA4BiiE,OAAO,IAAIxQ,WAAW,CAACwQ,OAAD,EAAUyE,sBAAV,CAAlD;AACAyB,MAAAA,SAAS,CAACmJ,WAAD,EAAcqB,WAAW,CAACkG,QAA1B,CAAT;AACH,KAHD,EAhD6G,CAoD7G;AACA;;AACAsP,IAAAA,cAAc,CAACnoF,OAAf,CAAuBiiE,OAAO,IAAI;AAC9B0B,MAAAA,eAAe,CAACugB,iBAAD,EAAoBjiB,OAApB,EAA6B,EAA7B,CAAf,CAAgD59D,IAAhD,CAAqD2+D,MAArD;AACH,KAFD;AAGA,WAAOA,MAAP;AACH;;AACDiZ,EAAAA,YAAY,CAACtJ,WAAD,EAAczQ,SAAd,EAAyB2D,eAAzB,EAA0C;AAClD,QAAI3D,SAAS,CAACxiE,MAAV,GAAmB,CAAvB,EAA0B;AACtB,aAAO,KAAKqiE,MAAL,CAAY5S,OAAZ,CAAoBwjB,WAAW,CAAC1Q,OAAhC,EAAyCC,SAAzC,EAAoDyQ,WAAW,CAACvxE,QAAhE,EAA0EuxE,WAAW,CAAC1iB,KAAtF,EAA6F0iB,WAAW,CAACjnB,MAAzG,EAAiHma,eAAjH,CAAP;AACH,KAHiD,CAIlD;AACA;;;AACA,WAAO,IAAI3H,oEAAJ,CAAwByU,WAAW,CAACvxE,QAApC,EAA8CuxE,WAAW,CAAC1iB,KAA1D,CAAP;AACH;;AA31B2B;;AA61BhC,MAAM2uB,yBAAN,CAAgC;AAC5Bp9E,EAAAA,WAAW,CAAC07E,WAAD,EAAc1Z,WAAd,EAA2BvB,OAA3B,EAAoC;AAC3C,SAAKib,WAAL,GAAmBA,WAAnB;AACA,SAAK1Z,WAAL,GAAmBA,WAAnB;AACA,SAAKvB,OAAL,GAAeA,OAAf;AACA,SAAKwmB,OAAL,GAAe,IAAIvqB,oEAAJ,EAAf;AACA,SAAKwqB,mBAAL,GAA2B,KAA3B;AACA,SAAKC,gBAAL,GAAwB,EAAxB;AACA,SAAKnqE,SAAL,GAAiB,KAAjB;AACA,SAAK4iE,gBAAL,GAAwB,KAAxB;AACA,SAAK16C,QAAL,GAAgB,KAAhB;AACA,SAAKu4C,MAAL,GAAc,IAAd;AACA,SAAK3b,SAAL,GAAiB,CAAjB;AACH;;AACDujB,EAAAA,aAAa,CAAC7jB,MAAD,EAAS;AAClB,QAAI,KAAK0lB,mBAAT,EACI;AACJ,SAAKD,OAAL,GAAezlB,MAAf;AACA9iE,IAAAA,MAAM,CAACC,IAAP,CAAY,KAAKwoF,gBAAjB,EAAmC3oF,OAAnC,CAA2CmhE,KAAK,IAAI;AAChD,WAAKwnB,gBAAL,CAAsBxnB,KAAtB,EAA6BnhE,OAA7B,CAAqC6kB,QAAQ,IAAIk+C,cAAc,CAACC,MAAD,EAAS7B,KAAT,EAAgBh3D,SAAhB,EAA2B0a,QAA3B,CAA/D;AACH,KAFD;AAGA,SAAK8jE,gBAAL,GAAwB,EAAxB;AACA,SAAKD,mBAAL,GAA2B,IAA3B;AACA,SAAKnC,iBAAL,CAAuBvjB,MAAM,CAACM,SAA9B;AACA,SAAK2b,MAAL,GAAc,KAAd;AACH;;AACD8I,EAAAA,aAAa,GAAG;AACZ,WAAO,KAAKU,OAAZ;AACH;;AACDlC,EAAAA,iBAAiB,CAACjjB,SAAD,EAAY;AACzB,SAAKA,SAAL,GAAiBA,SAAjB;AACH;;AACD2jB,EAAAA,gBAAgB,CAACjkB,MAAD,EAAS;AACrB,UAAMxyD,CAAC,GAAG,KAAKi4E,OAAf;;AACA,QAAIj4E,CAAC,CAACo4E,eAAN,EAAuB;AACnB5lB,MAAAA,MAAM,CAACC,OAAP,CAAe,MAAMzyD,CAAC,CAACo4E,eAAF,CAAkB,OAAlB,CAArB;AACH;;AACD5lB,IAAAA,MAAM,CAACG,MAAP,CAAc,MAAM,KAAKn+C,MAAL,EAApB;AACAg+C,IAAAA,MAAM,CAACI,SAAP,CAAiB,MAAM,KAAKlkD,OAAL,EAAvB;AACH;;AACD2pE,EAAAA,WAAW,CAACrkF,IAAD,EAAOqgB,QAAP,EAAiB;AACxB8+C,IAAAA,eAAe,CAAC,KAAKglB,gBAAN,EAAwBnkF,IAAxB,EAA8B,EAA9B,CAAf,CAAiDH,IAAjD,CAAsDwgB,QAAtD;AACH;;AACDs+C,EAAAA,MAAM,CAACxqD,EAAD,EAAK;AACP,QAAI,KAAKsmE,MAAT,EAAiB;AACb,WAAK4J,WAAL,CAAiB,MAAjB,EAAyBlwE,EAAzB;AACH;;AACD,SAAK8vE,OAAL,CAAatlB,MAAb,CAAoBxqD,EAApB;AACH;;AACDsqD,EAAAA,OAAO,CAACtqD,EAAD,EAAK;AACR,QAAI,KAAKsmE,MAAT,EAAiB;AACb,WAAK4J,WAAL,CAAiB,OAAjB,EAA0BlwE,EAA1B;AACH;;AACD,SAAK8vE,OAAL,CAAaxlB,OAAb,CAAqBtqD,EAArB;AACH;;AACDyqD,EAAAA,SAAS,CAACzqD,EAAD,EAAK;AACV,QAAI,KAAKsmE,MAAT,EAAiB;AACb,WAAK4J,WAAL,CAAiB,SAAjB,EAA4BlwE,EAA5B;AACH;;AACD,SAAK8vE,OAAL,CAAarlB,SAAb,CAAuBzqD,EAAvB;AACH;;AACD+nB,EAAAA,IAAI,GAAG;AACH,SAAK+nD,OAAL,CAAa/nD,IAAb;AACH;;AACDooD,EAAAA,UAAU,GAAG;AACT,WAAO,KAAK7J,MAAL,GAAc,KAAd,GAAsB,KAAKwJ,OAAL,CAAaK,UAAb,EAA7B;AACH;;AACDvM,EAAAA,IAAI,GAAG;AACH,KAAC,KAAK0C,MAAN,IAAgB,KAAKwJ,OAAL,CAAalM,IAAb,EAAhB;AACH;;AACDt5D,EAAAA,KAAK,GAAG;AACJ,KAAC,KAAKg8D,MAAN,IAAgB,KAAKwJ,OAAL,CAAaxlE,KAAb,EAAhB;AACH;;AACDu5D,EAAAA,OAAO,GAAG;AACN,KAAC,KAAKyC,MAAN,IAAgB,KAAKwJ,OAAL,CAAajM,OAAb,EAAhB;AACH;;AACDx3D,EAAAA,MAAM,GAAG;AACL,SAAKyjE,OAAL,CAAazjE,MAAb;AACH;;AACD9F,EAAAA,OAAO,GAAG;AACN,SAAKV,SAAL,GAAiB,IAAjB;;AACA,SAAKiqE,OAAL,CAAavpE,OAAb;AACH;;AACD0vB,EAAAA,KAAK,GAAG;AACJ,KAAC,KAAKqwC,MAAN,IAAgB,KAAKwJ,OAAL,CAAa75C,KAAb,EAAhB;AACH;;AACD6tC,EAAAA,WAAW,CAACjsE,CAAD,EAAI;AACX,QAAI,CAAC,KAAKyuE,MAAV,EAAkB;AACd,WAAKwJ,OAAL,CAAahM,WAAb,CAAyBjsE,CAAzB;AACH;AACJ;;AACDu4E,EAAAA,WAAW,GAAG;AACV,WAAO,KAAK9J,MAAL,GAAc,CAAd,GAAkB,KAAKwJ,OAAL,CAAaM,WAAb,EAAzB;AACH;AACD;;;AACAH,EAAAA,eAAe,CAACvlB,SAAD,EAAY;AACvB,UAAM7yD,CAAC,GAAG,KAAKi4E,OAAf;;AACA,QAAIj4E,CAAC,CAACo4E,eAAN,EAAuB;AACnBp4E,MAAAA,CAAC,CAACo4E,eAAF,CAAkBvlB,SAAlB;AACH;AACJ;;AApG2B;;AAsGhC,SAASmlB,kBAAT,CAA4B5oF,GAA5B,EAAiC4I,GAAjC,EAAsCnM,KAAtC,EAA6C;AACzC,MAAI2sF,aAAJ;;AACA,MAAIppF,GAAG,YAAY8X,GAAnB,EAAwB;AACpBsxE,IAAAA,aAAa,GAAGppF,GAAG,CAAC6V,GAAJ,CAAQjN,GAAR,CAAhB;;AACA,QAAIwgF,aAAJ,EAAmB;AACf,UAAIA,aAAa,CAACtpF,MAAlB,EAA0B;AACtB,cAAM2jB,KAAK,GAAG2lE,aAAa,CAACpoF,OAAd,CAAsBvE,KAAtB,CAAd;AACA2sF,QAAAA,aAAa,CAAC9vE,MAAd,CAAqBmK,KAArB,EAA4B,CAA5B;AACH;;AACD,UAAI2lE,aAAa,CAACtpF,MAAd,IAAwB,CAA5B,EAA+B;AAC3BE,QAAAA,GAAG,CAAC2/E,MAAJ,CAAW/2E,GAAX;AACH;AACJ;AACJ,GAXD,MAYK;AACDwgF,IAAAA,aAAa,GAAGppF,GAAG,CAAC4I,GAAD,CAAnB;;AACA,QAAIwgF,aAAJ,EAAmB;AACf,UAAIA,aAAa,CAACtpF,MAAlB,EAA0B;AACtB,cAAM2jB,KAAK,GAAG2lE,aAAa,CAACpoF,OAAd,CAAsBvE,KAAtB,CAAd;AACA2sF,QAAAA,aAAa,CAAC9vE,MAAd,CAAqBmK,KAArB,EAA4B,CAA5B;AACH;;AACD,UAAI2lE,aAAa,CAACtpF,MAAd,IAAwB,CAA5B,EAA+B;AAC3B,eAAOE,GAAG,CAAC4I,GAAD,CAAV;AACH;AACJ;AACJ;;AACD,SAAOwgF,aAAP;AACH;;AACD,SAASrL,qBAAT,CAA+BthF,KAA/B,EAAsC;AAClC;AACA;AACA;AACA,SAAOA,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwB,IAA/B;AACH;;AACD,SAAS0mF,aAAT,CAAuBrvE,IAAvB,EAA6B;AACzB,SAAOA,IAAI,IAAIA,IAAI,CAAC,UAAD,CAAJ,KAAqB,CAApC;AACH;;AACD,SAAS4qE,mBAAT,CAA6B39E,SAA7B,EAAwC;AACpC,SAAOA,SAAS,IAAI,OAAb,IAAwBA,SAAS,IAAI,MAA5C;AACH;;AACD,SAASsoF,YAAT,CAAsBhnB,OAAtB,EAA+B5lE,KAA/B,EAAsC;AAClC,QAAM6sF,QAAQ,GAAGjnB,OAAO,CAAC/mC,KAAR,CAAcif,OAA/B;AACA8nB,EAAAA,OAAO,CAAC/mC,KAAR,CAAcif,OAAd,GAAwB99C,KAAK,IAAI,IAAT,GAAgBA,KAAhB,GAAwB,MAAhD;AACA,SAAO6sF,QAAP;AACH;;AACD,SAASlD,qBAAT,CAA+BmD,SAA/B,EAA0CpnB,MAA1C,EAAkDx2B,QAAlD,EAA4D69C,eAA5D,EAA6EC,YAA7E,EAA2F;AACvF,QAAMC,SAAS,GAAG,EAAlB;AACA/9C,EAAAA,QAAQ,CAACvrC,OAAT,CAAiBiiE,OAAO,IAAIqnB,SAAS,CAACjlF,IAAV,CAAe4kF,YAAY,CAAChnB,OAAD,CAA3B,CAA5B;AACA,QAAMsnB,cAAc,GAAG,EAAvB;AACAH,EAAAA,eAAe,CAACppF,OAAhB,CAAwB,CAAC+gD,KAAD,EAAQkhB,OAAR,KAAoB;AACxC,UAAMjnC,MAAM,GAAG,EAAf;AACA+lB,IAAAA,KAAK,CAAC/gD,OAAN,CAAci+B,IAAI,IAAI;AAClB,YAAM5hC,KAAK,GAAG2+B,MAAM,CAACiD,IAAD,CAAN,GAAe8jC,MAAM,CAAC6D,YAAP,CAAoB3D,OAApB,EAA6BhkC,IAA7B,EAAmCorD,YAAnC,CAA7B,CADkB,CAElB;AACA;;AACA,UAAI,CAAChtF,KAAD,IAAUA,KAAK,CAACqD,MAAN,IAAgB,CAA9B,EAAiC;AAC7BuiE,QAAAA,OAAO,CAACub,YAAD,CAAP,GAAwBD,0BAAxB;AACAgM,QAAAA,cAAc,CAACllF,IAAf,CAAoB49D,OAApB;AACH;AACJ,KARD;AASAknB,IAAAA,SAAS,CAACtlF,GAAV,CAAco+D,OAAd,EAAuBjnC,MAAvB;AACH,GAZD,EAJuF,CAiBvF;AACA;;AACA,MAAI52B,CAAC,GAAG,CAAR;AACAmnC,EAAAA,QAAQ,CAACvrC,OAAT,CAAiBiiE,OAAO,IAAIgnB,YAAY,CAAChnB,OAAD,EAAUqnB,SAAS,CAACllF,CAAC,EAAF,CAAnB,CAAxC;AACA,SAAOmlF,cAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS7E,YAAT,CAAsB8E,KAAtB,EAA6BnsC,KAA7B,EAAoC;AAChC,QAAMosC,OAAO,GAAG,IAAI/xE,GAAJ,EAAhB;AACA8xE,EAAAA,KAAK,CAACxpF,OAAN,CAAc+tB,IAAI,IAAI07D,OAAO,CAAC5lF,GAAR,CAAYkqB,IAAZ,EAAkB,EAAlB,CAAtB;AACA,MAAIsvB,KAAK,CAAC39C,MAAN,IAAgB,CAApB,EACI,OAAO+pF,OAAP;AACJ,QAAMC,SAAS,GAAG,CAAlB;AACA,QAAMC,OAAO,GAAG,IAAI1xE,GAAJ,CAAQolC,KAAR,CAAhB;AACA,QAAMusC,YAAY,GAAG,IAAIlyE,GAAJ,EAArB;;AACA,WAASmyE,OAAT,CAAiBn2E,IAAjB,EAAuB;AACnB,QAAI,CAACA,IAAL,EACI,OAAOg2E,SAAP;AACJ,QAAI37D,IAAI,GAAG67D,YAAY,CAACn0E,GAAb,CAAiB/B,IAAjB,CAAX;AACA,QAAIqa,IAAJ,EACI,OAAOA,IAAP;AACJ,UAAMqf,MAAM,GAAG15B,IAAI,CAAC2sB,UAApB;;AACA,QAAIopD,OAAO,CAACr6D,GAAR,CAAYge,MAAZ,CAAJ,EAAyB;AAAE;AACvBrf,MAAAA,IAAI,GAAGqf,MAAP;AACH,KAFD,MAGK,IAAIu8C,OAAO,CAACv6D,GAAR,CAAYge,MAAZ,CAAJ,EAAyB;AAAE;AAC5Brf,MAAAA,IAAI,GAAG27D,SAAP;AACH,KAFI,MAGA;AAAE;AACH37D,MAAAA,IAAI,GAAG87D,OAAO,CAACz8C,MAAD,CAAd;AACH;;AACDw8C,IAAAA,YAAY,CAAC/lF,GAAb,CAAiB6P,IAAjB,EAAuBqa,IAAvB;AACA,WAAOA,IAAP;AACH;;AACDsvB,EAAAA,KAAK,CAACr9C,OAAN,CAAc0T,IAAI,IAAI;AAClB,UAAMqa,IAAI,GAAG87D,OAAO,CAACn2E,IAAD,CAApB;;AACA,QAAIqa,IAAI,KAAK27D,SAAb,EAAwB;AACpBD,MAAAA,OAAO,CAACh0E,GAAR,CAAYsY,IAAZ,EAAkB1pB,IAAlB,CAAuBqP,IAAvB;AACH;AACJ,GALD;AAMA,SAAO+1E,OAAP;AACH;;AACD,SAASp4B,QAAT,CAAkB4Q,OAAlB,EAA2Bl4B,SAA3B,EAAsC;AAClC,MAAI45C,EAAJ;;AACA,GAACA,EAAE,GAAG1hB,OAAO,CAAC2hB,SAAd,MAA6B,IAA7B,IAAqCD,EAAE,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,EAAE,CAAC3wD,GAAH,CAAO+W,SAAP,CAA9D;AACH;;AACD,SAAS0nB,WAAT,CAAqBwQ,OAArB,EAA8Bl4B,SAA9B,EAAyC;AACrC,MAAI45C,EAAJ;;AACA,GAACA,EAAE,GAAG1hB,OAAO,CAAC2hB,SAAd,MAA6B,IAA7B,IAAqCD,EAAE,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,EAAE,CAACnvC,MAAH,CAAUzK,SAAV,CAA9D;AACH;;AACD,SAASu9C,6BAAT,CAAuC/G,MAAvC,EAA+Cte,OAA/C,EAAwDJ,OAAxD,EAAiE;AAC7DD,EAAAA,mBAAmB,CAACC,OAAD,CAAnB,CAA6BsB,MAA7B,CAAoC,MAAMod,MAAM,CAACL,gBAAP,CAAwBje,OAAxB,CAA1C;AACH;;AACD,SAASomB,mBAAT,CAA6BxmB,OAA7B,EAAsC;AAClC,QAAMioB,YAAY,GAAG,EAArB;;AACAC,EAAAA,yBAAyB,CAACloB,OAAD,EAAUioB,YAAV,CAAzB;;AACA,SAAOA,YAAP;AACH;;AACD,SAASC,yBAAT,CAAmCloB,OAAnC,EAA4CioB,YAA5C,EAA0D;AACtD,OAAK,IAAI1lF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGy9D,OAAO,CAACniE,MAA5B,EAAoC0E,CAAC,EAArC,EAAyC;AACrC,UAAM4+D,MAAM,GAAGnB,OAAO,CAACz9D,CAAD,CAAtB;;AACA,QAAI4+D,MAAM,YAAY/E,yEAAtB,EAA6C;AACzC8rB,MAAAA,yBAAyB,CAAC/mB,MAAM,CAACnB,OAAR,EAAiBioB,YAAjB,CAAzB;AACH,KAFD,MAGK;AACDA,MAAAA,YAAY,CAACzlF,IAAb,CAAkB2+D,MAAlB;AACH;AACJ;AACJ;;AACD,SAAS6b,SAAT,CAAmBt2E,CAAnB,EAAsB+7B,CAAtB,EAAyB;AACrB,QAAM0lD,EAAE,GAAG9pF,MAAM,CAACC,IAAP,CAAYoI,CAAZ,CAAX;AACA,QAAM0hF,EAAE,GAAG/pF,MAAM,CAACC,IAAP,CAAYmkC,CAAZ,CAAX;AACA,MAAI0lD,EAAE,CAACtqF,MAAH,IAAauqF,EAAE,CAACvqF,MAApB,EACI,OAAO,KAAP;;AACJ,OAAK,IAAI0E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4lF,EAAE,CAACtqF,MAAvB,EAA+B0E,CAAC,EAAhC,EAAoC;AAChC,UAAM65B,IAAI,GAAG+rD,EAAE,CAAC5lF,CAAD,CAAf;AACA,QAAI,CAACkgC,CAAC,CAACtU,cAAF,CAAiBiO,IAAjB,CAAD,IAA2B11B,CAAC,CAAC01B,IAAD,CAAD,KAAYqG,CAAC,CAACrG,IAAD,CAA5C,EACI,OAAO,KAAP;AACP;;AACD,SAAO,IAAP;AACH;;AACD,SAAS4nD,sBAAT,CAAgC5jB,OAAhC,EAAyCmiB,mBAAzC,EAA8DC,oBAA9D,EAAoF;AAChF,QAAM6F,SAAS,GAAG7F,oBAAoB,CAAC5uE,GAArB,CAAyBwsD,OAAzB,CAAlB;AACA,MAAI,CAACioB,SAAL,EACI,OAAO,KAAP;AACJ,MAAIC,QAAQ,GAAG/F,mBAAmB,CAAC3uE,GAApB,CAAwBwsD,OAAxB,CAAf;;AACA,MAAIkoB,QAAJ,EAAc;AACVD,IAAAA,SAAS,CAAClqF,OAAV,CAAkBO,IAAI,IAAI4pF,QAAQ,CAACn3D,GAAT,CAAazyB,IAAb,CAA1B;AACH,GAFD,MAGK;AACD6jF,IAAAA,mBAAmB,CAACvgF,GAApB,CAAwBo+D,OAAxB,EAAiCioB,SAAjC;AACH;;AACD7F,EAAAA,oBAAoB,CAAC9E,MAArB,CAA4Btd,OAA5B;AACA,SAAO,IAAP;AACH;;AAED,MAAMmoB,eAAN,CAAsB;AAClB5oF,EAAAA,WAAW,CAACq6E,QAAD,EAAWvP,OAAX,EAAoB2O,WAApB,EAAiC;AACxC,SAAKY,QAAL,GAAgBA,QAAhB;AACA,SAAKvP,OAAL,GAAeA,OAAf;AACA,SAAK2O,WAAL,GAAmBA,WAAnB;AACA,SAAKoP,aAAL,GAAqB,EAArB,CAJwC,CAKxC;;AACA,SAAKlI,iBAAL,GAAyB,CAAClgB,OAAD,EAAUxhC,OAAV,KAAsB,CAAG,CAAlD;;AACA,SAAK6pD,iBAAL,GAAyB,IAAI7I,yBAAJ,CAA8B5F,QAA9B,EAAwCvP,OAAxC,EAAiD2O,WAAjD,CAAzB;AACA,SAAKsP,eAAL,GAAuB,IAAI3O,uBAAJ,CAA4BC,QAA5B,EAAsCvP,OAAtC,EAA+C2O,WAA/C,CAAvB;;AACA,SAAKqP,iBAAL,CAAuBnI,iBAAvB,GAA2C,CAAClgB,OAAD,EAAUxhC,OAAV,KAAsB,KAAK0hD,iBAAL,CAAuBlgB,OAAvB,EAAgCxhC,OAAhC,CAAjE;AACH;;AACDmiD,EAAAA,eAAe,CAAC4H,WAAD,EAActN,WAAd,EAA2Bc,WAA3B,EAAwCx5E,IAAxC,EAA8CoD,QAA9C,EAAwD;AACnE,UAAM6iF,QAAQ,GAAGD,WAAW,GAAG,GAAd,GAAoBhmF,IAArC;AACA,QAAIg8C,OAAO,GAAG,KAAK6pC,aAAL,CAAmBI,QAAnB,CAAd;;AACA,QAAI,CAACjqC,OAAL,EAAc;AACV,YAAMt7C,MAAM,GAAG,EAAf;AACA,YAAMqlE,QAAQ,GAAG,EAAjB;AACA,YAAMkC,GAAG,GAAGP,iBAAiB,CAAC,KAAKI,OAAN,EAAe1kE,QAAf,EAAyB1C,MAAzB,EAAiCqlE,QAAjC,CAA7B;;AACA,UAAIrlE,MAAM,CAACxF,MAAX,EAAmB;AACf,cAAMkhE,kBAAkB,CAACp8D,IAAD,EAAOU,MAAP,CAAxB;AACH;;AACD,UAAIqlE,QAAQ,CAAC7qE,MAAb,EAAqB;AACjBgrE,QAAAA,gBAAgB,CAAClmE,IAAD,EAAO+lE,QAAP,CAAhB;AACH;;AACD/pB,MAAAA,OAAO,GAAGu6B,YAAY,CAACv2E,IAAD,EAAOioE,GAAP,EAAY,KAAKwO,WAAjB,CAAtB;AACA,WAAKoP,aAAL,CAAmBI,QAAnB,IAA+BjqC,OAA/B;AACH;;AACD,SAAK8pC,iBAAL,CAAuB1H,eAAvB,CAAuC1F,WAAvC,EAAoD14E,IAApD,EAA0Dg8C,OAA1D;AACH;;AACDw7B,EAAAA,QAAQ,CAACkB,WAAD,EAAcc,WAAd,EAA2B;AAC/B,SAAKsM,iBAAL,CAAuBtO,QAAvB,CAAgCkB,WAAhC,EAA6Cc,WAA7C;AACH;;AACD9+D,EAAAA,OAAO,CAACg+D,WAAD,EAAcz8C,OAAd,EAAuB;AAC1B,SAAK6pD,iBAAL,CAAuBprE,OAAvB,CAA+Bg+D,WAA/B,EAA4Cz8C,OAA5C;AACH;;AACDiqD,EAAAA,QAAQ,CAACxN,WAAD,EAAcjb,OAAd,EAAuB70B,MAAvB,EAA+BgY,YAA/B,EAA6C;AACjD,SAAKklC,iBAAL,CAAuBrJ,UAAvB,CAAkC/D,WAAlC,EAA+Cjb,OAA/C,EAAwD70B,MAAxD,EAAgEgY,YAAhE;AACH;;AACDulC,EAAAA,QAAQ,CAACzN,WAAD,EAAcjb,OAAd,EAAuBxhC,OAAvB,EAAgCyiD,aAAhC,EAA+C;AACnD,SAAKoH,iBAAL,CAAuBhK,UAAvB,CAAkCpD,WAAlC,EAA+Cjb,OAA/C,EAAwDihB,aAAa,IAAI,KAAzE,EAAgFziD,OAAhF;AACH;;AACDmqD,EAAAA,iBAAiB,CAAC3oB,OAAD,EAAUvtB,OAAV,EAAmB;AAChC,SAAK41C,iBAAL,CAAuBrH,qBAAvB,CAA6ChhB,OAA7C,EAAsDvtB,OAAtD;AACH;;AACDrzB,EAAAA,OAAO,CAAC67D,WAAD,EAAcjb,OAAd,EAAuB4oB,QAAvB,EAAiCxuF,KAAjC,EAAwC;AAC3C,QAAIwuF,QAAQ,CAAC5lB,MAAT,CAAgB,CAAhB,KAAsB,GAA1B,EAA+B;AAC3B,YAAM,CAAC39B,EAAD,EAAKy8B,MAAL,IAAeH,oBAAoB,CAACinB,QAAD,CAAzC;AACA,YAAM32E,IAAI,GAAG7X,KAAb;;AACA,WAAKkuF,eAAL,CAAqB1mB,OAArB,CAA6Bv8B,EAA7B,EAAiC26B,OAAjC,EAA0C8B,MAA1C,EAAkD7vD,IAAlD;AACH,KAJD,MAKK;AACD,WAAKo2E,iBAAL,CAAuB9pC,OAAvB,CAA+B08B,WAA/B,EAA4Cjb,OAA5C,EAAqD4oB,QAArD,EAA+DxuF,KAA/D;AACH;AACJ;;AACDggF,EAAAA,MAAM,CAACa,WAAD,EAAcjb,OAAd,EAAuBthE,SAAvB,EAAkCghD,UAAlC,EAA8C98B,QAA9C,EAAwD;AAC1D;AACA,QAAIlkB,SAAS,CAACskE,MAAV,CAAiB,CAAjB,KAAuB,GAA3B,EAAgC;AAC5B,YAAM,CAAC39B,EAAD,EAAKy8B,MAAL,IAAeH,oBAAoB,CAACjjE,SAAD,CAAzC;AACA,aAAO,KAAK4pF,eAAL,CAAqBlO,MAArB,CAA4B/0C,EAA5B,EAAgC26B,OAAhC,EAAyC8B,MAAzC,EAAiDl/C,QAAjD,CAAP;AACH;;AACD,WAAO,KAAKylE,iBAAL,CAAuBjO,MAAvB,CAA8Ba,WAA9B,EAA2Cjb,OAA3C,EAAoDthE,SAApD,EAA+DghD,UAA/D,EAA2E98B,QAA3E,CAAP;AACH;;AACDg/D,EAAAA,KAAK,CAAC1C,WAAW,GAAG,CAAC,CAAhB,EAAmB;AACpB,SAAKmJ,iBAAL,CAAuBzG,KAAvB,CAA6B1C,WAA7B;AACH;;AACU,MAAPtf,OAAO,GAAG;AACV,WAAO,KAAKyoB,iBAAL,CAAuBzoB,OAAvB,CACFpkE,MADE,CACK,KAAK8sF,eAAL,CAAqB1oB,OAD1B,CAAP;AAEH;;AACD6hB,EAAAA,iBAAiB,GAAG;AAChB,WAAO,KAAK4G,iBAAL,CAAuB5G,iBAAvB,EAAP;AACH;;AAxEiB;AA2EtB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoH,0BAAT,CAAoC7oB,OAApC,EAA6CjnC,MAA7C,EAAqD;AACjD,MAAI+vD,WAAW,GAAG,IAAlB;AACA,MAAIC,SAAS,GAAG,IAAhB;;AACA,MAAInrF,KAAK,CAACC,OAAN,CAAck7B,MAAd,KAAyBA,MAAM,CAACt7B,MAApC,EAA4C;AACxCqrF,IAAAA,WAAW,GAAGE,yBAAyB,CAACjwD,MAAM,CAAC,CAAD,CAAP,CAAvC;;AACA,QAAIA,MAAM,CAACt7B,MAAP,GAAgB,CAApB,EAAuB;AACnBsrF,MAAAA,SAAS,GAAGC,yBAAyB,CAACjwD,MAAM,CAACA,MAAM,CAACt7B,MAAP,GAAgB,CAAjB,CAAP,CAArC;AACH;AACJ,GALD,MAMK,IAAIs7B,MAAJ,EAAY;AACb+vD,IAAAA,WAAW,GAAGE,yBAAyB,CAACjwD,MAAD,CAAvC;AACH;;AACD,SAAQ+vD,WAAW,IAAIC,SAAhB,GAA6B,IAAIE,kBAAJ,CAAuBjpB,OAAvB,EAAgC8oB,WAAhC,EAA6CC,SAA7C,CAA7B,GACH,IADJ;AAEH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,kBAAN,CAAyB;AACrB1pF,EAAAA,WAAW,CAACikE,QAAD,EAAW0lB,YAAX,EAAyBC,UAAzB,EAAqC;AAC5C,SAAK3lB,QAAL,GAAgBA,QAAhB;AACA,SAAK0lB,YAAL,GAAoBA,YAApB;AACA,SAAKC,UAAL,GAAkBA,UAAlB;AACA,SAAKC,MAAL,GAAc;AAAE;AAAhB;AACA,QAAIC,aAAa,GAAGJ,kBAAkB,CAACK,sBAAnB,CAA0C91E,GAA1C,CAA8CgwD,QAA9C,CAApB;;AACA,QAAI,CAAC6lB,aAAL,EAAoB;AAChBJ,MAAAA,kBAAkB,CAACK,sBAAnB,CAA0C1nF,GAA1C,CAA8C4hE,QAA9C,EAAwD6lB,aAAa,GAAG,EAAxE;AACH;;AACD,SAAKE,cAAL,GAAsBF,aAAtB;AACH;;AACDroF,EAAAA,KAAK,GAAG;AACJ,QAAI,KAAKooF,MAAL,GAAc;AAAE;AAApB,MAAmC;AAC/B,UAAI,KAAKF,YAAT,EAAuB;AACnBhjB,QAAAA,SAAS,CAAC,KAAK1C,QAAN,EAAgB,KAAK0lB,YAArB,EAAmC,KAAKK,cAAxC,CAAT;AACH;;AACD,WAAKH,MAAL,GAAc;AAAE;AAAhB;AACH;AACJ;;AACDrmE,EAAAA,MAAM,GAAG;AACL,SAAK/hB,KAAL;;AACA,QAAI,KAAKooF,MAAL,GAAc;AAAE;AAApB,MAAoC;AAChCljB,MAAAA,SAAS,CAAC,KAAK1C,QAAN,EAAgB,KAAK+lB,cAArB,CAAT;;AACA,UAAI,KAAKJ,UAAT,EAAqB;AACjBjjB,QAAAA,SAAS,CAAC,KAAK1C,QAAN,EAAgB,KAAK2lB,UAArB,CAAT;AACA,aAAKA,UAAL,GAAkB,IAAlB;AACH;;AACD,WAAKC,MAAL,GAAc;AAAE;AAAhB;AACH;AACJ;;AACDnsE,EAAAA,OAAO,GAAG;AACN,SAAK8F,MAAL;;AACA,QAAI,KAAKqmE,MAAL,GAAc;AAAE;AAApB,MAAqC;AACjCH,MAAAA,kBAAkB,CAACK,sBAAnB,CAA0ChM,MAA1C,CAAiD,KAAK9Z,QAAtD;;AACA,UAAI,KAAK0lB,YAAT,EAAuB;AACnB7iB,QAAAA,WAAW,CAAC,KAAK7C,QAAN,EAAgB,KAAK0lB,YAArB,CAAX;AACA,aAAKC,UAAL,GAAkB,IAAlB;AACH;;AACD,UAAI,KAAKA,UAAT,EAAqB;AACjB9iB,QAAAA,WAAW,CAAC,KAAK7C,QAAN,EAAgB,KAAK2lB,UAArB,CAAX;AACA,aAAKA,UAAL,GAAkB,IAAlB;AACH;;AACDjjB,MAAAA,SAAS,CAAC,KAAK1C,QAAN,EAAgB,KAAK+lB,cAArB,CAAT;AACA,WAAKH,MAAL,GAAc;AAAE;AAAhB;AACH;AACJ;;AA9CoB;;AAgDzBH,kBAAkB,CAACK,sBAAnB,GAA8C,eAAe,IAAIhzE,OAAJ,EAA7D;;AACA,SAAS0yE,yBAAT,CAAmCjwD,MAAnC,EAA2C;AACvC,MAAIl+B,MAAM,GAAG,IAAb;AACA,QAAMikD,KAAK,GAAG7gD,MAAM,CAACC,IAAP,CAAY66B,MAAZ,CAAd;;AACA,OAAK,IAAI52B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG28C,KAAK,CAACrhD,MAA1B,EAAkC0E,CAAC,EAAnC,EAAuC;AACnC,UAAM65B,IAAI,GAAG8iB,KAAK,CAAC38C,CAAD,CAAlB;;AACA,QAAIqnF,oBAAoB,CAACxtD,IAAD,CAAxB,EAAgC;AAC5BnhC,MAAAA,MAAM,GAAGA,MAAM,IAAI,EAAnB;AACAA,MAAAA,MAAM,CAACmhC,IAAD,CAAN,GAAejD,MAAM,CAACiD,IAAD,CAArB;AACH;AACJ;;AACD,SAAOnhC,MAAP;AACH;;AACD,SAAS2uF,oBAAT,CAA8BxtD,IAA9B,EAAoC;AAChC,SAAOA,IAAI,KAAK,SAAT,IAAsBA,IAAI,KAAK,UAAtC;AACH;;AAED,MAAMytD,mBAAN,CAA0B;AACtBlqF,EAAAA,WAAW,CAACygE,OAAD,EAAUC,SAAV,EAAqB/kD,OAArB,EAA8BwuE,cAA9B,EAA8C;AACrD,SAAK1pB,OAAL,GAAeA,OAAf;AACA,SAAKC,SAAL,GAAiBA,SAAjB;AACA,SAAK/kD,OAAL,GAAeA,OAAf;AACA,SAAKwuE,cAAL,GAAsBA,cAAtB;AACA,SAAKC,UAAL,GAAkB,EAAlB;AACA,SAAKC,WAAL,GAAmB,EAAnB;AACA,SAAKC,aAAL,GAAqB,EAArB;AACA,SAAKC,YAAL,GAAoB,KAApB;AACA,SAAKC,SAAL,GAAiB,KAAjB;AACA,SAAKC,QAAL,GAAgB,KAAhB;AACA,SAAKC,UAAL,GAAkB,KAAlB;AACA,SAAKzuD,IAAL,GAAY,CAAZ;AACA,SAAKspD,YAAL,GAAoB,IAApB;AACA,SAAKoF,eAAL,GAAuB,EAAvB;AACA,SAAKC,SAAL,GAAiBjvE,OAAO,CAAC,UAAD,CAAxB;AACA,SAAKkvE,MAAL,GAAclvE,OAAO,CAAC,OAAD,CAAP,IAAoB,CAAlC;AACA,SAAKsgB,IAAL,GAAY,KAAK2uD,SAAL,GAAiB,KAAKC,MAAlC;AACH;;AACDC,EAAAA,SAAS,GAAG;AACR,QAAI,CAAC,KAAKN,SAAV,EAAqB;AACjB,WAAKA,SAAL,GAAiB,IAAjB;;AACA,WAAKJ,UAAL,CAAgB5rF,OAAhB,CAAwB2Y,EAAE,IAAIA,EAAE,EAAhC;;AACA,WAAKizE,UAAL,GAAkB,EAAlB;AACH;AACJ;;AACDlrD,EAAAA,IAAI,GAAG;AACH,SAAKu7C,YAAL;;AACA,SAAKsQ,yBAAL;AACH;;AACDtQ,EAAAA,YAAY,GAAG;AACX,QAAI,KAAK8P,YAAT,EACI;AACJ,SAAKA,YAAL,GAAoB,IAApB;AACA,UAAM7pB,SAAS,GAAG,KAAKA,SAAvB;AACA,SAAKsqB,SAAL,GACI,KAAKC,oBAAL,CAA0B,KAAKxqB,OAA/B,EAAwCC,SAAxC,EAAmD,KAAK/kD,OAAxD,CADJ;AAEA,SAAKuvE,cAAL,GAAsBxqB,SAAS,CAACxiE,MAAV,GAAmBwiE,SAAS,CAACA,SAAS,CAACxiE,MAAV,GAAmB,CAApB,CAA5B,GAAqD,EAA3E;AACA,SAAK8sF,SAAL,CAAe3iD,gBAAf,CAAgC,QAAhC,EAA0C,MAAM,KAAKyiD,SAAL,EAAhD;AACH;;AACDC,EAAAA,yBAAyB,GAAG;AACxB;AACA,QAAI,KAAKF,MAAT,EAAiB;AACb,WAAKM,oBAAL;AACH,KAFD,MAGK;AACD,WAAKH,SAAL,CAAevpE,KAAf;AACH;AACJ;AACD;;;AACAwpE,EAAAA,oBAAoB,CAACxqB,OAAD,EAAUC,SAAV,EAAqB/kD,OAArB,EAA8B;AAC9C;AACA;AACA,WAAO8kD,OAAO,CAAC,SAAD,CAAP,CAAmBC,SAAnB,EAA8B/kD,OAA9B,CAAP;AACH;;AACD8lD,EAAAA,OAAO,CAACtqD,EAAD,EAAK;AACR,SAAKkzE,WAAL,CAAiBxnF,IAAjB,CAAsBsU,EAAtB;AACH;;AACDwqD,EAAAA,MAAM,CAACxqD,EAAD,EAAK;AACP,SAAKizE,UAAL,CAAgBvnF,IAAhB,CAAqBsU,EAArB;AACH;;AACDyqD,EAAAA,SAAS,CAACzqD,EAAD,EAAK;AACV,SAAKmzE,aAAL,CAAmBznF,IAAnB,CAAwBsU,EAAxB;AACH;;AACD4jE,EAAAA,IAAI,GAAG;AACH,SAAKN,YAAL;;AACA,QAAI,CAAC,KAAK6M,UAAL,EAAL,EAAwB;AACpB,WAAK+C,WAAL,CAAiB7rF,OAAjB,CAAyB2Y,EAAE,IAAIA,EAAE,EAAjC;;AACA,WAAKkzE,WAAL,GAAmB,EAAnB;AACA,WAAKI,QAAL,GAAgB,IAAhB;;AACA,UAAI,KAAKN,cAAT,EAAyB;AACrB,aAAKA,cAAL,CAAoB1oF,KAApB;AACH;AACJ;;AACD,SAAKupF,SAAL,CAAejQ,IAAf;AACH;;AACDt5D,EAAAA,KAAK,GAAG;AACJ,SAAKyd,IAAL;AACA,SAAK8rD,SAAL,CAAevpE,KAAf;AACH;;AACD+B,EAAAA,MAAM,GAAG;AACL,SAAK0b,IAAL;;AACA,QAAI,KAAKirD,cAAT,EAAyB;AACrB,WAAKA,cAAL,CAAoB3mE,MAApB;AACH;;AACD,SAAKsnE,SAAL;;AACA,SAAKE,SAAL,CAAexnE,MAAf;AACH;;AACD4pB,EAAAA,KAAK,GAAG;AACJ,SAAK+9C,oBAAL;;AACA,SAAKT,UAAL,GAAkB,KAAlB;AACA,SAAKF,SAAL,GAAiB,KAAjB;AACA,SAAKC,QAAL,GAAgB,KAAhB;AACH;;AACDU,EAAAA,oBAAoB,GAAG;AACnB,QAAI,KAAKH,SAAT,EAAoB;AAChB,WAAKA,SAAL,CAAeI,MAAf;AACH;AACJ;;AACDpQ,EAAAA,OAAO,GAAG;AACN,SAAK5tC,KAAL;AACA,SAAK2tC,IAAL;AACH;;AACDuM,EAAAA,UAAU,GAAG;AACT,WAAO,KAAKmD,QAAZ;AACH;;AACD/sE,EAAAA,OAAO,GAAG;AACN,QAAI,CAAC,KAAKgtE,UAAV,EAAsB;AAClB,WAAKA,UAAL,GAAkB,IAAlB;;AACA,WAAKS,oBAAL;;AACA,WAAKL,SAAL;;AACA,UAAI,KAAKX,cAAT,EAAyB;AACrB,aAAKA,cAAL,CAAoBzsE,OAApB;AACH;;AACD,WAAK4sE,aAAL,CAAmB9rF,OAAnB,CAA2B2Y,EAAE,IAAIA,EAAE,EAAnC;;AACA,WAAKmzE,aAAL,GAAqB,EAArB;AACH;AACJ;;AACDrP,EAAAA,WAAW,CAACjsE,CAAD,EAAI;AACX,QAAI,KAAKg8E,SAAL,KAAmBriF,SAAvB,EAAkC;AAC9B,WAAKu2B,IAAL;AACH;;AACD,SAAK8rD,SAAL,CAAel+B,WAAf,GAA6B99C,CAAC,GAAG,KAAKitB,IAAtC;AACH;;AACDsrD,EAAAA,WAAW,GAAG;AACV,WAAO,KAAKyD,SAAL,CAAel+B,WAAf,GAA6B,KAAK7wB,IAAzC;AACH;;AACY,MAAT6lC,SAAS,GAAG;AACZ,WAAO,KAAK+oB,MAAL,GAAc,KAAKD,SAA1B;AACH;;AACDpE,EAAAA,aAAa,GAAG;AACZ,UAAMhtD,MAAM,GAAG,EAAf;;AACA,QAAI,KAAK8tD,UAAL,EAAJ,EAAuB;AACnB;AACA;AACA;AACA,YAAMlS,aAAa,GAAG,KAAK8V,cAA3B;AACAxsF,MAAAA,MAAM,CAACC,IAAP,CAAYy2E,aAAZ,EAA2B52E,OAA3B,CAAmCi+B,IAAI,IAAI;AACvC,YAAIA,IAAI,IAAI,QAAZ,EAAsB;AAClBjD,UAAAA,MAAM,CAACiD,IAAD,CAAN,GAAe,KAAK+tD,SAAL,GAAiBpV,aAAa,CAAC34C,IAAD,CAA9B,GAAuC2nC,YAAY,CAAC,KAAK3D,OAAN,EAAehkC,IAAf,CAAlE;AACH;AACJ,OAJD;AAKH;;AACD,SAAKkuD,eAAL,GAAuBnxD,MAAvB;AACH;AACD;;;AACA4tD,EAAAA,eAAe,CAACvlB,SAAD,EAAY;AACvB,UAAMwpB,OAAO,GAAGxpB,SAAS,IAAI,OAAb,GAAuB,KAAKwoB,WAA5B,GAA0C,KAAKD,UAA/D;AACAiB,IAAAA,OAAO,CAAC7sF,OAAR,CAAgB2Y,EAAE,IAAIA,EAAE,EAAxB;AACAk0E,IAAAA,OAAO,CAACntF,MAAR,GAAiB,CAAjB;AACH;;AAvJqB;;AA0J1B,MAAMotF,mBAAN,CAA0B;AACtBhoB,EAAAA,qBAAqB,CAAC7mC,IAAD,EAAO;AACxB,WAAO6mC,qBAAqB,CAAC7mC,IAAD,CAA5B;AACH;;AACDunC,EAAAA,cAAc,CAACC,QAAD,EAAWC,SAAX,EAAsB;AAChC;AACA,WAAO,KAAP;AACH;;AACDR,EAAAA,eAAe,CAAChB,IAAD,EAAOC,IAAP,EAAa;AACxB,WAAOe,eAAe,CAAChB,IAAD,EAAOC,IAAP,CAAtB;AACH;;AACDI,EAAAA,gBAAgB,CAACtC,OAAD,EAAU;AACtB,WAAOsC,gBAAgB,CAACtC,OAAD,CAAvB;AACH;;AACD0D,EAAAA,KAAK,CAAC1D,OAAD,EAAU58D,QAAV,EAAoBg/D,KAApB,EAA2B;AAC5B,WAAOc,WAAW,CAAClD,OAAD,EAAU58D,QAAV,EAAoBg/D,KAApB,CAAlB;AACH;;AACDuB,EAAAA,YAAY,CAAC3D,OAAD,EAAUhkC,IAAV,EAAgB4T,YAAhB,EAA8B;AACtC,WAAOn2B,MAAM,CAACwqC,gBAAP,CAAwB+b,OAAxB,EAAiChkC,IAAjC,CAAP;AACH;;AACDkxB,EAAAA,OAAO,CAAC8S,OAAD,EAAUC,SAAV,EAAqB9gE,QAArB,EAA+B6uD,KAA/B,EAAsCvE,MAAtC,EAA8Cma,eAAe,GAAG,EAAhE,EAAoE;AACvE,UAAMknB,IAAI,GAAG98B,KAAK,IAAI,CAAT,GAAa,MAAb,GAAsB,UAAnC;AACA,UAAM+8B,aAAa,GAAG;AAAE5rF,MAAAA,QAAF;AAAY6uD,MAAAA,KAAZ;AAAmB88B,MAAAA;AAAnB,KAAtB,CAFuE,CAGvE;AACA;;AACA,QAAIrhC,MAAJ,EAAY;AACRshC,MAAAA,aAAa,CAAC,QAAD,CAAb,GAA0BthC,MAA1B;AACH;;AACD,UAAMwd,cAAc,GAAG,EAAvB;AACA,UAAM+jB,2BAA2B,GAAGpnB,eAAe,CAAC5jE,MAAhB,CAAuB+gE,MAAM,IAAIA,MAAM,YAAY0oB,mBAAnD,CAApC;;AACA,QAAI1iB,8BAA8B,CAAC5nE,QAAD,EAAW6uD,KAAX,CAAlC,EAAqD;AACjDg9B,MAAAA,2BAA2B,CAACjtF,OAA5B,CAAoCgjE,MAAM,IAAI;AAC1C,YAAIhoC,MAAM,GAAGgoC,MAAM,CAACmpB,eAApB;AACAjsF,QAAAA,MAAM,CAACC,IAAP,CAAY66B,MAAZ,EAAoBh7B,OAApB,CAA4Bi+B,IAAI,IAAIirC,cAAc,CAACjrC,IAAD,CAAd,GAAuBjD,MAAM,CAACiD,IAAD,CAAjE;AACH,OAHD;AAIH;;AACDikC,IAAAA,SAAS,GAAGA,SAAS,CAACtiE,GAAV,CAAco7B,MAAM,IAAI2sC,UAAU,CAAC3sC,MAAD,EAAS,KAAT,CAAlC,CAAZ;AACAknC,IAAAA,SAAS,GAAG+G,kCAAkC,CAAChH,OAAD,EAAUC,SAAV,EAAqBgH,cAArB,CAA9C;AACA,UAAMgkB,aAAa,GAAGpC,0BAA0B,CAAC7oB,OAAD,EAAUC,SAAV,CAAhD;AACA,WAAO,IAAIwpB,mBAAJ,CAAwBzpB,OAAxB,EAAiCC,SAAjC,EAA4C8qB,aAA5C,EAA2DE,aAA3D,CAAP;AACH;;AAxCqB;AA2C1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACt1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;AACA,MAAM0D,YAAY,GAAG,GAArB;AACA;AACA;AACA;AACA;;AACA,SAASC,mBAAT,CAA6BvoD,EAA7B,EAAiCkD,IAAjC,EAAuClE,EAAvC,EAA2C;AACvC,QAAMwpD,GAAG,GAAGC,mBAAmB,CAACzoD,EAAD,EAAKkD,IAAL,CAA/B;;AACA,MAAIslD,GAAG,CAACxgB,IAAJ,CAAS0gB,UAAU,IAAIA,UAAU,CAACtzB,IAAX,MAAqBp2B,EAAE,CAACo2B,IAAH,EAA5C,CAAJ,EAA4D;AACxD;AACH;;AACDozB,EAAAA,GAAG,CAACzsF,IAAJ,CAASijC,EAAE,CAACo2B,IAAH,EAAT;AACAp1B,EAAAA,EAAE,CAACnI,YAAH,CAAgBqL,IAAhB,EAAsBslD,GAAG,CAACzwF,IAAJ,CAASuwF,YAAT,CAAtB;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASK,sBAAT,CAAgC3oD,EAAhC,EAAoCkD,IAApC,EAA0ClE,EAA1C,EAA8C;AAC1C,QAAMwpD,GAAG,GAAGC,mBAAmB,CAACzoD,EAAD,EAAKkD,IAAL,CAA/B;AACA,QAAM0lD,WAAW,GAAGJ,GAAG,CAAC7uF,MAAJ,CAAWm5B,GAAG,IAAIA,GAAG,IAAIkM,EAAE,CAACo2B,IAAH,EAAzB,CAApB;;AACA,MAAIwzB,WAAW,CAACxxF,MAAhB,EAAwB;AACpB4oC,IAAAA,EAAE,CAACnI,YAAH,CAAgBqL,IAAhB,EAAsB0lD,WAAW,CAAC7wF,IAAZ,CAAiBuwF,YAAjB,CAAtB;AACH,GAFD,MAGK;AACDtoD,IAAAA,EAAE,CAACJ,eAAH,CAAmBsD,IAAnB;AACH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAASulD,mBAAT,CAA6BzoD,EAA7B,EAAiCkD,IAAjC,EAAuC;AACnC;AACA,SAAO,CAAClD,EAAE,CAACpI,YAAH,CAAgBsL,IAAhB,KAAyB,EAA1B,EAA8BhoC,KAA9B,CAAoC,MAApC,KAA+C,EAAtD;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2tF,qBAAqB,GAAG,mCAA9B;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,yBAAyB,GAAG,yBAAlC;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,8BAA8B,GAAG,sBAAvC;AACA;;AACA,IAAIC,MAAM,GAAG,CAAb;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,aAAN,CAAoB;AAChB/vF,EAAAA,WAAW,CAACgwF,SAAD;AACX;AACJ;AACA;AACA;AACIC,EAAAA,SALW,EAKA;AACP,SAAKA,SAAL,GAAiBA,SAAjB;AACA;;AACA,SAAKC,gBAAL,GAAwB,IAAIh6E,GAAJ,EAAxB;AACA;;AACA,SAAKi6E,kBAAL,GAA0B,IAA1B;AACA;;AACA,SAAKC,GAAL,GAAY,GAAEN,MAAM,EAAG,EAAvB;AACA,SAAKE,SAAL,GAAiBA,SAAjB;AACH;;AACDK,EAAAA,QAAQ,CAAC7T,WAAD,EAAchzE,OAAd,EAAuB8mF,IAAvB,EAA6B;AACjC,QAAI,CAAC,KAAKC,eAAL,CAAqB/T,WAArB,EAAkChzE,OAAlC,CAAL,EAAiD;AAC7C;AACH;;AACD,UAAMxC,GAAG,GAAGwpF,MAAM,CAAChnF,OAAD,EAAU8mF,IAAV,CAAlB;;AACA,QAAI,OAAO9mF,OAAP,KAAmB,QAAvB,EAAiC;AAC7B;AACAinF,MAAAA,YAAY,CAACjnF,OAAD,CAAZ;;AACA,WAAK0mF,gBAAL,CAAsB7tF,GAAtB,CAA0B2E,GAA1B,EAA+B;AAAE0pF,QAAAA,cAAc,EAAElnF,OAAlB;AAA2BmnF,QAAAA,cAAc,EAAE;AAA3C,OAA/B;AACH,KAJD,MAKK,IAAI,CAAC,KAAKT,gBAAL,CAAsBtiE,GAAtB,CAA0B5mB,GAA1B,CAAL,EAAqC;AACtC,WAAK4pF,qBAAL,CAA2BpnF,OAA3B,EAAoC8mF,IAApC;AACH;;AACD,QAAI,CAAC,KAAKO,4BAAL,CAAkCrU,WAAlC,EAA+Cx1E,GAA/C,CAAL,EAA0D;AACtD,WAAK8pF,oBAAL,CAA0BtU,WAA1B,EAAuCx1E,GAAvC;AACH;AACJ;;AACD+pF,EAAAA,iBAAiB,CAACvU,WAAD,EAAchzE,OAAd,EAAuB8mF,IAAvB,EAA6B;AAC1C,QAAInO,EAAJ;;AACA,QAAI,CAAC34E,OAAD,IAAY,CAAC,KAAKwnF,cAAL,CAAoBxU,WAApB,CAAjB,EAAmD;AAC/C;AACH;;AACD,UAAMx1E,GAAG,GAAGwpF,MAAM,CAAChnF,OAAD,EAAU8mF,IAAV,CAAlB;;AACA,QAAI,KAAKO,4BAAL,CAAkCrU,WAAlC,EAA+Cx1E,GAA/C,CAAJ,EAAyD;AACrD,WAAKiqF,uBAAL,CAA6BzU,WAA7B,EAA0Cx1E,GAA1C;AACH,KARyC,CAS1C;AACA;;;AACA,QAAI,OAAOwC,OAAP,KAAmB,QAAvB,EAAiC;AAC7B,YAAM0nF,iBAAiB,GAAG,KAAKhB,gBAAL,CAAsBj8E,GAAtB,CAA0BjN,GAA1B,CAA1B;;AACA,UAAIkqF,iBAAiB,IAAIA,iBAAiB,CAACP,cAAlB,KAAqC,CAA9D,EAAiE;AAC7D,aAAKQ,qBAAL,CAA2BnqF,GAA3B;AACH;AACJ;;AACD,QAAI,CAAC,CAACm7E,EAAE,GAAG,KAAKgO,kBAAX,MAAmC,IAAnC,IAA2ChO,EAAE,KAAK,KAAK,CAAvD,GAA2D,KAAK,CAAhE,GAAoEA,EAAE,CAAC98C,UAAH,CAAcnnC,MAAnF,MAA+F,CAAnG,EAAsG;AAClG,WAAKiyF,kBAAL,CAAwBn9C,MAAxB;;AACA,WAAKm9C,kBAAL,GAA0B,IAA1B;AACH;AACJ;AACD;;;AACAiB,EAAAA,WAAW,GAAG;AACV,QAAIjP,EAAJ;;AACA,UAAMkP,iBAAiB,GAAG,KAAKrB,SAAL,CAAexpD,gBAAf,CAAiC,IAAGqpD,8BAA+B,KAAI,KAAKO,GAAI,IAAhF,CAA1B;;AACA,SAAK,IAAIxtF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyuF,iBAAiB,CAACnzF,MAAtC,EAA8C0E,CAAC,EAA/C,EAAmD;AAC/C,WAAK0uF,iCAAL,CAAuCD,iBAAiB,CAACzuF,CAAD,CAAxD;;AACAyuF,MAAAA,iBAAiB,CAACzuF,CAAD,CAAjB,CAAqB8jC,eAArB,CAAqCmpD,8BAArC;AACH;;AACD,KAAC1N,EAAE,GAAG,KAAKgO,kBAAX,MAAmC,IAAnC,IAA2ChO,EAAE,KAAK,KAAK,CAAvD,GAA2D,KAAK,CAAhE,GAAoEA,EAAE,CAACnvC,MAAH,EAApE;AACA,SAAKm9C,kBAAL,GAA0B,IAA1B;;AACA,SAAKD,gBAAL,CAAsBjxE,KAAtB;AACH;AACD;AACJ;AACA;AACA;;;AACI2xE,EAAAA,qBAAqB,CAACpnF,OAAD,EAAU8mF,IAAV,EAAgB;AACjC,UAAMI,cAAc,GAAG,KAAKV,SAAL,CAAexxD,aAAf,CAA6B,KAA7B,CAAvB;;AACAiyD,IAAAA,YAAY,CAACC,cAAD,CAAZ;AACAA,IAAAA,cAAc,CAACnmD,WAAf,GAA6B/gC,OAA7B;;AACA,QAAI8mF,IAAJ,EAAU;AACNI,MAAAA,cAAc,CAAC/xD,YAAf,CAA4B,MAA5B,EAAoC2xD,IAApC;AACH;;AACD,SAAKiB,wBAAL;;AACA,SAAKpB,kBAAL,CAAwBvxD,WAAxB,CAAoC8xD,cAApC;;AACA,SAAKR,gBAAL,CAAsB7tF,GAAtB,CAA0BmuF,MAAM,CAAChnF,OAAD,EAAU8mF,IAAV,CAAhC,EAAiD;AAAEI,MAAAA,cAAF;AAAkBC,MAAAA,cAAc,EAAE;AAAlC,KAAjD;AACH;AACD;;;AACAQ,EAAAA,qBAAqB,CAACnqF,GAAD,EAAM;AACvB,QAAIm7E,EAAJ,EAAQqP,EAAR;;AACA,KAACA,EAAE,GAAG,CAACrP,EAAE,GAAG,KAAK+N,gBAAL,CAAsBj8E,GAAtB,CAA0BjN,GAA1B,CAAN,MAA0C,IAA1C,IAAkDm7E,EAAE,KAAK,KAAK,CAA9D,GAAkE,KAAK,CAAvE,GAA2EA,EAAE,CAACuO,cAApF,MAAwG,IAAxG,IAAgHc,EAAE,KAAK,KAAK,CAA5H,GAAgI,KAAK,CAArI,GAAyIA,EAAE,CAACx+C,MAAH,EAAzI;;AACA,SAAKk9C,gBAAL,CAAsBnS,MAAtB,CAA6B/2E,GAA7B;AACH;AACD;;;AACAuqF,EAAAA,wBAAwB,GAAG;AACvB,QAAI,KAAKpB,kBAAT,EAA6B;AACzB;AACH;;AACD,UAAMsB,kBAAkB,GAAG,mCAA3B;;AACA,UAAMC,gBAAgB,GAAG,KAAK1B,SAAL,CAAexpD,gBAAf,CAAiC,IAAGirD,kBAAmB,qBAAvD,CAAzB;;AACA,SAAK,IAAI7uF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8uF,gBAAgB,CAACxzF,MAArC,EAA6C0E,CAAC,EAA9C,EAAkD;AAC9C;AACA;AACA;AACA;AACA8uF,MAAAA,gBAAgB,CAAC9uF,CAAD,CAAhB,CAAoBowC,MAApB;AACH;;AACD,UAAM2+C,iBAAiB,GAAG,KAAK3B,SAAL,CAAexxD,aAAf,CAA6B,KAA7B,CAA1B,CAbuB,CAcvB;AACA;AACA;AACA;;;AACAmzD,IAAAA,iBAAiB,CAACj4D,KAAlB,CAAwBuuB,UAAxB,GAAqC,QAArC,CAlBuB,CAmBvB;AACA;;AACA0pC,IAAAA,iBAAiB,CAACvP,SAAlB,CAA4B5wD,GAA5B,CAAgCigE,kBAAhC;AACAE,IAAAA,iBAAiB,CAACvP,SAAlB,CAA4B5wD,GAA5B,CAAgC,qBAAhC,EAtBuB,CAuBvB;;AACA,QAAI,KAAKy+D,SAAL,IAAkB,CAAC,KAAKA,SAAL,CAAe/vB,SAAtC,EAAiD;AAC7CyxB,MAAAA,iBAAiB,CAAChzD,YAAlB,CAA+B,UAA/B,EAA2C,QAA3C;AACH;;AACD,SAAKqxD,SAAL,CAAet2C,IAAf,CAAoB9a,WAApB,CAAgC+yD,iBAAhC;;AACA,SAAKxB,kBAAL,GAA0BwB,iBAA1B;AACH;AACD;;;AACAL,EAAAA,iCAAiC,CAAC7wB,OAAD,EAAU;AACvC;AACA,UAAMmxB,oBAAoB,GAAGrC,mBAAmB,CAAC9uB,OAAD,EAAU,kBAAV,CAAnB,CAAiDhgE,MAAjD,CAAwDqlC,EAAE,IAAIA,EAAE,CAAC1mC,OAAH,CAAWwwF,yBAAX,KAAyC,CAAvG,CAA7B;AACAnvB,IAAAA,OAAO,CAAC9hC,YAAR,CAAqB,kBAArB,EAAyCizD,oBAAoB,CAAC/yF,IAArB,CAA0B,GAA1B,CAAzC;AACH;AACD;AACJ;AACA;AACA;;;AACIiyF,EAAAA,oBAAoB,CAACrwB,OAAD,EAAUz5D,GAAV,EAAe;AAC/B,UAAMkqF,iBAAiB,GAAG,KAAKhB,gBAAL,CAAsBj8E,GAAtB,CAA0BjN,GAA1B,CAA1B,CAD+B,CAE/B;AACA;;;AACAqoF,IAAAA,mBAAmB,CAAC5uB,OAAD,EAAU,kBAAV,EAA8BywB,iBAAiB,CAACR,cAAlB,CAAiC5qD,EAA/D,CAAnB;AACA26B,IAAAA,OAAO,CAAC9hC,YAAR,CAAqBkxD,8BAArB,EAAqD,KAAKO,GAA1D;AACAc,IAAAA,iBAAiB,CAACP,cAAlB;AACH;AACD;AACJ;AACA;AACA;;;AACIM,EAAAA,uBAAuB,CAACxwB,OAAD,EAAUz5D,GAAV,EAAe;AAClC,UAAMkqF,iBAAiB,GAAG,KAAKhB,gBAAL,CAAsBj8E,GAAtB,CAA0BjN,GAA1B,CAA1B;;AACAkqF,IAAAA,iBAAiB,CAACP,cAAlB;AACAlB,IAAAA,sBAAsB,CAAChvB,OAAD,EAAU,kBAAV,EAA8BywB,iBAAiB,CAACR,cAAlB,CAAiC5qD,EAA/D,CAAtB;AACA26B,IAAAA,OAAO,CAAC/5B,eAAR,CAAwBmpD,8BAAxB;AACH;AACD;;;AACAgB,EAAAA,4BAA4B,CAACpwB,OAAD,EAAUz5D,GAAV,EAAe;AACvC,UAAM6qF,YAAY,GAAGtC,mBAAmB,CAAC9uB,OAAD,EAAU,kBAAV,CAAxC;;AACA,UAAMywB,iBAAiB,GAAG,KAAKhB,gBAAL,CAAsBj8E,GAAtB,CAA0BjN,GAA1B,CAA1B;;AACA,UAAM8qF,SAAS,GAAGZ,iBAAiB,IAAIA,iBAAiB,CAACR,cAAlB,CAAiC5qD,EAAxE;AACA,WAAO,CAAC,CAACgsD,SAAF,IAAeD,YAAY,CAACzyF,OAAb,CAAqB0yF,SAArB,KAAmC,CAAC,CAA1D;AACH;AACD;;;AACAvB,EAAAA,eAAe,CAAC9vB,OAAD,EAAUj3D,OAAV,EAAmB;AAC9B,QAAI,CAAC,KAAKwnF,cAAL,CAAoBvwB,OAApB,CAAL,EAAmC;AAC/B,aAAO,KAAP;AACH;;AACD,QAAIj3D,OAAO,IAAI,OAAOA,OAAP,KAAmB,QAAlC,EAA4C;AACxC;AACA;AACA;AACA,aAAO,IAAP;AACH;;AACD,UAAMuoF,cAAc,GAAGvoF,OAAO,IAAI,IAAX,GAAkB,EAAlB,GAAwB,GAAEA,OAAQ,EAAX,CAAa0yD,IAAb,EAA9C;AACA,UAAM81B,SAAS,GAAGvxB,OAAO,CAAC/hC,YAAR,CAAqB,YAArB,CAAlB,CAX8B,CAY9B;AACA;;AACA,WAAOqzD,cAAc,GAAG,CAACC,SAAD,IAAcA,SAAS,CAAC91B,IAAV,OAAqB61B,cAAtC,GAAuD,KAA5E;AACH;AACD;;;AACAf,EAAAA,cAAc,CAACvwB,OAAD,EAAU;AACpB,WAAOA,OAAO,CAACh0C,QAAR,KAAqB,KAAKujE,SAAL,CAAeiC,YAA3C;AACH;;AA9Ke;;AAgLpBlC,aAAa,CAACxrB,IAAd;AAAA,mBAA0GwrB,aAA1G,EAAgGjzB,sDAAhG,CAAyI0vB,qDAAzI,GAAgG1vB,sDAAhG,CAA8JmwB,2DAA9J;AAAA;;AACA8C,aAAa,CAACvrB,KAAd,kBADgG1H,gEAChG;AAAA,SAA8GizB,aAA9G;AAAA,WAA8GA,aAA9G;AAAA,cAAyI;AAAzI;;AACA;AAAA,qDAFgGjzB,+DAEhG,CAA2FizB,aAA3F,EAAsH,CAAC;AAC3GxvF,IAAAA,IAAI,EAAEy8D,qDADqG;AAE3GtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFqG,GAAD,CAAtH,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACxB7xF,QAAAA,IAAI,EAAEksF,iDADkB;AAExB/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFkB,OAAD;AAA/B,KAAD,EAGW;AAAEjsF,MAAAA,IAAI,EAAE0sF,2DAAWiF;AAAnB,KAHX,CAAP;AAIH,GARL;AAAA;AASA;;;AACA,SAAS1B,MAAT,CAAgBhnF,OAAhB,EAAyB8mF,IAAzB,EAA+B;AAC3B,SAAO,OAAO9mF,OAAP,KAAmB,QAAnB,GAA+B,GAAE8mF,IAAI,IAAI,EAAG,IAAG9mF,OAAQ,EAAvD,GAA2DA,OAAlE;AACH;AACD;;;AACA,SAASinF,YAAT,CAAsBhwB,OAAtB,EAA+B;AAC3B,MAAI,CAACA,OAAO,CAAC36B,EAAb,EAAiB;AACb26B,IAAAA,OAAO,CAAC36B,EAAR,GAAc,GAAE8pD,yBAA0B,IAAGE,MAAM,EAAG,EAAtD;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMuC,cAAN,CAAqB;AACjBryF,EAAAA,WAAW,CAACsyF,MAAD,EAAS;AAChB,SAAKA,MAAL,GAAcA,MAAd;AACA,SAAKC,gBAAL,GAAwB,CAAC,CAAzB;AACA,SAAKC,WAAL,GAAmB,IAAnB;AACA,SAAKC,KAAL,GAAa,KAAb;AACA,SAAKC,gBAAL,GAAwB,IAAIpF,yCAAJ,EAAxB;AACA,SAAKqF,sBAAL,GAA8BpF,oDAA9B;AACA,SAAKsF,SAAL,GAAiB,IAAjB;AACA,SAAKC,oBAAL,GAA4B,EAA5B;AACA,SAAKC,WAAL,GAAmB,KAAnB;AACA;AACR;AACA;AACA;;AACQ,SAAKC,gBAAL,GAAyB/0D,IAAD,IAAUA,IAAI,CAACiH,QAAvC,CAdgB,CAehB;;;AACA,SAAK+tD,eAAL,GAAuB,EAAvB;AACA;AACR;AACA;AACA;;AACQ,SAAKC,MAAL,GAAc,IAAI5F,yCAAJ,EAAd;AACA;;AACA,SAAK6F,MAAL,GAAc,IAAI7F,yCAAJ,EAAd,CAvBgB,CAwBhB;AACA;AACA;;AACA,QAAIgF,MAAM,YAAY5F,oDAAtB,EAAiC;AAC7B4F,MAAAA,MAAM,CAACc,OAAP,CAAeC,SAAf,CAA0BC,QAAD,IAAc;AACnC,YAAI,KAAKd,WAAT,EAAsB;AAClB,gBAAMe,SAAS,GAAGD,QAAQ,CAACl0D,OAAT,EAAlB;AACA,gBAAMo0D,QAAQ,GAAGD,SAAS,CAACn0F,OAAV,CAAkB,KAAKozF,WAAvB,CAAjB;;AACA,cAAIgB,QAAQ,GAAG,CAAC,CAAZ,IAAiBA,QAAQ,KAAK,KAAKjB,gBAAvC,EAAyD;AACrD,iBAAKA,gBAAL,GAAwBiB,QAAxB;AACH;AACJ;AACJ,OARD;AASH;AACJ;AACD;AACJ;AACA;AACA;AACA;;;AACIC,EAAAA,aAAa,CAACtmE,SAAD,EAAY;AACrB,SAAK6lE,gBAAL,GAAwB7lE,SAAxB;AACA,WAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACIumE,EAAAA,QAAQ,CAACC,UAAU,GAAG,IAAd,EAAoB;AACxB,SAAKlB,KAAL,GAAakB,UAAb;AACA,WAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;;;AACIC,EAAAA,uBAAuB,CAACC,OAAO,GAAG,IAAX,EAAiB;AACpC,SAAKhB,SAAL,GAAiBgB,OAAjB;AACA,WAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACIC,EAAAA,yBAAyB,CAACC,SAAD,EAAY;AACjC,SAAKC,WAAL,GAAmBD,SAAnB;AACA,WAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;;;AACIE,EAAAA,uBAAuB,CAACt1F,IAAD,EAAO;AAC1B,SAAKm0F,oBAAL,GAA4Bn0F,IAA5B;AACA,WAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;;;AACIu1F,EAAAA,aAAa,CAACC,gBAAgB,GAAG,GAApB,EAAyB;AAClC,QAAI,CAAC,OAAOj3B,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KACA,KAAKo1B,MAAL,CAAYp0F,MADZ,IAEA,KAAKo0F,MAAL,CAAYxjB,IAAZ,CAAiB7wC,IAAI,IAAI,OAAOA,IAAI,CAACm2D,QAAZ,KAAyB,UAAlD,CAFJ,EAEmE;AAC/D,YAAM70F,KAAK,CAAC,8EAAD,CAAX;AACH;;AACD,SAAKozF,sBAAL,CAA4B0B,WAA5B,GANkC,CAOlC;AACA;AACA;;;AACA,SAAK1B,sBAAL,GAA8B,KAAKD,gBAAL,CACzBxyE,IADyB,CACpByuE,mDAAG,CAAC/3C,MAAM,IAAI,KAAKq8C,eAAL,CAAqBpwF,IAArB,CAA0B+zC,MAA1B,CAAX,CADiB,EAC8Bg4C,4DAAY,CAACuF,gBAAD,CAD1C,EAC8D1zF,sDAAM,CAAC,MAAM,KAAKwyF,eAAL,CAAqB/0F,MAArB,GAA8B,CAArC,CADpE,EAC6GE,mDAAG,CAAC,MAAM,KAAK60F,eAAL,CAAqBp0F,IAArB,CAA0B,EAA1B,CAAP,CADhH,EAEzBw0F,SAFyB,CAEfiB,WAAW,IAAI;AAC1B,YAAMC,KAAK,GAAG,KAAKC,cAAL,EAAd,CAD0B,CAE1B;AACA;;;AACA,WAAK,IAAI5xF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2xF,KAAK,CAACr2F,MAAN,GAAe,CAAnC,EAAsC0E,CAAC,EAAvC,EAA2C;AACvC,cAAMif,KAAK,GAAG,CAAC,KAAK0wE,gBAAL,GAAwB3vF,CAAzB,IAA8B2xF,KAAK,CAACr2F,MAAlD;AACA,cAAM+/B,IAAI,GAAGs2D,KAAK,CAAC1yE,KAAD,CAAlB;;AACA,YAAI,CAAC,KAAKmxE,gBAAL,CAAsB/0D,IAAtB,CAAD,IACAA,IAAI,CAACm2D,QAAL,GAAgB17D,WAAhB,GAA8BwjC,IAA9B,GAAqC98D,OAArC,CAA6Ck1F,WAA7C,MAA8D,CADlE,EACqE;AACjE,eAAKG,aAAL,CAAmB5yE,KAAnB;AACA;AACH;AACJ;;AACD,WAAKoxE,eAAL,GAAuB,EAAvB;AACH,KAhB6B,CAA9B;AAiBA,WAAO,IAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACIyB,EAAAA,cAAc,CAACb,OAAO,GAAG,IAAX,EAAiB;AAC3B,SAAKd,WAAL,GAAmBc,OAAnB;AACA,WAAO,IAAP;AACH;;AACDY,EAAAA,aAAa,CAACx2D,IAAD,EAAO;AAChB,UAAM02D,kBAAkB,GAAG,KAAKnC,WAAhC;AACA,SAAKoC,gBAAL,CAAsB32D,IAAtB;;AACA,QAAI,KAAKu0D,WAAL,KAAqBmC,kBAAzB,EAA6C;AACzC,WAAKxB,MAAL,CAAYh4F,IAAZ,CAAiB,KAAKo3F,gBAAtB;AACH;AACJ;AACD;AACJ;AACA;AACA;;;AACIsC,EAAAA,SAAS,CAACv0F,KAAD,EAAQ;AACb,UAAMogD,OAAO,GAAGpgD,KAAK,CAACogD,OAAtB;AACA,UAAMo0C,SAAS,GAAG,CAAC,QAAD,EAAW,SAAX,EAAsB,SAAtB,EAAiC,UAAjC,CAAlB;AACA,UAAMC,iBAAiB,GAAGD,SAAS,CAACE,KAAV,CAAgBC,QAAQ,IAAI;AAClD,aAAO,CAAC30F,KAAK,CAAC20F,QAAD,CAAN,IAAoB,KAAKnC,oBAAL,CAA0B1zF,OAA1B,CAAkC61F,QAAlC,IAA8C,CAAC,CAA1E;AACH,KAFyB,CAA1B;;AAGA,YAAQv0C,OAAR;AACI,WAAK2tC,sDAAL;AACI,aAAK6E,MAAL,CAAY/3F,IAAZ;AACA;;AACJ,WAAKizF,6DAAL;AACI,YAAI,KAAKyE,SAAL,IAAkBkC,iBAAtB,EAAyC;AACrC,eAAKG,iBAAL;AACA;AACH,SAHD,MAIK;AACD;AACH;;AACL,WAAK/G,2DAAL;AACI,YAAI,KAAK0E,SAAL,IAAkBkC,iBAAtB,EAAyC;AACrC,eAAKI,qBAAL;AACA;AACH,SAHD,MAIK;AACD;AACH;;AACL,WAAKjH,8DAAL;AACI,YAAI,KAAK8F,WAAL,IAAoBe,iBAAxB,EAA2C;AACvC,eAAKf,WAAL,KAAqB,KAArB,GAA6B,KAAKmB,qBAAL,EAA7B,GAA4D,KAAKD,iBAAL,EAA5D;AACA;AACH,SAHD,MAIK;AACD;AACH;;AACL,WAAKjH,6DAAL;AACI,YAAI,KAAK+F,WAAL,IAAoBe,iBAAxB,EAA2C;AACvC,eAAKf,WAAL,KAAqB,KAArB,GAA6B,KAAKkB,iBAAL,EAA7B,GAAwD,KAAKC,qBAAL,EAAxD;AACA;AACH,SAHD,MAIK;AACD;AACH;;AACL,WAAKnH,uDAAL;AACI,YAAI,KAAK+E,WAAL,IAAoBgC,iBAAxB,EAA2C;AACvC,eAAKK,kBAAL;AACA;AACH,SAHD,MAIK;AACD;AACH;;AACL,WAAKrH,sDAAL;AACI,YAAI,KAAKgF,WAAL,IAAoBgC,iBAAxB,EAA2C;AACvC,eAAKM,iBAAL;AACA;AACH,SAHD,MAIK;AACD;AACH;;AACL;AACI,YAAIN,iBAAiB,IAAIrH,qEAAc,CAACptF,KAAD,EAAQ,UAAR,CAAvC,EAA4D;AACxD;AACA;AACA,cAAIA,KAAK,CAAC0G,GAAN,IAAa1G,KAAK,CAAC0G,GAAN,CAAU9I,MAAV,KAAqB,CAAtC,EAAyC;AACrC,iBAAKw0F,gBAAL,CAAsBv3F,IAAtB,CAA2BmF,KAAK,CAAC0G,GAAN,CAAUsuF,iBAAV,EAA3B;AACH,WAFD,MAGK,IAAK50C,OAAO,IAAIitC,oDAAX,IAAgBjtC,OAAO,IAAIktC,oDAA5B,IAAmCltC,OAAO,IAAImtC,uDAAX,IAAmBntC,OAAO,IAAIotC,uDAArE,EAA4E;AAC7E,iBAAK4E,gBAAL,CAAsBv3F,IAAtB,CAA2BsJ,MAAM,CAACggC,YAAP,CAAoBic,OAApB,CAA3B;AACH;AACJ,SAVL,CAWI;AACA;;;AACA;AAjER;;AAmEA,SAAKuyC,eAAL,GAAuB,EAAvB;AACA3yF,IAAAA,KAAK,CAAC69C,cAAN;AACH;AACD;;;AACmB,MAAfo3C,eAAe,GAAG;AAClB,WAAO,KAAKhD,gBAAZ;AACH;AACD;;;AACc,MAAViD,UAAU,GAAG;AACb,WAAO,KAAKhD,WAAZ;AACH;AACD;;;AACAiD,EAAAA,QAAQ,GAAG;AACP,WAAO,KAAKxC,eAAL,CAAqB/0F,MAArB,GAA8B,CAArC;AACH;AACD;;;AACAk3F,EAAAA,kBAAkB,GAAG;AACjB,SAAKM,qBAAL,CAA2B,CAA3B,EAA8B,CAA9B;AACH;AACD;;;AACAL,EAAAA,iBAAiB,GAAG;AAChB,SAAKK,qBAAL,CAA2B,KAAKpD,MAAL,CAAYp0F,MAAZ,GAAqB,CAAhD,EAAmD,CAAC,CAApD;AACH;AACD;;;AACAg3F,EAAAA,iBAAiB,GAAG;AAChB,SAAK3C,gBAAL,GAAwB,CAAxB,GAA4B,KAAK6C,kBAAL,EAA5B,GAAwD,KAAKO,qBAAL,CAA2B,CAA3B,CAAxD;AACH;AACD;;;AACAR,EAAAA,qBAAqB,GAAG;AACpB,SAAK5C,gBAAL,GAAwB,CAAxB,IAA6B,KAAKE,KAAlC,GACM,KAAK4C,iBAAL,EADN,GAEM,KAAKM,qBAAL,CAA2B,CAAC,CAA5B,CAFN;AAGH;;AACDf,EAAAA,gBAAgB,CAAC32D,IAAD,EAAO;AACnB,UAAMs1D,SAAS,GAAG,KAAKiB,cAAL,EAAlB;;AACA,UAAM3yE,KAAK,GAAG,OAAOoc,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkCs1D,SAAS,CAACn0F,OAAV,CAAkB6+B,IAAlB,CAAhD;AACA,UAAMu3D,UAAU,GAAGjC,SAAS,CAAC1xE,KAAD,CAA5B,CAHmB,CAInB;;AACA,SAAK2wE,WAAL,GAAmBgD,UAAU,IAAI,IAAd,GAAqB,IAArB,GAA4BA,UAA/C;AACA,SAAKjD,gBAAL,GAAwB1wE,KAAxB;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACI8zE,EAAAA,qBAAqB,CAAC7sC,KAAD,EAAQ;AACzB,SAAK2pC,KAAL,GAAa,KAAKmD,oBAAL,CAA0B9sC,KAA1B,CAAb,GAAgD,KAAK+sC,uBAAL,CAA6B/sC,KAA7B,CAAhD;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACI8sC,EAAAA,oBAAoB,CAAC9sC,KAAD,EAAQ;AACxB,UAAMyrC,KAAK,GAAG,KAAKC,cAAL,EAAd;;AACA,SAAK,IAAI5xF,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI2xF,KAAK,CAACr2F,MAA3B,EAAmC0E,CAAC,EAApC,EAAwC;AACpC,YAAMif,KAAK,GAAG,CAAC,KAAK0wE,gBAAL,GAAwBzpC,KAAK,GAAGlmD,CAAhC,GAAoC2xF,KAAK,CAACr2F,MAA3C,IAAqDq2F,KAAK,CAACr2F,MAAzE;AACA,YAAM+/B,IAAI,GAAGs2D,KAAK,CAAC1yE,KAAD,CAAlB;;AACA,UAAI,CAAC,KAAKmxE,gBAAL,CAAsB/0D,IAAtB,CAAL,EAAkC;AAC9B,aAAKw2D,aAAL,CAAmB5yE,KAAnB;AACA;AACH;AACJ;AACJ;AACD;AACJ;AACA;AACA;AACA;;;AACIg0E,EAAAA,uBAAuB,CAAC/sC,KAAD,EAAQ;AAC3B,SAAK4sC,qBAAL,CAA2B,KAAKnD,gBAAL,GAAwBzpC,KAAnD,EAA0DA,KAA1D;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACI4sC,EAAAA,qBAAqB,CAAC7zE,KAAD,EAAQi0E,aAAR,EAAuB;AACxC,UAAMvB,KAAK,GAAG,KAAKC,cAAL,EAAd;;AACA,QAAI,CAACD,KAAK,CAAC1yE,KAAD,CAAV,EAAmB;AACf;AACH;;AACD,WAAO,KAAKmxE,gBAAL,CAAsBuB,KAAK,CAAC1yE,KAAD,CAA3B,CAAP,EAA4C;AACxCA,MAAAA,KAAK,IAAIi0E,aAAT;;AACA,UAAI,CAACvB,KAAK,CAAC1yE,KAAD,CAAV,EAAmB;AACf;AACH;AACJ;;AACD,SAAK4yE,aAAL,CAAmB5yE,KAAnB;AACH;AACD;;;AACA2yE,EAAAA,cAAc,GAAG;AACb,WAAO,KAAKlC,MAAL,YAAuB5F,oDAAvB,GAAmC,KAAK4F,MAAL,CAAYlzD,OAAZ,EAAnC,GAA2D,KAAKkzD,MAAvE;AACH;;AA/SgB;AAkTrB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMyD,0BAAN,SAAyC1D,cAAzC,CAAwD;AACpDoC,EAAAA,aAAa,CAAC5yE,KAAD,EAAQ;AACjB,QAAI,KAAK2zE,UAAT,EAAqB;AACjB,WAAKA,UAAL,CAAgBQ,iBAAhB;AACH;;AACD,UAAMvB,aAAN,CAAoB5yE,KAApB;;AACA,QAAI,KAAK2zE,UAAT,EAAqB;AACjB,WAAKA,UAAL,CAAgBS,eAAhB;AACH;AACJ;;AATmD;AAYxD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,eAAN,SAA8B7D,cAA9B,CAA6C;AACzCryF,EAAAA,WAAW,GAAG;AACV,UAAM,GAAG8T,SAAT;AACA,SAAKqiF,OAAL,GAAe,SAAf;AACH;AACD;AACJ;AACA;AACA;;;AACIC,EAAAA,cAAc,CAAC55D,MAAD,EAAS;AACnB,SAAK25D,OAAL,GAAe35D,MAAf;AACA,WAAO,IAAP;AACH;;AACDi4D,EAAAA,aAAa,CAACx2D,IAAD,EAAO;AAChB,UAAMw2D,aAAN,CAAoBx2D,IAApB;;AACA,QAAI,KAAKu3D,UAAT,EAAqB;AACjB,WAAKA,UAAL,CAAgBh0C,KAAhB,CAAsB,KAAK20C,OAA3B;AACH;AACJ;;AAlBwC;AAqB7C;AACA;AACA;;;AACA,MAAME,iBAAN,CAAwB;AACpBr2F,EAAAA,WAAW,GAAG;AACV;AACR;AACA;AACQ,SAAKs2F,gBAAL,GAAwB,KAAxB;AACH;;AANmB,EAQxB;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMC,oBAAN,CAA2B;AACvBv2F,EAAAA,WAAW,CAACiwF,SAAD,EAAY;AACnB,SAAKA,SAAL,GAAiBA,SAAjB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACIvoD,EAAAA,UAAU,CAAC+4B,OAAD,EAAU;AAChB;AACA;AACA,WAAOA,OAAO,CAAC+1B,YAAR,CAAqB,UAArB,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIC,EAAAA,SAAS,CAACh2B,OAAD,EAAU;AACf,WAAOi2B,WAAW,CAACj2B,OAAD,CAAX,IAAwB/b,gBAAgB,CAAC+b,OAAD,CAAhB,CAA0BxY,UAA1B,KAAyC,SAAxE;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI0uC,EAAAA,UAAU,CAACl2B,OAAD,EAAU;AAChB;AACA,QAAI,CAAC,KAAKwvB,SAAL,CAAe/vB,SAApB,EAA+B;AAC3B,aAAO,KAAP;AACH;;AACD,UAAM02B,YAAY,GAAGC,eAAe,CAACC,SAAS,CAACr2B,OAAD,CAAV,CAApC;;AACA,QAAIm2B,YAAJ,EAAkB;AACd;AACA,UAAIG,gBAAgB,CAACH,YAAD,CAAhB,KAAmC,CAAC,CAAxC,EAA2C;AACvC,eAAO,KAAP;AACH,OAJa,CAKd;;;AACA,UAAI,CAAC,KAAKH,SAAL,CAAeG,YAAf,CAAL,EAAmC;AAC/B,eAAO,KAAP;AACH;AACJ;;AACD,QAAIzxD,QAAQ,GAAGs7B,OAAO,CAACt7B,QAAR,CAAiBrnC,WAAjB,EAAf;AACA,QAAIk5F,aAAa,GAAGD,gBAAgB,CAACt2B,OAAD,CAApC;;AACA,QAAIA,OAAO,CAAC+1B,YAAR,CAAqB,iBAArB,CAAJ,EAA6C;AACzC,aAAOQ,aAAa,KAAK,CAAC,CAA1B;AACH;;AACD,QAAI7xD,QAAQ,KAAK,QAAb,IAAyBA,QAAQ,KAAK,QAA1C,EAAoD;AAChD;AACA;AACA;AACA,aAAO,KAAP;AACH,KA1Be,CA2BhB;;;AACA,QAAI,KAAK8qD,SAAL,CAAegH,MAAf,IAAyB,KAAKhH,SAAL,CAAeiH,GAAxC,IAA+C,CAACC,wBAAwB,CAAC12B,OAAD,CAA5E,EAAuF;AACnF,aAAO,KAAP;AACH;;AACD,QAAIt7B,QAAQ,KAAK,OAAjB,EAA0B;AACtB;AACA;AACA,UAAI,CAACs7B,OAAO,CAAC+1B,YAAR,CAAqB,UAArB,CAAL,EAAuC;AACnC,eAAO,KAAP;AACH,OALqB,CAMtB;AACA;;;AACA,aAAOQ,aAAa,KAAK,CAAC,CAA1B;AACH;;AACD,QAAI7xD,QAAQ,KAAK,OAAjB,EAA0B;AACtB;AACA;AACA;AACA;AACA,UAAI6xD,aAAa,KAAK,CAAC,CAAvB,EAA0B;AACtB,eAAO,KAAP;AACH,OAPqB,CAQtB;AACA;;;AACA,UAAIA,aAAa,KAAK,IAAtB,EAA4B;AACxB,eAAO,IAAP;AACH,OAZqB,CAatB;AACA;AACA;;;AACA,aAAO,KAAK/G,SAAL,CAAemH,OAAf,IAA0B32B,OAAO,CAAC+1B,YAAR,CAAqB,UAArB,CAAjC;AACH;;AACD,WAAO/1B,OAAO,CAAC/zB,QAAR,IAAoB,CAA3B;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACI2qD,EAAAA,WAAW,CAAC52B,OAAD,EAAU62B,MAAV,EAAkB;AACzB;AACA;AACA,WAAQC,sBAAsB,CAAC92B,OAAD,CAAtB,IACJ,CAAC,KAAK/4B,UAAL,CAAgB+4B,OAAhB,CADG,KAEH,CAAC62B,MAAM,KAAK,IAAX,IAAmBA,MAAM,KAAK,KAAK,CAAnC,GAAuC,KAAK,CAA5C,GAAgDA,MAAM,CAAChB,gBAAxD,KAA6E,KAAKG,SAAL,CAAeh2B,OAAf,CAF1E,CAAR;AAGH;;AA3GsB;;AA6G3B81B,oBAAoB,CAAChyB,IAArB;AAAA,mBAAiHgyB,oBAAjH,EAjgBgGz5B,sDAigBhG,CAAuJmwB,2DAAvJ;AAAA;;AACAsJ,oBAAoB,CAAC/xB,KAArB,kBAlgBgG1H,gEAkgBhG;AAAA,SAAqHy5B,oBAArH;AAAA,WAAqHA,oBAArH;AAAA,cAAuJ;AAAvJ;;AACA;AAAA,qDAngBgGz5B,+DAmgBhG,CAA2Fy5B,oBAA3F,EAA6H,CAAC;AAClHh2F,IAAAA,IAAI,EAAEy8D,qDAD4G;AAElHtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAF4G,GAAD,CAA7H,EAG4B,YAAY;AAAE,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAE0sF,2DAAWiF;AAAnB,KAAD,CAAP;AAAiC,GAH3E;AAAA;AAIA;AACA;AACA;AACA;AACA;;;AACA,SAAS2E,eAAT,CAAyB38E,MAAzB,EAAiC;AAC7B,MAAI;AACA,WAAOA,MAAM,CAAC08E,YAAd;AACH,GAFD,CAGA,OAAOzU,EAAP,EAAW;AACP,WAAO,IAAP;AACH;AACJ;AACD;;;AACA,SAASuU,WAAT,CAAqBj2B,OAArB,EAA8B;AAC1B;AACA;AACA,SAAO,CAAC,EAAEA,OAAO,CAAC7a,WAAR,IACN6a,OAAO,CAAC3Z,YADF,IAEL,OAAO2Z,OAAO,CAACtX,cAAf,KAAkC,UAAlC,IAAgDsX,OAAO,CAACtX,cAAR,GAAyBjrD,MAFtE,CAAR;AAGH;AACD;;;AACA,SAASs5F,mBAAT,CAA6B/2B,OAA7B,EAAsC;AAClC,MAAIt7B,QAAQ,GAAGs7B,OAAO,CAACt7B,QAAR,CAAiBrnC,WAAjB,EAAf;AACA,SAAQqnC,QAAQ,KAAK,OAAb,IACJA,QAAQ,KAAK,QADT,IAEJA,QAAQ,KAAK,QAFT,IAGJA,QAAQ,KAAK,UAHjB;AAIH;AACD;;;AACA,SAASsyD,aAAT,CAAuBh3B,OAAvB,EAAgC;AAC5B,SAAOi3B,cAAc,CAACj3B,OAAD,CAAd,IAA2BA,OAAO,CAAClgE,IAAR,IAAgB,QAAlD;AACH;AACD;;;AACA,SAASo3F,gBAAT,CAA0Bl3B,OAA1B,EAAmC;AAC/B,SAAOm3B,eAAe,CAACn3B,OAAD,CAAf,IAA4BA,OAAO,CAAC+1B,YAAR,CAAqB,MAArB,CAAnC;AACH;AACD;;;AACA,SAASkB,cAAT,CAAwBj3B,OAAxB,EAAiC;AAC7B,SAAOA,OAAO,CAACt7B,QAAR,CAAiBrnC,WAAjB,MAAkC,OAAzC;AACH;AACD;;;AACA,SAAS85F,eAAT,CAAyBn3B,OAAzB,EAAkC;AAC9B,SAAOA,OAAO,CAACt7B,QAAR,CAAiBrnC,WAAjB,MAAkC,GAAzC;AACH;AACD;;;AACA,SAAS+5F,gBAAT,CAA0Bp3B,OAA1B,EAAmC;AAC/B,MAAI,CAACA,OAAO,CAAC+1B,YAAR,CAAqB,UAArB,CAAD,IAAqC/1B,OAAO,CAAC/zB,QAAR,KAAqB/jC,SAA9D,EAAyE;AACrE,WAAO,KAAP;AACH;;AACD,MAAI+jC,QAAQ,GAAG+zB,OAAO,CAAC/hC,YAAR,CAAqB,UAArB,CAAf;AACA,SAAO,CAAC,EAAEgO,QAAQ,IAAI,CAACz2B,KAAK,CAACpR,QAAQ,CAAC6nC,QAAD,EAAW,EAAX,CAAT,CAApB,CAAR;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASqqD,gBAAT,CAA0Bt2B,OAA1B,EAAmC;AAC/B,MAAI,CAACo3B,gBAAgB,CAACp3B,OAAD,CAArB,EAAgC;AAC5B,WAAO,IAAP;AACH,GAH8B,CAI/B;;;AACA,QAAM/zB,QAAQ,GAAG7nC,QAAQ,CAAC47D,OAAO,CAAC/hC,YAAR,CAAqB,UAArB,KAAoC,EAArC,EAAyC,EAAzC,CAAzB;AACA,SAAOzoB,KAAK,CAACy2B,QAAD,CAAL,GAAkB,CAAC,CAAnB,GAAuBA,QAA9B;AACH;AACD;;;AACA,SAASyqD,wBAAT,CAAkC12B,OAAlC,EAA2C;AACvC,MAAIt7B,QAAQ,GAAGs7B,OAAO,CAACt7B,QAAR,CAAiBrnC,WAAjB,EAAf;AACA,MAAIg6F,SAAS,GAAG3yD,QAAQ,KAAK,OAAb,IAAwBs7B,OAAO,CAAClgE,IAAhD;AACA,SAAQu3F,SAAS,KAAK,MAAd,IACJA,SAAS,KAAK,UADV,IAEJ3yD,QAAQ,KAAK,QAFT,IAGJA,QAAQ,KAAK,UAHjB;AAIH;AACD;AACA;AACA;AACA;;;AACA,SAASoyD,sBAAT,CAAgC92B,OAAhC,EAAyC;AACrC;AACA,MAAIg3B,aAAa,CAACh3B,OAAD,CAAjB,EAA4B;AACxB,WAAO,KAAP;AACH;;AACD,SAAQ+2B,mBAAmB,CAAC/2B,OAAD,CAAnB,IACJk3B,gBAAgB,CAACl3B,OAAD,CADZ,IAEJA,OAAO,CAAC+1B,YAAR,CAAqB,iBAArB,CAFI,IAGJqB,gBAAgB,CAACp3B,OAAD,CAHpB;AAIH;AACD;;;AACA,SAASq2B,SAAT,CAAmB5kF,IAAnB,EAAyB;AACrB;AACA,SAAQA,IAAI,CAAC0zB,aAAL,IAAsB1zB,IAAI,CAAC0zB,aAAL,CAAmBuC,WAA1C,IAA0DjuB,MAAjE;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM69E,SAAN,CAAgB;AACZ/3F,EAAAA,WAAW,CAACikE,QAAD,EAAW+zB,QAAX,EAAqBC,OAArB,EAA8BjI,SAA9B,EAAyCkI,YAAY,GAAG,KAAxD,EAA+D;AACtE,SAAKj0B,QAAL,GAAgBA,QAAhB;AACA,SAAK+zB,QAAL,GAAgBA,QAAhB;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKjI,SAAL,GAAiBA,SAAjB;AACA,SAAKmI,YAAL,GAAoB,KAApB,CALsE,CAMtE;;AACA,SAAKC,mBAAL,GAA2B,MAAM,KAAKC,wBAAL,EAAjC;;AACA,SAAKC,iBAAL,GAAyB,MAAM,KAAKC,yBAAL,EAA/B;;AACA,SAAKC,QAAL,GAAgB,IAAhB;;AACA,QAAI,CAACN,YAAL,EAAmB;AACf,WAAKO,aAAL;AACH;AACJ;AACD;;;AACW,MAAP5E,OAAO,GAAG;AACV,WAAO,KAAK2E,QAAZ;AACH;;AACU,MAAP3E,OAAO,CAACh5F,KAAD,EAAQ;AACf,SAAK29F,QAAL,GAAgB39F,KAAhB;;AACA,QAAI,KAAK69F,YAAL,IAAqB,KAAKC,UAA9B,EAA0C;AACtC,WAAKC,qBAAL,CAA2B/9F,KAA3B,EAAkC,KAAK69F,YAAvC;;AACA,WAAKE,qBAAL,CAA2B/9F,KAA3B,EAAkC,KAAK89F,UAAvC;AACH;AACJ;AACD;;;AACAj7E,EAAAA,OAAO,GAAG;AACN,UAAMm7E,WAAW,GAAG,KAAKH,YAAzB;AACA,UAAMI,SAAS,GAAG,KAAKH,UAAvB;;AACA,QAAIE,WAAJ,EAAiB;AACbA,MAAAA,WAAW,CAAC9iD,mBAAZ,CAAgC,OAAhC,EAAyC,KAAKqiD,mBAA9C;AACAS,MAAAA,WAAW,CAAC7lD,MAAZ;AACH;;AACD,QAAI8lD,SAAJ,EAAe;AACXA,MAAAA,SAAS,CAAC/iD,mBAAV,CAA8B,OAA9B,EAAuC,KAAKuiD,iBAA5C;AACAQ,MAAAA,SAAS,CAAC9lD,MAAV;AACH;;AACD,SAAK0lD,YAAL,GAAoB,KAAKC,UAAL,GAAkB,IAAtC;AACA,SAAKR,YAAL,GAAoB,KAApB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACIM,EAAAA,aAAa,GAAG;AACZ;AACA,QAAI,KAAKN,YAAT,EAAuB;AACnB,aAAO,IAAP;AACH;;AACD,SAAKF,OAAL,CAAac,iBAAb,CAA+B,MAAM;AACjC,UAAI,CAAC,KAAKL,YAAV,EAAwB;AACpB,aAAKA,YAAL,GAAoB,KAAKM,aAAL,EAApB;;AACA,aAAKN,YAAL,CAAkBrwD,gBAAlB,CAAmC,OAAnC,EAA4C,KAAK+vD,mBAAjD;AACH;;AACD,UAAI,CAAC,KAAKO,UAAV,EAAsB;AAClB,aAAKA,UAAL,GAAkB,KAAKK,aAAL,EAAlB;;AACA,aAAKL,UAAL,CAAgBtwD,gBAAhB,CAAiC,OAAjC,EAA0C,KAAKiwD,iBAA/C;AACH;AACJ,KATD;;AAUA,QAAI,KAAKr0B,QAAL,CAAcplC,UAAlB,EAA8B;AAC1B,WAAKolC,QAAL,CAAcplC,UAAd,CAAyB+kB,YAAzB,CAAsC,KAAK80C,YAA3C,EAAyD,KAAKz0B,QAA9D;;AACA,WAAKA,QAAL,CAAcplC,UAAd,CAAyB+kB,YAAzB,CAAsC,KAAK+0C,UAA3C,EAAuD,KAAK10B,QAAL,CAAc38B,WAArE;;AACA,WAAK6wD,YAAL,GAAoB,IAApB;AACH;;AACD,WAAO,KAAKA,YAAZ;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACIc,EAAAA,4BAA4B,CAACt9E,OAAD,EAAU;AAClC,WAAO,IAAI5gB,OAAJ,CAAYD,OAAO,IAAI;AAC1B,WAAKo+F,gBAAL,CAAsB,MAAMp+F,OAAO,CAAC,KAAKq+F,mBAAL,CAAyBx9E,OAAzB,CAAD,CAAnC;AACH,KAFM,CAAP;AAGH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACIy9E,EAAAA,kCAAkC,CAACz9E,OAAD,EAAU;AACxC,WAAO,IAAI5gB,OAAJ,CAAYD,OAAO,IAAI;AAC1B,WAAKo+F,gBAAL,CAAsB,MAAMp+F,OAAO,CAAC,KAAKy9F,yBAAL,CAA+B58E,OAA/B,CAAD,CAAnC;AACH,KAFM,CAAP;AAGH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACI09E,EAAAA,iCAAiC,CAAC19E,OAAD,EAAU;AACvC,WAAO,IAAI5gB,OAAJ,CAAYD,OAAO,IAAI;AAC1B,WAAKo+F,gBAAL,CAAsB,MAAMp+F,OAAO,CAAC,KAAKu9F,wBAAL,CAA8B18E,OAA9B,CAAD,CAAnC;AACH,KAFM,CAAP;AAGH;AACD;AACJ;AACA;AACA;AACA;;;AACI29E,EAAAA,kBAAkB,CAACC,KAAD,EAAQ;AACtB;AACA,UAAMC,OAAO,GAAG,KAAKv1B,QAAL,CAAcz9B,gBAAd,CAAgC,qBAAoB+yD,KAAM,KAA3B,GAAmC,kBAAiBA,KAAM,KAA1D,GAAkE,cAAaA,KAAM,GAApH,CAAhB;;AACA,QAAI,OAAOr8B,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;AAC/C,WAAK,IAAIt6D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG42F,OAAO,CAACt7F,MAA5B,EAAoC0E,CAAC,EAArC,EAAyC;AACrC;AACA,YAAI42F,OAAO,CAAC52F,CAAD,CAAP,CAAW4zF,YAAX,CAAyB,aAAY+C,KAAM,EAA3C,CAAJ,EAAmD;AAC/CphE,UAAAA,OAAO,CAAC74B,IAAR,CAAc,gDAA+Ci6F,KAAM,KAAtD,GACR,sBAAqBA,KAAM,4BADnB,GAER,qCAFL,EAE2CC,OAAO,CAAC52F,CAAD,CAFlD;AAGH,SAJD,MAKK,IAAI42F,OAAO,CAAC52F,CAAD,CAAP,CAAW4zF,YAAX,CAAyB,oBAAmB+C,KAAM,EAAlD,CAAJ,EAA0D;AAC3DphE,UAAAA,OAAO,CAAC74B,IAAR,CAAc,uDAAsDi6F,KAAM,KAA7D,GACR,sBAAqBA,KAAM,sCADnB,GAER,2BAFL,EAEiCC,OAAO,CAAC52F,CAAD,CAFxC;AAGH;AACJ;AACJ;;AACD,QAAI22F,KAAK,IAAI,OAAb,EAAsB;AAClB,aAAOC,OAAO,CAACt7F,MAAR,GAAiBs7F,OAAO,CAAC,CAAD,CAAxB,GAA8B,KAAKC,wBAAL,CAA8B,KAAKx1B,QAAnC,CAArC;AACH;;AACD,WAAOu1B,OAAO,CAACt7F,MAAR,GACDs7F,OAAO,CAACA,OAAO,CAACt7F,MAAR,GAAiB,CAAlB,CADN,GAED,KAAKw7F,uBAAL,CAA6B,KAAKz1B,QAAlC,CAFN;AAGH;AACD;AACJ;AACA;AACA;;;AACIk1B,EAAAA,mBAAmB,CAACx9E,OAAD,EAAU;AACzB;AACA,UAAMg+E,iBAAiB,GAAG,KAAK11B,QAAL,CAAcf,aAAd,CAA6B,uBAAD,GAA2B,mBAAvD,CAA1B;;AACA,QAAIy2B,iBAAJ,EAAuB;AACnB;AACA,UAAI,CAAC,OAAOz8B,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KACAy8B,iBAAiB,CAACnD,YAAlB,CAAgC,mBAAhC,CADJ,EACyD;AACrDr+D,QAAAA,OAAO,CAAC74B,IAAR,CAAc,yDAAD,GACR,0DADQ,GAER,0BAFL,EAEgCq6F,iBAFhC;AAGH,OAPkB,CAQnB;AACA;;;AACA,UAAI,CAAC,OAAOz8B,SAAP,KAAqB,WAArB,IAAoCA,SAArC,KACA,CAAC,KAAK86B,QAAL,CAAcX,WAAd,CAA0BsC,iBAA1B,CADL,EACmD;AAC/CxhE,QAAAA,OAAO,CAAC74B,IAAR,CAAc,wDAAd,EAAuEq6F,iBAAvE;AACH;;AACD,UAAI,CAAC,KAAK3B,QAAL,CAAcX,WAAd,CAA0BsC,iBAA1B,CAAL,EAAmD;AAC/C,cAAMC,cAAc,GAAG,KAAKH,wBAAL,CAA8BE,iBAA9B,CAAvB;;AACAC,QAAAA,cAAc,KAAK,IAAnB,IAA2BA,cAAc,KAAK,KAAK,CAAnD,GAAuD,KAAK,CAA5D,GAAgEA,cAAc,CAACp4C,KAAf,CAAqB7lC,OAArB,CAAhE;AACA,eAAO,CAAC,CAACi+E,cAAT;AACH;;AACDD,MAAAA,iBAAiB,CAACn4C,KAAlB,CAAwB7lC,OAAxB;AACA,aAAO,IAAP;AACH;;AACD,WAAO,KAAK48E,yBAAL,CAA+B58E,OAA/B,CAAP;AACH;AACD;AACJ;AACA;AACA;;;AACI48E,EAAAA,yBAAyB,CAAC58E,OAAD,EAAU;AAC/B,UAAMg+E,iBAAiB,GAAG,KAAKL,kBAAL,CAAwB,OAAxB,CAA1B;;AACA,QAAIK,iBAAJ,EAAuB;AACnBA,MAAAA,iBAAiB,CAACn4C,KAAlB,CAAwB7lC,OAAxB;AACH;;AACD,WAAO,CAAC,CAACg+E,iBAAT;AACH;AACD;AACJ;AACA;AACA;;;AACItB,EAAAA,wBAAwB,CAAC18E,OAAD,EAAU;AAC9B,UAAMg+E,iBAAiB,GAAG,KAAKL,kBAAL,CAAwB,KAAxB,CAA1B;;AACA,QAAIK,iBAAJ,EAAuB;AACnBA,MAAAA,iBAAiB,CAACn4C,KAAlB,CAAwB7lC,OAAxB;AACH;;AACD,WAAO,CAAC,CAACg+E,iBAAT;AACH;AACD;AACJ;AACA;;;AACIE,EAAAA,WAAW,GAAG;AACV,WAAO,KAAK1B,YAAZ;AACH;AACD;;;AACAsB,EAAAA,wBAAwB,CAACltE,IAAD,EAAO;AAC3B,QAAI,KAAKyrE,QAAL,CAAcX,WAAd,CAA0B9qE,IAA1B,KAAmC,KAAKyrE,QAAL,CAAcrB,UAAd,CAAyBpqE,IAAzB,CAAvC,EAAuE;AACnE,aAAOA,IAAP;AACH;;AACD,UAAM+kB,QAAQ,GAAG/kB,IAAI,CAAC+kB,QAAtB;;AACA,SAAK,IAAI1uC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0uC,QAAQ,CAACpzC,MAA7B,EAAqC0E,CAAC,EAAtC,EAA0C;AACtC,YAAMk3F,aAAa,GAAGxoD,QAAQ,CAAC1uC,CAAD,CAAR,CAAY6pB,QAAZ,KAAyB,KAAKujE,SAAL,CAAeiC,YAAxC,GAChB,KAAKwH,wBAAL,CAA8BnoD,QAAQ,CAAC1uC,CAAD,CAAtC,CADgB,GAEhB,IAFN;;AAGA,UAAIk3F,aAAJ,EAAmB;AACf,eAAOA,aAAP;AACH;AACJ;;AACD,WAAO,IAAP;AACH;AACD;;;AACAJ,EAAAA,uBAAuB,CAACntE,IAAD,EAAO;AAC1B,QAAI,KAAKyrE,QAAL,CAAcX,WAAd,CAA0B9qE,IAA1B,KAAmC,KAAKyrE,QAAL,CAAcrB,UAAd,CAAyBpqE,IAAzB,CAAvC,EAAuE;AACnE,aAAOA,IAAP;AACH,KAHyB,CAI1B;;;AACA,UAAM+kB,QAAQ,GAAG/kB,IAAI,CAAC+kB,QAAtB;;AACA,SAAK,IAAI1uC,CAAC,GAAG0uC,QAAQ,CAACpzC,MAAT,GAAkB,CAA/B,EAAkC0E,CAAC,IAAI,CAAvC,EAA0CA,CAAC,EAA3C,EAA+C;AAC3C,YAAMk3F,aAAa,GAAGxoD,QAAQ,CAAC1uC,CAAD,CAAR,CAAY6pB,QAAZ,KAAyB,KAAKujE,SAAL,CAAeiC,YAAxC,GAChB,KAAKyH,uBAAL,CAA6BpoD,QAAQ,CAAC1uC,CAAD,CAArC,CADgB,GAEhB,IAFN;;AAGA,UAAIk3F,aAAJ,EAAmB;AACf,eAAOA,aAAP;AACH;AACJ;;AACD,WAAO,IAAP;AACH;AACD;;;AACAd,EAAAA,aAAa,GAAG;AACZ,UAAMe,MAAM,GAAG,KAAK/J,SAAL,CAAexxD,aAAf,CAA6B,KAA7B,CAAf;;AACA,SAAKo6D,qBAAL,CAA2B,KAAKJ,QAAhC,EAA0CuB,MAA1C;;AACAA,IAAAA,MAAM,CAAC3X,SAAP,CAAiB5wD,GAAjB,CAAqB,qBAArB;AACAuoE,IAAAA,MAAM,CAAC3X,SAAP,CAAiB5wD,GAAjB,CAAqB,uBAArB;AACAuoE,IAAAA,MAAM,CAACp7D,YAAP,CAAoB,aAApB,EAAmC,MAAnC;AACA,WAAOo7D,MAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACInB,EAAAA,qBAAqB,CAACoB,SAAD,EAAYD,MAAZ,EAAoB;AACrC;AACA;AACAC,IAAAA,SAAS,GAAGD,MAAM,CAACp7D,YAAP,CAAoB,UAApB,EAAgC,GAAhC,CAAH,GAA0Co7D,MAAM,CAACrzD,eAAP,CAAuB,UAAvB,CAAnD;AACH;AACD;AACJ;AACA;AACA;;;AACIuzD,EAAAA,aAAa,CAACpG,OAAD,EAAU;AACnB,QAAI,KAAK6E,YAAL,IAAqB,KAAKC,UAA9B,EAA0C;AACtC,WAAKC,qBAAL,CAA2B/E,OAA3B,EAAoC,KAAK6E,YAAzC;;AACA,WAAKE,qBAAL,CAA2B/E,OAA3B,EAAoC,KAAK8E,UAAzC;AACH;AACJ;AACD;;;AACAO,EAAAA,gBAAgB,CAAC/hF,EAAD,EAAK;AACjB,QAAI,KAAK8gF,OAAL,CAAaiC,QAAjB,EAA2B;AACvB/iF,MAAAA,EAAE;AACL,KAFD,MAGK;AACD,WAAK8gF,OAAL,CAAakC,QAAb,CAAsBj6E,IAAtB,CAA2B2uE,qDAAI,CAAC,CAAD,CAA/B,EAAoCwE,SAApC,CAA8Cl8E,EAA9C;AACH;AACJ;;AApQW;AAsQhB;AACA;AACA;AACA;AACA;;;AACA,MAAMijF,gBAAN,CAAuB;AACnBp6F,EAAAA,WAAW,CAACg4F,QAAD,EAAWC,OAAX,EAAoBjI,SAApB,EAA+B;AACtC,SAAKgI,QAAL,GAAgBA,QAAhB;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKjI,SAAL,GAAiBA,SAAjB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACIpmE,EAAAA,MAAM,CAAC62C,OAAD,EAAU45B,oBAAoB,GAAG,KAAjC,EAAwC;AAC1C,WAAO,IAAItC,SAAJ,CAAct3B,OAAd,EAAuB,KAAKu3B,QAA5B,EAAsC,KAAKC,OAA3C,EAAoD,KAAKjI,SAAzD,EAAoEqK,oBAApE,CAAP;AACH;;AAfkB;;AAiBvBD,gBAAgB,CAAC71B,IAAjB;AAAA,mBAA6G61B,gBAA7G,EAl5BgGt9B,sDAk5BhG,CAA+Iy5B,oBAA/I,GAl5BgGz5B,sDAk5BhG,CAAgLA,iDAAhL,GAl5BgGA,sDAk5BhG,CAAsM0vB,qDAAtM;AAAA;;AACA4N,gBAAgB,CAAC51B,KAAjB,kBAn5BgG1H,gEAm5BhG;AAAA,SAAiHs9B,gBAAjH;AAAA,WAAiHA,gBAAjH;AAAA,cAA+I;AAA/I;;AACA;AAAA,qDAp5BgGt9B,+DAo5BhG,CAA2Fs9B,gBAA3F,EAAyH,CAAC;AAC9G75F,IAAAA,IAAI,EAAEy8D,qDADwG;AAE9GtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFwG,GAAD,CAAzH,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAEg2F;AAAR,KAAD,EAAiC;AAAEh2F,MAAAA,IAAI,EAAEu8D,iDAASw9B;AAAjB,KAAjC,EAAsD;AAAE/5F,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAC7E7xF,QAAAA,IAAI,EAAEksF,iDADuE;AAE7E/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFuE,OAAD;AAA/B,KAAtD,CAAP;AAIH,GARL;AAAA;AASA;;;AACA,MAAM+N,YAAN,CAAmB;AACfv6F,EAAAA,WAAW,CAACw6F,WAAD,EAAcC,iBAAd;AACX;AACJ;AACA;AACA;AACIzK,EAAAA,SALW,EAKA;AACP,SAAKwK,WAAL,GAAmBA,WAAnB;AACA,SAAKC,iBAAL,GAAyBA,iBAAzB;AACA;;AACA,SAAKC,yBAAL,GAAiC,IAAjC;AACA,SAAKC,SAAL,GAAiB,KAAKF,iBAAL,CAAuB7wE,MAAvB,CAA8B,KAAK4wE,WAAL,CAAiBI,aAA/C,EAA8D,IAA9D,CAAjB;AACH;AACD;;;AACW,MAAP/G,OAAO,GAAG;AACV,WAAO,KAAK8G,SAAL,CAAe9G,OAAtB;AACH;;AACU,MAAPA,OAAO,CAACh5F,KAAD,EAAQ;AACf,SAAK8/F,SAAL,CAAe9G,OAAf,GAAyB7E,6EAAqB,CAACn0F,KAAD,CAA9C;AACH;AACD;AACJ;AACA;AACA;;;AACmB,MAAXggG,WAAW,GAAG;AACd,WAAO,KAAKC,YAAZ;AACH;;AACc,MAAXD,WAAW,CAAChgG,KAAD,EAAQ;AACnB,SAAKigG,YAAL,GAAoB9L,6EAAqB,CAACn0F,KAAD,CAAzC;AACH;;AACDu2F,EAAAA,WAAW,GAAG;AACV,SAAKuJ,SAAL,CAAej9E,OAAf,GADU,CAEV;AACA;;AACA,QAAI,KAAKg9E,yBAAT,EAAoC;AAChC,WAAKA,yBAAL,CAA+Bl5C,KAA/B;;AACA,WAAKk5C,yBAAL,GAAiC,IAAjC;AACH;AACJ;;AACDK,EAAAA,kBAAkB,GAAG;AACjB,SAAKJ,SAAL,CAAelC,aAAf;;AACA,QAAI,KAAKoC,WAAT,EAAsB;AAClB,WAAKG,aAAL;AACH;AACJ;;AACDC,EAAAA,SAAS,GAAG;AACR,QAAI,CAAC,KAAKN,SAAL,CAAed,WAAf,EAAL,EAAmC;AAC/B,WAAKc,SAAL,CAAelC,aAAf;AACH;AACJ;;AACDyC,EAAAA,WAAW,CAAC9H,OAAD,EAAU;AACjB,UAAM+H,iBAAiB,GAAG/H,OAAO,CAAC,aAAD,CAAjC;;AACA,QAAI+H,iBAAiB,IACjB,CAACA,iBAAiB,CAACC,WADnB,IAEA,KAAKP,WAFL,IAGA,KAAKF,SAAL,CAAed,WAAf,EAHJ,EAGkC;AAC9B,WAAKmB,aAAL;AACH;AACJ;;AACDA,EAAAA,aAAa,GAAG;AACZ,SAAKN,yBAAL,GAAiCxN,wFAAiC,EAAlE;AACA,SAAKyN,SAAL,CAAe1B,4BAAf;AACH;;AA9Dc;;AAgEnBsB,YAAY,CAACh2B,IAAb;AAAA,mBAAyGg2B,YAAzG,EA99BgGz9B,+DA89BhG,CAAuIA,qDAAvI,GA99BgGA,+DA89BhG,CAAiKs9B,gBAAjK,GA99BgGt9B,+DA89BhG,CAA8L0vB,qDAA9L;AAAA;;AACA+N,YAAY,CAACe,IAAb,kBA/9BgGx+B,+DA+9BhG;AAAA,QAA6Fy9B,YAA7F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aA/9BgGz9B,kEA+9BhG;AAAA;;AACA;AAAA,qDAh+BgGA,+DAg+BhG,CAA2Fy9B,YAA3F,EAAqH,CAAC;AAC1Gh6F,IAAAA,IAAI,EAAEosF,oDADoG;AAE1Gj6E,IAAAA,IAAI,EAAE,CAAC;AACC7O,MAAAA,QAAQ,EAAE,gBADX;AAEC03F,MAAAA,QAAQ,EAAE;AAFX,KAAD;AAFoG,GAAD,CAArH,EAM4B,YAAY;AAChC,WAAO,CAAC;AAAEh7F,MAAAA,IAAI,EAAEu8D,qDAAau+B;AAArB,KAAD,EAA0B;AAAE96F,MAAAA,IAAI,EAAE65F;AAAR,KAA1B,EAAsD;AAAE75F,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAC7E7xF,QAAAA,IAAI,EAAEksF,iDADuE;AAE7E/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFuE,OAAD;AAA/B,KAAtD,CAAP;AAIH,GAXL,EAWuB;AAAEqH,IAAAA,OAAO,EAAE,CAAC;AACnBtzF,MAAAA,IAAI,EAAEqsF,gDADa;AAEnBl6E,MAAAA,IAAI,EAAE,CAAC,cAAD;AAFa,KAAD,CAAX;AAGPmoF,IAAAA,WAAW,EAAE,CAAC;AACdt6F,MAAAA,IAAI,EAAEqsF,gDADQ;AAEdl6E,MAAAA,IAAI,EAAE,CAAC,yBAAD;AAFQ,KAAD;AAHN,GAXvB;AAAA;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM8oF,qBAAN,SAAoCzD,SAApC,CAA8C;AAC1C/3F,EAAAA,WAAW,CAACikE,QAAD,EAAW+zB,QAAX,EAAqBC,OAArB,EAA8BjI,SAA9B,EAAyCyL,iBAAzC,EAA4DC,cAA5D,EAA4EpE,MAA5E,EAAoF;AAC3F,UAAMrzB,QAAN,EAAgB+zB,QAAhB,EAA0BC,OAA1B,EAAmCjI,SAAnC,EAA8CsH,MAAM,CAACp/C,KAArD;AACA,SAAKujD,iBAAL,GAAyBA,iBAAzB;AACA,SAAKC,cAAL,GAAsBA,cAAtB;;AACA,SAAKD,iBAAL,CAAuBjhB,QAAvB,CAAgC,IAAhC;AACH;AACD;;;AACW,MAAPqZ,OAAO,GAAG;AACV,WAAO,KAAK2E,QAAZ;AACH;;AACU,MAAP3E,OAAO,CAACh5F,KAAD,EAAQ;AACf,SAAK29F,QAAL,GAAgB39F,KAAhB;;AACA,QAAI,KAAK29F,QAAT,EAAmB;AACf,WAAKiD,iBAAL,CAAuBjhB,QAAvB,CAAgC,IAAhC;AACH,KAFD,MAGK;AACD,WAAKihB,iBAAL,CAAuB7d,UAAvB,CAAkC,IAAlC;AACH;AACJ;AACD;;;AACAlgE,EAAAA,OAAO,GAAG;AACN,SAAK+9E,iBAAL,CAAuB7d,UAAvB,CAAkC,IAAlC;;AACA,UAAMlgE,OAAN;AACH;AACD;;;AACAi+E,EAAAA,OAAO,GAAG;AACN,SAAKD,cAAL,CAAoBE,YAApB,CAAiC,IAAjC;;AACA,SAAK3B,aAAL,CAAmB,IAAnB;AACH;AACD;;;AACA4B,EAAAA,QAAQ,GAAG;AACP,SAAKH,cAAL,CAAoBI,UAApB,CAA+B,IAA/B;;AACA,SAAK7B,aAAL,CAAmB,KAAnB;AACH;;AAlCyC;AAqC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAM8B,yBAAyB,GAAG,IAAIlP,yDAAJ,CAAmB,2BAAnB,CAAlC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,MAAMmP,mCAAN,CAA0C;AACtCh8F,EAAAA,WAAW,GAAG;AACV;AACA,SAAKi8F,SAAL,GAAiB,IAAjB;AACH;AACD;;;AACAL,EAAAA,YAAY,CAACjB,SAAD,EAAY;AACpB;AACA,QAAI,KAAKsB,SAAT,EAAoB;AAChBtB,MAAAA,SAAS,CAAC3K,SAAV,CAAoBj6C,mBAApB,CAAwC,OAAxC,EAAiD,KAAKkmD,SAAtD,EAAiE,IAAjE;AACH;;AACD,SAAKA,SAAL,GAAkB7gG,CAAD,IAAO,KAAK8gG,UAAL,CAAgBvB,SAAhB,EAA2Bv/F,CAA3B,CAAxB;;AACAu/F,IAAAA,SAAS,CAAC1C,OAAV,CAAkBc,iBAAlB,CAAoC,MAAM;AACtC4B,MAAAA,SAAS,CAAC3K,SAAV,CAAoB3nD,gBAApB,CAAqC,OAArC,EAA8C,KAAK4zD,SAAnD,EAA8D,IAA9D;AACH,KAFD;AAGH;AACD;;;AACAH,EAAAA,UAAU,CAACnB,SAAD,EAAY;AAClB,QAAI,CAAC,KAAKsB,SAAV,EAAqB;AACjB;AACH;;AACDtB,IAAAA,SAAS,CAAC3K,SAAV,CAAoBj6C,mBAApB,CAAwC,OAAxC,EAAiD,KAAKkmD,SAAtD,EAAiE,IAAjE;;AACA,SAAKA,SAAL,GAAiB,IAAjB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACIC,EAAAA,UAAU,CAACvB,SAAD,EAAYr6F,KAAZ,EAAmB;AACzB,QAAI6hF,EAAJ;;AACA,UAAMx6E,MAAM,GAAGrH,KAAK,CAACqH,MAArB;AACA,UAAMw0F,aAAa,GAAGxB,SAAS,CAAC12B,QAAhC,CAHyB,CAIzB;AACA;;AACA,QAAIt8D,MAAM,IAAI,CAACw0F,aAAa,CAAC95D,QAAd,CAAuB16B,MAAvB,CAAX,IAA6C,EAAE,CAACw6E,EAAE,GAAGx6E,MAAM,CAAC8pC,OAAb,MAA0B,IAA1B,IAAkC0wC,EAAE,KAAK,KAAK,CAA9C,GAAkD,KAAK,CAAvD,GAA2DA,EAAE,CAAC9+E,IAAH,CAAQsE,MAAR,EAAgB,sBAAhB,CAA7D,CAAjD,EAAwJ;AACpJ;AACA;AACA;AACA9H,MAAAA,UAAU,CAAC,MAAM;AACb;AACA,YAAI86F,SAAS,CAAC9G,OAAV,IAAqB,CAACsI,aAAa,CAAC95D,QAAd,CAAuBs4D,SAAS,CAAC3K,SAAV,CAAoBxjD,aAA3C,CAA1B,EAAqF;AACjFmuD,UAAAA,SAAS,CAACpC,yBAAV;AACH;AACJ,OALS,CAAV;AAMH;AACJ;;AAhDqC;AAmD1C;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAM6D,gBAAN,CAAuB;AACnBp8F,EAAAA,WAAW,GAAG;AACV;AACA;AACA,SAAKq8F,eAAL,GAAuB,EAAvB;AACH;AACD;AACJ;AACA;AACA;;;AACI7hB,EAAAA,QAAQ,CAACmgB,SAAD,EAAY;AAChB;AACA,SAAK0B,eAAL,GAAuB,KAAKA,eAAL,CAAqB57F,MAArB,CAA4B67F,EAAE,IAAIA,EAAE,KAAK3B,SAAzC,CAAvB;AACA,QAAIpnE,KAAK,GAAG,KAAK8oE,eAAjB;;AACA,QAAI9oE,KAAK,CAACr1B,MAAV,EAAkB;AACdq1B,MAAAA,KAAK,CAACA,KAAK,CAACr1B,MAAN,GAAe,CAAhB,CAAL,CAAwB29F,QAAxB;AACH;;AACDtoE,IAAAA,KAAK,CAAC1wB,IAAN,CAAW83F,SAAX;;AACAA,IAAAA,SAAS,CAACgB,OAAV;AACH;AACD;AACJ;AACA;AACA;;;AACI/d,EAAAA,UAAU,CAAC+c,SAAD,EAAY;AAClBA,IAAAA,SAAS,CAACkB,QAAV;;AACA,UAAMtoE,KAAK,GAAG,KAAK8oE,eAAnB;AACA,UAAMz5F,CAAC,GAAG2wB,KAAK,CAACn0B,OAAN,CAAcu7F,SAAd,CAAV;;AACA,QAAI/3F,CAAC,KAAK,CAAC,CAAX,EAAc;AACV2wB,MAAAA,KAAK,CAAC7b,MAAN,CAAa9U,CAAb,EAAgB,CAAhB;;AACA,UAAI2wB,KAAK,CAACr1B,MAAV,EAAkB;AACdq1B,QAAAA,KAAK,CAACA,KAAK,CAACr1B,MAAN,GAAe,CAAhB,CAAL,CAAwBy9F,OAAxB;AACH;AACJ;AACJ;;AAlCkB;;AAoCvBS,gBAAgB,CAAC73B,IAAjB;AAAA,mBAA6G63B,gBAA7G;AAAA;;AACAA,gBAAgB,CAAC53B,KAAjB,kBA1pCgG1H,gEA0pChG;AAAA,SAAiHs/B,gBAAjH;AAAA,WAAiHA,gBAAjH;AAAA,cAA+I;AAA/I;;AACA;AAAA,qDA3pCgGt/B,+DA2pChG,CAA2Fs/B,gBAA3F,EAAyH,CAAC;AAC9G77F,IAAAA,IAAI,EAAEy8D,qDADwG;AAE9GtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFwG,GAAD,CAAzH;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAMoK,4BAAN,CAAmC;AAC/Bv8F,EAAAA,WAAW,CAACg4F,QAAD,EAAWC,OAAX,EAAoBwD,iBAApB,EAAuCzL,SAAvC,EAAkD0L,cAAlD,EAAkE;AACzE,SAAK1D,QAAL,GAAgBA,QAAhB;AACA,SAAKC,OAAL,GAAeA,OAAf;AACA,SAAKwD,iBAAL,GAAyBA,iBAAzB;AACA,SAAKzL,SAAL,GAAiBA,SAAjB,CAJyE,CAKzE;;AACA,SAAK0L,cAAL,GAAsBA,cAAc,IAAI,IAAIM,mCAAJ,EAAxC;AACH;;AACDpyE,EAAAA,MAAM,CAAC62C,OAAD,EAAU62B,MAAM,GAAG;AAAEp/C,IAAAA,KAAK,EAAE;AAAT,GAAnB,EAAqC;AACvC,QAAIskD,YAAJ;;AACA,QAAI,OAAOlF,MAAP,KAAkB,SAAtB,EAAiC;AAC7BkF,MAAAA,YAAY,GAAG;AAAEtkD,QAAAA,KAAK,EAAEo/C;AAAT,OAAf;AACH,KAFD,MAGK;AACDkF,MAAAA,YAAY,GAAGlF,MAAf;AACH;;AACD,WAAO,IAAIkE,qBAAJ,CAA0B/6B,OAA1B,EAAmC,KAAKu3B,QAAxC,EAAkD,KAAKC,OAAvD,EAAgE,KAAKjI,SAArE,EAAgF,KAAKyL,iBAArF,EAAwG,KAAKC,cAA7G,EAA6Hc,YAA7H,CAAP;AACH;;AAlB8B;;AAoBnCD,4BAA4B,CAACh4B,IAA7B;AAAA,mBAAyHg4B,4BAAzH,EA5rCgGz/B,sDA4rChG,CAAuKy5B,oBAAvK,GA5rCgGz5B,sDA4rChG,CAAwMA,iDAAxM,GA5rCgGA,sDA4rChG,CAA8Ns/B,gBAA9N,GA5rCgGt/B,sDA4rChG,CAA2P0vB,qDAA3P,GA5rCgG1vB,sDA4rChG,CAAgRi/B,yBAAhR;AAAA;;AACAQ,4BAA4B,CAAC/3B,KAA7B,kBA7rCgG1H,gEA6rChG;AAAA,SAA6Hy/B,4BAA7H;AAAA,WAA6HA,4BAA7H;AAAA,cAAuK;AAAvK;;AACA;AAAA,qDA9rCgGz/B,+DA8rChG,CAA2Fy/B,4BAA3F,EAAqI,CAAC;AAC1Hh8F,IAAAA,IAAI,EAAEy8D,qDADoH;AAE1HtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFoH,GAAD,CAArI,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAEg2F;AAAR,KAAD,EAAiC;AAAEh2F,MAAAA,IAAI,EAAEu8D,iDAASw9B;AAAjB,KAAjC,EAAsD;AAAE/5F,MAAAA,IAAI,EAAE67F;AAAR,KAAtD,EAAkF;AAAE77F,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACzG7xF,QAAAA,IAAI,EAAEksF,iDADmG;AAEzG/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFmG,OAAD;AAA/B,KAAlF,EAGW;AAAEjsF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAClC7xF,QAAAA,IAAI,EAAEusF,mDAAQA;AADoB,OAAD,EAElC;AACCvsF,QAAAA,IAAI,EAAEksF,iDADP;AAEC/5E,QAAAA,IAAI,EAAE,CAACqpF,yBAAD;AAFP,OAFkC;AAA/B,KAHX,CAAP;AASH,GAbL;AAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,SAASU,+BAAT,CAAyCn8F,KAAzC,EAAgD;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAOA,KAAK,CAACqgD,OAAN,KAAkB,CAAlB,IAAwBrgD,KAAK,CAACwgD,OAAN,KAAkB,CAAlB,IAAuBxgD,KAAK,CAACygD,OAAN,KAAkB,CAAxE;AACH;AACD;;;AACA,SAAS27C,gCAAT,CAA0Cp8F,KAA1C,EAAiD;AAC7C,QAAMq8F,KAAK,GAAIr8F,KAAK,CAACghD,OAAN,IAAiBhhD,KAAK,CAACghD,OAAN,CAAc,CAAd,CAAlB,IAAwChhD,KAAK,CAAC0/C,cAAN,IAAwB1/C,KAAK,CAAC0/C,cAAN,CAAqB,CAArB,CAA9E,CAD6C,CAE7C;AACA;AACA;AACA;;AACA,SAAQ,CAAC,CAAC28C,KAAF,IACJA,KAAK,CAACx5D,UAAN,KAAqB,CAAC,CADlB,KAEHw5D,KAAK,CAACC,OAAN,IAAiB,IAAjB,IAAyBD,KAAK,CAACC,OAAN,KAAkB,CAFxC,MAGHD,KAAK,CAACE,OAAN,IAAiB,IAAjB,IAAyBF,KAAK,CAACE,OAAN,KAAkB,CAHxC,CAAR;AAIH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMC,+BAA+B,GAAG,IAAIjQ,yDAAJ,CAAmB,qCAAnB,CAAxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkQ,uCAAuC,GAAG;AAC5CC,EAAAA,UAAU,EAAE,CAAC1O,sDAAD,EAAMC,0DAAN,EAAeC,2DAAf,EAAyBC,uDAAzB,EAA+BC,wDAA/B;AADgC,CAAhD;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMuO,eAAe,GAAG,GAAxB;AACA;AACA;AACA;AACA;;AACA,MAAMC,4BAA4B,GAAG/P,sFAA+B,CAAC;AACjEgQ,EAAAA,OAAO,EAAE,IADwD;AAEjEC,EAAAA,OAAO,EAAE;AAFwD,CAAD,CAApE;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,qBAAN,CAA4B;AACxBr9F,EAAAA,WAAW,CAACiwF,SAAD,EAAYqN,MAAZ,EAAoB9/D,QAApB,EAA8B7hB,OAA9B,EAAuC;AAC9C,SAAKs0E,SAAL,GAAiBA,SAAjB;AACA;AACR;AACA;AACA;;AACQ,SAAKsN,iBAAL,GAAyB,IAAzB;AACA;;AACA,SAAKC,SAAL,GAAiB,IAAIhQ,kDAAJ,CAAoB,IAApB,CAAjB;AACA;AACR;AACA;AACA;;AACQ,SAAKiQ,YAAL,GAAoB,CAApB;AACA;AACR;AACA;AACA;;AACQ,SAAKC,UAAL,GAAmBp9F,KAAD,IAAW;AACzB,UAAI6hF,EAAJ,EAAQqP,EAAR,CADyB,CAEzB;AACA;;;AACA,UAAI,CAACA,EAAE,GAAG,CAACrP,EAAE,GAAG,KAAKwb,QAAX,MAAyB,IAAzB,IAAiCxb,EAAE,KAAK,KAAK,CAA7C,GAAiD,KAAK,CAAtD,GAA0DA,EAAE,CAAC6a,UAAnE,MAAmF,IAAnF,IAA2FxL,EAAE,KAAK,KAAK,CAAvG,GAA2G,KAAK,CAAhH,GAAoHA,EAAE,CAAC1iB,IAAH,CAAQpuB,OAAO,IAAIA,OAAO,KAAKpgD,KAAK,CAACogD,OAArC,CAAxH,EAAuK;AACnK;AACH;;AACD,WAAK88C,SAAL,CAAeriG,IAAf,CAAoB,UAApB;;AACA,WAAKoiG,iBAAL,GAAyBnQ,sEAAe,CAAC9sF,KAAD,CAAxC;AACH,KATD;AAUA;AACR;AACA;AACA;;;AACQ,SAAKs9F,YAAL,GAAqBt9F,KAAD,IAAW;AAC3B;AACA;AACA;AACA,UAAIZ,IAAI,CAAC2M,GAAL,KAAa,KAAKoxF,YAAlB,GAAiCR,eAArC,EAAsD;AAClD;AACH,OAN0B,CAO3B;AACA;;;AACA,WAAKO,SAAL,CAAeriG,IAAf,CAAoBshG,+BAA+B,CAACn8F,KAAD,CAA/B,GAAyC,UAAzC,GAAsD,OAA1E;;AACA,WAAKi9F,iBAAL,GAAyBnQ,sEAAe,CAAC9sF,KAAD,CAAxC;AACH,KAXD;AAYA;AACR;AACA;AACA;;;AACQ,SAAKu9F,aAAL,GAAsBv9F,KAAD,IAAW;AAC5B;AACA;AACA,UAAIo8F,gCAAgC,CAACp8F,KAAD,CAApC,EAA6C;AACzC,aAAKk9F,SAAL,CAAeriG,IAAf,CAAoB,UAApB;;AACA;AACH,OAN2B,CAO5B;AACA;;;AACA,WAAKsiG,YAAL,GAAoB/9F,IAAI,CAAC2M,GAAL,EAApB;;AACA,WAAKmxF,SAAL,CAAeriG,IAAf,CAAoB,OAApB;;AACA,WAAKoiG,iBAAL,GAAyBnQ,sEAAe,CAAC9sF,KAAD,CAAxC;AACH,KAZD;;AAaA,SAAKq9F,QAAL,GAAgBj/F,MAAM,CAACq6E,MAAP,CAAcr6E,MAAM,CAACq6E,MAAP,CAAc,EAAd,EAAkBgkB,uCAAlB,CAAd,EAA0EphF,OAA1E,CAAhB,CA7D8C,CA8D9C;;AACA,SAAKmiF,gBAAL,GAAwB,KAAKN,SAAL,CAAet9E,IAAf,CAAoB0tB,qDAAI,CAAC,CAAD,CAAxB,CAAxB;AACA,SAAKmwD,eAAL,GAAuB,KAAKD,gBAAL,CAAsB59E,IAAtB,CAA2B4uE,qEAAoB,EAA/C,CAAvB,CAhE8C,CAiE9C;AACA;;AACA,QAAImB,SAAS,CAAC/vB,SAAd,EAAyB;AACrBo9B,MAAAA,MAAM,CAACvE,iBAAP,CAAyB,MAAM;AAC3Bv7D,QAAAA,QAAQ,CAAC6K,gBAAT,CAA0B,SAA1B,EAAqC,KAAKq1D,UAA1C,EAAsDR,4BAAtD;AACA1/D,QAAAA,QAAQ,CAAC6K,gBAAT,CAA0B,WAA1B,EAAuC,KAAKu1D,YAA5C,EAA0DV,4BAA1D;AACA1/D,QAAAA,QAAQ,CAAC6K,gBAAT,CAA0B,YAA1B,EAAwC,KAAKw1D,aAA7C,EAA4DX,4BAA5D;AACH,OAJD;AAKH;AACJ;AACD;;;AACsB,MAAlBc,kBAAkB,GAAG;AACrB,WAAO,KAAKR,SAAL,CAAe3iG,KAAtB;AACH;;AACDu2F,EAAAA,WAAW,GAAG;AACV,SAAKoM,SAAL,CAAepwC,QAAf;;AACA,QAAI,KAAK6iC,SAAL,CAAe/vB,SAAnB,EAA8B;AAC1B1iC,MAAAA,QAAQ,CAACuY,mBAAT,CAA6B,SAA7B,EAAwC,KAAK2nD,UAA7C,EAAyDR,4BAAzD;AACA1/D,MAAAA,QAAQ,CAACuY,mBAAT,CAA6B,WAA7B,EAA0C,KAAK6nD,YAA/C,EAA6DV,4BAA7D;AACA1/D,MAAAA,QAAQ,CAACuY,mBAAT,CAA6B,YAA7B,EAA2C,KAAK8nD,aAAhD,EAA+DX,4BAA/D;AACH;AACJ;;AAvFuB;;AAyF5BG,qBAAqB,CAAC94B,IAAtB;AAAA,mBAAkH84B,qBAAlH,EAl4CgGvgC,sDAk4ChG,CAAyJmwB,2DAAzJ,GAl4CgGnwB,sDAk4ChG,CAAiLA,iDAAjL,GAl4CgGA,sDAk4ChG,CAAuM0vB,qDAAvM,GAl4CgG1vB,sDAk4ChG,CAA4NggC,+BAA5N;AAAA;;AACAO,qBAAqB,CAAC74B,KAAtB,kBAn4CgG1H,gEAm4ChG;AAAA,SAAsHugC,qBAAtH;AAAA,WAAsHA,qBAAtH;AAAA,cAAyJ;AAAzJ;;AACA;AAAA,qDAp4CgGvgC,+DAo4ChG,CAA2FugC,qBAA3F,EAA8H,CAAC;AACnH98F,IAAAA,IAAI,EAAEy8D,qDAD6G;AAEnHtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAF6G,GAAD,CAA9H,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAE0sF,2DAAWiF;AAAnB,KAAD,EAAwB;AAAE3xF,MAAAA,IAAI,EAAEu8D,iDAASw9B;AAAjB,KAAxB,EAA6C;AAAE/5F,MAAAA,IAAI,EAAE09F,QAAR;AAAkB7L,MAAAA,UAAU,EAAE,CAAC;AACnE7xF,QAAAA,IAAI,EAAEksF,iDAD6D;AAEnE/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAF6D,OAAD;AAA9B,KAA7C,EAGW;AAAEjsF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAClC7xF,QAAAA,IAAI,EAAEusF,mDAAQA;AADoB,OAAD,EAElC;AACCvsF,QAAAA,IAAI,EAAEksF,iDADP;AAEC/5E,QAAAA,IAAI,EAAE,CAACoqF,+BAAD;AAFP,OAFkC;AAA/B,KAHX,CAAP;AASH,GAbL;AAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMoB,4BAA4B,GAAG,IAAIrR,yDAAJ,CAAmB,sBAAnB,EAA2C;AAC5EsF,EAAAA,UAAU,EAAE,MADgE;AAE5E50D,EAAAA,OAAO,EAAE4gE;AAFmE,CAA3C,CAArC;AAIA;;AACA,SAASA,oCAAT,GAAgD;AAC5C,SAAO,IAAP;AACH;AACD;;;AACA,MAAMC,8BAA8B,GAAG,IAAIvR,yDAAJ,CAAmB,gCAAnB,CAAvC;;AAEA,MAAMwR,aAAN,CAAoB;AAChBr+F,EAAAA,WAAW,CAACs+F,YAAD,EAAerG,OAAf,EAAwBjI,SAAxB,EAAmCuO,eAAnC,EAAoD;AAC3D,SAAKtG,OAAL,GAAeA,OAAf;AACA,SAAKsG,eAAL,GAAuBA,eAAvB,CAF2D,CAG3D;AACA;AACA;;AACA,SAAKvO,SAAL,GAAiBA,SAAjB;AACA,SAAKwO,YAAL,GAAoBF,YAAY,IAAI,KAAKG,kBAAL,EAApC;AACH;;AACDC,EAAAA,QAAQ,CAACl1F,OAAD,EAAU,GAAGkJ,IAAb,EAAmB;AACvB,UAAMisF,cAAc,GAAG,KAAKJ,eAA5B;AACA,QAAIK,UAAJ;AACA,QAAIh/F,QAAJ;;AACA,QAAI8S,IAAI,CAACxU,MAAL,KAAgB,CAAhB,IAAqB,OAAOwU,IAAI,CAAC,CAAD,CAAX,KAAmB,QAA5C,EAAsD;AAClD9S,MAAAA,QAAQ,GAAG8S,IAAI,CAAC,CAAD,CAAf;AACH,KAFD,MAGK;AACD,OAACksF,UAAD,EAAah/F,QAAb,IAAyB8S,IAAzB;AACH;;AACD,SAAKuM,KAAL;AACA5Q,IAAAA,YAAY,CAAC,KAAKwwF,gBAAN,CAAZ;;AACA,QAAI,CAACD,UAAL,EAAiB;AACbA,MAAAA,UAAU,GACND,cAAc,IAAIA,cAAc,CAACC,UAAjC,GAA8CD,cAAc,CAACC,UAA7D,GAA0E,QAD9E;AAEH;;AACD,QAAIh/F,QAAQ,IAAI,IAAZ,IAAoB++F,cAAxB,EAAwC;AACpC/+F,MAAAA,QAAQ,GAAG++F,cAAc,CAAC/+F,QAA1B;AACH,KAlBsB,CAmBvB;;;AACA,SAAK4+F,YAAL,CAAkB7/D,YAAlB,CAA+B,WAA/B,EAA4CigE,UAA5C,EApBuB,CAqBvB;AACA;AACA;AACA;AACA;;;AACA,WAAO,KAAK3G,OAAL,CAAac,iBAAb,CAA+B,MAAM;AACxC,UAAI,CAAC,KAAK+F,eAAV,EAA2B;AACvB,aAAKA,eAAL,GAAuB,IAAI/jG,OAAJ,CAAYD,OAAO,IAAK,KAAKikG,eAAL,GAAuBjkG,OAA/C,CAAvB;AACH;;AACDuT,MAAAA,YAAY,CAAC,KAAKwwF,gBAAN,CAAZ;AACA,WAAKA,gBAAL,GAAwBh/F,UAAU,CAAC,MAAM;AACrC,aAAK2+F,YAAL,CAAkBj0D,WAAlB,GAAgC/gC,OAAhC;;AACA,YAAI,OAAO5J,QAAP,KAAoB,QAAxB,EAAkC;AAC9B,eAAKi/F,gBAAL,GAAwBh/F,UAAU,CAAC,MAAM,KAAKof,KAAL,EAAP,EAAqBrf,QAArB,CAAlC;AACH;;AACD,aAAKm/F,eAAL;;AACA,aAAKD,eAAL,GAAuB,KAAKC,eAAL,GAAuBp2F,SAA9C;AACH,OAPiC,EAO/B,GAP+B,CAAlC;AAQA,aAAO,KAAKm2F,eAAZ;AACH,KAdM,CAAP;AAeH;AACD;AACJ;AACA;AACA;AACA;;;AACI7/E,EAAAA,KAAK,GAAG;AACJ,QAAI,KAAKu/E,YAAT,EAAuB;AACnB,WAAKA,YAAL,CAAkBj0D,WAAlB,GAAgC,EAAhC;AACH;AACJ;;AACD6mD,EAAAA,WAAW,GAAG;AACV,QAAIjP,EAAJ,EAAQqP,EAAR;;AACAnjF,IAAAA,YAAY,CAAC,KAAKwwF,gBAAN,CAAZ;AACA,KAAC1c,EAAE,GAAG,KAAKqc,YAAX,MAA6B,IAA7B,IAAqCrc,EAAE,KAAK,KAAK,CAAjD,GAAqD,KAAK,CAA1D,GAA8DA,EAAE,CAACnvC,MAAH,EAA9D;AACA,SAAKwrD,YAAL,GAAoB,IAApB;AACA,KAAChN,EAAE,GAAG,KAAKuN,eAAX,MAAgC,IAAhC,IAAwCvN,EAAE,KAAK,KAAK,CAApD,GAAwD,KAAK,CAA7D,GAAiEA,EAAE,CAACnuF,IAAH,CAAQ,IAAR,CAAjE;AACA,SAAKy7F,eAAL,GAAuB,KAAKC,eAAL,GAAuBp2F,SAA9C;AACH;;AACD81F,EAAAA,kBAAkB,GAAG;AACjB,UAAMO,YAAY,GAAG,4BAArB;;AACA,UAAMC,gBAAgB,GAAG,KAAKjP,SAAL,CAAehqD,sBAAf,CAAsCg5D,YAAtC,CAAzB;;AACA,UAAME,MAAM,GAAG,KAAKlP,SAAL,CAAexxD,aAAf,CAA6B,KAA7B,CAAf,CAHiB,CAIjB;;;AACA,SAAK,IAAI57B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGq8F,gBAAgB,CAAC/gG,MAArC,EAA6C0E,CAAC,EAA9C,EAAkD;AAC9Cq8F,MAAAA,gBAAgB,CAACr8F,CAAD,CAAhB,CAAoBowC,MAApB;AACH;;AACDksD,IAAAA,MAAM,CAAC9c,SAAP,CAAiB5wD,GAAjB,CAAqBwtE,YAArB;AACAE,IAAAA,MAAM,CAAC9c,SAAP,CAAiB5wD,GAAjB,CAAqB,qBAArB;AACA0tE,IAAAA,MAAM,CAACvgE,YAAP,CAAoB,aAApB,EAAmC,MAAnC;AACAugE,IAAAA,MAAM,CAACvgE,YAAP,CAAoB,WAApB,EAAiC,QAAjC;;AACA,SAAKqxD,SAAL,CAAet2C,IAAf,CAAoB9a,WAApB,CAAgCsgE,MAAhC;;AACA,WAAOA,MAAP;AACH;;AApFe;;AAsFpBb,aAAa,CAAC95B,IAAd;AAAA,mBAA0G85B,aAA1G,EA3/CgGvhC,sDA2/ChG,CAAyIohC,4BAAzI,MA3/CgGphC,sDA2/ChG,CAAkMA,iDAAlM,GA3/CgGA,sDA2/ChG,CAAwN0vB,qDAAxN,GA3/CgG1vB,sDA2/ChG,CAA6OshC,8BAA7O;AAAA;;AACAC,aAAa,CAAC75B,KAAd,kBA5/CgG1H,gEA4/ChG;AAAA,SAA8GuhC,aAA9G;AAAA,WAA8GA,aAA9G;AAAA,cAAyI;AAAzI;;AACA;AAAA,qDA7/CgGvhC,+DA6/ChG,CAA2FuhC,aAA3F,EAAsH,CAAC;AAC3G99F,IAAAA,IAAI,EAAEy8D,qDADqG;AAE3GtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFqG,GAAD,CAAtH,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACxB7xF,QAAAA,IAAI,EAAEusF,mDAAQA;AADU,OAAD,EAExB;AACCvsF,QAAAA,IAAI,EAAEksF,iDADP;AAEC/5E,QAAAA,IAAI,EAAE,CAACwrF,4BAAD;AAFP,OAFwB;AAA/B,KAAD,EAKW;AAAE39F,MAAAA,IAAI,EAAEu8D,iDAASw9B;AAAjB,KALX,EAKgC;AAAE/5F,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACvD7xF,QAAAA,IAAI,EAAEksF,iDADiD;AAEvD/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFiD,OAAD;AAA/B,KALhC,EAQW;AAAEjsF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAClC7xF,QAAAA,IAAI,EAAEusF,mDAAQA;AADoB,OAAD,EAElC;AACCvsF,QAAAA,IAAI,EAAEksF,iDADP;AAEC/5E,QAAAA,IAAI,EAAE,CAAC0rF,8BAAD;AAFP,OAFkC;AAA/B,KARX,CAAP;AAcH,GAlBL;AAAA;AAmBA;AACA;AACA;AACA;;;AACA,MAAMe,WAAN,CAAkB;AACdn/F,EAAAA,WAAW,CAACw6F,WAAD,EAAc4E,cAAd,EAA8BC,gBAA9B,EAAgDpH,OAAhD,EAAyD;AAChE,SAAKuC,WAAL,GAAmBA,WAAnB;AACA,SAAK4E,cAAL,GAAsBA,cAAtB;AACA,SAAKC,gBAAL,GAAwBA,gBAAxB;AACA,SAAKpH,OAAL,GAAeA,OAAf;AACA,SAAKqH,WAAL,GAAmB,QAAnB;AACH;AACD;;;AACc,MAAVV,UAAU,GAAG;AACb,WAAO,KAAKU,WAAZ;AACH;;AACa,MAAVV,UAAU,CAAC/jG,KAAD,EAAQ;AAClB,SAAKykG,WAAL,GAAmBzkG,KAAK,KAAK,KAAV,IAAmBA,KAAK,KAAK,WAA7B,GAA2CA,KAA3C,GAAmD,QAAtE;;AACA,QAAI,KAAKykG,WAAL,KAAqB,KAAzB,EAAgC;AAC5B,UAAI,KAAKC,aAAT,EAAwB;AACpB,aAAKA,aAAL,CAAmBlL,WAAnB;;AACA,aAAKkL,aAAL,GAAqB,IAArB;AACH;AACJ,KALD,MAMK,IAAI,CAAC,KAAKA,aAAV,EAAyB;AAC1B,WAAKA,aAAL,GAAqB,KAAKtH,OAAL,CAAac,iBAAb,CAA+B,MAAM;AACtD,eAAO,KAAKsG,gBAAL,CAAsBG,OAAtB,CAA8B,KAAKhF,WAAnC,EAAgDnH,SAAhD,CAA0D,MAAM;AACnE;AACA,gBAAMoM,WAAW,GAAG,KAAKjF,WAAL,CAAiBI,aAAjB,CAA+BrwD,WAAnD,CAFmE,CAGnE;AACA;;AACA,cAAIk1D,WAAW,KAAK,KAAKC,sBAAzB,EAAiD;AAC7C,iBAAKN,cAAL,CAAoBV,QAApB,CAA6Be,WAA7B,EAA0C,KAAKH,WAA/C;;AACA,iBAAKI,sBAAL,GAA8BD,WAA9B;AACH;AACJ,SATM,CAAP;AAUH,OAXoB,CAArB;AAYH;AACJ;;AACDrO,EAAAA,WAAW,GAAG;AACV,QAAI,KAAKmO,aAAT,EAAwB;AACpB,WAAKA,aAAL,CAAmBlL,WAAnB;AACH;AACJ;;AAvCa;;AAyClB8K,WAAW,CAAC56B,IAAZ;AAAA,mBAAwG46B,WAAxG,EA7jDgGriC,+DA6jDhG,CAAqIA,qDAArI,GA7jDgGA,+DA6jDhG,CAA+JuhC,aAA/J,GA7jDgGvhC,+DA6jDhG,CAAyLoyB,oEAAzL,GA7jDgGpyB,+DA6jDhG,CAA0NA,iDAA1N;AAAA;;AACAqiC,WAAW,CAAC7D,IAAZ,kBA9jDgGx+B,+DA8jDhG;AAAA,QAA4FqiC,WAA5F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;AAAA,qDA/jDgGriC,+DA+jDhG,CAA2FqiC,WAA3F,EAAoH,CAAC;AACzG5+F,IAAAA,IAAI,EAAEosF,oDADmG;AAEzGj6E,IAAAA,IAAI,EAAE,CAAC;AACC7O,MAAAA,QAAQ,EAAE,eADX;AAEC03F,MAAAA,QAAQ,EAAE;AAFX,KAAD;AAFmG,GAAD,CAApH,EAM4B,YAAY;AAAE,WAAO,CAAC;AAAEh7F,MAAAA,IAAI,EAAEu8D,qDAAau+B;AAArB,KAAD,EAA0B;AAAE96F,MAAAA,IAAI,EAAE89F;AAAR,KAA1B,EAAmD;AAAE99F,MAAAA,IAAI,EAAE2uF,oEAAoByQ;AAA5B,KAAnD,EAAmF;AAAEp/F,MAAAA,IAAI,EAAEu8D,iDAASw9B;AAAjB,KAAnF,CAAP;AAAiH,GAN3J,EAM6K;AAAEsE,IAAAA,UAAU,EAAE,CAAC;AAC5Kr+F,MAAAA,IAAI,EAAEqsF,gDADsK;AAE5Kl6E,MAAAA,IAAI,EAAE,CAAC,aAAD;AAFsK,KAAD;AAAd,GAN7K;AAAA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAMktF,6BAA6B,GAAG,IAAI/S,yDAAJ,CAAmB,mCAAnB,CAAtC;AACA;AACA;AACA;AACA;;AACA,MAAMgT,2BAA2B,GAAG1S,sFAA+B,CAAC;AAChEgQ,EAAAA,OAAO,EAAE,IADuD;AAEhEC,EAAAA,OAAO,EAAE;AAFuD,CAAD,CAAnE;AAIA;;AACA,MAAM0C,YAAN,CAAmB;AACf9/F,EAAAA,WAAW,CAACi4F,OAAD,EAAUhI,SAAV,EAAqB8P,sBAArB;AACX;AACAviE,EAAAA,QAFW,EAED7hB,OAFC,EAEQ;AACf,SAAKs8E,OAAL,GAAeA,OAAf;AACA,SAAKhI,SAAL,GAAiBA,SAAjB;AACA,SAAK8P,sBAAL,GAA8BA,sBAA9B;AACA;;AACA,SAAK5J,OAAL,GAAe,IAAf;AACA;;AACA,SAAK6J,cAAL,GAAsB,KAAtB;AACA;AACR;AACA;AACA;;AACQ,SAAKC,2BAAL,GAAmC,KAAnC;AACA;;AACA,SAAKC,YAAL,GAAoB,IAAIhqF,GAAJ,EAApB;AACA;;AACA,SAAKiqF,sBAAL,GAA8B,CAA9B;AACA;AACR;AACA;AACA;AACA;AACA;;AACQ,SAAKC,2BAAL,GAAmC,IAAIlqF,GAAJ,EAAnC;AACA;AACR;AACA;AACA;;AACQ,SAAKmqF,oBAAL,GAA4B,MAAM;AAC9B;AACA;AACA,WAAKL,cAAL,GAAsB,IAAtB;AACA,WAAKM,qBAAL,GAA6BpmF,MAAM,CAACra,UAAP,CAAkB,MAAO,KAAKmgG,cAAL,GAAsB,KAA/C,CAA7B;AACH,KALD;AAMA;;;AACA,SAAKO,0BAAL,GAAkC,IAAIjT,yCAAJ,EAAlC;AACA;AACR;AACA;AACA;;AACQ,SAAKkT,6BAAL,GAAsClgG,KAAD,IAAW;AAC5C,YAAMqH,MAAM,GAAGylF,sEAAe,CAAC9sF,KAAD,CAA9B;;AACA,YAAM2mC,OAAO,GAAG3mC,KAAK,CAACC,IAAN,KAAe,OAAf,GAAyB,KAAKkgG,QAA9B,GAAyC,KAAKC,OAA9D,CAF4C,CAG5C;;AACA,WAAK,IAAIjgC,OAAO,GAAG94D,MAAnB,EAA2B84D,OAA3B,EAAoCA,OAAO,GAAGA,OAAO,CAACkgC,aAAtD,EAAqE;AACjE15D,QAAAA,OAAO,CAAC5jC,IAAR,CAAa,IAAb,EAAmB/C,KAAnB,EAA0BmgE,OAA1B;AACH;AACJ,KAPD;;AAQA,SAAKuvB,SAAL,GAAiBxyD,QAAjB;AACA,SAAKojE,cAAL,GAAsB,CAACjlF,OAAO,KAAK,IAAZ,IAAoBA,OAAO,KAAK,KAAK,CAArC,GAAyC,KAAK,CAA9C,GAAkDA,OAAO,CAACklF,aAA3D,KAA6E;AAAE;AAArG;AACH;;AACDC,EAAAA,OAAO,CAACrgC,OAAD,EAAUsgC,aAAa,GAAG,KAA1B,EAAiC;AACpC,UAAMnG,aAAa,GAAG3L,qEAAa,CAACxuB,OAAD,CAAnC,CADoC,CAEpC;;AACA,QAAI,CAAC,KAAKwvB,SAAL,CAAe/vB,SAAhB,IAA6B06B,aAAa,CAACnuE,QAAd,KAA2B,CAA5D,EAA+D;AAC3D,aAAOghE,yCAAE,CAAC,IAAD,CAAT;AACH,KALmC,CAMpC;AACA;AACA;;;AACA,UAAMuT,QAAQ,GAAG3T,qEAAc,CAACuN,aAAD,CAAd,IAAiC,KAAKqG,YAAL,EAAlD;;AACA,UAAMC,UAAU,GAAG,KAAKhB,YAAL,CAAkBjsF,GAAlB,CAAsB2mF,aAAtB,CAAnB,CAVoC,CAWpC;;;AACA,QAAIsG,UAAJ,EAAgB;AACZ,UAAIH,aAAJ,EAAmB;AACf;AACA;AACA;AACAG,QAAAA,UAAU,CAACH,aAAX,GAA2B,IAA3B;AACH;;AACD,aAAOG,UAAU,CAACC,OAAlB;AACH,KApBmC,CAqBpC;;;AACA,UAAMC,IAAI,GAAG;AACTL,MAAAA,aAAa,EAAEA,aADN;AAETI,MAAAA,OAAO,EAAE,IAAI7T,yCAAJ,EAFA;AAGT0T,MAAAA;AAHS,KAAb;;AAKA,SAAKd,YAAL,CAAkB79F,GAAlB,CAAsBu4F,aAAtB,EAAqCwG,IAArC;;AACA,SAAKC,wBAAL,CAA8BD,IAA9B;;AACA,WAAOA,IAAI,CAACD,OAAZ;AACH;;AACDG,EAAAA,cAAc,CAAC7gC,OAAD,EAAU;AACpB,UAAMm6B,aAAa,GAAG3L,qEAAa,CAACxuB,OAAD,CAAnC;;AACA,UAAM8gC,WAAW,GAAG,KAAKrB,YAAL,CAAkBjsF,GAAlB,CAAsB2mF,aAAtB,CAApB;;AACA,QAAI2G,WAAJ,EAAiB;AACbA,MAAAA,WAAW,CAACJ,OAAZ,CAAoB/zC,QAApB;;AACA,WAAKo0C,WAAL,CAAiB5G,aAAjB;;AACA,WAAKsF,YAAL,CAAkBniB,MAAlB,CAAyB6c,aAAzB;;AACA,WAAK6G,sBAAL,CAA4BF,WAA5B;AACH;AACJ;;AACDG,EAAAA,QAAQ,CAACjhC,OAAD,EAAUjkC,MAAV,EAAkB7gB,OAAlB,EAA2B;AAC/B,UAAMi/E,aAAa,GAAG3L,qEAAa,CAACxuB,OAAD,CAAnC;;AACA,UAAMkhC,cAAc,GAAG,KAAKV,YAAL,GAAoBz0D,aAA3C,CAF+B,CAG/B;AACA;AACA;;;AACA,QAAIouD,aAAa,KAAK+G,cAAtB,EAAsC;AAClC,WAAKC,uBAAL,CAA6BhH,aAA7B,EAA4Cp8F,OAA5C,CAAoD,CAAC,CAACqjG,cAAD,EAAiBT,IAAjB,CAAD,KAA4B,KAAKU,cAAL,CAAoBD,cAApB,EAAoCrlE,MAApC,EAA4C4kE,IAA5C,CAAhF;AACH,KAFD,MAGK;AACD,WAAKW,UAAL,CAAgBvlE,MAAhB,EADC,CAED;;;AACA,UAAI,OAAOo+D,aAAa,CAACp5C,KAArB,KAA+B,UAAnC,EAA+C;AAC3Co5C,QAAAA,aAAa,CAACp5C,KAAd,CAAoB7lC,OAApB;AACH;AACJ;AACJ;;AACDy1E,EAAAA,WAAW,GAAG;AACV,SAAK8O,YAAL,CAAkB1hG,OAAlB,CAA0B,CAACwjG,KAAD,EAAQvhC,OAAR,KAAoB,KAAK6gC,cAAL,CAAoB7gC,OAApB,CAA9C;AACH;AACD;;;AACAwgC,EAAAA,YAAY,GAAG;AACX,WAAO,KAAKjR,SAAL,IAAkBxyD,QAAzB;AACH;AACD;;;AACAykE,EAAAA,UAAU,GAAG;AACT,UAAM3jE,GAAG,GAAG,KAAK2iE,YAAL,EAAZ;;AACA,WAAO3iE,GAAG,CAAC6J,WAAJ,IAAmBjuB,MAA1B;AACH;;AACDgoF,EAAAA,eAAe,CAACC,gBAAD,EAAmB;AAC9B,QAAI,KAAKhM,OAAT,EAAkB;AACd;AACA;AACA,UAAI,KAAK8J,2BAAT,EAAsC;AAClC,eAAO,KAAKmC,0BAAL,CAAgCD,gBAAhC,IAAoD,OAApD,GAA8D,SAArE;AACH,OAFD,MAGK;AACD,eAAO,KAAKhM,OAAZ;AACH;AACJ,KAV6B,CAW9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,WAAO,KAAK6J,cAAL,IAAuB,KAAKqC,gBAA5B,GAA+C,KAAKA,gBAApD,GAAuE,SAA9E;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACID,EAAAA,0BAA0B,CAACD,gBAAD,EAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAQ,KAAKvB,cAAL,KAAwB;AAAE;AAA1B,OACJ,CAAC,EAAEuB,gBAAgB,KAAK,IAArB,IAA6BA,gBAAgB,KAAK,KAAK,CAAvD,GAA2D,KAAK,CAAhE,GAAoEA,gBAAgB,CAAC9/D,QAAjB,CAA0B,KAAK09D,sBAAL,CAA4BxC,iBAAtD,CAAtE,CADL;AAEH;AACD;AACJ;AACA;AACA;AACA;;;AACIiE,EAAAA,WAAW,CAAC/gC,OAAD,EAAUjkC,MAAV,EAAkB;AACzBikC,IAAAA,OAAO,CAAC2hB,SAAR,CAAkBtoC,MAAlB,CAAyB,aAAzB,EAAwC,CAAC,CAACtd,MAA1C;AACAikC,IAAAA,OAAO,CAAC2hB,SAAR,CAAkBtoC,MAAlB,CAAyB,mBAAzB,EAA8Ctd,MAAM,KAAK,OAAzD;AACAikC,IAAAA,OAAO,CAAC2hB,SAAR,CAAkBtoC,MAAlB,CAAyB,sBAAzB,EAAiDtd,MAAM,KAAK,UAA5D;AACAikC,IAAAA,OAAO,CAAC2hB,SAAR,CAAkBtoC,MAAlB,CAAyB,mBAAzB,EAA8Ctd,MAAM,KAAK,OAAzD;AACAikC,IAAAA,OAAO,CAAC2hB,SAAR,CAAkBtoC,MAAlB,CAAyB,qBAAzB,EAAgDtd,MAAM,KAAK,SAA3D;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACIulE,EAAAA,UAAU,CAACvlE,MAAD,EAAS8lE,iBAAiB,GAAG,KAA7B,EAAoC;AAC1C,SAAKrK,OAAL,CAAac,iBAAb,CAA+B,MAAM;AACjC,WAAK5C,OAAL,GAAe35D,MAAf;AACA,WAAKyjE,2BAAL,GAAmCzjE,MAAM,KAAK,OAAX,IAAsB8lE,iBAAzD,CAFiC,CAGjC;AACA;AACA;AACA;AACA;;AACA,UAAI,KAAK1B,cAAL,KAAwB;AAAE;AAA9B,QAA+C;AAC3CvyF,QAAAA,YAAY,CAAC,KAAKk0F,gBAAN,CAAZ;AACA,cAAMC,EAAE,GAAG,KAAKvC,2BAAL,GAAmChD,eAAnC,GAAqD,CAAhE;AACA,aAAKsF,gBAAL,GAAwB1iG,UAAU,CAAC,MAAO,KAAKs2F,OAAL,GAAe,IAAvB,EAA8BqM,EAA9B,CAAlC;AACH;AACJ,KAbD;AAcH;AACD;AACJ;AACA;AACA;AACA;;;AACI/B,EAAAA,QAAQ,CAACngG,KAAD,EAAQmgE,OAAR,EAAiB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,UAAM8gC,WAAW,GAAG,KAAKrB,YAAL,CAAkBjsF,GAAlB,CAAsBwsD,OAAtB,CAApB;;AACA,UAAM0hC,gBAAgB,GAAG/U,sEAAe,CAAC9sF,KAAD,CAAxC;;AACA,QAAI,CAACihG,WAAD,IAAiB,CAACA,WAAW,CAACR,aAAb,IAA8BtgC,OAAO,KAAK0hC,gBAA/D,EAAkF;AAC9E;AACH;;AACD,SAAKL,cAAL,CAAoBrhC,OAApB,EAA6B,KAAKyhC,eAAL,CAAqBC,gBAArB,CAA7B,EAAqEZ,WAArE;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACIb,EAAAA,OAAO,CAACpgG,KAAD,EAAQmgE,OAAR,EAAiB;AACpB;AACA;AACA,UAAM8gC,WAAW,GAAG,KAAKrB,YAAL,CAAkBjsF,GAAlB,CAAsBwsD,OAAtB,CAApB;;AACA,QAAI,CAAC8gC,WAAD,IACCA,WAAW,CAACR,aAAZ,IACGzgG,KAAK,CAACo/C,aAAN,YAA+B+iD,IADlC,IAEGhiC,OAAO,CAACp+B,QAAR,CAAiB/hC,KAAK,CAACo/C,aAAvB,CAHR,EAGgD;AAC5C;AACH;;AACD,SAAK8hD,WAAL,CAAiB/gC,OAAjB;;AACA,SAAKiiC,WAAL,CAAiBnB,WAAW,CAACJ,OAA7B,EAAsC,IAAtC;AACH;;AACDuB,EAAAA,WAAW,CAACvB,OAAD,EAAU3kE,MAAV,EAAkB;AACzB,SAAKy7D,OAAL,CAAa7tC,GAAb,CAAiB,MAAM+2C,OAAO,CAAChmG,IAAR,CAAaqhC,MAAb,CAAvB;AACH;;AACD6kE,EAAAA,wBAAwB,CAACE,WAAD,EAAc;AAClC,QAAI,CAAC,KAAKtR,SAAL,CAAe/vB,SAApB,EAA+B;AAC3B;AACH;;AACD,UAAM8gC,QAAQ,GAAGO,WAAW,CAACP,QAA7B;AACA,UAAM2B,sBAAsB,GAAG,KAAKvC,2BAAL,CAAiCnsF,GAAjC,CAAqC+sF,QAArC,KAAkD,CAAjF;;AACA,QAAI,CAAC2B,sBAAL,EAA6B;AACzB,WAAK1K,OAAL,CAAac,iBAAb,CAA+B,MAAM;AACjCiI,QAAAA,QAAQ,CAAC34D,gBAAT,CAA0B,OAA1B,EAAmC,KAAKm4D,6BAAxC,EAAuEX,2BAAvE;AACAmB,QAAAA,QAAQ,CAAC34D,gBAAT,CAA0B,MAA1B,EAAkC,KAAKm4D,6BAAvC,EAAsEX,2BAAtE;AACH,OAHD;AAIH;;AACD,SAAKO,2BAAL,CAAiC/9F,GAAjC,CAAqC2+F,QAArC,EAA+C2B,sBAAsB,GAAG,CAAxE,EAZkC,CAalC;;;AACA,QAAI,EAAE,KAAKxC,sBAAP,KAAkC,CAAtC,EAAyC;AACrC;AACA;AACA,WAAKlI,OAAL,CAAac,iBAAb,CAA+B,MAAM;AACjC,cAAM7+E,MAAM,GAAG,KAAK+nF,UAAL,EAAf;;AACA/nF,QAAAA,MAAM,CAACmuB,gBAAP,CAAwB,OAAxB,EAAiC,KAAKg4D,oBAAtC;AACH,OAHD,EAHqC,CAOrC;;;AACA,WAAKN,sBAAL,CAA4BjC,gBAA5B,CACK59E,IADL,CACU6uE,0DAAS,CAAC,KAAKwR,0BAAN,CADnB,EAEKlN,SAFL,CAEeuP,QAAQ,IAAI;AACvB,aAAKb,UAAL,CAAgBa,QAAhB,EAA0B;AAAK;AAA/B;AACH,OAJD;AAKH;AACJ;;AACDnB,EAAAA,sBAAsB,CAACF,WAAD,EAAc;AAChC,UAAMP,QAAQ,GAAGO,WAAW,CAACP,QAA7B;;AACA,QAAI,KAAKZ,2BAAL,CAAiCxyE,GAAjC,CAAqCozE,QAArC,CAAJ,EAAoD;AAChD,YAAM2B,sBAAsB,GAAG,KAAKvC,2BAAL,CAAiCnsF,GAAjC,CAAqC+sF,QAArC,CAA/B;;AACA,UAAI2B,sBAAsB,GAAG,CAA7B,EAAgC;AAC5B,aAAKvC,2BAAL,CAAiC/9F,GAAjC,CAAqC2+F,QAArC,EAA+C2B,sBAAsB,GAAG,CAAxE;AACH,OAFD,MAGK;AACD3B,QAAAA,QAAQ,CAACjrD,mBAAT,CAA6B,OAA7B,EAAsC,KAAKyqD,6BAA3C,EAA0EX,2BAA1E;AACAmB,QAAAA,QAAQ,CAACjrD,mBAAT,CAA6B,MAA7B,EAAqC,KAAKyqD,6BAA1C,EAAyEX,2BAAzE;;AACA,aAAKO,2BAAL,CAAiCriB,MAAjC,CAAwCijB,QAAxC;AACH;AACJ,KAZ+B,CAahC;;;AACA,QAAI,CAAC,GAAE,KAAKb,sBAAZ,EAAoC;AAChC,YAAMjmF,MAAM,GAAG,KAAK+nF,UAAL,EAAf;;AACA/nF,MAAAA,MAAM,CAAC67B,mBAAP,CAA2B,OAA3B,EAAoC,KAAKsqD,oBAAzC,EAFgC,CAGhC;;AACA,WAAKE,0BAAL,CAAgCplG,IAAhC,GAJgC,CAKhC;;;AACAkT,MAAAA,YAAY,CAAC,KAAKiyF,qBAAN,CAAZ;AACAjyF,MAAAA,YAAY,CAAC,KAAKk0F,gBAAN,CAAZ;AACH;AACJ;AACD;;;AACAT,EAAAA,cAAc,CAACrhC,OAAD,EAAUjkC,MAAV,EAAkB+kE,WAAlB,EAA+B;AACzC,SAAKC,WAAL,CAAiB/gC,OAAjB,EAA0BjkC,MAA1B;;AACA,SAAKkmE,WAAL,CAAiBnB,WAAW,CAACJ,OAA7B,EAAsC3kE,MAAtC;;AACA,SAAK6lE,gBAAL,GAAwB7lE,MAAxB;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACIolE,EAAAA,uBAAuB,CAACnhC,OAAD,EAAU;AAC7B,UAAM3/B,OAAO,GAAG,EAAhB;;AACA,SAAKo/D,YAAL,CAAkB1hG,OAAlB,CAA0B,CAAC4iG,IAAD,EAAOS,cAAP,KAA0B;AAChD,UAAIA,cAAc,KAAKphC,OAAnB,IAA+B2gC,IAAI,CAACL,aAAL,IAAsBc,cAAc,CAACx/D,QAAf,CAAwBo+B,OAAxB,CAAzD,EAA4F;AACxF3/B,QAAAA,OAAO,CAACj+B,IAAR,CAAa,CAACg/F,cAAD,EAAiBT,IAAjB,CAAb;AACH;AACJ,KAJD;;AAKA,WAAOtgE,OAAP;AACH;;AA3Tc;;AA6TnBg/D,YAAY,CAACv7B,IAAb;AAAA,mBAAyGu7B,YAAzG,EAz5DgGhjC,sDAy5DhG,CAAuIA,iDAAvI,GAz5DgGA,sDAy5DhG,CAA6JmwB,2DAA7J,GAz5DgGnwB,sDAy5DhG,CAAqLugC,qBAArL,GAz5DgGvgC,sDAy5DhG,CAAuN0vB,qDAAvN,MAz5DgG1vB,sDAy5DhG,CAA4P8iC,6BAA5P;AAAA;;AACAE,YAAY,CAACt7B,KAAb,kBA15DgG1H,gEA05DhG;AAAA,SAA6GgjC,YAA7G;AAAA,WAA6GA,YAA7G;AAAA,cAAuI;AAAvI;;AACA;AAAA,qDA35DgGhjC,+DA25DhG,CAA2FgjC,YAA3F,EAAqH,CAAC;AAC1Gv/F,IAAAA,IAAI,EAAEy8D,qDADoG;AAE1GtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFoG,GAAD,CAArH,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAEu8D,iDAASw9B;AAAjB,KAAD,EAAsB;AAAE/5F,MAAAA,IAAI,EAAE0sF,2DAAWiF;AAAnB,KAAtB,EAA6C;AAAE3xF,MAAAA,IAAI,EAAE88F;AAAR,KAA7C,EAA8E;AAAE98F,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACrG7xF,QAAAA,IAAI,EAAEusF,mDAAQA;AADuF,OAAD,EAErG;AACCvsF,QAAAA,IAAI,EAAEksF,iDADP;AAEC/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFP,OAFqG;AAA/B,KAA9E,EAKW;AAAEjsF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAClC7xF,QAAAA,IAAI,EAAEusF,mDAAQA;AADoB,OAAD,EAElC;AACCvsF,QAAAA,IAAI,EAAEksF,iDADP;AAEC/5E,QAAAA,IAAI,EAAE,CAACktF,6BAAD;AAFP,OAFkC;AAA/B,KALX,CAAP;AAWH,GAfL;AAAA;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMiD,eAAN,CAAsB;AAClB7iG,EAAAA,WAAW,CAACw6F,WAAD,EAAcsI,aAAd,EAA6B;AACpC,SAAKtI,WAAL,GAAmBA,WAAnB;AACA,SAAKsI,aAAL,GAAqBA,aAArB;AACA,SAAKC,cAAL,GAAsB,IAAIppF,uDAAJ,EAAtB;AACH;;AACDqpF,EAAAA,eAAe,GAAG;AACd,UAAMviC,OAAO,GAAG,KAAK+5B,WAAL,CAAiBI,aAAjC;AACA,SAAKqI,oBAAL,GAA4B,KAAKH,aAAL,CACvBhC,OADuB,CACfrgC,OADe,EACNA,OAAO,CAACh0C,QAAR,KAAqB,CAArB,IAA0Bg0C,OAAO,CAAC+1B,YAAR,CAAqB,wBAArB,CADpB,EAEvBnD,SAFuB,CAEb72D,MAAM,IAAI,KAAKumE,cAAL,CAAoB76F,IAApB,CAAyBs0B,MAAzB,CAFG,CAA5B;AAGH;;AACD40D,EAAAA,WAAW,GAAG;AACV,SAAK0R,aAAL,CAAmBxB,cAAnB,CAAkC,KAAK9G,WAAvC;;AACA,QAAI,KAAKyI,oBAAT,EAA+B;AAC3B,WAAKA,oBAAL,CAA0B5O,WAA1B;AACH;AACJ;;AAjBiB;;AAmBtBwO,eAAe,CAACt+B,IAAhB;AAAA,mBAA4Gs+B,eAA5G,EAv8DgG/lC,+DAu8DhG,CAA6IA,qDAA7I,GAv8DgGA,+DAu8DhG,CAAuKgjC,YAAvK;AAAA;;AACA+C,eAAe,CAACvH,IAAhB,kBAx8DgGx+B,+DAw8DhG;AAAA,QAAgG+lC,eAAhG;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;AAAA,qDAz8DgG/lC,+DAy8DhG,CAA2F+lC,eAA3F,EAAwH,CAAC;AAC7GtiG,IAAAA,IAAI,EAAEosF,oDADuG;AAE7Gj6E,IAAAA,IAAI,EAAE,CAAC;AACC7O,MAAAA,QAAQ,EAAE;AADX,KAAD;AAFuG,GAAD,CAAxH,EAK4B,YAAY;AAAE,WAAO,CAAC;AAAEtD,MAAAA,IAAI,EAAEu8D,qDAAau+B;AAArB,KAAD,EAA0B;AAAE96F,MAAAA,IAAI,EAAEu/F;AAAR,KAA1B,CAAP;AAA2D,GALrG,EAKuH;AAAEiD,IAAAA,cAAc,EAAE,CAAC;AAC1HxiG,MAAAA,IAAI,EAAEwsF,iDAAMA;AAD8G,KAAD;AAAlB,GALvH;AAAA;AASA;;;AACA,MAAMmW,wBAAwB,GAAG,kCAAjC;AACA;;AACA,MAAMC,wBAAwB,GAAG,kCAAjC;AACA;;AACA,MAAMC,mCAAmC,GAAG,0BAA5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,wBAAN,CAA+B;AAC3BrjG,EAAAA,WAAW,CAACiwF,SAAD,EAAYzyD,QAAZ,EAAsB;AAC7B,SAAKyyD,SAAL,GAAiBA,SAAjB;AACA,SAAKD,SAAL,GAAiBxyD,QAAjB;AACH;AACD;;;AACA8lE,EAAAA,mBAAmB,GAAG;AAClB,QAAI,CAAC,KAAKrT,SAAL,CAAe/vB,SAApB,EAA+B;AAC3B,aAAO;AAAE;AAAT;AACH,KAHiB,CAIlB;AACA;AACA;;;AACA,UAAMqjC,WAAW,GAAG,KAAKvT,SAAL,CAAexxD,aAAf,CAA6B,KAA7B,CAApB;;AACA+kE,IAAAA,WAAW,CAAC7pE,KAAZ,CAAkB8pE,eAAlB,GAAoC,YAApC;AACAD,IAAAA,WAAW,CAAC7pE,KAAZ,CAAkB3qB,QAAlB,GAA6B,UAA7B;;AACA,SAAKihF,SAAL,CAAet2C,IAAf,CAAoB9a,WAApB,CAAgC2kE,WAAhC,EAVkB,CAWlB;AACA;AACA;AACA;;;AACA,UAAME,cAAc,GAAG,KAAKzT,SAAL,CAAe7nD,WAAf,IAA8BjuB,MAArD;AACA,UAAMwpF,aAAa,GAAGD,cAAc,IAAIA,cAAc,CAAC/+C,gBAAjC,GAChB++C,cAAc,CAAC/+C,gBAAf,CAAgC6+C,WAAhC,CADgB,GAEhB,IAFN;AAGA,UAAMI,aAAa,GAAG,CAAED,aAAa,IAAIA,aAAa,CAACF,eAAhC,IAAoD,EAArD,EAAyDr9F,OAAzD,CAAiE,IAAjE,EAAuE,EAAvE,CAAtB;AACAo9F,IAAAA,WAAW,CAACvwD,MAAZ;;AACA,YAAQ2wD,aAAR;AACI,WAAK,YAAL;AACI,eAAO;AAAE;AAAT;;AACJ,WAAK,kBAAL;AACI,eAAO;AAAE;AAAT;AAJR;;AAMA,WAAO;AAAE;AAAT;AACH;AACD;;;AACAC,EAAAA,oCAAoC,GAAG;AACnC,QAAI,CAAC,KAAKC,2BAAN,IAAqC,KAAK5T,SAAL,CAAe/vB,SAApD,IAAiE,KAAK8vB,SAAL,CAAet2C,IAApF,EAA0F;AACtF,YAAMoqD,WAAW,GAAG,KAAK9T,SAAL,CAAet2C,IAAf,CAAoB0oC,SAAxC,CADsF,CAEtF;;AACA0hB,MAAAA,WAAW,CAAC9wD,MAAZ,CAAmBowD,mCAAnB;AACAU,MAAAA,WAAW,CAAC9wD,MAAZ,CAAmBkwD,wBAAnB;AACAY,MAAAA,WAAW,CAAC9wD,MAAZ,CAAmBmwD,wBAAnB;AACA,WAAKU,2BAAL,GAAmC,IAAnC;AACA,YAAME,IAAI,GAAG,KAAKT,mBAAL,EAAb;;AACA,UAAIS,IAAI,KAAK;AAAE;AAAf,QAAqC;AACjCD,QAAAA,WAAW,CAACtyE,GAAZ,CAAgB4xE,mCAAhB;AACAU,QAAAA,WAAW,CAACtyE,GAAZ,CAAgB0xE,wBAAhB;AACH,OAHD,MAIK,IAAIa,IAAI,KAAK;AAAE;AAAf,QAAqC;AACtCD,QAAAA,WAAW,CAACtyE,GAAZ,CAAgB4xE,mCAAhB;AACAU,QAAAA,WAAW,CAACtyE,GAAZ,CAAgB2xE,wBAAhB;AACH;AACJ;AACJ;;AAtD0B;;AAwD/BE,wBAAwB,CAAC9+B,IAAzB;AAAA,mBAAqH8+B,wBAArH,EA3hEgGvmC,sDA2hEhG,CAA+JmwB,2DAA/J,GA3hEgGnwB,sDA2hEhG,CAAuL0vB,qDAAvL;AAAA;;AACA6W,wBAAwB,CAAC7+B,KAAzB,kBA5hEgG1H,gEA4hEhG;AAAA,SAAyHumC,wBAAzH;AAAA,WAAyHA,wBAAzH;AAAA,cAA+J;AAA/J;;AACA;AAAA,qDA7hEgGvmC,+DA6hEhG,CAA2FumC,wBAA3F,EAAiI,CAAC;AACtH9iG,IAAAA,IAAI,EAAEy8D,qDADgH;AAEtHtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFgH,GAAD,CAAjI,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAE0sF,2DAAWiF;AAAnB,KAAD,EAAwB;AAAE3xF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAC/C7xF,QAAAA,IAAI,EAAEksF,iDADyC;AAE/C/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFyC,OAAD;AAA/B,KAAxB,CAAP;AAIH,GARL;AAAA;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwX,UAAN,CAAiB;AACbhkG,EAAAA,WAAW,CAACikG,wBAAD,EAA2B;AAClCA,IAAAA,wBAAwB,CAACL,oCAAzB;AACH;;AAHY;;AAKjBI,UAAU,CAACz/B,IAAX;AAAA,mBAAuGy/B,UAAvG,EAnjEgGlnC,sDAmjEhG,CAAmIumC,wBAAnI;AAAA;;AACAW,UAAU,CAACE,IAAX,kBApjEgGpnC,8DAojEhG;AAAA,QAAwGknC;AAAxG;AACAA,UAAU,CAACG,IAAX,kBArjEgGrnC,8DAqjEhG;AAAA,YAA8H,CAACqyB,oEAAD,CAA9H;AAAA;;AACA;AAAA,qDAtjEgGryB,+DAsjEhG,CAA2FknC,UAA3F,EAAmH,CAAC;AACxGzjG,IAAAA,IAAI,EAAEysF,mDADkG;AAExGt6E,IAAAA,IAAI,EAAE,CAAC;AACC0xF,MAAAA,OAAO,EAAE,CAACjV,oEAAD,CADV;AAECkV,MAAAA,YAAY,EAAE,CAAClF,WAAD,EAAc5E,YAAd,EAA4BsI,eAA5B,CAFf;AAGChqF,MAAAA,OAAO,EAAE,CAACsmF,WAAD,EAAc5E,YAAd,EAA4BsI,eAA5B;AAHV,KAAD;AAFkG,GAAD,CAAnH,EAO4B,YAAY;AAAE,WAAO,CAAC;AAAEtiG,MAAAA,IAAI,EAAE8iG;AAAR,KAAD,CAAP;AAA8C,GAPxF;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACz1EA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMkB,YAAY,GAAG,IAAI1X,yDAAJ,CAAmB,aAAnB,EAAkC;AACnDsF,EAAAA,UAAU,EAAE,MADuC;AAEnD50D,EAAAA,OAAO,EAAEinE;AAF0C,CAAlC,CAArB;AAIA;;AACA,SAASA,oBAAT,GAAgC;AAC5B,SAAOF,qDAAM,CAAC9X,qDAAD,CAAb;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAMiY,kBAAkB,GAAG,oHAA3B;AACA;;AACA,SAASC,sBAAT,CAAgCC,QAAhC,EAA0C;AACtC,QAAM9pG,KAAK,GAAG,CAAC8pG,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,KAAK,KAAK,CAAvC,GAA2C,KAAK,CAAhD,GAAoDA,QAAQ,CAAC7mG,WAAT,EAArD,KAAgF,EAA9F;;AACA,MAAIjD,KAAK,KAAK,MAAV,IAAoB,OAAO+pG,SAAP,KAAqB,WAAzC,KAAyDA,SAAS,KAAK,IAAd,IAAsBA,SAAS,KAAK,KAAK,CAAzC,GAA6C,KAAK,CAAlD,GAAsDA,SAAS,CAACC,QAAzH,CAAJ,EAAwI;AACpI,WAAOJ,kBAAkB,CAAC3vE,IAAnB,CAAwB8vE,SAAS,CAACC,QAAlC,IAA8C,KAA9C,GAAsD,KAA7D;AACH;;AACD,SAAOhqG,KAAK,KAAK,KAAV,GAAkB,KAAlB,GAA0B,KAAjC;AACH;AACD;AACA;AACA;AACA;;;AACA,MAAMiqG,cAAN,CAAqB;AACjB9kG,EAAAA,WAAW,CAACgwF,SAAD,EAAY;AACnB;AACA,SAAKn1F,KAAL,GAAa,KAAb;AACA;;AACA,SAAKs4F,MAAL,GAAc,IAAIx5E,uDAAJ,EAAd;;AACA,QAAIq2E,SAAJ,EAAe;AACX,YAAM+U,OAAO,GAAG/U,SAAS,CAACt2C,IAAV,GAAiBs2C,SAAS,CAACt2C,IAAV,CAAetU,GAAhC,GAAsC,IAAtD;AACA,YAAM4/D,OAAO,GAAGhV,SAAS,CAAChoD,eAAV,GAA4BgoD,SAAS,CAAChoD,eAAV,CAA0B5C,GAAtD,GAA4D,IAA5E;AACA,WAAKvqC,KAAL,GAAa6pG,sBAAsB,CAACK,OAAO,IAAIC,OAAX,IAAsB,KAAvB,CAAnC;AACH;AACJ;;AACD5T,EAAAA,WAAW,GAAG;AACV,SAAK+B,MAAL,CAAY/lC,QAAZ;AACH;;AAdgB;;AAgBrB03C,cAAc,CAACvgC,IAAf;AAAA,mBAA2GugC,cAA3G,EAAiGhoC,sDAAjG,CAA2IynC,YAA3I;AAAA;;AACAO,cAAc,CAACtgC,KAAf,kBADiG1H,gEACjG;AAAA,SAA+GgoC,cAA/G;AAAA,WAA+GA,cAA/G;AAAA,cAA2I;AAA3I;;AACA;AAAA,qDAFiGhoC,+DAEjG,CAA2FgoC,cAA3F,EAAuH,CAAC;AAC5GvkG,IAAAA,IAAI,EAAEy8D,qDADsG;AAE5GtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFsG,GAAD,CAAvH,EAG4B,YAAY;AAChC,WAAO,CAAC;AAAE5xF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACxB7xF,QAAAA,IAAI,EAAEusF,mDAAQA;AADU,OAAD,EAExB;AACCvsF,QAAAA,IAAI,EAAEksF,iDADP;AAEC/5E,QAAAA,IAAI,EAAE,CAAC6xF,YAAD;AAFP,OAFwB;AAA/B,KAAD,CAAP;AAMH,GAVL;AAAA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMU,GAAN,CAAU;AACNjlG,EAAAA,WAAW,GAAG;AACV;AACA,SAAKklG,IAAL,GAAY,KAAZ;AACA;;AACA,SAAKC,cAAL,GAAsB,KAAtB;AACA;;AACA,SAAKhS,MAAL,GAAc,IAAIx5E,uDAAJ,EAAd;AACH;AACD;;;AACO,MAAHyrB,GAAG,GAAG;AACN,WAAO,KAAK8/D,IAAZ;AACH;;AACM,MAAH9/D,GAAG,CAACvqC,KAAD,EAAQ;AACX,UAAM8oF,aAAa,GAAG,KAAKuhB,IAA3B,CADW,CAEX;AACA;AACA;;AACA,SAAKA,IAAL,GAAYR,sBAAsB,CAAC7pG,KAAD,CAAlC;AACA,SAAKuqG,OAAL,GAAevqG,KAAf;;AACA,QAAI8oF,aAAa,KAAK,KAAKuhB,IAAvB,IAA+B,KAAKC,cAAxC,EAAwD;AACpD,WAAKhS,MAAL,CAAYjrF,IAAZ,CAAiB,KAAKg9F,IAAtB;AACH;AACJ;AACD;;;AACS,MAALrqG,KAAK,GAAG;AACR,WAAO,KAAKuqC,GAAZ;AACH;AACD;;;AACA21D,EAAAA,kBAAkB,GAAG;AACjB,SAAKoK,cAAL,GAAsB,IAAtB;AACH;;AACD/T,EAAAA,WAAW,GAAG;AACV,SAAK+B,MAAL,CAAY/lC,QAAZ;AACH;;AAlCK;;AAoCV63C,GAAG,CAAC1gC,IAAJ;AAAA,mBAAgG0gC,GAAhG;AAAA;;AACAA,GAAG,CAAC3J,IAAJ,kBAhEiGx+B,+DAgEjG;AAAA,QAAoFmoC,GAApF;AAAA;AAAA;AAAA;AAAA;AAhEiGnoC,MAAAA,yDAgEjG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aAhEiGA,gEAgEjG,CAAkO,CAAC;AAAEuoC,IAAAA,OAAO,EAAEP,cAAX;AAA2BQ,IAAAA,WAAW,EAAEL;AAAxC,GAAD,CAAlO;AAAA;;AACA;AAAA,qDAjEiGnoC,+DAiEjG,CAA2FmoC,GAA3F,EAA4G,CAAC;AACjG1kG,IAAAA,IAAI,EAAEosF,oDAD2F;AAEjGj6E,IAAAA,IAAI,EAAE,CAAC;AACC7O,MAAAA,QAAQ,EAAE,OADX;AAEC0hG,MAAAA,SAAS,EAAE,CAAC;AAAEF,QAAAA,OAAO,EAAEP,cAAX;AAA2BQ,QAAAA,WAAW,EAAEL;AAAxC,OAAD,CAFZ;AAGCluC,MAAAA,IAAI,EAAE;AAAE,sBAAc;AAAhB,OAHP;AAICwkC,MAAAA,QAAQ,EAAE;AAJX,KAAD;AAF2F,GAAD,CAA5G,QAQ4B;AAAEpI,IAAAA,MAAM,EAAE,CAAC;AACvB5yF,MAAAA,IAAI,EAAEwsF,iDADiB;AAEvBr6E,MAAAA,IAAI,EAAE,CAAC,WAAD;AAFiB,KAAD,CAAV;AAGZ0yB,IAAAA,GAAG,EAAE,CAAC;AACN7kC,MAAAA,IAAI,EAAEqsF,gDAAKA;AADL,KAAD;AAHO,GAR5B;AAAA;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4Y,UAAN,CAAiB;;AAEjBA,UAAU,CAACjhC,IAAX;AAAA,mBAAuGihC,UAAvG;AAAA;;AACAA,UAAU,CAACtB,IAAX,kBA1FiGpnC,8DA0FjG;AAAA,QAAwG0oC;AAAxG;AACAA,UAAU,CAACrB,IAAX,kBA3FiGrnC,8DA2FjG;;AACA;AAAA,qDA5FiGA,+DA4FjG,CAA2F0oC,UAA3F,EAAmH,CAAC;AACxGjlG,IAAAA,IAAI,EAAEysF,mDADkG;AAExGt6E,IAAAA,IAAI,EAAE,CAAC;AACCmG,MAAAA,OAAO,EAAE,CAACosF,GAAD,CADV;AAECZ,MAAAA,YAAY,EAAE,CAACY,GAAD;AAFf,KAAD;AAFkG,GAAD,CAAnH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9LwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kDAAO;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmB;;;;;;;;;;;;;;;;;;;;;;;AC5BwB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,MAAM;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qDAAU;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB,8BAA8B;AAC9B,yBAAyB;AACzB,SAAS,MAAM,SAAS;AACxB,QAAQ,MAAM,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,MAAM;AACrE;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE2I;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClI3I;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMS,UAAN,CAAiB;AAEjB;;;AACA,SAASC,YAAT,CAAsB9qG,KAAtB,EAA6B;AACzB;AACA;AACA;AACA,SAAOA,KAAK,IAAI,OAAOA,KAAK,CAAC+qG,OAAb,KAAyB,UAAzC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,MAAMC,eAAN,SAA8BH,UAA9B,CAAyC;AACrC1lG,EAAAA,WAAW,CAACy3C,KAAD,EAAQ;AACf;AACA,SAAKA,KAAL,GAAaA,KAAb;AACH;;AACDmuD,EAAAA,OAAO,GAAG;AACN,WAAOH,kDAAY,CAAC,KAAKhuD,KAAN,CAAZ,GAA2B,KAAKA,KAAhC,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CH;;AA5B2B;;AA8BhCD,yBAAyB,CAACxkC,IAA1B;AAAA,mBAAsHwkC,yBAAtH;AAAA;;AACAA,yBAAyB,CAACvkC,KAA1B,kBAD4G1H,gEAC5G;AAAA,SAA0HisC,yBAA1H;AAAA,WAA0HA,yBAA1H;AAAA,cAAiK;AAAjK;;AACA;AAAA,qDAF4GjsC,+DAE5G,CAA2FisC,yBAA3F,EAAkI,CAAC;AACvHxoG,IAAAA,IAAI,EAAEy8D,qDADiH;AAEvHtqD,IAAAA,IAAI,EAAE,CAAC;AAAEy/E,MAAAA,UAAU,EAAE;AAAd,KAAD;AAFiH,GAAD,CAAlI;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAM+W,uBAAuB,GAAG,IAAIrc,yDAAJ,CAAmB,eAAnB,CAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5cA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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mH,KAAK,CAAC8mH,YAAN,GAAqB,CAArB,CAArB,GAA+C9mH,KAAK,CAACqH,MAA7D;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;;;AACA,SAASwjG,kBAAT,GAA8B;AAC1B;AACA;AACA;AACA;AACA,SACA;AACC,WAAOkc,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAAvC,IACI;AACC,WAAOC,OAAP,KAAmB,WAAnB,IAAkC,CAAC,CAACA,OAFzC,IAGI;AACC,WAAOC,IAAP,KAAgB,WAAhB,IAA+B,CAAC,CAACA,IAJtC,IAKI;AACC,WAAOC,KAAP,KAAiB,WAAjB,IAAgC,CAAC,CAACA;AARvC;AASH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7XA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,SAASC,oBAAT,GAAgC;AAC5B,QAAMloH,KAAK,CAAC,iCAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASmoH,+BAAT,GAA2C;AACvC,QAAMnoH,KAAK,CAAC,oCAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASooH,qCAAT,GAAiD;AAC7C,QAAMpoH,KAAK,CAAC,6CAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASqoH,2BAAT,GAAuC;AACnC,QAAMroH,KAAK,CAAC,kFACR,wCADO,CAAX;AAEH;AACD;AACA;AACA;AACA;;;AACA,SAASsoH,0BAAT,GAAsC;AAClC,QAAMtoH,KAAK,CAAC,sDAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASuoH,0BAAT,GAAsC;AAClC,QAAMvoH,KAAK,CAAC,8DAAD,CAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMwoH,MAAN,CAAa;AACT;AACAhc,EAAAA,MAAM,CAACh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F,gDAAKA;AADiB,KAAD,CAF0D;AAIrFkiD,IAAAA,wBAAwB,EAAE,CAAC;AAC3BvuI,MAAAA,IAAI,EAAEqsF,gDAAKA;AADgB,KAAD,CAJ2D;AAMrFgiD,IAAAA,gCAAgC,EAAE,CAAC;AACnCruI,MAAAA,IAAI,EAAEqsF,gDAAKA;AADwB,KAAD;AANmD,GAHrG;AAAA;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAMmiD,cAAN,CAAqB;AACjB/uI,EAAAA,WAAW,CAACunG,SAAD,EAAYynC,OAAZ,EAAqBntH,KAArB,EAA4ByF,KAA5B,EAAmC;AAC1C,SAAKigF,SAAL,GAAiBA,SAAjB;AACA,SAAKynC,OAAL,GAAeA,OAAf;AACA,SAAKntH,KAAL,GAAaA,KAAb;AACA,SAAKyF,KAAL,GAAaA,KAAb;AACH;;AACQ,MAALnP,KAAK,GAAG;AACR,WAAO,KAAK0J,KAAL,KAAe,CAAtB;AACH;;AACO,MAAJzJ,IAAI,GAAG;AACP,WAAO,KAAKyJ,KAAL,KAAe,KAAKyF,KAAL,GAAa,CAAnC;AACH;;AACO,MAAJsY,IAAI,GAAG;AACP,WAAO,KAAK/d,KAAL,GAAa,CAAb,KAAmB,CAA1B;AACH;;AACM,MAAHke,GAAG,GAAG;AACN,WAAO,CAAC,KAAKH,IAAb;AACH;;AAlBgB;AAoBrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqvI,IAAN,CAAW;AACP5vI,EAAAA,WAAW,CAACkvI,cAAD,EAAiBtoC,WAAjB,EAA8B;AACrC,SAAKsoC,cAAL,GAAsBA,cAAtB;AACA,SAAK3jG,QAAL,GAAgB,IAAIskG,WAAJ,EAAhB;AACA,SAAKC,gBAAL,GAAwB,IAAxB;AACA,SAAKC,gBAAL,GAAwB,IAAxB;AACA,SAAKC,YAAL,GAAoB,IAApB;AACA,SAAKC,YAAL,GAAoB,IAApB;AACA,SAAKH,gBAAL,GAAwBlpC,WAAxB;AACH;AACD;AACJ;AACA;;;AACY,MAAJspC,IAAI,CAACC,SAAD,EAAY;AAChB,SAAK5kG,QAAL,CAAcg8D,SAAd,GAA0B,KAAKh8D,QAAL,CAAc2kG,IAAd,GAAqBC,SAA/C;;AACA,SAAKC,WAAL;AACH;AACD;AACJ;AACA;;;AACgB,MAARC,QAAQ,CAACzpC,WAAD,EAAc;AACtB0pC,IAAAA,cAAc,CAAC,UAAD,EAAa1pC,WAAb,CAAd;AACA,SAAKkpC,gBAAL,GAAwBlpC,WAAxB;AACA,SAAKopC,YAAL,GAAoB,IAApB,CAHsB,CAGI;;AAC1B,SAAKI,WAAL;AACH;AACD;AACJ;AACA;;;AACgB,MAARG,QAAQ,CAAC3pC,WAAD,EAAc;AACtB0pC,IAAAA,cAAc,CAAC,UAAD,EAAa1pC,WAAb,CAAd;AACA,SAAKmpC,gBAAL,GAAwBnpC,W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I,OAAOA,KAAP,KAAiB,QAArB,EAA+B;AAC3B,YAAM84I,wBAAwB,CAACqB,aAAD,EAAgBn6I,KAAhB,CAA9B;AACH;;AACD,WAAOA,KAAK,CAAC69B,WAAN,EAAP;AACH;;AARe;;AAUpBs8G,aAAa,CAACzwE,IAAd;AAAA,mBAA2GywE,aAA3G;AAAA;;AACAA,aAAa,CAACN,KAAd,kBAnmIoG53E,0DAmmIpG;AAAA;AAAA,QAAyGk4E,aAAzG;AAAA;AAAA;;AACA;AAAA,qDApmIoGl4E,+DAomIpG,CAA4Fk4E,aAA5F,EAAuH,CAAC;AAC5Gz0I,IAAAA,IAAI,EAAE02H,+CADsG;AAE5GvkH,IAAAA,IAAI,EAAE,CAAC;AAAE1P,MAAAA,IAAI,EAAE;AAAR,KAAD;AAFsG,GAAD,CAAvH;AAAA;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMiyI,0BAA0B,GAAG,IAAIpoD,yDAAJ,CAAmB,4BAAnB,CAAnC,EACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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,GAAc,GAAxC,EAA6C;AACzC,WAAKG,OAAL,GAAgB,mCAAkC01B,IAAI,CAACz5B,GAAL,IAAY,eAAgB,EAA9E;AACH,KAFD,MAGK;AACD,WAAK+D,OAAL,GAAgB,6BAA4B01B,IAAI,CAACz5B,GAAL,IAAY,eAAgB,KAAIy5B,IAAI,CAAC71B,MAAO,IAAG61B,IAAI,CAAC03B,UAAW,EAA3G;AACH;;AACD,SAAKj1D,KAAL,GAAau9B,IAAI,CAACv9B,KAAL,IAAc,IAA3B;AACH;;AAnB4C;AAsBjD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASw8I,OAAT,CAAiBxiI,OAAjB,EAA0B+9B,IAA1B,EAAgC;AAC5B,SAAO;AACHA,IAAAA,IADG;AAEHwd,IAAAA,OAAO,EAAEv7C,OAAO,CAACu7C,OAFd;AAGHj4B,IAAAA,OAAO,EAAEtjB,OAAO,CAACsjB,OAHd;AAIHugE,IAAAA,OAAO,EAAE7jF,OAAO,CAAC6jF,OAJd;AAKH7wF,IAAAA,MAAM,EAAEgN,OAAO,CAAChN,MALb;AAMHquI,IAAAA,cAAc,EAAErhI,OAAO,CAACqhI,cANrB;AAOHnkF,IAAAA,YAAY,EAAEl9C,OAAO,CAACk9C,YAPnB;AAQHokF,IAAAA,eAAe,EAAEthI,OAAO,CAACshI;AARtB,GAAP;AAUH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmB,UAAN,CAAiB;AACbp+I,EAAAA,WAAW,CAACinC,OAAD,EAAU;AACjB,SAAKA,OAAL,GAAeA,OAAf;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIo3G,EAAAA,OAAO,CAAClmI,KAAD,EAAQ1S,GAAR,EAAakW,OAAO,GAAG,EAAvB,EAA2B;AAC9B,QAAI2iI,GAAJ,CAD8B,CAE9B;;AACA,QAAInmI,KAAK,YAAY0kI,WAArB,EAAkC;AAC9B;AACA;AACAyB,MAAAA,GAAG,GAAGnmI,KAAN;AACH,KAJD,MAKK;AACD;AACA;AACA;AACA;AACA,UAAI++C,OAAO,GAAGvuD,SAAd;;AACA,UAAIgT,OAAO,CAACu7C,OAAR,YAA2B+iF,WAA/B,EAA4C;AACxC/iF,QAAAA,OAAO,GAAGv7C,OAAO,CAACu7C,OAAlB;AACH,OAFD,MAGK;AACDA,QAAAA,OAAO,GAAG,IAAI+iF,WAAJ,CAAgBt+H,OAAO,CAACu7C,OAAxB,CAAV;AACH,OAXA,CAYD;;;AACA,UAAIvoD,MAAM,GAAGhG,SAAb;;AACA,UAAI,CAAC,CAACgT,OAAO,CAAChN,MAAd,EAAsB;AAClB,YAAIgN,OAAO,CAAChN,MAAR,YAA0B+sI,UAA9B,EAA0C;AACtC/sI,UAAAA,MAAM,GAAGgN,OAAO,CAAChN,MAAjB;AACH,SAFD,MAGK;AACDA,UAAAA,MAAM,GAAG,IAAI+sI,UAAJ,CAAe;AAAEK,YAAAA,UAAU,EAAEpgI,OAAO,CAAChN;AAAtB,WAAf,CAAT;AACH;AACJ,OArBA,CAsBD;;;AACA2vI,MAAAA,GAAG,GAAG,IAAIzB,WAAJ,CAAgB1kI,KAAhB,EAAuB1S,GAAvB,EAA6BkW,OAAO,CAAC+9B,IAAR,KAAiB/wC,SAAjB,GAA6BgT,OAAO,CAAC+9B,IAArC,GAA4C,IAAzE,EAAgF;AAClFwd,QAAAA,OADkF;AAElFj4B,QAAAA,OAAO,EAAEtjB,OAAO,CAACsjB,OAFiE;AAGlFtwB,QAAAA,MAHkF;AAIlFquI,QAAAA,cAAc,EAAErhI,OAAO,CAACqhI,cAJ0D;AAKlF;AACAnkF,QAAAA,YAAY,EAAEl9C,OAAO,CAACk9C,YAAR,IAAwB,MAN4C;AAOlFokF,QAAAA,eAAe,EAAEthI,OAAO,CAACshI;AAPyD,OAAhF,CAAN;AASH,KAxC6B,CAyC9B;AACA;AACA;AACA;;;AACA,UAAMsB,OAAO,GAAG9wD,wCAAE,CAAC6wD,GAAD,CAAF,CAAQp+H,IAAR,CAAa45H,yDAAS,CAAEwE,GAAD,IAAS,KAAKr3G,OAAL,CAAa8V,MAAb,CAAoBuhG,GAApB,CAAV,CAAtB,CAAhB,CA7C8B,CA8C9B;AACA;AACA;;AACA,QAAInmI,KAAK,YAAY0kI,WAAjB,IAAgClhI,OAAO,CAAC6jF,OAAR,KAAoB,QAAxD,EAAkE;AAC9D,aAAO++C,OAAP;AACH,KAnD6B,CAoD9B;AACA;AACA;;;AACA,UAAMC,IAAI,GAAGD,OAAO,CAACr+H,IAAR,CAAazf,sDAAM,CAAEH,KAAD,IAAWA,KAAK,YAAY09I,YAA7B,CAAnB,CAAb,CAvD8B,CAwD9B;;AACA,YAAQriI,OAAO,CAAC6jF,OAAR,IAAmB,MAA3B;AACI,WAAK,MAAL;AACI;AACA;AACA;AACA;AACA;AACA,gBAAQ8+C,GAAG,CAACzlF,YAAZ;AACI,eAAK,aAAL;AACI,mBAAO2lF,IAAI,CAACt+H,IAAL,CAAU9hB,mDAAG,CAAE2jB,GAAD,IAAS;AAC1B;AACA,kBAAIA,GAAG,CAAC23B,IAAJ,KAAa,IAAb,IAAqB,EAAE33B,GAAG,CAAC23B,IAAJ,YAAoB7kC,WAAtB,CAAzB,EAA6D;AACzD,sBAAM,IAAItV,KAAJ,CAAU,iCAAV,CAAN;AACH;;AACD,qBAAOwiB,GAAG,CAAC23B,IAAX;AACH,aANmB,CAAb,CAAP;;AAOJ,eAAK,MAAL;AACI,mBAAO8kG,IAAI,CAACt+H,IAAL,CAAU9hB,mDAAG,CAAE2jB,GAAD,IAAS;AAC1B;AACA,kBAAIA,GAAG,CAAC23B,IAAJ,KAAa,IAAb,IAAqB,EAAE33B,GAAG,CAAC23B,IAAJ,YAAoB8iG,IAAtB,CAAzB,EAAsD;AAClD,sBAAM,IAAIj9I,KAAJ,CAAU,yBAAV,CAAN;AACH;;AACD,qBAAOwiB,GAAG,CAAC23B,IAAX;AACH,aANmB,CAAb,CAAP;;AAOJ,eAAK,MAAL;AACI,mBAAO8kG,IAAI,CAACt+H,IAAL,CAAU9hB,mDAAG,CAAE2jB,GAAD,IAAS;AAC1B;AACA,kBAAIA,GAAG,CAAC23B,IAAJ,KAAa,IAAb,IAAqB,OAAO33B,GAAG,CAAC23B,IAAX,KAAoB,QAA7C,EAAuD;AACnD,sBAAM,IAAIn6C,KAAJ,CAAU,2BAAV,CAAN;AACH;;AACD,qBAAOwiB,GAAG,CAAC23B,IAAX;AACH,aANmB,CAAb,CAAP;;AAOJ,eAAK,MAAL;AACA;AACI;AACA,mBAAO8kG,IAAI,CAACt+H,IAAL,CAAU9hB,mDAAG,CAAE2jB,GAAD,IAASA,GAAG,CAAC23B,IAAd,CAAb,CAAP;AA5BR;;AA8BJ,WAAK,UAAL;AACI;AACA,eAAO8kG,IAAP;;AACJ;AACI;AACA,cAAM,IAAIj/I,KAAJ,CAAW,uCAAsCoc,OAAO,CAAC6jF,OAAQ,GAAjE,CAAN;AA1CR;AA4CH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIzhB,EAAAA,MAAM,CAACt4E,GAAD,EAAMkW,OAAO,GAAG,EAAhB,EAAoB;AACtB,WAAO,KAAK0iI,OAAL,CAAa,QAAb,EAAuB54I,GAAvB,EAA4BkW,OAA5B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACI1H,EAAAA,GAAG,CAACxO,GAAD,EAAMkW,OAAO,GAAG,EAAhB,EAAoB;AACnB,WAAO,KAAK0iI,OAAL,CAAa,KAAb,EAAoB54I,GAApB,EAAyBkW,OAAzB,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACIqD,EAAAA,IAAI,CAACvZ,GAAD,EAAMkW,OAAO,GAAG,EAAhB,EAAoB;AACpB,WAAO,KAAK0iI,OAAL,CAAa,MAAb,EAAqB54I,GAArB,EAA0BkW,OAA1B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACI29C,EAAAA,KAAK,CAAC7zD,GAAD,EAAMg5I,aAAN,EAAqB;AACtB,WAAO,KAAKJ,OAAL,CAAa,OAAb,EAAsB54I,GAAtB,EAA2B;AAC9BkJ,MAAAA,MAAM,EAAE,IAAI+sI,UAAJ,GAAiBh4F,MAAjB,CAAwB+6F,aAAxB,EAAuC,gBAAvC,CADsB;AAE9Bj/C,MAAAA,OAAO,EAAE,MAFqB;AAG9B3mC,MAAAA,YAAY,EAAE;AAHgB,KAA3B,CAAP;AAKH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACIl9C,EAAAA,OAAO,CAAClW,GAAD,EAAMkW,OAAO,GAAG,EAAhB,EAAoB;AACvB,WAAO,KAAK0iI,OAAL,CAAa,SAAb,EAAwB54I,GAAxB,EAA6BkW,OAA7B,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACI+iI,EAAAA,KAAK,CAACj5I,GAAD,EAAMi0C,IAAN,EAAY/9B,OAAO,GAAG,EAAtB,EAA0B;AAC3B,WAAO,KAAK0iI,OAAL,CAAa,OAAb,EAAsB54I,GAAtB,EAA2B04I,OAAO,CAACxiI,OAAD,EAAU+9B,IAAV,CAAlC,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACIgrC,EAAAA,IAAI,CAACj/E,GAAD,EAAMi0C,IAAN,EAAY/9B,OAAO,GAAG,EAAtB,EAA0B;AAC1B,WAAO,KAAK0iI,OAAL,CAAa,MAAb,EAAqB54I,GAArB,EAA0B04I,OAAO,CAACxiI,OAAD,EAAU+9B,IAAV,CAAjC,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACIilG,EAAAA,GAAG,CAACl5I,GAAD,EAAMi0C,IAAN,EAAY/9B,OAAO,GAAG,EAAtB,EAA0B;AACzB,WAAO,KAAK0iI,OAAL,CAAa,KAAb,EAAoB54I,GAApB,EAAyB04I,OAAO,CAACxiI,OAAD,EAAU+9B,IAAV,CAAhC,CAAP;AACH;;AA9NY;;AAgOjB0kG,UAAU,CAAC75E,IAAX;AAAA,mBAAwG65E,UAAxG,EAA8FthF,sDAA9F,CAAoIi9E,WAApI;AAAA;;AACAqE,UAAU,CAAC55E,KAAX,kBAD8F1H,gEAC9F;AAAA,SAA4GshF,UAA5G;AAAA,WAA4GA,UAA5G;AAAA;;AACA;AAAA,qDAF8FthF,+DAE9F,CAA4FshF,UAA5F,EAAoH,CAAC;AACzG79I,IAAAA,IAAI,EAAEy8D,qDAAUA;AADyF,GAAD,CAApH,EAE4B,YAAY;AAAE,WAAO,CAAC;AAAEz8D,MAAAA,IAAI,EAAEw5I;AAAR,KAAD,CAAP;AAAiC,GAF3E;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM6E,sBAAN,CAA6B;AACzB5+I,EAAAA,WAAW,CAAC7E,IAAD,EAAO0jJ,WAAP,EAAoB;AAC3B,SAAK1jJ,IAAL,GAAYA,IAAZ;AACA,SAAK0jJ,WAAL,GAAmBA,WAAnB;AACH;;AACD9hG,EAAAA,MAAM,CAACuhG,GAAD,EAAM;AACR,WAAO,KAAKO,WAAL,CAAiBC,SAAjB,CAA2BR,GAA3B,EAAgC,KAAKnjJ,IAArC,CAAP;AACH;;AAPwB;AAS7B;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4jJ,iBAAiB,GAAG,IAAIlyD,yDAAJ,CAAmB,mBAAnB,CAA1B;;AACA,MAAMmyD,eAAN,CAAsB;AAClBF,EAAAA,SAAS,CAACR,GAAD,EAAMnjJ,IAAN,EAAY;AACjB,WAAOA,IAAI,CAAC4hD,MAAL,CAAYuhG,GAAZ,CAAP;AACH;;AAHiB;;AAKtBU,eAAe,CAACz6E,IAAhB;AAAA,mBAA6Gy6E,eAA7G;AAAA;;AACAA,eAAe,CAACx6E,KAAhB,kBAxC8F1H,gEAwC9F;AAAA,SAAiHkiF,eAAjH;AAAA,WAAiHA,eAAjH;AAAA;;AACA;AAAA,qDAzC8FliF,+DAyC9F,CAA4FkiF,eAA5F,EAAyH,CAAC;AAC9Gz+I,IAAAA,IAAI,EAAEy8D,qDAAUA;AAD8F,GAAD,CAAzH;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIiiF,aAAa,GAAG,CAApB;AACA;AACA;AACA;AACA;;AACA,IAAIC,eAAJ,EACA;AACA;;AACA,MAAMC,qBAAqB,GAAG,gDAA9B,EACA;AACA;;AACA,MAAMC,sBAAsB,GAAG,+CAA/B;AACA,MAAMC,6BAA6B,GAAG,6CAAtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,oBAAN,CAA2B;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,kBAAN,CAAyB;AACrBv/I,EAAAA,WAAW,CAACw/I,WAAD,EAAchiH,QAAd,EAAwB;AAC/B,SAAKgiH,WAAL,GAAmBA,WAAnB;AACA,SAAKhiH,QAAL,GAAgBA,QAAhB;AACA;AACR;AACA;;AACQ,SAAKiiH,eAAL,GAAuB1kJ,OAAO,CAACD,OAAR,EAAvB;AACH;AACD;AACJ;AACA;;;AACI4kJ,EAAAA,YAAY,GAAG;AACX,WAAQ,qBAAoBT,aAAa,EAAG,EAA5C;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACIliG,EAAAA,MAAM,CAACuhG,GAAD,EAAM;AACR;AACA;AACA,QAAIA,GAAG,CAAC/vI,MAAJ,KAAe,OAAnB,EAA4B;AACxB,YAAM,IAAIhP,KAAJ,CAAU6/I,sBAAV,CAAN;AACH,KAFD,MAGK,IAAId,GAAG,CAACzlF,YAAJ,KAAqB,MAAzB,EAAiC;AAClC,YAAM,IAAIt5D,KAAJ,CAAU8/I,6BAAV,CAAN;AACH,KARO,CASR;;;AACA,WAAO,IAAIj2C,4CAAJ,CAAgBO,QAAD,IAAc;AAChC;AACA;AACA;AACA,YAAMtmF,QAAQ,GAAG,KAAKq8H,YAAL,EAAjB;AACA,YAAMj6I,GAAG,GAAG64I,GAAG,CAACpB,aAAJ,CAAkB/2I,OAAlB,CAA0B,sBAA1B,EAAmD,IAAGkd,QAAS,IAA/D,CAAZ,CALgC,CAMhC;;AACA,YAAMnR,IAAI,GAAG,KAAKsrB,QAAL,CAAcgB,aAAd,CAA4B,QAA5B,CAAb;AACAtsB,MAAAA,IAAI,CAACmO,GAAL,GAAW5a,GAAX,CARgC,CAShC;AACA;AACA;;AACA,UAAIi0C,IAAI,GAAG,IAAX,CAZgC,CAahC;;AACA,UAAI52B,QAAQ,GAAG,KAAf,CAdgC,CAehC;AACA;AACA;;AACA,WAAK08H,WAAL,CAAiBn8H,QAAjB,IAA8BtkB,IAAD,IAAU;AACnC;AACA,eAAO,KAAKygJ,WAAL,CAAiBn8H,QAAjB,CAAP,CAFmC,CAGnC;;AACAq2B,QAAAA,IAAI,GAAG36C,IAAP;AACA+jB,QAAAA,QAAQ,GAAG,IAAX;AACH,OAND,CAlBgC,CAyBhC;AACA;AACA;;;AACA,YAAM/B,OAAO,GAAG,MAAM;AAClB;AACA,YAAI7O,IAAI,CAAC2sB,UAAT,EAAqB;AACjB3sB,UAAAA,IAAI,CAAC2sB,UAAL,CAAgBC,WAAhB,CAA4B5sB,IAA5B;AACH,SAJiB,CAKlB;AACA;;;AACA,eAAO,KAAKstI,WAAL,CAAiBn8H,QAAjB,CAAP;AACH,OARD,CA5BgC,CAqChC;AACA;AACA;AACA;;;AACA,YAAMs8H,MAAM,GAAIr/I,KAAD,IAAW;AACtB;AACA;AACA;AACA,aAAKm/I,eAAL,CAAqBjkJ,IAArB,CAA0B,MAAM;AAC5B;AACAulB,UAAAA,OAAO,GAFqB,CAG5B;;AACA,cAAI,CAAC+B,QAAL,EAAe;AACX;AACA;AACA6mF,YAAAA,QAAQ,CAAChoG,KAAT,CAAe,IAAIu8I,iBAAJ,CAAsB;AACjCz4I,cAAAA,GADiC;AAEjC4D,cAAAA,MAAM,EAAE,CAFyB;AAGjCutD,cAAAA,UAAU,EAAE,aAHqB;AAIjCj1D,cAAAA,KAAK,EAAE,IAAIpC,KAAJ,CAAU4/I,qBAAV;AAJ0B,aAAtB,CAAf;AAMA;AACH,WAd2B,CAe5B;AACA;;;AACAx1C,UAAAA,QAAQ,CAACxuG,IAAT,CAAc,IAAI6iJ,YAAJ,CAAiB;AAC3BtkG,YAAAA,IAD2B;AAE3BrwC,YAAAA,MAAM,EAAE;AAAI;AAFe;AAG3ButD,YAAAA,UAAU,EAAE,IAHe;AAI3BnxD,YAAAA;AAJ2B,WAAjB,CAAd,EAjB4B,CAuB5B;;AACAkkG,UAAAA,QAAQ,CAACv8C,QAAT;AACH,SAzBD;AA0BH,OA9BD,CAzCgC,CAwEhC;AACA;AACA;;;AACA,YAAMwyF,OAAO,GAAIj+I,KAAD,IAAW;AACvBof,QAAAA,OAAO,GADgB,CAEvB;;AACA4oF,QAAAA,QAAQ,CAAChoG,KAAT,CAAe,IAAIu8I,iBAAJ,CAAsB;AACjCv8I,UAAAA,KADiC;AAEjC0H,UAAAA,MAAM,EAAE,CAFyB;AAGjCutD,UAAAA,UAAU,EAAE,aAHqB;AAIjCnxD,UAAAA;AAJiC,SAAtB,CAAf;AAMH,OATD,CA3EgC,CAqFhC;AACA;;;AACAyM,MAAAA,IAAI,CAACm2B,gBAAL,CAAsB,MAAtB,EAA8Bs3G,MAA9B;AACAztI,MAAAA,IAAI,CAACm2B,gBAAL,CAAsB,OAAtB,EAA+Bu3G,OAA/B;AACA,WAAKpiH,QAAL,CAAckc,IAAd,CAAmB9a,WAAnB,CAA+B1sB,IAA/B,EAzFgC,CA0FhC;;AACAy3F,MAAAA,QAAQ,CAACxuG,IAAT,CAAc;AAAEoF,QAAAA,IAAI,EAAEk9I,aAAa,CAACoC;AAAtB,OAAd,EA3FgC,CA4FhC;;AACA,aAAO,MAAM;AACT,YAAI,CAAC/8H,QAAL,EAAe;AACX,eAAKg9H,eAAL,CAAqB5tI,IAArB;AACH,SAHQ,CAIT;;;AACA6O,QAAAA,OAAO;AACV,OAND;AAOH,KApGM,CAAP;AAqGH;;AACD++H,EAAAA,eAAe,CAACvhH,MAAD,EAAS;AACpB;AACA;AACA;AACA,QAAI,CAAC2gH,eAAL,EAAsB;AAClBA,MAAAA,eAAe,GAAG,KAAK1hH,QAAL,CAAcs8B,cAAd,CAA6BD,kBAA7B,EAAlB;AACH;;AACDqlF,IAAAA,eAAe,CAACa,SAAhB,CAA0BxhH,MAA1B;AACH;;AA7IoB;;AA+IzBghH,kBAAkB,CAACh7E,IAAnB;AAAA,mBAAgHg7E,kBAAhH,EArO8FziF,sDAqO9F,CAAoJwiF,oBAApJ,GArO8FxiF,sDAqO9F,CAAqL0vB,qDAArL;AAAA;;AACA+yD,kBAAkB,CAAC/6E,KAAnB,kBAtO8F1H,gEAsO9F;AAAA,SAAoHyiF,kBAApH;AAAA,WAAoHA,kBAApH;AAAA;;AACA;AAAA,qDAvO8FziF,+DAuO9F,CAA4FyiF,kBAA5F,EAA4H,CAAC;AACjHh/I,IAAAA,IAAI,EAAEy8D,qDAAUA;AADiG,GAAD,CAA5H,EAE4B,YAAY;AAChC,WAAO,CAAC;AAAEz8D,MAAAA,IAAI,EAAE++I;AAAR,KAAD,EAAiC;AAAE/+I,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACxD7xF,QAAAA,IAAI,EAAEksF,iDADkD;AAExD/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFkD,OAAD;AAA/B,KAAjC,CAAP;AAIH,GAPL;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwzD,gBAAN,CAAuB;AACnBhgJ,EAAAA,WAAW,CAACs5D,KAAD,EAAQ;AACf,SAAKA,KAAL,GAAaA,KAAb;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;AACIwlF,EAAAA,SAAS,CAACR,GAAD,EAAMnjJ,IAAN,EAAY;AACjB,QAAImjJ,GAAG,CAAC/vI,MAAJ,KAAe,OAAnB,EAA4B;AACxB,aAAO,KAAK+qD,KAAL,CAAWvc,MAAX,CAAkBuhG,GAAlB,CAAP;AACH,KAHgB,CAIjB;;;AACA,WAAOnjJ,IAAI,CAAC4hD,MAAL,CAAYuhG,GAAZ,CAAP;AACH;;AAjBkB;;AAmBvB0B,gBAAgB,CAACz7E,IAAjB;AAAA,mBAA8Gy7E,gBAA9G,EA1Q8FljF,sDA0Q9F,CAAgJyiF,kBAAhJ;AAAA;;AACAS,gBAAgB,CAACx7E,KAAjB,kBA3Q8F1H,gEA2Q9F;AAAA,SAAkHkjF,gBAAlH;AAAA,WAAkHA,gBAAlH;AAAA;;AACA;AAAA,qDA5Q8FljF,+DA4Q9F,CAA4FkjF,gBAA5F,EAA0H,CAAC;AAC/Gz/I,IAAAA,IAAI,EAAEy8D,qDAAUA;AAD+F,GAAD,CAA1H,EAE4B,YAAY;AAAE,WAAO,CAAC;AAAEz8D,MAAAA,IAAI,EAAEg/I;AAAR,KAAD,CAAP;AAAwC,GAFlF;AAAA;;AAIA,MAAMU,WAAW,GAAG,cAApB;AACA;AACA;AACA;AACA;;AACA,SAASC,cAAT,CAAwBloF,GAAxB,EAA6B;AACzB,MAAI,iBAAiBA,GAAjB,IAAwBA,GAAG,CAACmoF,WAAhC,EAA6C;AACzC,WAAOnoF,GAAG,CAACmoF,WAAX;AACH;;AACD,MAAI,mBAAmBrrH,IAAnB,CAAwBkjC,GAAG,CAACxB,qBAAJ,EAAxB,CAAJ,EAA0D;AACtD,WAAOwB,GAAG,CAAC7D,iBAAJ,CAAsB,eAAtB,CAAP;AACH;;AACD,SAAO,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMisF,cAAN,CAAqB;AACjBpgJ,EAAAA,WAAW,CAACqgJ,UAAD,EAAa;AACpB,SAAKA,UAAL,GAAkBA,UAAlB;AACH;AACD;AACJ;AACA;AACA;AACA;;;AACItjG,EAAAA,MAAM,CAACuhG,GAAD,EAAM;AACR;AACA;AACA,QAAIA,GAAG,CAAC/vI,MAAJ,KAAe,OAAnB,EAA4B;AACxB,YAAM,IAAIhP,KAAJ,CAAW,+EAAX,CAAN;AACH,KALO,CAMR;;;AACA,WAAO,IAAI6pG,4CAAJ,CAAgBO,QAAD,IAAc;AAChC;AACA,YAAM3xC,GAAG,GAAG,KAAKqoF,UAAL,CAAgBz1E,KAAhB,EAAZ;AACA5S,MAAAA,GAAG,CAACM,IAAJ,CAASgmF,GAAG,CAAC/vI,MAAb,EAAqB+vI,GAAG,CAACpB,aAAzB;;AACA,UAAI,CAAC,CAACoB,GAAG,CAACrB,eAAV,EAA2B;AACvBjlF,QAAAA,GAAG,CAACilF,eAAJ,GAAsB,IAAtB;AACH,OAN+B,CAOhC;;;AACAqB,MAAAA,GAAG,CAACpnF,OAAJ,CAAY14D,OAAZ,CAAoB,CAACwE,IAAD,EAAO0M,MAAP,KAAkBsoD,GAAG,CAACvB,gBAAJ,CAAqBzzD,IAArB,EAA2B0M,MAAM,CAAC7Q,IAAP,CAAY,GAAZ,CAA3B,CAAtC,EARgC,CAShC;;AACA,UAAI,CAACy/I,GAAG,CAACpnF,OAAJ,CAAYtpC,GAAZ,CAAgB,QAAhB,CAAL,EAAgC;AAC5BoqC,QAAAA,GAAG,CAACvB,gBAAJ,CAAqB,QAArB,EAA+B,mCAA/B;AACH,OAZ+B,CAahC;;;AACA,UAAI,CAAC6nF,GAAG,CAACpnF,OAAJ,CAAYtpC,GAAZ,CAAgB,cAAhB,CAAL,EAAsC;AAClC,cAAM0yH,YAAY,GAAGhC,GAAG,CAAChB,uBAAJ,EAArB,CADkC,CAElC;;AACA,YAAIgD,YAAY,KAAK,IAArB,EAA2B;AACvBtoF,UAAAA,GAAG,CAACvB,gBAAJ,CAAqB,cAArB,EAAqC6pF,YAArC;AACH;AACJ,OApB+B,CAqBhC;;;AACA,UAAIhC,GAAG,CAACzlF,YAAR,EAAsB;AAClB,cAAMA,YAAY,GAAGylF,GAAG,CAACzlF,YAAJ,CAAiB/6D,WAAjB,EAArB,CADkB,CAElB;AACA;AACA;AACA;AACA;;AACAk6D,QAAAA,GAAG,CAACa,YAAJ,GAAqBA,YAAY,KAAK,MAAlB,GAA4BA,YAA5B,GAA2C,MAA/D;AACH,OA9B+B,CA+BhC;;;AACA,YAAM0nF,OAAO,GAAGjC,GAAG,CAACjB,aAAJ,EAAhB,CAhCgC,CAiChC;AACA;AACA;AACA;AACA;AACA;;AACA,UAAImD,cAAc,GAAG,IAArB,CAvCgC,CAwChC;AACA;;AACA,YAAMC,cAAc,GAAG,MAAM;AACzB,YAAID,cAAc,KAAK,IAAvB,EAA6B;AACzB,iBAAOA,cAAP;AACH;;AACD,cAAM5pF,UAAU,GAAGoB,GAAG,CAACpB,UAAJ,IAAkB,IAArC,CAJyB,CAKzB;;AACA,cAAMM,OAAO,GAAG,IAAI+iF,WAAJ,CAAgBjiF,GAAG,CAACxB,qBAAJ,EAAhB,CAAhB,CANyB,CAOzB;AACA;;AACA,cAAM/wD,GAAG,GAAGy6I,cAAc,CAACloF,GAAD,CAAd,IAAuBsmF,GAAG,CAAC74I,GAAvC,CATyB,CAUzB;;AACA+6I,QAAAA,cAAc,GAAG,IAAI1C,kBAAJ,CAAuB;AAAE5mF,UAAAA,OAAF;AAAW7tD,UAAAA,MAAM,EAAE2uD,GAAG,CAAC3uD,MAAvB;AAA+ButD,UAAAA,UAA/B;AAA2CnxD,UAAAA;AAA3C,SAAvB,CAAjB;AACA,eAAO+6I,cAAP;AACH,OAbD,CA1CgC,CAwDhC;AACA;AACA;;;AACA,YAAMb,MAAM,GAAG,MAAM;AACjB;AACA,YAAI;AAAEzoF,UAAAA,OAAF;AAAW7tD,UAAAA,MAAX;AAAmButD,UAAAA,UAAnB;AAA+BnxD,UAAAA;AAA/B,YAAuCg7I,cAAc,EAAzD,CAFiB,CAGjB;;AACA,YAAI/mG,IAAI,GAAG,IAAX;;AACA,YAAIrwC,MAAM,KAAK;AAAI;AAAnB,UAAoC;AAChC;AACAqwC,UAAAA,IAAI,GAAI,OAAOse,GAAG,CAAC5uD,QAAX,KAAwB,WAAzB,GAAwC4uD,GAAG,CAACc,YAA5C,GAA2Dd,GAAG,CAAC5uD,QAAtE;AACH,SARgB,CASjB;;;AACA,YAAIC,MAAM,KAAK,CAAf,EAAkB;AACdA,UAAAA,MAAM,GAAG,CAAC,CAACqwC,IAAF,GAAS;AAAI;AAAb,YAAwB,CAAjC;AACH,SAZgB,CAajB;AACA;AACA;AACA;;;AACA,YAAImkG,EAAE,GAAGx0I,MAAM,IAAI,GAAV,IAAiBA,MAAM,GAAG,GAAnC,CAjBiB,CAkBjB;AACA;;AACA,YAAIi1I,GAAG,CAACzlF,YAAJ,KAAqB,MAArB,IAA+B,OAAOnf,IAAP,KAAgB,QAAnD,EAA6D;AACzD;AACA,gBAAMgnG,YAAY,GAAGhnG,IAArB;AACAA,UAAAA,IAAI,GAAGA,IAAI,CAACvzC,OAAL,CAAa85I,WAAb,EAA0B,EAA1B,CAAP;;AACA,cAAI;AACA;AACAvmG,YAAAA,IAAI,GAAGA,IAAI,KAAK,EAAT,GAAcrzC,IAAI,CAACixC,KAAL,CAAWoC,IAAX,CAAd,GAAiC,IAAxC;AACH,WAHD,CAIA,OAAO/3C,KAAP,EAAc;AACV;AACA;AACA;AACA+3C,YAAAA,IAAI,GAAGgnG,YAAP,CAJU,CAKV;AACA;;AACA,gBAAI7C,EAAJ,EAAQ;AACJ;AACAA,cAAAA,EAAE,GAAG,KAAL,CAFI,CAGJ;;AACAnkG,cAAAA,IAAI,GAAG;AAAE/3C,gBAAAA,KAAF;AAAS88B,gBAAAA,IAAI,EAAEib;AAAf,eAAP;AACH;AACJ;AACJ;;AACD,YAAImkG,EAAJ,EAAQ;AACJ;AACAl0C,UAAAA,QAAQ,CAACxuG,IAAT,CAAc,IAAI6iJ,YAAJ,CAAiB;AAC3BtkG,YAAAA,IAD2B;AAE3Bwd,YAAAA,OAF2B;AAG3B7tD,YAAAA,MAH2B;AAI3ButD,YAAAA,UAJ2B;AAK3BnxD,YAAAA,GAAG,EAAEA,GAAG,IAAIkD;AALe,WAAjB,CAAd,EAFI,CASJ;AACA;;AACAghG,UAAAA,QAAQ,CAACv8C,QAAT;AACH,SAZD,MAaK;AACD;AACAu8C,UAAAA,QAAQ,CAAChoG,KAAT,CAAe,IAAIu8I,iBAAJ,CAAsB;AACjC;AACAv8I,YAAAA,KAAK,EAAE+3C,IAF0B;AAGjCwd,YAAAA,OAHiC;AAIjC7tD,YAAAA,MAJiC;AAKjCutD,YAAAA,UALiC;AAMjCnxD,YAAAA,GAAG,EAAEA,GAAG,IAAIkD;AANqB,WAAtB,CAAf;AAQH;AACJ,OAnED,CA3DgC,CA+HhC;AACA;AACA;;;AACA,YAAMi3I,OAAO,GAAIj+I,KAAD,IAAW;AACvB,cAAM;AAAE8D,UAAAA;AAAF,YAAUg7I,cAAc,EAA9B;AACA,cAAM1+H,GAAG,GAAG,IAAIm8H,iBAAJ,CAAsB;AAC9Bv8I,UAAAA,KAD8B;AAE9B0H,UAAAA,MAAM,EAAE2uD,GAAG,CAAC3uD,MAAJ,IAAc,CAFQ;AAG9ButD,UAAAA,UAAU,EAAEoB,GAAG,CAACpB,UAAJ,IAAkB,eAHA;AAI9BnxD,UAAAA,GAAG,EAAEA,GAAG,IAAIkD;AAJkB,SAAtB,CAAZ;AAMAghG,QAAAA,QAAQ,CAAChoG,KAAT,CAAeogB,GAAf;AACH,OATD,CAlIgC,CA4IhC;AACA;AACA;AACA;;;AACA,UAAI4+H,WAAW,GAAG,KAAlB,CAhJgC,CAiJhC;AACA;;AACA,YAAMC,cAAc,GAAItgJ,KAAD,IAAW;AAC9B;AACA,YAAI,CAACqgJ,WAAL,EAAkB;AACdh3C,UAAAA,QAAQ,CAACxuG,IAAT,CAAcslJ,cAAc,EAA5B;AACAE,UAAAA,WAAW,GAAG,IAAd;AACH,SAL6B,CAM9B;AACA;;;AACA,YAAIE,aAAa,GAAG;AAChBtgJ,UAAAA,IAAI,EAAEk9I,aAAa,CAACqD,gBADJ;AAEhBC,UAAAA,MAAM,EAAEzgJ,KAAK,CAACygJ;AAFE,SAApB,CAR8B,CAY9B;;AACA,YAAIzgJ,KAAK,CAAC0gJ,gBAAV,EAA4B;AACxBH,UAAAA,aAAa,CAACI,KAAd,GAAsB3gJ,KAAK,CAAC2gJ,KAA5B;AACH,SAf6B,CAgB9B;AACA;AACA;;;AACA,YAAI3C,GAAG,CAACzlF,YAAJ,KAAqB,MAArB,IAA+B,CAAC,CAACb,GAAG,CAACc,YAAzC,EAAuD;AACnD+nF,UAAAA,aAAa,CAACK,WAAd,GAA4BlpF,GAAG,CAACc,YAAhC;AACH,SArB6B,CAsB9B;;;AACA6wC,QAAAA,QAAQ,CAACxuG,IAAT,CAAc0lJ,aAAd;AACH,OAxBD,CAnJgC,CA4KhC;AACA;;;AACA,YAAMM,YAAY,GAAI7gJ,KAAD,IAAW;AAC5B;AACA;AACA,YAAI6zC,QAAQ,GAAG;AACX5zC,UAAAA,IAAI,EAAEk9I,aAAa,CAAC2D,cADT;AAEXL,UAAAA,MAAM,EAAEzgJ,KAAK,CAACygJ;AAFH,SAAf,CAH4B,CAO5B;AACA;;AACA,YAAIzgJ,KAAK,CAAC0gJ,gBAAV,EAA4B;AACxB7sG,UAAAA,QAAQ,CAAC8sG,KAAT,GAAiB3gJ,KAAK,CAAC2gJ,KAAvB;AACH,SAX2B,CAY5B;;;AACAt3C,QAAAA,QAAQ,CAACxuG,IAAT,CAAcg5C,QAAd;AACH,OAdD,CA9KgC,CA6LhC;;;AACA6jB,MAAAA,GAAG,CAAC3vB,gBAAJ,CAAqB,MAArB,EAA6Bs3G,MAA7B;AACA3nF,MAAAA,GAAG,CAAC3vB,gBAAJ,CAAqB,OAArB,EAA8Bu3G,OAA9B;AACA5nF,MAAAA,GAAG,CAAC3vB,gBAAJ,CAAqB,SAArB,EAAgCu3G,OAAhC;AACA5nF,MAAAA,GAAG,CAAC3vB,gBAAJ,CAAqB,OAArB,EAA8Bu3G,OAA9B,EAjMgC,CAkMhC;;AACA,UAAItB,GAAG,CAACtB,cAAR,EAAwB;AACpB;AACAhlF,QAAAA,GAAG,CAAC3vB,gBAAJ,CAAqB,UAArB,EAAiCu4G,cAAjC,EAFoB,CAGpB;;AACA,YAAIL,OAAO,KAAK,IAAZ,IAAoBvoF,GAAG,CAACqpF,MAA5B,EAAoC;AAChCrpF,UAAAA,GAAG,CAACqpF,MAAJ,CAAWh5G,gBAAX,CAA4B,UAA5B,EAAwC84G,YAAxC;AACH;AACJ,OA1M+B,CA2MhC;;;AACAnpF,MAAAA,GAAG,CAACX,IAAJ,CAASkpF,OAAT;AACA52C,MAAAA,QAAQ,CAACxuG,IAAT,CAAc;AAAEoF,QAAAA,IAAI,EAAEk9I,aAAa,CAACoC;AAAtB,OAAd,EA7MgC,CA8MhC;AACA;;AACA,aAAO,MAAM;AACT;AACA7nF,QAAAA,GAAG,CAACjiB,mBAAJ,CAAwB,OAAxB,EAAiC6pG,OAAjC;AACA5nF,QAAAA,GAAG,CAACjiB,mBAAJ,CAAwB,OAAxB,EAAiC6pG,OAAjC;AACA5nF,QAAAA,GAAG,CAACjiB,mBAAJ,CAAwB,MAAxB,EAAgC4pG,MAAhC;AACA3nF,QAAAA,GAAG,CAACjiB,mBAAJ,CAAwB,SAAxB,EAAmC6pG,OAAnC;;AACA,YAAItB,GAAG,CAACtB,cAAR,EAAwB;AACpBhlF,UAAAA,GAAG,CAACjiB,mBAAJ,CAAwB,UAAxB,EAAoC6qG,cAApC;;AACA,cAAIL,OAAO,KAAK,IAAZ,IAAoBvoF,GAAG,CAACqpF,MAA5B,EAAoC;AAChCrpF,YAAAA,GAAG,CAACqpF,MAAJ,CAAWtrG,mBAAX,CAA+B,UAA/B,EAA2CorG,YAA3C;AACH;AACJ,SAXQ,CAYT;;;AACA,YAAInpF,GAAG,CAAChiB,UAAJ,KAAmBgiB,GAAG,CAACspF,IAA3B,EAAiC;AAC7BtpF,UAAAA,GAAG,CAACrB,KAAJ;AACH;AACJ,OAhBD;AAiBH,KAjOM,CAAP;AAkOH;;AAlPgB;;AAoPrBypF,cAAc,CAAC77E,IAAf;AAAA,mBAA4G67E,cAA5G,EAzhB8FtjF,sDAyhB9F,CAA4ImwB,uDAA5I;AAAA;;AACAmzD,cAAc,CAAC57E,KAAf,kBA1hB8F1H,gEA0hB9F;AAAA,SAAgHsjF,cAAhH;AAAA,WAAgHA,cAAhH;AAAA;;AACA;AAAA,qDA3hB8FtjF,+DA2hB9F,CAA4FsjF,cAA5F,EAAwH,CAAC;AAC7G7/I,IAAAA,IAAI,EAAEy8D,qDAAUA;AAD6F,GAAD,CAAxH,EAE4B,YAAY;AAAE,WAAO,CAAC;AAAEz8D,MAAAA,IAAI,EAAE0sF,uDAAaisD;AAArB,KAAD,CAAP;AAAmC,GAF7E;AAAA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMqI,gBAAgB,GAAG,IAAI10D,yDAAJ,CAAmB,kBAAnB,CAAzB;AACA,MAAM20D,gBAAgB,GAAG,IAAI30D,yDAAJ,CAAmB,kBAAnB,CAAzB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM40D,sBAAN,CAA6B;AAE7B;AACA;AACA;;;AACA,MAAMC,uBAAN,CAA8B;AAC1B1hJ,EAAAA,WAAW,CAACs+B,GAAD,EAAM8lF,QAAN,EAAgBuoB,UAAhB,EAA4B;AACnC,SAAKruG,GAAL,GAAWA,GAAX;AACA,SAAK8lF,QAAL,GAAgBA,QAAhB;AACA,SAAKuoB,UAAL,GAAkBA,UAAlB;AACA,SAAKgV,gBAAL,GAAwB,EAAxB;AACA,SAAKC,SAAL,GAAiB,IAAjB;AACA;AACR;AACA;;AACQ,SAAKC,UAAL,GAAkB,CAAlB;AACH;;AACDC,EAAAA,QAAQ,GAAG;AACP,QAAI,KAAK19B,QAAL,KAAkB,QAAtB,EAAgC;AAC5B,aAAO,IAAP;AACH;;AACD,UAAM29B,YAAY,GAAG,KAAKzjH,GAAL,CAASmuG,MAAT,IAAmB,EAAxC;;AACA,QAAIsV,YAAY,KAAK,KAAKJ,gBAA1B,EAA4C;AACxC,WAAKE,UAAL;AACA,WAAKD,SAAL,GAAiBjI,qEAAiB,CAACoI,YAAD,EAAe,KAAKpV,UAApB,CAAlC;AACA,WAAKgV,gBAAL,GAAwBI,YAAxB;AACH;;AACD,WAAO,KAAKH,SAAZ;AACH;;AAvByB;;AAyB9BF,uBAAuB,CAACn9E,IAAxB;AAAA,mBAAqHm9E,uBAArH,EA3kB8F5kF,sDA2kB9F,CAA8J0vB,qDAA9J,GA3kB8F1vB,sDA2kB9F,CAAmLqoD,sDAAnL,GA3kB8FroD,sDA2kB9F,CAA2MykF,gBAA3M;AAAA;;AACAG,uBAAuB,CAACl9E,KAAxB,kBA5kB8F1H,gEA4kB9F;AAAA,SAAyH4kF,uBAAzH;AAAA,WAAyHA,uBAAzH;AAAA;;AACA;AAAA,qDA7kB8F5kF,+DA6kB9F,CAA4F4kF,uBAA5F,EAAiI,CAAC;AACtHnhJ,IAAAA,IAAI,EAAEy8D,qDAAUA;AADsG,GAAD,CAAjI,EAE4B,YAAY;AAChC,WAAO,CAAC;AAAEz8D,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AACxB7xF,QAAAA,IAAI,EAAEksF,iDADkB;AAExB/5E,QAAAA,IAAI,EAAE,CAAC85E,qDAAD;AAFkB,OAAD;AAA/B,KAAD,EAGW;AAAEjsF,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAClC7xF,QAAAA,IAAI,EAAEksF,iDAD4B;AAElC/5E,QAAAA,IAAI,EAAE,CAACyyG,sDAAD;AAF4B,OAAD;AAA/B,KAHX,EAMW;AAAE5kH,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAClC7xF,QAAAA,IAAI,EAAEksF,iDAD4B;AAElC/5E,QAAAA,IAAI,EAAE,CAAC6uI,gBAAD;AAF4B,OAAD;AAA/B,KANX,CAAP;AAUH,GAbL;AAAA;AAcA;AACA;AACA;;;AACA,MAAMS,mBAAN,CAA0B;AACtBhiJ,EAAAA,WAAW,CAACiiJ,YAAD,EAAeC,UAAf,EAA2B;AAClC,SAAKD,YAAL,GAAoBA,YAApB;AACA,SAAKC,UAAL,GAAkBA,UAAlB;AACH;;AACDpD,EAAAA,SAAS,CAACR,GAAD,EAAMnjJ,IAAN,EAAY;AACjB,UAAMgnJ,KAAK,GAAG7D,GAAG,CAAC74I,GAAJ,CAAQ3H,WAAR,EAAd,CADiB,CAEjB;AACA;AACA;AACA;;AACA,QAAIwgJ,GAAG,CAAC/vI,MAAJ,KAAe,KAAf,IAAwB+vI,GAAG,CAAC/vI,MAAJ,KAAe,MAAvC,IAAiD4zI,KAAK,CAAC37E,UAAN,CAAiB,SAAjB,CAAjD,IACA27E,KAAK,CAAC37E,UAAN,CAAiB,UAAjB,CADJ,EACkC;AAC9B,aAAOrrE,IAAI,CAAC4hD,MAAL,CAAYuhG,GAAZ,CAAP;AACH;;AACD,UAAMpuG,KAAK,GAAG,KAAK+xG,YAAL,CAAkBH,QAAlB,EAAd,CAViB,CAWjB;;AACA,QAAI5xG,KAAK,KAAK,IAAV,IAAkB,CAACouG,GAAG,CAACpnF,OAAJ,CAAYtpC,GAAZ,CAAgB,KAAKs0H,UAArB,CAAvB,EAAyD;AACrD5D,MAAAA,GAAG,GAAGA,GAAG,CAACl+G,KAAJ,CAAU;AAAE82B,QAAAA,OAAO,EAAEonF,GAAG,CAACpnF,OAAJ,CAAY70D,GAAZ,CAAgB,KAAK6/I,UAArB,EAAiChyG,KAAjC;AAAX,OAAV,CAAN;AACH;;AACD,WAAO/0C,IAAI,CAAC4hD,MAAL,CAAYuhG,GAAZ,CAAP;AACH;;AArBqB;;AAuB1B0D,mBAAmB,CAACz9E,IAApB;AAAA,mBAAiHy9E,mBAAjH,EArnB8FllF,sDAqnB9F,CAAsJ2kF,sBAAtJ,GArnB8F3kF,sDAqnB9F,CAAyL0kF,gBAAzL;AAAA;;AACAQ,mBAAmB,CAACx9E,KAApB,kBAtnB8F1H,gEAsnB9F;AAAA,SAAqHklF,mBAArH;AAAA,WAAqHA,mBAArH;AAAA;;AACA;AAAA,qDAvnB8FllF,+DAunB9F,CAA4FklF,mBAA5F,EAA6H,CAAC;AAClHzhJ,IAAAA,IAAI,EAAEy8D,qDAAUA;AADkG,GAAD,CAA7H,EAE4B,YAAY;AAChC,WAAO,CAAC;AAAEz8D,MAAAA,IAAI,EAAEkhJ;AAAR,KAAD,EAAmC;AAAElhJ,MAAAA,IAAI,EAAEoI,SAAR;AAAmBypF,MAAAA,UAAU,EAAE,CAAC;AAC1D7xF,QAAAA,IAAI,EAAEksF,iDADoD;AAE1D/5E,QAAAA,IAAI,EAAE,CAAC8uI,gBAAD;AAFoD,OAAD;AAA/B,KAAnC,CAAP;AAIH,GAPL;AAAA;AASA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMY,uBAAN,CAA8B;AAC1BpiJ,EAAAA,WAAW,CAACqiJ,OAAD,EAAUj6B,QAAV,EAAoB;AAC3B,SAAKi6B,OAAL,GAAeA,OAAf;AACA,SAAKj6B,QAAL,GAAgBA,QAAhB;AACA,SAAKk6B,KAAL,GAAa,IAAb;AACH;;AACDvlG,EAAAA,MAAM,CAACuhG,GAAD,EAAM;AACR,QAAI,KAAKgE,KAAL,KAAe,IAAnB,EAAyB;AACrB,YAAMC,YAAY,GAAG,KAAKn6B,QAAL,CAAcn0G,GAAd,CAAkB8qI,iBAAlB,EAAqC,EAArC,CAArB;AACA,WAAKuD,KAAL,GAAaC,YAAY,CAAC7W,WAAb,CAAyB,CAACvwI,IAAD,EAAO0jJ,WAAP,KAAuB,IAAID,sBAAJ,CAA2BzjJ,IAA3B,EAAiC0jJ,WAAjC,CAAhD,EAA+F,KAAKwD,OAApG,CAAb;AACH;;AACD,WAAO,KAAKC,KAAL,CAAWvlG,MAAX,CAAkBuhG,GAAlB,CAAP;AACH;;AAZyB;;AAc9B8D,uBAAuB,CAAC79E,IAAxB;AAAA,mBAAqH69E,uBAArH,EA9pB8FtlF,sDA8pB9F,CAA8Jk9E,WAA9J,GA9pB8Fl9E,sDA8pB9F,CAAsLA,mDAAtL;AAAA;;AACAslF,uBAAuB,CAAC59E,KAAxB,kBA/pB8F1H,gEA+pB9F;AAAA,SAAyHslF,uBAAzH;AAAA,WAAyHA,uBAAzH;AAAA;;AACA;AAAA,qDAhqB8FtlF,+DAgqB9F,CAA4FslF,uBAA5F,EAAiI,CAAC;AACtH7hJ,IAAAA,IAAI,EAAEy8D,qDAAUA;AADsG,GAAD,CAAjI,EAE4B,YAAY;AAAE,WAAO,CAAC;AAAEz8D,MAAAA,IAAI,EAAEy5I;AAAR,KAAD,EAAwB;AAAEz5I,MAAAA,IAAI,EAAEu8D,mDAAW2kD;AAAnB,KAAxB,CAAP;AAAwD,GAFlG;AAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS+gC,mBAAT,CAA6BH,OAA7B,EAAsCE,YAAY,GAAG,EAArD,EAAyD;AACrD,MAAI,CAACA,YAAL,EAAmB;AACf,WAAOF,OAAP;AACH;;AACD,SAAOE,YAAY,CAAC7W,WAAb,CAAyB,CAACvwI,IAAD,EAAO0jJ,WAAP,KAAuB,IAAID,sBAAJ,CAA2BzjJ,IAA3B,EAAiC0jJ,WAAjC,CAAhD,EAA+FwD,OAA/F,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,oBAAT,GAAgC;AAC5B,MAAI,OAAOvoI,MAAP,KAAkB,QAAtB,EAAgC;AAC5B,WAAOA,MAAP;AACH;;AACD,SAAO,EAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMwoI,oBAAN,CAA2B;AACvB;AACJ;AACA;AACkB,SAAPxvG,OAAO,GAAG;AACb,WAAO;AACHyvG,MAAAA,QAAQ,EAAED,oBADP;AAEHn9C,MAAAA,SAAS,EAAE,CACP;AAAEF,QAAAA,OAAO,EAAE28C,mBAAX;AAAgC/rB,QAAAA,QAAQ,EAAE+oB;AAA1C,OADO;AAFR,KAAP;AAMH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACsB,SAAX4D,WAAW,CAACjnI,OAAO,GAAG,EAAX,EAAe;AAC7B,WAAO;AACHgnI,MAAAA,QAAQ,EAAED,oBADP;AAEHn9C,MAAAA,SAAS,EAAE,CACP5pF,OAAO,CAACgxH,UAAR,GAAqB;AAAEtnC,QAAAA,OAAO,EAAEk8C,gBAAX;AAA6BsB,QAAAA,QAAQ,EAAElnI,OAAO,CAACgxH;AAA/C,OAArB,GAAmF,EAD5E,EAEPhxH,OAAO,CAACumI,UAAR,GAAqB;AAAE78C,QAAAA,OAAO,EAAEm8C,gBAAX;AAA6BqB,QAAAA,QAAQ,EAAElnI,OAAO,CAACumI;AAA/C,OAArB,GAAmF,EAF5E;AAFR,KAAP;AAOH;;AA5BsB;;AA8B3BQ,oBAAoB,CAACn+E,IAArB;AAAA,mBAAkHm+E,oBAAlH;AAAA;;AACAA,oBAAoB,CAACx+C,IAArB,kBA1uB8FpnC,8DA0uB9F;AAAA,QAAmH4lF;AAAnH;AACAA,oBAAoB,CAACv+C,IAArB,kBA3uB8FrnC,8DA2uB9F;AAAA,aAAoJ,CAC5IklF,mBAD4I,EAE5I;AAAE38C,IAAAA,OAAO,EAAE05C,iBAAX;AAA8Bz5C,IAAAA,WAAW,EAAE08C,mBAA3C;AAAgEn/E,IAAAA,KAAK,EAAE;AAAvE,GAF4I,EAG5I;AAAEwiC,IAAAA,OAAO,EAAEo8C,sBAAX;AAAmCxrB,IAAAA,QAAQ,EAAEyrB;AAA7C,GAH4I,EAI5I;AAAEr8C,IAAAA,OAAO,EAAEk8C,gBAAX;AAA6BsB,IAAAA,QAAQ,EAAE;AAAvC,GAJ4I,EAK5I;AAAEx9C,IAAAA,OAAO,EAAEm8C,gBAAX;AAA6BqB,IAAAA,QAAQ,EAAE;AAAvC,GAL4I;AAApJ;;AAOA;AAAA,qDAlvB8F/lF,+DAkvB9F,CAA4F4lF,oBAA5F,EAA8H,CAAC;AACnHniJ,IAAAA,IAAI,EAAEysF,mDAD6G;AAEnHt6E,IAAAA,IAAI,EAAE,CAAC;AACC6yF,MAAAA,SAAS,EAAE,CACPy8C,mBADO,EAEP;AAAE38C,QAAAA,OAAO,EAAE05C,iBAAX;AAA8Bz5C,QAAAA,WAAW,EAAE08C,mBAA3C;AAAgEn/E,QAAAA,KAAK,EAAE;AAAvE,OAFO,EAGP;AAAEwiC,QAAAA,OAAO,EAAEo8C,sBAAX;AAAmCxrB,QAAAA,QAAQ,EAAEyrB;AAA7C,OAHO,EAIP;AAAEr8C,QAAAA,OAAO,EAAEk8C,gBAAX;AAA6BsB,QAAAA,QAAQ,EAAE;AAAvC,OAJO,EAKP;AAAEx9C,QAAAA,OAAO,EAAEm8C,gBAAX;AAA6BqB,QAAAA,QAAQ,EAAE;AAAvC,OALO;AADZ,KAAD;AAF6G,GAAD,CAA9H;AAAA;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,gBAAN,CAAuB;;AAEvBA,gBAAgB,CAACv+E,IAAjB;AAAA,mBAA8Gu+E,gBAA9G;AAAA;;AACAA,gBAAgB,CAAC5+C,IAAjB,kBA1wB8FpnC,8DA0wB9F;AAAA,QAA+GgmF;AAA/G;AACAA,gBAAgB,CAAC3+C,IAAjB,kBA3wB8FrnC,8DA2wB9F;AAAA,aAA4I,CACpIshF,UADoI,EAEpI;AAAE/4C,IAAAA,OAAO,EAAE00C,WAAX;AAAwB9jB,IAAAA,QAAQ,EAAEmsB;AAAlC,GAFoI,EAGpIhC,cAHoI,EAIpI;AAAE/6C,IAAAA,OAAO,EAAE20C,WAAX;AAAwB10C,IAAAA,WAAW,EAAE86C;AAArC,GAJoI,CAA5I;AAAA,YAKiB,CACLsC,oBAAoB,CAACE,WAArB,CAAiC;AAC7BjW,IAAAA,UAAU,EAAE,YADiB;AAE7BuV,IAAAA,UAAU,EAAE;AAFiB,GAAjC,CADK,CALjB;AAAA;;AAWA;AAAA,qDAtxB8FplF,+DAsxB9F,CAA4FgmF,gBAA5F,EAA0H,CAAC;AAC/GviJ,IAAAA,IAAI,EAAEysF,mDADyG;AAE/Gt6E,IAAAA,IAAI,EAAE,CAAC;AACC;AACpB;AACA;AACoB0xF,MAAAA,OAAO,EAAE,CACLs+C,oBAAoB,CAACE,WAArB,CAAiC;AAC7BjW,QAAAA,UAAU,EAAE,YADiB;AAE7BuV,QAAAA,UAAU,EAAE;AAFiB,OAAjC,CADK,CAJV;;AAUC;AACpB;AACA;AACA;AACoB38C,MAAAA,SAAS,EAAE,CACP64C,UADO,EAEP;AAAE/4C,QAAAA,OAAO,EAAE00C,WAAX;AAAwB9jB,QAAAA,QAAQ,EAAEmsB;AAAlC,OAFO,EAGPhC,cAHO,EAIP;AAAE/6C,QAAAA,OAAO,EAAE20C,WAAX;AAAwB10C,QAAAA,WAAW,EAAE86C;AAArC,OAJO;AAdZ,KAAD;AAFyG,GAAD,CAA1H;AAAA;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2C,qBAAN,CAA4B;;AAE5BA,qBAAqB,CAACx+E,IAAtB;AAAA,mBAAmHw+E,qBAAnH;AAAA;;AACAA,qBAAqB,CAAC7+C,IAAtB,kBA5zB8FpnC,8DA4zB9F;AAAA,QAAoHimF;AAApH;AACAA,qBAAqB,CAAC5+C,IAAtB,kBA7zB8FrnC,8DA6zB9F;AAAA,aAAsJ,CAC9IyiF,kBAD8I,EAE9I;AAAEl6C,IAAAA,OAAO,EAAEi6C,oBAAX;AAAiCr7B,IAAAA,UAAU,EAAEw+B;AAA7C,GAF8I,EAG9I;AAAEp9C,IAAAA,OAAO,EAAE05C,iBAAX;AAA8B9oB,IAAAA,QAAQ,EAAE+pB,gBAAxC;AAA0Dn9E,IAAAA,KAAK,EAAE;AAAjE,GAH8I;AAAtJ;;AAKA;AAAA,qDAl0B8F/F,+DAk0B9F,CAA4FimF,qBAA5F,EAA+H,CAAC;AACpHxiJ,IAAAA,IAAI,EAAEysF,mDAD8G;AAEpHt6E,IAAAA,IAAI,EAAE,CAAC;AACC6yF,MAAAA,SAAS,EAAE,CACPg6C,kBADO,EAEP;AAAEl6C,QAAAA,OAAO,EAAEi6C,oBAAX;AAAiCr7B,QAAAA,UAAU,EAAEw+B;AAA7C,OAFO,EAGP;AAAEp9C,QAAAA,OAAO,EAAE05C,iBAAX;AAA8B9oB,QAAAA,QAAQ,EAAE+pB,gBAAxC;AAA0Dn9E,QAAAA,KAAK,EAAE;AAAjE,OAHO;AADZ,KAAD;AAF8G,GAAD,CAA/H;AAAA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMq2E,UAAU,GAAGW,uDAAnB;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjuEA;AACA;AACA;AACA;AACA;;AAE2E;AACpC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA,kBAAkB,WAAW;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,yCAAyC;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C,0BAA0B,SAAS,EAAE,8BAA8B;AACnE;AACA,0BAA0B,aAAa,iBAAiB,4BAA4B,GAAG,SAAS;AAChG;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB,IAAI,MAAM;AAC7E,sGAAsG,MAAM,EAAE,QAAQ;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,0BAA0B;AACnG;AACA,0DAA0D,wBAAwB;AAClF;AACA;AACA;AACA,kDAAkD,aAAa;AAC/D,6EAA6E,0BAA0B,OAAO,gBAAgB;AAC9H;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C,mDAAmD,UAAU,EAAE,YAAY,EAAE,QAAQ;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,gBAAgB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,QAAQ,UAAU,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA,8CAA8C,6BAA6B,UAAU,sBAAsB;AAC3G;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E,0GAA0G,SAAS;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E;AACA,mDAAmD,yCAAyC;AAC5F,iDAAiD,uCAAuC;;AAExF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kCAAkC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0DAA0D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,oDAAoD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA,QAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,oCAAoC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+BAA+B,IAAI,qCAAqC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8BAA8B;AAC3E,4CAA4C,8BAA8B;AAC1E,6CAA6C,+BAA+B;AAC5E,4CAA4C,8BAA8B;AAC1E,gDAAgD,8BAA8B;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2CAA2C;;AAE1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,UAAU;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO,2CAA2C,WAAW;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,KAAK,OAAO,IAAI,MAAM;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iBAAiB;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qBAAqB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,oCAAoC;AAC9E,kFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,cAAc,gBAAgB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,mCAAmC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,SAAS;AAC1E;AACA;AACA;AACA,gBAAgB,8FAA8F;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,qBAAqB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,mCAAmC,YAAY,gCAAgC;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,0BAA0B;AAChH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,WAAW;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,WAAW;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,0EAA0E;;AAElJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kCAAkC;AAC1C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF,sBAAsB,8HAA8H;AACrO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,8DAA8D;AAC/J;AACA;AACA;AACA;AACA;AACA;AACA,2EAA2E,sBAAsB,4HAA4H;AAC7N;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,6DAA6D;;AAEnJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8CAA8C;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,aAAa;AACjE,6BAA6B,cAAc,GAAG;AAC9C,uBAAuB;AACvB;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,cAAc;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA,sEAAsE,GAAG;AACzE;AACA;AACA;AACA;AACA,gFAAgF,GAAG;AACnF;AACA;AACA;AACA;AACA,yFAAyF,GAAG,6BAA6B,GAAG;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA,iEAAiE;AACjE;AACA;AACA,uCAAuC,KAAK,sBAAsB,KAAK;AACvE,mBAAmB,KAAK,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAmD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,OAAO;AACvH;;AAEA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,EAAE,kBAAkB;AACxC;AACA,cAAc,kBAAkB,EAAE,iCAAiC,GAAG,QAAQ,KAAK,+BAA+B;AAClH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kDAAkD;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,qBAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,gBAAgB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,IAAI,EAAE;AACN,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD,8CAA8C,kCAAkC;AAChF,+CAA+C,SAAS;AACxD;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2CAA2C;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,KAAK,UAAU,YAAY;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,OAAO;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA,gBAAgB;AAChB;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uIAAuI;AACvI;AACA;AACA;AACA;AACA;AACA,6DAA6D,KAAK;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,+EAA+E;AAC/E,KAAK;AACL;AACA,8CAA8C;AAC9C,KAAK;AACL,4BAA4B;AAC5B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kCAAkC;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,mCAAmC;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iCAAiC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yCAAyC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA,8EAA8E,eAAe;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA;AACA;AACA;AACA,6EAA6E,cAAc;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,KAAK;AAChE,2BAA2B,cAAc;AACzC,qBAAqB,KAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,KAAK;AACjE,2BAA2B,cAAc;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS,aAAa,uEAAuE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gDAAgD;AAClE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,KAAK;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gHAAgH,YAAY;AAC5H,WAAW,0BAA0B;AACrC,WAAW,0BAA0B;AACrC;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C,yHAAyH,MAAM,KAAK,SAAS,qBAAqB,UAAU;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA,uBAAuB,eAAe,EAAE,UAAU;AAClD,uBAAuB,4DAA4D,EAAE,UAAU;AAC/F;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iBAAiB;AACvD;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,yBAAyB;;AAE/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gBAAgB;AAC/D,4CAA4C,eAAe,IAAI,mBAAmB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,MAAM,eAAe;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,iCAAiC;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qCAAqC;AACnF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ;AACR,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,UAAU;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,UAAU;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iBAAiB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,aAAa;AACzC,uBAAuB,qDAAqD;AAC5E;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,wBAAwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B;AACzE;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB;AAC3N;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,+BAA+B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB,wBAAwB,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS,wCAAwC,QAAQ;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,YAAY;AAChF,0EAA0E,qBAAqB;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA,oGAAoG,iBAAiB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,KAAK;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qBAAqB;AAC1E,8CAA8C,uBAAuB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,mCAAmC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,iBAAiB;AAC3F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,kBAAkB;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH,iBAAiB,KAAK,gBAAgB;AACzJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU;AAC9C;AACA;AACA;AACA,oCAAoC,MAAM;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,cAAc;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oBAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2CAA2C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oDAAoD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oCAAoC;AACjE;AACA;AACA;AACA;AACA,gHAAgH;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sCAAsC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,oCAAoC,oCAAoC,6BAA6B;AAC5K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gBAAgB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,4FAA4F,UAAU;AACtG;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,oDAAoD;AAC7G,sFAAsF,UAAU;AAChG;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,2CAA2C,mDAAmD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,eAAe;AAC3E,IAAI,gBAAgB,iBAAiB,gBAAgB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,MAAM,GAAG,6BAA6B;AACxE,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,wEAAwE;AAC9E,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6BAA6B;AACpF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B,kCAAkC,MAAM,GAAG,6BAA6B;AACpH,KAAK;AACL;AACA;AACA,qCAAqC,gBAAgB,0BAA0B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6FAA6F,SAAS;AACtG;AACA;AACA;AACA;AACA,gDAAgD,gBAAgB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,kBAAkB;AAC/E;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,QAAQ;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,qDAAqD;AAC5D,OAAO;AACP;AACA;AACA;AACA;AACA,2EAA2E,WAAW,EAAE,UAAU;AAClG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,yBAAyB;AAChF;AACA;AACA;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iBAAiB;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uCAAuC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,UAAU;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,gCAAgC;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oBAAoB,KAAK;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC,iCAAiC,QAAQ;AACzC;AACA,qCAAqC,QAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,cAAc,sBAAsB,mCAAmC;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD,4BAA4B,mBAAmB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe;AACzC;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA,mBAAmB,cAAc,KAAK;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA,uBAAuB,cAAc,yBAAyB,cAAc;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB;AAClB,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO;AAC3D;AACA,yBAAyB,UAAU;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,QAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,mDAAmD;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,kBAAkB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA,kCAAkC,WAAW;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAI;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,IAAI;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC9E,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,IAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AAC5F,uBAAuB,MAAM,QAAQ,IAAI;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACtF,SAAS,gBAAgB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ;AACxF,mBAAmB,MAAM,QAAQ,MAAM,QAAQ,MAAM,QAAQ,IAAI;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB,gBAAgB,gBAAgB,gBAAgB;AACvF,UAAU,gBAAgB,gBAAgB,gBAAgB;AAC1D;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,cAAc;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uvBAAuvB,EAAE,GAAG,EAAE,QAAQ,GAAG,MAAM,EAAE,oBAAoB,2HAA2H;;AAEh6B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,4CAA4C;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mCAAmC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,QAAQ;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0IAA0I,OAAO;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,aAAa;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,QAAQ;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,OAAO;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA,4BAA4B,MAAM,eAAe,2CAA2C,GAAG,qBAAqB,EAAE;AACtH;AACA,mDAAmD,MAAM,GAAG;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,IAAI;AACrC;AACA;AACA;AACA,mDAAmD,eAAe;AAClE,iCAAiC,IAAI,8BAA8B,SAAS,KAAK,MAAM;AACvF;AACA,wCAAwC,IAAI;AAC5C;AACA,wCAAwC,IAAI;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA,mCAAmC,iBAAiB,IAAI,EAAE,uBAAuB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO,kCAAkC,QAAQ;AAClF;AACA,iCAAiC,IAAI,8BAA8B,uBAAuB,MAAM,uBAAuB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA;AACA,gCAAgC,QAAQ,8BAA8B,KAAK;AAC3E;AACA;AACA;AACA,gCAAgC,QAAQ,+BAA+B,MAAM;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,wBAAwB;AAC5C;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA;AACA;AACA,0CAA0C,gBAAgB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB,EAAE,YAAY;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA,4BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,QAAQ;AACtF;AACA,wJAAwJ,MAAM,GAAG,0BAA0B;AAC3L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,GAAG;AACtB;AACA,8HAA8H,GAAG;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,QAAQ;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,qCAAqC;AACrC,oCAAoC;AACpC,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,OAAO,IAAI,WAAW,EAAE,OAAO;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA,uHAAuH,QAAQ;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB,EAAE,OAAO;AACpE,iDAAiD,OAAO,aAAa,iBAAiB,EAAE,OAAO;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,sCAAsC,SAAS;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB,mBAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,8CAA8C,KAAK;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,eAAe,aAAa,SAAS;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF,eAAe;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,qCAAqC,aAAa;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,6EAA6E,QAAQ;AACrF;AACA;AACA;AACA;AACA,4BAA4B,yBAAyB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,MAAM,EAAE,kBAAkB,EAAE,IAAI;AACrF,KAAK;AACL;AACA,uEAAuE;AACvE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,OAAO,YAAY,IAAI;AAC5F;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,KAAK,eAAe;AACvD;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM,GAAG,MAAM;AACvB;AACA;AACA,SAAS,MAAM,GAAG,MAAM,SAAS,MAAM,GAAG,MAAM;AAChD;AACA;AACA;AACA,SAAS,MAAM,EAAE,MAAM,QAAQ,MAAM,EAAE,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB,wBAAwB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,2BAA2B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qBAAqB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kBAAkB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6CAA6C;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,eAAe;AACtD;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAqD;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,GAAG;AAC7D;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB;AAC/C,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uCAAuC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,kCAAkC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,iBAAiB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,uBAAuB;AAC/E;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,IAAI,IAAI,iBAAiB,KAAK,qBAAqB;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wBAAwB;AAC5E;AACA;AACA,cAAc,wCAAwC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,QAAQ;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,yBAAyB;AACzE,uEAAuE,KAAK,sBAAsB,UAAU;AAC5G;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D,8BAA8B,8BAA8B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+BAA+B;AACvE;AACA;AACA;AACA;AACA,gDAAgD,+BAA+B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yCAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAAoD;AAC3F,sCAAsC,8CAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,mBAAmB,GAAG,sBAAsB,OAAO;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,mBAAmB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,MAAM;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qHAAqH,gBAAgB;AACrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0BAA0B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,kCAAkC;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,QAAQ;AACzD,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,8BAA8B;AACtE;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH,gFAAgF,gBAAgB;AAChG;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,8DAA8D;AACnH;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB,4BAA4B,qBAAqB;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wBAAwB,4BAA4B,8BAA8B;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,MAAM,EAAE,yBAAyB,OAAO,+BAA+B;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,yBAAyB,4CAA4C,YAAY,MAAM,WAAW;AACtI,8CAA8C,yBAAyB,kCAAkC,YAAY,MAAM,WAAW;AACtI,oFAAoF,yBAAyB,+BAA+B,YAAY,MAAM,WAAW;AACzK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,UAAU,4BAA4B,qBAAqB;AAChH;AACA;AACA,gDAAgD,UAAU,4BAA4B,qBAAqB;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yDAAyD;AAC9G;AACA,iDAAiD,UAAU;AAC3D;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA,oDAAoD,mCAAmC;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,UAAU;AAC/E,2DAA2D,wCAAwC,wYAAwY;AAC3e;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE,qDAAqD,mDAAmD;AACxG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kCAAkC,KAAK;AACvC,yCAAyC,mDAAmD;AAC5F;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,mDAAmD;AACxG,gFAAgF,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8DAA8D;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,MAAM;AAC3F,gCAAgC,wBAAwB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,wBAAwB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6DAA6D;AAClH,gFAAgF,cAAc;AAC9F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,qDAAqD,6DAA6D;AAClH;AACA,kEAAkE,cAAc;AAChF;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sBAAsB,kDAAkD;AAC5H;AACA;AACA;AACA;AACA,2DAA2D,YAAY;AACvE;AACA;AACA;AACA;AACA,qEAAqE,qBAAqB;AAC1F;AACA;AACA;AACA;AACA,uEAAuE,qBAAqB;AAC5F;AACA;AACA;AACA;AACA,8EAA8E,kBAAkB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0BAA0B;AACtC;AACA;AACA;AACA,oDAAoD,UAAU;AAC9D;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iBAAiB;;AAEhG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,uBAAuB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kCAAkC;AACjF,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE,iEAAiE,uFAAuF;AACxJ;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS;AACT,kBAAkB;AAClB;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB,GAAG;AACxB,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAA6D;AACjE;AACA;AACA;AACA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,cAAc,cAAc,EAAE,cAAc,EAAE,cAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C,mDAAmD,+DAA+D;AAClH;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C,SAAS;AACT,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,uCAAuC;AACzD,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,iDAAiD;AACnE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mBAAmB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA,kBAAkB,+CAA+C;AACjE,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6BAA6B;AACzC,YAAY,yBAAyB;AACrC,YAAY,YAAY;AACxB;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gEAAgE;;AAEjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,oDAAoD,6DAA6D;AACjH;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS;AACT,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE,qCAAqC,WAAW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,UAAU;AAChC,oDAAoD,QAAQ;AAC5D;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE,UAAU;AACV,QAAQ;AACR;AACA;AACA;AACA;AACA,wCAAwC,cAAc;AACtD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oHAAoH;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,yBAAyB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0BAA0B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,IAAI;AACvB;AACA;AACA;AACA,uDAAuD;AACvD,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,sBAAsB,WAAW;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,uBAAuB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,+BAA+B,sDAAsD;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uDAAuD,+CAA+C;AACtG;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,cAAc,IAAI;AACtD,CAAC;AACD;AACA,yBAAyB,mBAAmB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE,+DAA+D,uFAAuF;AACtJ;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C,SAAS,iBAAiB,YAAY;AACtC,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,+CAA+C,8BAA8B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,+CAA+C;AAC7D,cAAc,wEAAwE;AACtF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,4CAA4C;AAC7F,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA;AACA;AACA,qDAAqD,kFAAkF;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD,uDAAuD,uEAAuE;AAC9H;AACA;AACA;AACA,qBAAqB,wBAAwB;AAC7C,SAAS,iBAAiB,UAAU,gBAAgB,IAAI;AACxD,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT,sCAAsC,4CAAU;AAChD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT,6BAA6B,4CAAU;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,2CAAO,kCAAkC,qDAAK;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,0DAA0D,yEAAyE;AACnI;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC,SAAS,iBAAiB,UAAU,cAAc,IAAI,gBAAgB,IAAI,oBAAoB,IAAI,6BAA6B,IAAI;AACnI,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,IAAI;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,MAAM;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D,uDAAuD,QAAQ;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uBAAuB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2BAA2B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,8BAA8B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4BAA4B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,uCAAuC,iBAAiB;AACxD;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA;AACA,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4BAA4B;AAC1D;AACA,oCAAoC,4BAA4B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,gBAAgB;AACvE;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA;AACA;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA,6CAA6C,iBAAiB;AAC9D;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,SAAS,aAAa,kCAAkC;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,oFAAoF;AACjI;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6BAA6B;AACvD,kBAAkB,uBAAuB;AACzC,QAAQ,uBAAuB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,GAAG;AAC1D;AACA;AACA;AACA;AACA;AACA,6CAA6C,oFAAoF;;AAEjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,0DAA0D,yBAAyB;AACnF,0DAA0D;AAC1D;AACA;AACA;AACA,SAAS,iBAAiB,UAAU,sBAAsB,IAAI;AAC9D,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,yEAAyE,eAAe;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,uEAAuE,eAAe;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wEAAwE;AACjH,0EAA0E,eAAe;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sEAAsE;AAC/G,wEAAwE,eAAe;AACvF;AACA;AAC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;;;AACA,SAASO,iBAAT,CAA2B7pJ,KAA3B,EAAkC;AAC9B;AACA,SAAOA,KAAK,IAAI,IAAT,IAAiBA,KAAK,CAACqD,MAAN,KAAiB,CAAzC;AACH;;AACD,SAASymJ,cAAT,CAAwB9pJ,KAAxB,EAA+B;AAC3B;AACA,SAAOA,KAAK,IAAI,IAAT,IAAiB,OAAOA,KAAK,CAACqD,MAAb,KAAwB,QAAhD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM0mJ,aAAa,GAAG,IAAI/3D,yDAAJ,CAAmB,cAAnB,CAAtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMg4D,mBAAmB,GAAG,IAAIh4D,yDAAJ,CAAmB,mBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMi4D,YAAY,GAAG,oMAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,UAAN,CAAiB;AACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACc,SAAHzoC,GAAG,CAACA,GAAD,EAAM;AACZ,WAAO0oC,YAAY,CAAC1oC,GAAD,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACc,SAAH/zD,GAAG,CAACA,GAAD,EAAM;AACZ,WAAO08F,YAAY,CAAC18F,GAAD,CAAnB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACmB,SAAR28F,QAAQ,CAACC,OAAD,EAAU;AACrB,WAAOC,iBAAiB,CAACD,OAAD,CAAxB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACuB,SAAZE,YAAY,CAACF,OAAD,EAAU;AACzB,WAAOG,qBAAqB,CAACH,OAAD,CAA5B;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACgB,SAALI,KAAK,CAACJ,OAAD,EAAU;AAClB,WAAOK,cAAc,CAACL,OAAD,CAArB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACoB,SAATM,SAAS,CAACA,SAAD,EAAY;AACxB,WAAOC,kBAAkB,CAACD,SAAD,CAAzB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACoB,SAATE,SAAS,CAACA,SAAD,EAAY;AACxB,WAAOC,kBAAkB,CAACD,SAAD,CAAzB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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A;AACA;AACA;;;AACIgF,EAAAA,kBAAkB,CAACT,QAAD,EAAW;AACzB,UAAMiC,WAAW,GAAG,KAAKlK,OAAL,IAAgB,KAAKA,OAAL,CAAahB,KAAjD;AACA,WAAO,CAACiJ,QAAD,IAAa,CAAC,CAACiC,WAAf,IAA8B,CAAC,KAAKlK,OAAL,CAAa6J,iBAAb,EAAtC;AACH;;AAtvBiB;AAwvBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMhD,WAAN,SAA0BQ,eAA1B,CAA0C;AACtC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACI1wJ,EAAAA,WAAW,CAACqzJ,SAAS,GAAG,IAAb,EAAmBzD,eAAnB,EAAoC9G,cAApC,EAAoD;AAC3D,UAAM6G,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAACjH,cAAD,EAAiB8G,eAAjB,CAA1D;AACA;AACR;AACA;AACA;AACA;AACA;;AACQ,SAAKv/G,YAAL,GAAoB,IAApB;AACA;;AACA,SAAKmjH,SAAL,GAAiB,EAAjB;AACA;;AACA,SAAK3G,cAAL,GAAsB,KAAtB;;AACA,SAAK4G,eAAL,CAAqBJ,SAArB;;AACA,SAAKC,kBAAL,CAAwB1D,eAAxB;;AACA,SAAKmD,gBAAL;;AACA,SAAKvG,sBAAL,CAA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J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIyxB,EAAAA,KAAK,CAACvyC,KAAK,GAAG,EAAT,EAAa8gB,OAAO,GAAG,EAAvB,EAA2B;AAC5B,SAAK80I,aAAL,CAAmB,CAACtL,OAAD,EAAUtjI,KAAV,KAAoB;AACnCsjI,MAAAA,OAAO,CAAC/3G,KAAR,CAAcvyC,KAAK,CAACgnB,KAAD,CAAnB,EAA4B;AAAEyvI,QAAAA,QAAQ,EAAE,IAAZ;AAAkBO,QAAAA,SAAS,EAAEl2I,OAAO,CAACk2I;AAArC,OAA5B;AACH,KAFD;;AAGA,SAAKF,eAAL,CAAqBh2I,OAArB;;AACA,SAAK81I,cAAL,CAAoB91I,OAApB;;AACA,SAAK6wI,sBAAL,CAA4B7wI,OAA5B;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;;;AACI00I,EAAAA,WAAW,GAAG;AACV,WAAO,KAAKb,QAAL,CAAcpxJ,GAAd,CAAmB+mJ,OAAD,IAAakL,WAAW,CAAClL,OAAD,CAA1C,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIlmI,EAAAA,KAAK,CAACtD,OAAO,GAAG,EAAX,EAAe;AAChB,QAAI,KAAK6zI,QAAL,CAActxJ,MAAd,GAAuB,CAA3B,EACI;;AACJ,SAAKuyJ,aAAL,CAAoBtL,OAAD,IAAaA,OAAO,CAAC4G,2BAAR,CAAoC,MAAM,CAAG,CAA7C,CAAhC;;AACA,SAAKyD,QAAL,CAAc93I,MAAd,CAAqB,CAArB;AACA,SAAK80I,sBAAL,CAA4B;AAA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BH,GAvBL,EAuBuB;AAAE7hJ,IAAAA,IAAI,EAAE,CAAC;AAChBzC,MAAAA,IAAI,EAAEqsF,gDADU;AAEhBl6E,MAAAA,IAAI,EAAE,CAAC,cAAD;AAFU,KAAD;AAAR,GAvBvB;AAAA;AA4BA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2jJ,oBAAoB,GAAG;AACzBhxD,EAAAA,OAAO,EAAE+jD,SADgB;AAEzB9jD,EAAAA,WAAW,EAAE4lB,yDAAU,CAAC,MAAMorC,OAAP;AAFE,CAA7B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM7W,eAAe,GAAG,CAAC,MAAM1kJ,OAAO,CAACD,OAAR,CAAgB,IAAhB,CAAP,GAAxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMw7J,OAAN,SAAsBlN,SAAtB,CAAgC;AAC5BppJ,EAAAA,WAAW,CAAC4rC,MAAD,EAASo6G,UAAT,EAAqBqG,eAArB,EAAsCkC,cAAtC,EAAsDr9B,kBAAtD,EAA0E;AACjF;AACA,SAAKA,kBAAL,GAA0BA,kBAA1B;AACA,SAAKi0B,OAAL,GAAe,IAAI+K,WAAJ,EAAf;AACA;;AACA,SAAKqG,WAAL,GAAmB,KAAnB;AACA;AACR;AACA;AACA;AACA;;AACQ,SAAK9b,MAAL,GAAc,IAAI9gI,uDAAJ,EAAd;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5rGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uDAAuD;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC,UAAU,QAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,kCAAkC,mDAAmD,GAAG,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,EAAE;AACvF;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA,mFAAmF,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,eAAe,KAAK;AACpB;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,yBAAyB,kBAAkB;AAC3C,4BAA4B,kBAAkB;AAC9C,yBAAyB,kBAAkB;AAC3C;AACA,yBAAyB,kBAAkB;AAC3C,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC,iCAAiC;AACjC;AACA;AACA;AACA;AACA,wBAAwB,wCAAwC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ;AACnC,8CAA8C,mDAAmD,GAAG,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,6CAA6C,mDAAmD,GAAG,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,8CAA8C,mDAAmD,GAAG,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC;AACA,qCAAqC,kEAAkE,GAAG,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,yDAAyD,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,wBAAwB,QAAQ;AAChC,2CAA2C,mDAAmD,GAAG,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,QAAQ;AAClC,6CAA6C,mDAAmD,GAAG,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,qDAAqD,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,GAAG;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,sBAAsB,YAAY;AAClC;AACA;AACA,8BAA8B,SAAS;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,oBAAoB,gBAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oBAAoB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,IAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,0BAA0B,QAAQ;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uBAAuB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uBAAuB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,wCAAwC,KAAK;AAC7C,UAAU;AACV;AACA;AACA;AACA,mBAAmB,KAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,EAAE;AAC/C,0CAA0C,GAAG,SAAS,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,wBAAwB,SAAS;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qCAAqC,SAAS;AAC9C;AACA,0BAA0B,SAAS;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,aAAa;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yBAAyB;AACjC,UAAU,yBAAyB;AACnC;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,GAAG;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAK;AACvB;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,KAAK;AAC3B;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA,oBAAoB,eAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,KAAK;AACtC;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA,+BAA+B,MAAM;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gBAAgB;AACzB;AACA,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,aAAa;AAC1B;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,QAAQ;AAChB;AACA,kCAAkC,mDAAmD,GAAG,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,8CAA8C,KAAK,MAAM,IAAI;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,eAAe,QAAQ;AACvB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,WAAW;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA,kCAAkC,6BAA6B,GAAG,GAAG;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB;AACA,kCAAkC,mDAAmD,GAAG,MAAM;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,QAAQ;AAClB;AACA,8BAA8B,mDAAmD,GAAG,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM;AACf;AACA;AACA,WAAW,KAAK;AAChB;AACA;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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","sources":["./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/abi-coder.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/address.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/array.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/null.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/number.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/string.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/fragments.js","./lib/prokey-webcore/node_modules/@ethersproject/abi/lib.esm/interface.js","./lib/prokey-webcore/node_modules/@ethersproject/abstract-provider/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/abstract-provider/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/abstract-signer/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/abstract-signer/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/address/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/address/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/base64/lib.esm/base64.js","./lib/prokey-webcore/node_modules/@ethersproject/basex/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/bignumber/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","./lib/prokey-webcore/node_modules/@ethersproject/bytes/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/bytes/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/constants/lib.esm/addresses.js","./lib/prokey-webcore/node_modules/@ethersproject/constants/lib.esm/bignumbers.js","./lib/prokey-webcore/node_modules/@ethersproject/constants/lib.esm/hashes.js","./lib/prokey-webcore/node_modules/@ethersproject/contracts/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/contracts/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/hash/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/hash/lib.esm/ens-normalize/decoder.js","./lib/prokey-webcore/node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js","./lib/prokey-webcore/node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js","./lib/prokey-webcore/node_modules/@ethersproject/hash/lib.esm/id.js","./lib/prokey-webcore/node_modules/@ethersproject/hash/lib.esm/namehash.js","./lib/prokey-webcore/node_modules/@ethersproject/hash/lib.esm/typed-data.js","./lib/prokey-webcore/node_modules/@ethersproject/keccak256/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/logger/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/logger/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/networks/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/networks/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/properties/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/properties/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/providers/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/providers/lib.esm/base-provider.js","./lib/prokey-webcore/node_modules/@ethersproject/providers/lib.esm/formatter.js","./lib/prokey-webcore/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js","./lib/prokey-webcore/node_modules/@ethersproject/rlp/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/rlp/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/sha2/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/sha2/lib.esm/sha2.js","./lib/prokey-webcore/node_modules/@ethersproject/sha2/lib.esm/types.js","./lib/prokey-webcore/node_modules/@ethersproject/signing-key/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","./lib/prokey-webcore/node_modules/@ethersproject/signing-key/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/strings/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/strings/lib.esm/utf8.js","./lib/prokey-webcore/node_modules/@ethersproject/transactions/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/transactions/lib.esm/index.js","./lib/prokey-webcore/node_modules/@ethersproject/web/lib.esm/_version.js","./lib/prokey-webcore/node_modules/@ethersproject/web/lib.esm/geturl.js","./lib/prokey-webcore/node_modules/@ethersproject/web/lib.esm/index.js","./lib/prokey-webcore/node_modules/@metamask/eth-sig-util/dist/encryption.js","./lib/prokey-webcore/node_modules/@metamask/eth-sig-util/dist/index.js","./lib/prokey-webcore/node_modules/@metamask/eth-sig-util/dist/personal-sign.js","./lib/prokey-webcore/node_modules/@metamask/eth-sig-util/dist/sign-typed-data.js","./lib/prokey-webcore/node_modules/@metamask/eth-sig-util/dist/utils.js","./lib/prokey-webcore/node_modules/@protobufjs/aspromise/index.js","./lib/prokey-webcore/node_modules/@protobufjs/base64/index.js","./lib/prokey-webcore/node_modules/@protobufjs/codegen/index.js","./lib/prokey-webcore/node_modules/@protobufjs/eventemitter/index.js","./lib/prokey-webcore/node_modules/@protobufjs/fetch/index.js","./lib/prokey-webcore/node_modules/@protobufjs/float/index.js","./lib/prokey-webcore/node_modules/@protobufjs/inquire/index.js","./lib/prokey-webcore/node_modules/@protobufjs/path/index.js","./lib/prokey-webcore/node_modules/@protobufjs/pool/index.js","./lib/prokey-webcore/node_modules/@protobufjs/utf8/index.js","./lib/prokey-webcore/node_modules/assert/build/assert.js","./lib/prokey-webcore/node_modules/assert/build/internal/assert/assertion_error.js","./lib/prokey-webcore/node_modules/assert/build/internal/errors.js","./lib/prokey-webcore/node_modules/assert/build/internal/util/comparisons.js","./lib/prokey-webcore/node_modules/base-x/src/index.js","base64-js","./lib/prokey-webcore/node_modules/bech32/index.js","./lib/prokey-webcore/node_modules/bignumber.js/bignumber.js","./lib/prokey-webcore/node_modules/bn.js/lib/bn.js","./lib/prokey-webcore/node_modules/brorand/index.js","./lib/prokey-webcore/node_modules/browserify-bignum/bignumber.js","buffer","./lib/prokey-webcore/node_modules/call-bind/callBound.js","./lib/prokey-webcore/node_modules/call-bind/index.js","./lib/prokey-webcore/node_modules/cbor-js/cbor.js","./lib/prokey-webcore/node_modules/cipher-base/index.js","./lib/prokey-webcore/node_modules/compare-versions/index.js","./lib/prokey-webcore/node_modules/crc/crc1.js","./lib/prokey-webcore/node_modules/crc/crc16.js","./lib/prokey-webcore/node_modules/crc/crc16ccitt.js","./lib/prokey-webcore/node_modules/crc/crc16kermit.js","./lib/prokey-webcore/node_modules/crc/crc16modbus.js","./lib/prokey-webcore/node_modules/crc/crc16xmodem.js","./lib/prokey-webcore/node_modules/crc/crc24.js","./lib/prokey-webcore/node_modules/crc/crc32.js","./lib/prokey-webcore/node_modules/crc/crc8.js","./lib/prokey-webcore/node_modules/crc/crc81wire.js","./lib/prokey-webcore/node_modules/crc/crcjam.js","./lib/prokey-webcore/node_modules/crc/create_buffer.js","./lib/prokey-webcore/node_modules/crc/define_crc.js","./lib/prokey-webcore/node_modules/crc/index.js","./lib/prokey-webcore/node_modules/create-hash/browser.js","./lib/prokey-webcore/node_modules/define-properties/index.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/curve/base.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/curve/edwards.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/curve/index.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/curve/mont.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/curve/short.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/curves.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/ec/index.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/ec/key.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/ec/signature.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/eddsa/index.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/eddsa/key.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/eddsa/signature.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","./lib/prokey-webcore/node_modules/elliptic/lib/elliptic/utils.js","bn.js","./lib/prokey-webcore/node_modules/emitter-component/index.js","./lib/prokey-webcore/node_modules/es6-object-assign/index.js","./lib/prokey-webcore/node_modules/ethereum-cryptography/hash-utils.js","./lib/prokey-webcore/node_modules/ethereum-cryptography/keccak.js","./lib/prokey-webcore/node_modules/ethereum-cryptography/random.js","./lib/prokey-webcore/node_modules/ethereum-cryptography/secp256k1.js","./lib/prokey-webcore/node_modules/ethereumjs-abi/index.js","./lib/prokey-webcore/node_modules/ethereumjs-abi/lib/index.js","webpack:///bn.js?c54c","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/account.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/bytes.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/constants.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/hash.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/index.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/object.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/secp256k1v3-adapter.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/secp256k1v3-lib/der.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/secp256k1v3-lib/index.js","./lib/prokey-webcore/node_modules/ethereumjs-util/dist/signature.js","./lib/prokey-webcore/node_modules/ethereumjs-util/node_modules/bn.js/lib/bn.js","./lib/prokey-webcore/node_modules/ethjs-util/lib/index.js","./lib/prokey-webcore/node_modules/events/events.js","./lib/prokey-webcore/node_modules/for-each/index.js","./lib/prokey-webcore/node_modules/function-bind/implementation.js","./lib/prokey-webcore/node_modules/function-bind/index.js","./lib/prokey-webcore/node_modules/generic-logger-typings/dist/index.js","./lib/prokey-webcore/node_modules/generic-logger-typings/dist/interfaces/index.js","./lib/prokey-webcore/node_modules/generic-logger-typings/dist/interfaces/levels.js","./lib/prokey-webcore/node_modules/generic-logger-typings/dist/interfaces/logger.js","./lib/prokey-webcore/node_modules/get-intrinsic/index.js","./lib/prokey-webcore/node_modules/gopd/index.js","./lib/prokey-webcore/node_modules/has-property-descriptors/index.js","./lib/prokey-webcore/node_modules/has-symbols/index.js","./lib/prokey-webcore/node_modules/has-symbols/shams.js","./lib/prokey-webcore/node_modules/has-tostringtag/shams.js","./lib/prokey-webcore/node_modules/has/src/index.js","./lib/prokey-webcore/node_modules/hash-base/index.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/errors-browser.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","./internal/streams/destroy","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","./internal/streams/state","./internal/streams/stream","./lib/prokey-webcore/node_modules/hash-base/node_modules/readable-stream/readable-browser.js","./lib/prokey-webcore/node_modules/hash-base/node_modules/string_decoder/lib/string_decoder.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/common.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/hmac.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/ripemd.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/sha.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/sha/1.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/sha/224.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/sha/256.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/sha/384.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/sha/512.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/sha/common.js","./lib/prokey-webcore/node_modules/hash.js/lib/hash/utils.js","./lib/prokey-webcore/node_modules/hmac-drbg/lib/hmac-drbg.js","ieee754","./lib/prokey-webcore/node_modules/inherits/inherits_browser.js","./lib/prokey-webcore/node_modules/is-arguments/index.js","./lib/prokey-webcore/node_modules/is-callable/index.js","./lib/prokey-webcore/node_modules/is-generator-function/index.js","./lib/prokey-webcore/node_modules/is-hex-prefixed/src/index.js","./lib/prokey-webcore/node_modules/is-nan/implementation.js","./lib/prokey-webcore/node_modules/is-nan/index.js","./lib/prokey-webcore/node_modules/is-nan/polyfill.js","./lib/prokey-webcore/node_modules/is-nan/shim.js","./lib/prokey-webcore/node_modules/is-typed-array/index.js","./lib/prokey-webcore/node_modules/js-sha3/src/sha3.js","./lib/prokey-webcore/node_modules/js-sha512/src/sha512.js","./lib/prokey-webcore/node_modules/jssha/src/sha.js","./lib/prokey-webcore/node_modules/keccak/js.js","./lib/prokey-webcore/node_modules/keccak/lib/api/index.js","./lib/prokey-webcore/node_modules/keccak/lib/api/keccak.js","./lib/prokey-webcore/node_modules/keccak/lib/api/shake.js","./lib/prokey-webcore/node_modules/keccak/lib/keccak-state-unroll.js","./lib/prokey-webcore/node_modules/keccak/lib/keccak.js","../errors","./lib/_stream_duplex.js","./lib/_stream_passthrough.js","./lib/_stream_transform.js","./internal/streams/buffer_list","./lib/prokey-webcore/node_modules/keccak/node_modules/readable-stream/lib/internal/streams/destroy.js","./lib/internal/streams/end-of-stream.js","./internal/streams/from","./lib/internal/streams/pipeline.js","./lib/prokey-webcore/node_modules/keccak/node_modules/readable-stream/lib/internal/streams/state.js","./lib/prokey-webcore/node_modules/keccak/node_modules/readable-stream/lib/internal/streams/stream-browser.js","readable-stream","string_decoder/","./lib/prokey-webcore/node_modules/lodash.isequal/index.js","./lib/prokey-webcore/node_modules/md5.js/index.js","./lib/prokey-webcore/node_modules/minimalistic-assert/index.js","./lib/prokey-webcore/node_modules/minimalistic-crypto-utils/lib/utils.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/ada_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/algo_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/bch_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/bitcoin_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/base32.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/base58.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/bech32.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/biginteger.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/blake256.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/blake2b.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/cnBase58.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/segwit_addr.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/sha3.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/crypto/utils.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/currencies.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/dot_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/eos_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/ethereum_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/lisk_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/monero_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/nano_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/nem_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/ripple_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/siacoin_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/stellar_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/tezos_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/tron_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/usdt_validator.js","./lib/prokey-webcore/node_modules/multicoin-address-validator/src/wallet_address_validator.js","./lib/prokey-webcore/node_modules/object-is/implementation.js","./lib/prokey-webcore/node_modules/object-is/index.js","./lib/prokey-webcore/node_modules/object-is/polyfill.js","./lib/prokey-webcore/node_modules/object-is/shim.js","./lib/prokey-webcore/node_modules/object-keys/implementation.js","./lib/prokey-webcore/node_modules/object-keys/index.js","./lib/prokey-webcore/node_modules/object-keys/isArguments.js","./lib/prokey-webcore/node_modules/protobufjs/index.js","./lib/prokey-webcore/node_modules/protobufjs/src/common.js","./lib/prokey-webcore/node_modules/protobufjs/src/converter.js","./lib/prokey-webcore/node_modules/protobufjs/src/decoder.js","./lib/prokey-webcore/node_modules/protobufjs/src/encoder.js","./lib/prokey-webcore/node_modules/protobufjs/src/enum.js","./lib/prokey-webcore/node_modules/protobufjs/src/field.js","./lib/prokey-webcore/node_modules/protobufjs/src/index-light.js","./lib/prokey-webcore/node_modules/protobufjs/src/index-minimal.js","./lib/prokey-webcore/node_modules/protobufjs/src/index.js","./lib/prokey-webcore/node_modules/protobufjs/src/mapfield.js","./lib/prokey-webcore/node_modules/protobufjs/src/message.js","./lib/prokey-webcore/node_modules/protobufjs/src/method.js","./lib/prokey-webcore/node_modules/protobufjs/src/namespace.js","./lib/prokey-webcore/node_modules/protobufjs/src/object.js","./lib/prokey-webcore/node_modules/protobufjs/src/oneof.js","./lib/prokey-webcore/node_modules/protobufjs/src/parse.js","./lib/prokey-webcore/node_modules/protobufjs/src/reader.js","./lib/prokey-webcore/node_modules/protobufjs/src/reader_buffer.js","./lib/prokey-webcore/node_modules/protobufjs/src/root.js","./lib/prokey-webcore/node_modules/protobufjs/src/roots.js","./lib/prokey-webcore/node_modules/protobufjs/src/rpc.js","./lib/prokey-webcore/node_modules/protobufjs/src/rpc/service.js","./lib/prokey-webcore/node_modules/protobufjs/src/service.js","./lib/prokey-webcore/node_modules/protobufjs/src/tokenize.js","./lib/prokey-webcore/node_modules/protobufjs/src/type.js","./lib/prokey-webcore/node_modules/protobufjs/src/types.js","./lib/prokey-webcore/node_modules/protobufjs/src/util.js","./lib/prokey-webcore/node_modules/protobufjs/src/util/longbits.js","./lib/prokey-webcore/node_modules/protobufjs/src/util/minimal.js","./lib/prokey-webcore/node_modules/protobufjs/src/verifier.js","./lib/prokey-webcore/node_modules/protobufjs/src/wrappers.js","./lib/prokey-webcore/node_modules/protobufjs/src/writer.js","./lib/prokey-webcore/node_modules/protobufjs/src/writer_buffer.js","./lib/prokey-webcore/node_modules/randombytes/browser.js","./lib/prokey-webcore/node_modules/ripemd160/index.js","./lib/prokey-webcore/node_modules/rlp/dist.browser/index.js","./lib/prokey-webcore/node_modules/safe-buffer/index.js","./lib/prokey-webcore/node_modules/secp256k1/elliptic.js","./lib/prokey-webcore/node_modules/secp256k1/lib/elliptic.js","./lib/prokey-webcore/node_modules/secp256k1/lib/index.js","./lib/prokey-webcore/node_modules/sha.js/hash.js","./lib/prokey-webcore/node_modules/sha.js/index.js","./lib/prokey-webcore/node_modules/sha.js/sha.js","./lib/prokey-webcore/node_modules/sha.js/sha1.js","./lib/prokey-webcore/node_modules/sha.js/sha224.js","./lib/prokey-webcore/node_modules/sha.js/sha256.js","./lib/prokey-webcore/node_modules/sha.js/sha384.js","./lib/prokey-webcore/node_modules/sha.js/sha512.js","./lib/prokey-webcore/node_modules/stream/index.js","./lib/prokey-webcore/node_modules/string_decoder/index.js","./lib/prokey-webcore/node_modules/strip-hex-prefix/src/index.js","./lib/prokey-webcore/node_modules/tweetnacl-util/nacl-util.js","./lib/prokey-webcore/node_modules/tweetnacl/nacl-fast.js","./lib/prokey-webcore/node_modules/typescript-http-client/dist/execute.js","./lib/prokey-webcore/node_modules/typescript-http-client/dist/filterChainImpl.js","./lib/prokey-webcore/node_modules/typescript-http-client/dist/index.js","./lib/prokey-webcore/node_modules/util-deprecate/browser.js","./lib/prokey-webcore/node_modules/util/support/isBufferBrowser.js","./lib/prokey-webcore/node_modules/util/support/types.js","./lib/prokey-webcore/node_modules/util/util.js","./lib/prokey-webcore/node_modules/which-typed-array/index.js","./node_modules/angularx-qrcode/__ivy_ngcc__/fesm2015/angularx-qrcode.js","./node_modules/dijkstrajs/dijkstra.js","./node_modules/fast-sha256/sha256.js","./node_modules/isarray/index.js","./node_modules/jquery/dist/jquery.js","./node_modules/jsqr/dist/jsQR.js","./node_modules/ngx-pagination/__ivy_ngcc__/dist/ngx-pagination.js","./node_modules/ngx-skeleton-loader/__ivy_ngcc__/fesm2015/ngx-skeleton-loader.js","./node_modules/perf-marks/dist/es2015/is-nodejs-env.js","./node_modules/perf-marks/dist/es2015/is-performance-observable-supported.js","./node_modules/perf-marks/dist/es2015/is-user-timing-api-supported.js","./node_modules/perf-marks/dist/es2015/marks.js","./node_modules/qrcode/lib/browser.js","./node_modules/qrcode/lib/can-promise.js","./node_modules/qrcode/lib/core/alignment-pattern.js","./node_modules/qrcode/lib/core/alphanumeric-data.js","./node_modules/qrcode/lib/core/bit-buffer.js","./node_modules/qrcode/lib/core/bit-matrix.js","./node_modules/qrcode/lib/core/byte-data.js","./node_modules/qrcode/lib/core/error-correction-code.js","./node_modules/qrcode/lib/core/error-correction-level.js","./node_modules/qrcode/lib/core/finder-pattern.js","./node_modules/qrcode/lib/core/format-info.js","./node_modules/qrcode/lib/core/galois-field.js","./node_modules/qrcode/lib/core/kanji-data.js","./node_modules/qrcode/lib/core/mask-pattern.js","./node_modules/qrcode/lib/core/mode.js","./node_modules/qrcode/lib/core/numeric-data.js","./node_modules/qrcode/lib/core/polynomial.js","./node_modules/qrcode/lib/core/qrcode.js","./node_modules/qrcode/lib/core/reed-solomon-encoder.js","./node_modules/qrcode/lib/core/regex.js","./node_modules/qrcode/lib/core/segments.js","./node_modules/qrcode/lib/core/utils.js","./node_modules/qrcode/lib/core/version-check.js","./node_modules/qrcode/lib/core/version.js","./node_modules/qrcode/lib/renderer/canvas.js","./node_modules/qrcode/lib/renderer/svg-tag.js","./node_modules/qrcode/lib/renderer/utils.js","./node_modules/qrcode/lib/utils/typedarray-buffer.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/innerSubscribe.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/interval.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/race.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/operators/audit.js","./node_modules/rxjs/_esm2015/internal/operators/auditTime.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/debounce.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/rxjs/_esm2015/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/operators/pairwise.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","./node_modules/rxjs/_esm2015/internal/operators/skip.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/timeout.js","./node_modules/rxjs/_esm2015/internal/operators/timeoutWith.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm2015/internal/scheduler/asap.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/Immediate.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/TimeoutError.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isObservable.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/rxjs/internal/BehaviorSubject.js","./node_modules/rxjs/internal/Observable.js","./node_modules/rxjs/internal/Observer.js","./node_modules/rxjs/internal/Subject.js","./node_modules/rxjs/internal/SubjectSubscription.js","./node_modules/rxjs/internal/Subscriber.js","./node_modules/rxjs/internal/Subscription.js","./node_modules/rxjs/internal/config.js","./node_modules/rxjs/internal/symbol/observable.js","./node_modules/rxjs/internal/symbol/rxSubscriber.js","./node_modules/rxjs/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/internal/util/UnsubscriptionError.js","./node_modules/rxjs/internal/util/canReportError.js","./node_modules/rxjs/internal/util/hostReportError.js","./node_modules/rxjs/internal/util/identity.js","./node_modules/rxjs/internal/util/isArray.js","./node_modules/rxjs/internal/util/isFunction.js","./node_modules/rxjs/internal/util/isObject.js","./node_modules/rxjs/internal/util/pipe.js","./node_modules/rxjs/internal/util/toSubscriber.js","./node_modules/tslib/tslib.es6.js","./lib/prokey-webcore/node_modules/available-typed-arrays/index.js","bignumber.js","./node_modules/@angular/animations/fesm2015/animations.mjs","./node_modules/@angular/animations/fesm2015/browser.mjs","./node_modules/@angular/cdk/fesm2015/a11y.mjs","./node_modules/@angular/cdk/fesm2015/bidi.mjs","./node_modules/@angular/cdk/fesm2015/cdk.mjs","./node_modules/@angular/cdk/fesm2015/coercion.mjs","./node_modules/@angular/cdk/fesm2015/collections.mjs","./node_modules/@angular/cdk/fesm2015/keycodes.mjs","./node_modules/@angular/cdk/fesm2015/observers.mjs","./node_modules/@angular/cdk/fesm2015/overlay.mjs","./node_modules/@angular/cdk/fesm2015/platform.mjs","./node_modules/@angular/cdk/fesm2015/portal.mjs","./node_modules/@angular/cdk/fesm2015/scrolling.mjs","./node_modules/@angular/common/fesm2015/common.mjs","./node_modules/@angular/common/fesm2015/http.mjs","./node_modules/@angular/core/fesm2015/core.mjs","./node_modules/@angular/forms/fesm2015/forms.mjs","./node_modules/@angular/material/fesm2015/button.mjs","./node_modules/@angular/material/fesm2015/card.mjs","./node_modules/@angular/material/fesm2015/core.mjs","./node_modules/@angular/material/fesm2015/dialog.mjs","./node_modules/@angular/material/fesm2015/icon.mjs","./node_modules/@angular/material/fesm2015/menu.mjs","./node_modules/@angular/platform-browser/fesm2015/animations.mjs","./node_modules/@angular/platform-browser/fesm2015/platform-browser.mjs","./node_modules/@angular/router/fesm2015/router.mjs","./node_modules/angular-oauth2-oidc/fesm2015/angular-oauth2-oidc.mjs","./node_modules/bignumber.js/bignumber.mjs","./node_modules/ngx-ui-tour-core/fesm2015/ngx-ui-tour-core.mjs","./node_modules/ngx-ui-tour-md-menu/fesm2015/ngx-ui-tour-md-menu.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["export const version = \"abi/5.7.0\";\n","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n getDefaultValue(types) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, value) {\n try {\n value = getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n defaultValue() {\n return 0;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class StructFragment extends Fragment {\n//}\nfunction checkForbidden(fragment) {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${sig} error`, \"fragment\", fragment);\n }\n return fragment;\n}\nexport class ErrorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ErrorFragment.isErrorFragment(value)) {\n return value;\n }\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : [])\n };\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n static fromString(value) {\n let params = { type: \"error\" };\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n static isErrorFragment(value) {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\nimport { defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from \"./fragments\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport { checkResultErrors };\nexport class LogDescription extends Description {\n}\nexport class TransactionDescription extends Description {\n}\nexport class ErrorDescription extends Description {\n}\nexport class Indexed extends Description {\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n}\nconst BuiltinErrors = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [\"string\"], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [\"uint256\"] }\n};\nfunction wrapAccessError(property, error) {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`);\n wrap.error = error;\n return wrap;\n}\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n constructor(fragments) {\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n defineReadOnly(this, \"_abiCoder\", getStatic(new.target, \"getAbiCoder\")());\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"errors\", {});\n defineReadOnly(this, \"events\", {});\n defineReadOnly(this, \"structs\", {});\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n case \"error\":\n bucket = this.errors;\n break;\n default:\n return;\n }\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n bucket[signature] = fragment;\n });\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n defineReadOnly(this, \"_isInterface\", true);\n }\n format(format) {\n if (!format) {\n format = FormatTypes.full;\n }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n const abi = this.fragments.map((fragment) => fragment.format(format));\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n return abi;\n }\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder() {\n return defaultAbiCoder;\n }\n static getAddress(address) {\n return getAddress(address);\n }\n static getSighash(fragment) {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n static getEventTopic(eventFragment) {\n return id(eventFragment.format());\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n return this.functions[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic) {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n return this.events[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n return this.errors[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment) {\n if (typeof (fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n }\n catch (error) {\n try {\n fragment = this.getError(fragment);\n }\n catch (_) {\n throw error;\n }\n }\n }\n return getStatic(this.constructor, \"getSighash\")(fragment);\n }\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n return getStatic(this.constructor, \"getEventTopic\")(eventFragment);\n }\n _decodeParams(params, data) {\n return this._abiCoder.decode(params, data);\n }\n _encodeParams(params, values) {\n return this._abiCoder.encode(params, values);\n }\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n decodeErrorResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${fragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n encodeErrorResult(fragment, values) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [])\n ]));\n }\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [])\n ]));\n }\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n let bytes = arrayify(data);\n let reason = null;\n let message = \"\";\n let errorArgs = null;\n let errorName = null;\n let errorSignature = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n }\n catch (error) { }\n break;\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) {\n reason = errorArgs[0];\n }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(errorArgs[0])}`;\n }\n else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${errorArgs[0]}`;\n }\n }\n else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n }\n catch (error) { }\n }\n break;\n }\n }\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));\n }\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n });\n }\n let topics = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n if (param.type === \"bool\" && typeof (value) === \"boolean\") {\n value = (value ? \"0x01\" : \"0x00\");\n }\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n // Check addresses are valid\n if (param.type === \"address\") {\n this._abiCoder.encode([\"address\"], [value]);\n }\n return hexZeroPad(hexlify(value), 32);\n };\n values.forEach((value, index) => {\n let param = eventFragment.inputs[index];\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(this._abiCoder.encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: this._abiCoder.encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment, data, topics) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n let indexed = [];\n let nonIndexed = [];\n let dynamic = [];\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n let result = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n }\n else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n }\n else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n }\n else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value); }\n });\n }\n else {\n result[param.name] = value;\n }\n }\n });\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${i}`, value); }\n });\n }\n }\n return Object.freeze(result);\n }\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx) {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n // @TODO\n //parseCallResult(data: BytesLike): ??\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log) {\n let fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\n }\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n parseError(data) {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n static isInterface(value) {\n return !!(value && value._isInterface);\n }\n}\n","export const version = \"abstract-provider/5.7.0\";\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\n;\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\nexport class ForkEvent extends Description {\n static isForkEvent(value) {\n return !!(value && value._isForkEvent);\n }\n}\nexport class BlockForkEvent extends ForkEvent {\n constructor(blockHash, expiry) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\nexport class TransactionForkEvent extends ForkEvent {\n constructor(hash, expiry) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\nexport class TransactionOrderForkEvent extends ForkEvent {\n constructor(beforeHash, afterHash, expiry) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n///////////////////////////////\n// Exported Abstracts\nexport class Provider {\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n getFeeData() {\n return __awaiter(this, void 0, void 0, function* () {\n const { block, gasPrice } = yield resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n });\n }\n // Alias for \"on\"\n addListener(eventName, listener) {\n return this.on(eventName, listener);\n }\n // Alias for \"off\"\n removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n static isProvider(value) {\n return !!(value && value._isProvider);\n }\n}\n","export const version = \"abstract-signer/5.7.0\";\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst allowedTransactionKeys = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n;\n;\nexport class Signer {\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n ///////////////////\n // Sub-classes MAY override these\n getBalance(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getBalance\");\n return yield this.provider.getBalance(this.getAddress(), blockTag);\n });\n }\n getTransactionCount(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getTransactionCount\");\n return yield this.provider.getTransactionCount(this.getAddress(), blockTag);\n });\n }\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"estimateGas\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.estimateGas(tx);\n });\n }\n // Populates \"from\" if unspecified, and calls with the transaction\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"call\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.call(tx, blockTag);\n });\n }\n // Populates all fields in a transaction, signs it and sends it to the network\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"sendTransaction\");\n const tx = yield this.populateTransaction(transaction);\n const signedTx = yield this.signTransaction(tx);\n return yield this.provider.sendTransaction(signedTx);\n });\n }\n getChainId() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getChainId\");\n const network = yield this.provider.getNetwork();\n return network.chainId;\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getGasPrice\");\n return yield this.provider.getGasPrice();\n });\n }\n getFeeData() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getFeeData\");\n return yield this.provider.getFeeData();\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"resolveName\");\n return yield this.provider.resolveName(name);\n });\n }\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction) {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n const tx = shallowCopy(transaction);\n if (tx.from == null) {\n tx.from = this.getAddress();\n }\n else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n return tx;\n }\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n populateTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n }\n else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n }\n else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n // Populate missing gasPrice\n if (tx.gasPrice == null) {\n tx.gasPrice = this.getGasPrice();\n }\n }\n else {\n // We need to get fee data to determine things\n const feeData = yield this.getFeeData();\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n }\n else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n }\n else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n // Populate missing fee data\n if (tx.gasPrice == null) {\n tx.gasPrice = feeData.gasPrice;\n }\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n }\n else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n }\n else if (tx.type === 2) {\n // Explicitly using EIP-1559\n // Populate missing fee data\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n }\n if (tx.nonce == null) {\n tx.nonce = this.getTransactionCount(\"pending\");\n }\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n }\n else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n return yield resolveProperties(tx);\n });\n }\n ///////////////////\n // Sub-classes SHOULD leave these alone\n _checkProvider(operation) {\n if (!this.provider) {\n logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\")\n });\n }\n }\n static isSigner(value) {\n return !!(value && value._isSigner);\n }\n}\nexport class VoidSigner extends Signer {\n constructor(address, provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n getAddress() {\n return Promise.resolve(this.address);\n }\n _fail(message, operation) {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n signMessage(message) {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n signTransaction(transaction) {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n _signTypedData(domain, types, value) {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n connect(provider) {\n return new VoidSigner(this.address, provider);\n }\n}\n","export const version = \"address/5.7.0\";\n","\"use strict\";\nimport { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER = 0x1fffffffffffff;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nexport function getAddress(address) {\n let result = null;\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n // Maybe ICAP? (we only support direct mode)\n }\n else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n }\n else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getIcapAddress(address) {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n }\n catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));\n}\nexport function getCreate2Address(from, salt, initCodeHash) {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}\n","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function decode(textData) {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\nexport function encode(data) {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n","/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nexport class BaseX {\n constructor(alphabet) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n defineReadOnly(this, \"_alphabetMap\", {});\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n encode(value) {\n let source = arrayify(value);\n if (source.length === 0) {\n return \"\";\n }\n let digits = [0];\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n let string = \"\";\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n return string;\n }\n decode(value) {\n if (typeof (value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n let bytes = [];\n if (value.length === 0) {\n return new Uint8Array(bytes);\n }\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0);\n }\n return arrayify(new Uint8Array(bytes.reverse()));\n }\n}\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\nexport { Base32, Base58 };\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n","export const version = \"bignumber/5.7.0\";\n","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n }\n catch (e) { }\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n","export const version = \"bytes/5.7.0\";\n","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n","export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n","import { BigNumber } from \"@ethersproject/bignumber\";\nconst NegativeOne = ( /*#__PURE__*/BigNumber.from(-1));\nconst Zero = ( /*#__PURE__*/BigNumber.from(0));\nconst One = ( /*#__PURE__*/BigNumber.from(1));\nconst Two = ( /*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther = ( /*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256 = ( /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nconst MinInt256 = ( /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256 = ( /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, };\n","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n","export const version = \"contracts/5.7.0\";\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { checkResultErrors, Indexed, Interface } from \"@ethersproject/abi\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\n;\n///////////////////////////////\nconst allowedTransactionKeys = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n};\nfunction resolveName(resolver, nameOrPromise) {\n return __awaiter(this, void 0, void 0, function* () {\n const name = yield nameOrPromise;\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n }\n catch (error) { }\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n const address = yield resolver.resolveName(name);\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n return address;\n });\n}\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nfunction resolveAddresses(resolver, value, paramType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Array.isArray(paramType)) {\n return yield Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(resolver, ((Array.isArray(value)) ? value[index] : value[paramType.name]), paramType);\n }));\n }\n if (paramType.type === \"address\") {\n return yield resolveName(resolver, value);\n }\n if (paramType.type === \"tuple\") {\n return yield resolveAddresses(resolver, value, paramType.components);\n }\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return yield Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n return value;\n });\n}\nfunction populateTransaction(contract, fragment, args) {\n return __awaiter(this, void 0, void 0, function* () {\n // If an extra argument is given, it is overrides\n let overrides = {};\n if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then((check) => __awaiter(this, void 0, void 0, function* () {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n return check.override;\n }));\n }\n else {\n overrides.from = contract.signer.getAddress();\n }\n }\n else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = yield resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || {})\n });\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx = {\n data: data,\n to: resolved.address\n };\n // Resolved Overrides\n const ro = resolved.overrides;\n // Populate simple overrides\n if (ro.nonce != null) {\n tx.nonce = BigNumber.from(ro.nonce).toNumber();\n }\n if (ro.gasLimit != null) {\n tx.gasLimit = BigNumber.from(ro.gasLimit);\n }\n if (ro.gasPrice != null) {\n tx.gasPrice = BigNumber.from(ro.gasPrice);\n }\n if (ro.maxFeePerGas != null) {\n tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas);\n }\n if (ro.maxPriorityFeePerGas != null) {\n tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas);\n }\n if (ro.from != null) {\n tx.from = ro.from;\n }\n if (ro.type != null) {\n tx.type = ro.type;\n }\n if (ro.accessList != null) {\n tx.accessList = accessListify(ro.accessList);\n }\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) {\n intrinsic += 64;\n }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n delete overrides.type;\n delete overrides.accessList;\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => (overrides[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${leftovers.map((l) => JSON.stringify(l)).join(\",\")}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n return tx;\n });\n}\nfunction buildPopulate(contract, fragment) {\n return function (...args) {\n return populateTransaction(contract, fragment, args);\n };\n}\nfunction buildEstimate(contract, fragment) {\n const signerOrProvider = (contract.signer || contract.provider);\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n });\n }\n const tx = yield populateTransaction(contract, fragment, args);\n return yield signerOrProvider.estimateGas(tx);\n });\n };\n}\nfunction addContractWait(contract, tx) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations) => {\n return wait(confirmations).then((receipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event = deepCopy(log);\n let parsed = null;\n try {\n parsed = contract.interface.parseLog(log);\n }\n catch (e) { }\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data, topics) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n // Useful operations\n event.removeListener = () => { return contract.provider; };\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n };\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n };\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n };\n return event;\n });\n return receipt;\n });\n };\n}\nfunction buildCall(contract, fragment, collapseSimple) {\n const signerOrProvider = (contract.signer || contract.provider);\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = yield overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n yield contract._deployed(blockTag);\n }\n // Call a node and get the result\n const tx = yield populateTransaction(contract, fragment, args);\n const result = yield signerOrProvider.call(tx, blockTag);\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n });\n };\n}\nfunction buildSend(contract, fragment) {\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n });\n }\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n yield contract._deployed();\n }\n const txRequest = yield populateTransaction(contract, fragment, args);\n const tx = yield contract.signer.sendTransaction(txRequest);\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n return tx;\n });\n };\n}\nfunction buildDefault(contract, fragment, collapseSimple) {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\nfunction getEventTag(filter) {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\") : \"\");\n}\nclass RunningEvent {\n constructor(tag, filter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [];\n }\n addListener(listener, once) {\n this._listeners.push({ listener: listener, once: once });\n }\n removeListener(listener) {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) {\n return true;\n }\n done = true;\n return false;\n });\n }\n removeAllListeners() {\n this._listeners = [];\n }\n listeners() {\n return this._listeners.map((i) => i.listener);\n }\n listenerCount() {\n return this._listeners.length;\n }\n run(args) {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n const argsCopy = args.slice();\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n return listenerCount;\n }\n prepareEvent(event) {\n }\n // Returns the array that will be applied to an emit\n getEmit(event) {\n return [event];\n }\n}\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n constructor(address, contractInterface, fragment, topics) {\n const filter = {\n address: address\n };\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) {\n logger.throwArgumentError(\"topic mismatch\", \"topics\", topics);\n }\n filter.topics = topics.slice();\n }\n else {\n filter.topics = [topic];\n }\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n prepareEvent(event) {\n super.prepareEvent(event);\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n event.decode = (data, topics) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n }\n catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n getEmit(event) {\n const errors = checkResultErrors(event.args);\n if (errors.length) {\n throw errors[0].error;\n }\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n constructor(address, contractInterface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n prepareEvent(event) {\n super.prepareEvent(event);\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n event.decode = (data, topics) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.args = parsed.args;\n }\n catch (error) {\n // No matching event\n }\n }\n}\nexport class BaseContract {\n constructor(addressOrName, contractInterface, signerOrProvider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n }\n else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n }\n else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n }\n else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n defineReadOnly(this, \"callStatic\", {});\n defineReadOnly(this, \"estimateGas\", {});\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"populateTransaction\", {});\n defineReadOnly(this, \"filters\", {});\n {\n const uniqueFilters = {};\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n };\n });\n if (!uniqueFilters[event.name]) {\n uniqueFilters[event.name] = [];\n }\n uniqueFilters[event.name].push(eventSignature);\n });\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n }\n else {\n logger.warn(`Duplicate definition of ${name} (${filters.join(\", \")})`);\n }\n });\n }\n defineReadOnly(this, \"_runningEvents\", {});\n defineReadOnly(this, \"_wrappedEmits\", {});\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n }\n else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n }\n catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n const uniqueNames = {};\n const uniqueSignatures = {};\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${JSON.stringify(signature)}`);\n return;\n }\n uniqueSignatures[signature] = true;\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${name}`]) {\n uniqueNames[`%${name}`] = [];\n }\n uniqueNames[`%${name}`].push(signature);\n }\n if (this[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) {\n return;\n }\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n const signature = signatures[0];\n // If overwriting a member property that is null, swallow the error\n try {\n if (this[name] == null) {\n defineReadOnly(this, name, this[signature]);\n }\n }\n catch (e) { }\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n static getContractAddress(transaction) {\n return getContractAddress(transaction);\n }\n static getInterface(contractInterface) {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n // @TODO: Allow timeout?\n deployed() {\n return this._deployed();\n }\n _deployed(blockTag) {\n if (!this._deployedPromise) {\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n }\n else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n return this._deployedPromise;\n }\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n fallback(overrides) {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" });\n }\n const tx = shallowCopy(overrides || {});\n [\"from\", \"to\"].forEach(function (key) {\n if (tx[key] == null) {\n return;\n }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key });\n });\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n // Reconnect to a different signer or provider\n connect(signerOrProvider) {\n if (typeof (signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n const contract = new (this.constructor)(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n return contract;\n }\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName) {\n return new (this.constructor)(addressOrName, this.interface, this.signer || this.provider);\n }\n static isIndexed(value) {\n return Indexed.isIndexed(value);\n }\n _normalizeRunningEvent(runningEvent) {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent;\n }\n _getRunningEvent(eventName) {\n if (typeof (eventName) === \"string\") {\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof (topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n }\n catch (error) { }\n // Filter by the unknown topichash\n const filter = {\n address: this.address,\n topics: eventName.topics\n };\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n _checkRunningEvents(runningEvent) {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent, log, listener) {\n const event = deepCopy(log);\n event.removeListener = () => {\n if (!listener) {\n return;\n }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); };\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); };\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); };\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n return event;\n }\n _addEventListener(runningEvent, listener, once) {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" });\n }\n runningEvent.addListener(listener, once);\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n }\n catch (error) {\n event.decodeError = error.error;\n }\n }\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n queryFilter(event, fromBlockOrBlockhash, toBlock) {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n if (typeof (fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n filter.blockHash = fromBlockOrBlockhash;\n }\n else {\n filter.fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash : 0);\n filter.toBlock = ((toBlock != null) ? toBlock : \"latest\");\n }\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n on(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n once(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n emit(eventName, ...args) {\n if (!this.provider) {\n return false;\n }\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n return result;\n }\n listenerCount(eventName) {\n if (!this.provider) {\n return 0;\n }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n listeners(eventName) {\n if (!this.provider) {\n return [];\n }\n if (eventName == null) {\n const result = [];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener);\n });\n }\n return result;\n }\n return this._getRunningEvent(eventName).listeners();\n }\n removeAllListeners(eventName) {\n if (!this.provider) {\n return this;\n }\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n return this;\n }\n off(eventName, listener) {\n if (!this.provider) {\n return this;\n }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n}\nexport class Contract extends BaseContract {\n}\nexport class ContractFactory {\n constructor(contractInterface, bytecode, signer) {\n let bytecodeHex = null;\n if (typeof (bytecode) === \"string\") {\n bytecodeHex = bytecode;\n }\n else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n }\n else if (bytecode && typeof (bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = bytecode.object;\n }\n else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") {\n bytecodeHex = \"0x\" + bytecodeHex;\n }\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args) {\n let tx = {};\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if (tx[key] == null) {\n return;\n }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key });\n });\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n return tx;\n }\n deploy(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let overrides = {};\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n // Resolve ENS names and promises in the arguments\n const params = yield resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n // Send the deployment transaction\n const tx = yield this.signer.sendTransaction(unsignedTx);\n const address = getStatic(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic(this.constructor, \"getContract\")(address, this.interface, this.signer);\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n });\n }\n attach(address) {\n return (this.constructor).getContract(address, this.interface, this.signer);\n }\n connect(signer) {\n return new (this.constructor)(this.interface, this.bytecode, signer);\n }\n static fromSolidity(compilerOutput, signer) {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n if (typeof (compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n const abi = compilerOutput.abi;\n let bytecode = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n }\n else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n return new this(abi, bytecode, signer);\n }\n static getInterface(contractInterface) {\n return Contract.getInterface(contractInterface);\n }\n static getContractAddress(tx) {\n return getContractAddress(tx);\n }\n static getContract(address, contractInterface, signer) {\n return new Contract(address, contractInterface, signer);\n }\n}\n","export const version = \"hash/5.7.0\";\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array, depth) {\n if (depth == null) {\n depth = 1;\n }\n const result = [];\n const forEach = result.forEach;\n const flatDeep = function (arr, depth) {\n forEach.call(arr, function (val) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n }\n else {\n result.push(val);\n }\n });\n };\n flatDeep(array, depth);\n return result;\n}\nfunction fromEntries(array) {\n const result = {};\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\nexport function decode_arithmetic(bytes) {\n let pos = 0;\n function u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n // decode the frequency table\n let symbol_count = u16();\n let total = 1;\n let acc = [0, 1]; // first symbol has frequency 1\n for (let i = 1; i < symbol_count; i++) {\n acc.push(total += u16());\n }\n // skip the sized-payload that the last 3 symbols index into\n let skip = u16();\n let pos_payload = pos;\n pos += skip;\n let read_width = 0;\n let read_buffer = 0;\n function read_bit() {\n if (read_width == 0) {\n // this will read beyond end of buffer\n // but (undefined|0) => zero pad\n read_buffer = (read_buffer << 8) | bytes[pos++];\n read_width = 8;\n }\n return (read_buffer >> --read_width) & 1;\n }\n const N = 31;\n const FULL = Math.pow(2, N);\n const HALF = FULL >>> 1;\n const QRTR = HALF >> 1;\n const MASK = FULL - 1;\n // fill register\n let register = 0;\n for (let i = 0; i < N; i++)\n register = (register << 1) | read_bit();\n let symbols = [];\n let low = 0;\n let range = FULL; // treat like a float\n while (true) {\n let value = Math.floor((((register - low + 1) * total) - 1) / range);\n let start = 0;\n let end = symbol_count;\n while (end - start > 1) { // binary search\n let mid = (start + end) >>> 1;\n if (value < acc[mid]) {\n end = mid;\n }\n else {\n start = mid;\n }\n }\n if (start == 0)\n break; // first symbol is end mark\n symbols.push(start);\n let a = low + Math.floor(range * acc[start] / total);\n let b = low + Math.floor(range * acc[start + 1] / total) - 1;\n while (((a ^ b) & HALF) == 0) {\n register = (register << 1) & MASK | read_bit();\n a = (a << 1) & MASK;\n b = (b << 1) & MASK | 1;\n }\n while (a & ~b & QRTR) {\n register = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n a = (a << 1) ^ HALF;\n b = ((b ^ HALF) << 1) | HALF | 1;\n }\n low = a;\n range = 1 + b - a;\n }\n let offset = symbol_count - 4;\n return symbols.map(x => {\n switch (x - offset) {\n case 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n case 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n case 1: return offset + bytes[pos_payload++];\n default: return x - 1;\n }\n });\n}\n// returns an iterator which returns the next symbol\nexport function read_payload(v) {\n let pos = 0;\n return () => v[pos++];\n}\nexport function read_compressed_payload(bytes) {\n return read_payload(decode_arithmetic(bytes));\n}\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i) {\n return (i & 1) ? (~i >> 1) : (i >> 1);\n}\nfunction read_counts(n, next) {\n let v = Array(n);\n for (let i = 0; i < n; i++)\n v[i] = 1 + next();\n return v;\n}\nfunction read_ascending(n, next) {\n let v = Array(n);\n for (let i = 0, x = -1; i < n; i++)\n v[i] = x += 1 + next();\n return v;\n}\nfunction read_deltas(n, next) {\n let v = Array(n);\n for (let i = 0, x = 0; i < n; i++)\n v[i] = x += signed(next());\n return v;\n}\nexport function read_member_array(next, lookup) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next) {\n let ret = [];\n while (true) {\n let w = next();\n if (w == 0)\n break;\n ret.push(read_linear_table(w, next));\n }\n while (true) {\n let w = next() - 1;\n if (w < 0)\n break;\n ret.push(read_replacement_table(w, next));\n }\n return fromEntries(flat(ret));\n}\nexport function read_zero_terminated_array(next) {\n let v = [];\n while (true) {\n let i = next();\n if (i == 0)\n break;\n v.push(i);\n }\n return v;\n}\nfunction read_transposed(n, w, next) {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\nfunction read_linear_table(w, next) {\n let dx = 1 + next();\n let dy = next();\n let vN = read_zero_terminated_array(next);\n let m = read_transposed(vN.length, 1 + w, next);\n return flat(m.map((v, i) => {\n const x = v[0], ys = v.slice(1);\n //let [x, ...ys] = v;\n //return Array(vN[i]).fill().map((_, j) => {\n return Array(vN[i]).fill(undefined).map((_, j) => {\n let j_dy = j * dy;\n return [x + j * dx, ys.map(y => y + j_dy)];\n });\n }));\n}\nfunction read_replacement_table(w, next) {\n let n = 1 + next();\n let m = read_transposed(n, 1 + w, next);\n return m.map(v => [v[0], v.slice(1)]);\n}\nexport function read_emoji_trie(next) {\n let sorted = read_member_array(next).sort((a, b) => a - b);\n return read();\n function read() {\n let branches = [];\n while (true) {\n let keys = read_member_array(next, sorted);\n if (keys.length == 0)\n break;\n branches.push({ set: new Set(keys), node: read() });\n }\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n let temp = next();\n let valid = temp % 3;\n temp = (temp / 3) | 0;\n let fe0f = !!(temp & 1);\n temp >>= 1;\n let save = temp == 1;\n let check = temp == 2;\n return { branches, valid, fe0f, save, check };\n }\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\nimport { decode } from \"@ethersproject/base64\";\nimport { read_compressed_payload } from './decoder.js';\nexport function getData() {\n return read_compressed_payload(decode('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'));\n}\n","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\nimport { getData } from './include.js';\nconst r = getData();\nimport { read_member_array, read_mapped_map, read_emoji_trie } from './decoder.js';\n// @TODO: This should be lazily loaded\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\nfunction explode_cp(name) {\n return toUtf8CodePoints(name);\n}\nfunction filter_fe0f(cps) {\n return cps.filter(cp => cp != 0xFE0F);\n}\nexport function ens_normalize_post_check(name) {\n for (let label of name.split('.')) {\n let cps = explode_cp(label);\n try {\n for (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n if (cps[i] !== UNDERSCORE) {\n throw new Error(`underscore only allowed at start`);\n }\n }\n if (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n throw new Error(`invalid label extension`);\n }\n }\n catch (err) {\n throw new Error(`Invalid label \"${label}\": ${err.message}`);\n }\n }\n return name;\n}\nexport function ens_normalize(name) {\n return ens_normalize_post_check(normalize(name, filter_fe0f));\n}\nfunction normalize(name, emoji_filter) {\n let input = explode_cp(name).reverse(); // flip for pop\n let output = [];\n while (input.length) {\n let emoji = consume_emoji_reversed(input);\n if (emoji) {\n output.push(...emoji_filter(emoji));\n continue;\n }\n let cp = input.pop();\n if (VALID.has(cp)) {\n output.push(cp);\n continue;\n }\n if (IGNORED.has(cp)) {\n continue;\n }\n let cps = MAPPED[cp];\n if (cps) {\n output.push(...cps);\n continue;\n }\n throw new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n }\n return ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\nfunction nfc(s) {\n return s.normalize('NFC');\n}\nfunction consume_emoji_reversed(cps, eaten) {\n var _a;\n let node = EMOJI_ROOT;\n let emoji;\n let saved;\n let stack = [];\n let pos = cps.length;\n if (eaten)\n eaten.length = 0; // clear input buffer (if needed)\n while (pos) {\n let cp = cps[--pos];\n node = (_a = node.branches.find(x => x.set.has(cp))) === null || _a === void 0 ? void 0 : _a.node;\n if (!node)\n break;\n if (node.save) { // remember\n saved = cp;\n }\n else if (node.check) { // check exclusion\n if (cp === saved)\n break;\n }\n stack.push(cp);\n if (node.fe0f) {\n stack.push(0xFE0F);\n if (pos > 0 && cps[pos - 1] == 0xFE0F)\n pos--; // consume optional FE0F\n }\n if (node.valid) { // this is a valid emoji (so far)\n emoji = stack.slice(); // copy stack\n if (node.valid == 2)\n emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n if (eaten)\n eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n cps.length = pos; // truncate\n }\n }\n return emoji;\n}\n","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}\n","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { ens_normalize } from \"./ens-normalize/lib\";\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\nfunction checkComponent(comp) {\n if (comp.length === 0) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n return comp;\n}\nfunction ensNameSplit(name) {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps = [];\n if (name.length === 0) {\n return comps;\n }\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n // There was a stray separator at the end of the name\n if (last >= bytes.length) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\nexport function ensNormalize(name) {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\nexport function isValidName(name) {\n try {\n return (ensNameSplit(name).length !== 0);\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n /* istanbul ignore if */\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let result = Zeros;\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n return hexlify(result);\n}\nexport function dnsEncode(name) {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n }))) + \"00\";\n}\n","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { id } from \"./id\";\nconst padding = new Uint8Array(32);\npadding.fill(0);\nconst NegativeOne = BigNumber.from(-1);\nconst Zero = BigNumber.from(0);\nconst One = BigNumber.from(1);\nconst MaxUint256 = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nfunction hexPadRight(value) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return hexConcat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\nconst domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nconst domainFieldNames = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\nfunction checkString(key) {\n return function (value) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n }\n return value;\n };\n}\nconst domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function (value) {\n try {\n return BigNumber.from(value).toString();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function (value) {\n try {\n return getAddress(value).toLowerCase();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function (value) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) {\n throw new Error(\"bad length\");\n }\n return hexlify(bytes);\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n};\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n const boundsUpper = MaxUint256.mask(signed ? (width - 1) : width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero;\n return function (value) {\n const v = BigNumber.from(value);\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${type}`, \"value\", value);\n }\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n return function (value) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${type}`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n case \"address\": return function (value) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function (value) {\n return ((!value) ? hexFalse : hexTrue);\n };\n case \"bytes\": return function (value) {\n return keccak256(value);\n };\n case \"string\": return function (value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name, type }) => (type + \" \" + name)).join(\",\")})`;\n}\nexport class TypedDataEncoder {\n constructor(types) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n defineReadOnly(this, \"_encoderCache\", {});\n defineReadOnly(this, \"_types\", {});\n // Link struct types to their direct child structs\n const links = {};\n // Link structs to structs which contain them as a child\n const parents = {};\n // Link all subtypes within a given struct\n const subtypes = {};\n Object.keys(types).forEach((type) => {\n links[type] = {};\n parents[type] = [];\n subtypes[type] = {};\n });\n for (const name in types) {\n const uniqueNames = {};\n types[name].forEach((field) => {\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n return;\n }\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n }\n else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(\", \")}`, \"types\", types);\n }\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n // Check for circular type references\n function checkCircular(type, found) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n }\n found[type] = true;\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) {\n return;\n }\n // Recursively check children\n checkCircular(child, found);\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n delete found[type];\n }\n checkCircular(this.primaryType, {});\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n getEncoder(type) {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n _getEncoder(type) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n return keccak256(hexConcat(result));\n };\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n };\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n encodeType(name) {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, \"name\", name);\n }\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v) => this._visit(subtype, v, callback));\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, {});\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n // Replaces all address types with ENS names with their looked up address\n static resolveNames(domain, types, value, resolveName) {\n return __awaiter(this, void 0, void 0, function* () {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n // Look up all ENS names\n const ensCache = {};\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n // Get a list of all the addresses\n encoder.visit(value, (type, value) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = yield resolveName(name);\n }\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n // Replace all ENS names with their address\n value = encoder.visit(value, (type, value) => {\n if (type === \"address\" && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n return { domain, value };\n });\n }\n static getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n // Derive the EIP712Domain Struct reference type\n const domainValues = {};\n const domainTypes = [];\n domainFieldNames.forEach((name) => {\n const value = domain[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n const encoder = TypedDataEncoder.from(types);\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n }\n else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n // Validate the data structures and types\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n","export const version = \"logger/5.7.0\";\n","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n","export const version = \"networks/5.7.1\";\n","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nfunction isRenetworkable(value) {\n return (value && typeof (value.renetwork) === \"function\");\n}\nfunction ethDefaultProvider(network) {\n const func = function (providers, options) {\n if (options == null) {\n options = {};\n }\n const providerList = [];\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n }\n catch (error) { }\n }\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n }\n catch (error) { }\n }\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n }\n catch (error) { }\n }\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [\"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\"];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n }\n catch (error) { }\n }\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n }\n catch (error) { }\n }\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [\"ropsten\"];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n }\n catch (error) { }\n }\n if (providerList.length === 0) {\n return null;\n }\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n }\n else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n return providerList[0];\n };\n func.renetwork = function (network) {\n return ethDefaultProvider(network);\n };\n return func;\n}\nfunction etcDefaultProvider(url, network) {\n const func = function (providers, options) {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n return null;\n };\n func.renetwork = function (network) {\n return etcDefaultProvider(url, network);\n };\n return func;\n}\nconst homestead = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\nconst ropsten = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\nconst classicMordor = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n// See: https://chainlist.org\nconst networks = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n homestead: homestead,\n mainnet: homestead,\n morden: { chainId: 2, name: \"morden\" },\n ropsten: ropsten,\n testnet: ropsten,\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n xdai: { chainId: 100, name: \"xdai\" },\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n};\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network) {\n // No network (null)\n if (network == null) {\n return null;\n }\n if (typeof (network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n if (typeof (network) === \"string\") {\n const standard = networks[network];\n if (standard == null) {\n return null;\n }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n const standard = networks[network.name];\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof (network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n }\n else {\n defaultProvider = standard._defaultProvider;\n }\n }\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n","export const version = \"properties/5.7.0\";\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor, key) {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) {\n return ctor[key];\n }\n if (!ctor.prototype || typeof (ctor.prototype) !== \"object\") {\n break;\n }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\nexport function resolveProperties(object) {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = Object.keys(object).map((key) => {\n const value = object[key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n const results = yield Promise.all(promises);\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, {});\n });\n}\nexport function checkProperties(object, properties) {\n if (!object || typeof (object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\nexport function shallowCopy(object) {\n const result = {};\n for (const key in object) {\n result[key] = object[key];\n }\n return result;\n}\nconst opaque = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\nfunction _isFrozen(object) {\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof (object)]) {\n return true;\n }\n if (Array.isArray(object) || typeof (object) === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value = null;\n try {\n value = object[keys[i]];\n }\n catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n if (!_isFrozen(value)) {\n return false;\n }\n }\n return true;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n }\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n if (typeof (object) === \"object\") {\n const result = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) {\n continue;\n }\n defineReadOnly(result, key, deepCopy(value));\n }\n return result;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\nexport function deepCopy(object) {\n return _deepCopy(object);\n}\nexport class Description {\n constructor(info) {\n for (const key in info) {\n this[key] = deepCopy(info[key]);\n }\n }\n}\n","export const version = \"providers/5.7.2\";\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { ForkEvent, Provider } from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport bech32 from \"bech32\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Formatter } from \"./formatter\";\nconst MAX_CCIP_REDIRECTS = 10;\n//////////////////////////////\n// Event Serializeing\nfunction checkTopic(topic) {\n if (topic == null) {\n return \"null\";\n }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\nfunction serializeTopics(topics) {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) {\n topics.pop();\n }\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n // Only track unique OR-topics\n const unique = {};\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n return sorted.join(\"|\");\n }\n else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\nfunction deserializeTopics(data) {\n if (data === \"\") {\n return [];\n }\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") {\n return [];\n }\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null : topic);\n });\n return ((comps.length === 1) ? comps[0] : comps);\n });\n}\nfunction getEventTag(eventName) {\n if (typeof (eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n }\n else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n }\n else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n }\n else if (eventName && typeof (eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n throw new Error(\"invalid event - \" + eventName);\n}\n//////////////////////////////\n// Helper Object\nfunction getTime() {\n return (new Date()).getTime();\n}\nfunction stall(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n//////////////////////////////\n// Provider Object\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\nconst PollableEvents = [\"block\", \"network\", \"pending\", \"poll\"];\nexport class Event {\n constructor(tag, listener, once) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n get event() {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n get type() {\n return this.tag.split(\":\")[0];\n }\n get hash() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") {\n return null;\n }\n return comps[1];\n }\n get filter() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") {\n return null;\n }\n const address = comps[1];\n const topics = deserializeTopics(comps[2]);\n const filter = {};\n if (topics.length > 0) {\n filter.topics = topics;\n }\n if (address && address !== \"*\") {\n filter.address = address;\n }\n return filter;\n }\n pollable() {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n;\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\nfunction bytes32ify(value) {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\nfunction _parseString(result, start) {\n try {\n return toUtf8String(_parseBytes(result, start));\n }\n catch (error) { }\n return null;\n}\nfunction _parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n }\n else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n }\n else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n return `https:/\\/gateway.ipfs.io/ipfs/${link}`;\n}\nfunction numPad(value) {\n const result = arrayify(value);\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\nfunction bytesPad(value) {\n if ((value.length % 32) === 0) {\n return value;\n }\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas) {\n const result = [];\n let byteCount = 0;\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n // Update the bytes offset\n result[i] = numPad(byteCount);\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n return hexConcat(result);\n}\nexport class Resolver {\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider, address, name, resolvedAddress) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n supportsWildcard() {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return false;\n }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n return this._supportsEip2544;\n }\n _fetch(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([selector, namehash(this.name), (parameters || \"0x\")])\n };\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (yield this.supportsWildcard()) {\n parseBytes = true;\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([\"0x9061b923\", encodeBytes([dnsEncode(this.name), tx.data])]);\n }\n try {\n let result = yield this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) {\n result = _parseBytes(result, 0);\n }\n return result;\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n });\n }\n _fetchBytes(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this._fetch(selector, parameters);\n if (result != null) {\n return _parseBytes(result, 0);\n }\n return null;\n });\n }\n _getAddress(coinType, hexBytes) {\n const coinInfo = coinInfos[String(coinType)];\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${coinType}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`\n });\n }\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n const bytes = arrayify(hexBytes);\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2pkh], (\"0x\" + p2pkh[2])]));\n }\n }\n }\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2sh], (\"0x\" + p2sh[2])]));\n }\n }\n }\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n }\n else {\n version = -1;\n }\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n return null;\n }\n getAddress(coinType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (coinType == null) {\n coinType = 60;\n }\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = yield this._fetch(\"0x3b3b57de\");\n // No address\n if (result === \"0x\" || result === HashZero) {\n return null;\n }\n return this.provider.formatter.callAddress(result);\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n }\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = yield this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n // No address\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`,\n coinType: coinType,\n data: hexBytes\n });\n }\n return address;\n });\n }\n getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n const linkage = [{ type: \"name\", content: this.name }];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = yield this.getText(\"avatar\");\n if (avatar == null) {\n return null;\n }\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) {\n continue;\n }\n const scheme = match[1].toLowerCase();\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n // The owner of this name\n const owner = (this._resolvedAddress || (yield this.getAddress()));\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) {\n return null;\n }\n const addr = yield this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({\n to: addr, data: hexConcat([\"0x6352211e\", tokenId])\n }));\n if (owner !== tokenOwner) {\n return null;\n }\n linkage.push({ type: \"owner\", content: tokenOwner });\n }\n else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(yield this.provider.call({\n to: addr, data: hexConcat([\"0x00fdd58e\", hexZeroPad(owner, 32), tokenId])\n }));\n if (balance.isZero()) {\n return null;\n }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([selector, tokenId])\n };\n let metadataUrl = _parseString(yield this.provider.call(tx), 0);\n if (metadataUrl == null) {\n return null;\n }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n // Get the token metadata\n const metadata = yield fetchJson(metadataUrl);\n if (!metadata) {\n return null;\n }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof (imageUrl) !== \"string\") {\n return null;\n }\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n }\n else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) {\n return null;\n }\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n linkage.push({ type: \"url\", content: imageUrl });\n return { linkage, url: imageUrl };\n }\n }\n }\n }\n catch (error) { }\n return null;\n });\n }\n getContentHash() {\n return __awaiter(this, void 0, void 0, function* () {\n // keccak256(\"contenthash()\")\n const hexBytes = yield this._fetchBytes(\"0xbc1c58d1\");\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1];\n }\n }\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n });\n }\n getText(key) {\n return __awaiter(this, void 0, void 0, function* () {\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]);\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32))]);\n }\n const hexBytes = yield this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n return toUtf8String(hexBytes);\n });\n }\n}\nlet defaultFormatter = null;\nlet nextPollId = 1;\nexport class BaseProvider extends Provider {\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n constructor(network) {\n super();\n // Events being listened to\n this._events = [];\n this._emitted = { block: -2 };\n this.disableCcipRead = false;\n this.formatter = new.target.getFormatter();\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) {\n network = this.detectNetwork();\n }\n if (network instanceof Promise) {\n this._networkPromise = network;\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n }\n else {\n const knownNetwork = getStatic(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n }\n else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n this._maxInternalBlockNumber = -1024;\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n this._pollingInterval = 4000;\n this._fastQueryDate = 0;\n }\n _ready() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._network == null) {\n let network = null;\n if (this._networkPromise) {\n try {\n network = yield this._networkPromise;\n }\n catch (error) { }\n }\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = yield this.detectNetwork();\n }\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n }\n else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n return this._network;\n });\n }\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready() {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter() {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network) {\n return getNetwork((network == null) ? \"homestead\" : network);\n }\n ccipReadFetch(tx, calldata, urls) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.disableCcipRead || urls.length === 0) {\n return null;\n }\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n const errorMessages = [];\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n // If no {data} is present, use POST; otherwise GET\n const json = (url.indexOf(\"{data}\") >= 0) ? null : JSON.stringify({ data, sender });\n const result = yield fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n if (result.data) {\n return result.data;\n }\n const errorMessage = (result.message || \"unknown error\");\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${errorMessage}`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n return logger.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(\", \")}`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n });\n }\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n _getInternalBlockNumber(maxAge) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._ready();\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n try {\n // Check the result is not too stale\n const result = yield internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n // Too old; fetch a new value\n break;\n }\n catch (error) {\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n const reqTime = getTime();\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", {}),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n const respTime = getTime();\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) {\n blockNumber = this._maxInternalBlockNumber;\n }\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n this._internalBlockNumber = checkInternalBlockNumber;\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n return (yield checkInternalBlockNumber).blockNumber;\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n const pollId = nextPollId++;\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners = [];\n let blockNumber = null;\n try {\n blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n }\n catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n if (Math.abs((this._emitted.block) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n }\n else {\n // Notify all listener for each block that has passed\n for (let i = this._emitted.block + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n // The emitted block was updated, check for obsolete events\n if (this._emitted.block !== blockNumber) {\n this._emitted.block = blockNumber;\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") {\n return;\n }\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") {\n return;\n }\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) {\n return null;\n }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error) => { this.emit(\"error\", error); });\n runners.push(runner);\n break;\n }\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) {\n filter.fromBlock = minFromBlock;\n }\n if (filter.fromBlock < 0) {\n filter.fromBlock = 0;\n }\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n if (logs.length === 0) {\n return;\n }\n logs.forEach((log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n this.emit(filter, log);\n });\n }).catch((error) => {\n this.emit(\"error\", error);\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n break;\n }\n }\n });\n this._lastBlockNumber = blockNumber;\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n return;\n });\n }\n // Deprecated; do not use this\n resetEventsBlock(blockNumber) {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) {\n this.poll();\n }\n }\n get network() {\n return this._network;\n }\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n });\n }\n getNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const network = yield this._ready();\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = yield this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n yield stall(0);\n return this._network;\n }\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n this.emit(\"error\", error);\n throw error;\n }\n return network;\n });\n }\n get blockNumber() {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n return (this._fastBlockNumber != null) ? this._fastBlockNumber : -1;\n }\n get polling() {\n return (this._poller != null);\n }\n set polling(value) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) {\n this.poll();\n }\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n }\n else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n get pollingInterval() {\n return this._pollingInterval;\n }\n set pollingInterval(value) {\n if (typeof (value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n this._pollingInterval = value;\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n _getFastBlockNumber() {\n const now = getTime();\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n return this._fastBlockNumberPromise;\n }\n _setFastBlockNumber(blockNumber) {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {\n return;\n }\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n waitForTransaction(transactionHash, confirmations, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1 : confirmations, timeout || 0, null);\n });\n }\n _waitForTransaction(transactionHash, confirmations, timeout, replaceable) {\n return __awaiter(this, void 0, void 0, function* () {\n const receipt = yield this.getTransactionReceipt(transactionHash);\n // Receipt is already good\n if ((receipt ? receipt.confirmations : 0) >= confirmations) {\n return receipt;\n }\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs = [];\n let done = false;\n const alreadyDone = function () {\n if (done) {\n return true;\n }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n const minedHandler = (receipt) => {\n if (receipt.confirmations < confirmations) {\n return;\n }\n if (alreadyDone()) {\n return;\n }\n resolve(receipt);\n };\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock = null;\n const replaceHandler = (blockNumber) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n yield stall(1000);\n this.getTransactionCount(replaceable.from).then((nonce) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n }\n else {\n // First check if the transaction was mined\n {\n const mined = yield this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) {\n return;\n }\n }\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n while (scannedBlock <= blockNumber) {\n if (done) {\n return;\n }\n const block = yield this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n // Successfully mined!\n if (tx.hash === transactionHash) {\n return;\n }\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) {\n return;\n }\n // Get the receipt of the replacement\n const receipt = yield this.waitForTransaction(tx.hash, confirmations);\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) {\n return;\n }\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n }\n else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\";\n }\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n return;\n }\n }\n scannedBlock++;\n }\n }\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n }), (error) => {\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n });\n });\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n if (typeof (timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) {\n return;\n }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) {\n timer.unref();\n }\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n });\n }\n getBlockNumber() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._getInternalBlockNumber(0);\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const result = yield this.perform(\"getGasPrice\", {});\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n });\n }\n getBalance(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n });\n }\n getTransactionCount(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n });\n }\n getCode(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n });\n }\n getStorageAt(addressOrName, position, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = yield this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n });\n }\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx, hash, startBlock) {\n if (hash != null && hexDataLength(hash) !== 32) {\n throw new Error(\"invalid response - sendTransaction\");\n }\n const result = tx;\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n result.wait = (confirms, timeout) => __awaiter(this, void 0, void 0, function* () {\n if (confirms == null) {\n confirms = 1;\n }\n if (timeout == null) {\n timeout = 0;\n }\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) {\n return null;\n }\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n });\n return result;\n }\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const hexTx = yield Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) {\n tx.confirmations = 0;\n }\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = yield this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n }\n catch (error) {\n error.transaction = tx;\n error.transactionHash = tx.hash;\n throw error;\n }\n });\n }\n _getTransactionRequest(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const values = yield transaction;\n const tx = {};\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v) : null));\n });\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v) : null));\n });\n [\"type\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v : null));\n });\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n [\"data\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v) : null));\n });\n return this.formatter.transactionRequest(yield resolveProperties(tx));\n });\n }\n _getFilter(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n filter = yield filter;\n const result = {};\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n [\"blockHash\", \"topics\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = filter[key];\n });\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = this._getBlockTag(filter[key]);\n });\n return this.formatter.filter(yield resolveProperties(result));\n });\n }\n _call(transaction, blockTag, attempt) {\n return __awaiter(this, void 0, void 0, function* () {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n const txSender = transaction.to;\n const result = yield this.perform(\"call\", { transaction, blockTag });\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n // Read the URLs from the response\n const urls = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n const ccipResult = yield this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const tx = {\n to: txSender,\n data: hexConcat([callbackSelector, encodeBytes([ccipResult, extraData])])\n };\n return this._call(tx, blockTag, attempt + 1);\n }\n catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) {\n throw error;\n }\n }\n }\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n });\n }\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const resolved = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1);\n });\n }\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n const result = yield this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n });\n }\n _getAddress(addressOrName) {\n return __awaiter(this, void 0, void 0, function* () {\n addressOrName = yield addressOrName;\n if (typeof (addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n const address = yield this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${JSON.stringify(addressOrName)})`\n });\n }\n return address;\n });\n }\n _getBlock(blockHashOrBlockTag, includeTransactions) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n blockHashOrBlockTag = yield blockHashOrBlockTag;\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n const params = {\n includeTransactions: !!includeTransactions\n };\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n }\n else {\n try {\n params.blockTag = yield this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n }\n catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const block = yield this.perform(\"getBlock\", params);\n // Block was not found\n if (block == null) {\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) {\n return null;\n }\n }\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) {\n return null;\n }\n }\n // Retry on the next block\n return undefined;\n }\n // Add transactions\n if (includeTransactions) {\n let blockNumber = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n }\n const blockWithTxs = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n return this.formatter.block(block);\n }), { oncePoll: this });\n });\n }\n getBlock(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, false));\n }\n getBlockWithTransactions(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, true));\n }\n getTransaction(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransaction\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n const tx = this.formatter.transactionResponse(result);\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n return this._wrapTransaction(tx);\n }), { oncePoll: this });\n });\n }\n getTransactionReceipt(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransactionReceipt\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) {\n return undefined;\n }\n const receipt = this.formatter.receipt(result);\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n }\n else if (receipt.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n receipt.confirmations = confirmations;\n }\n return receipt;\n }), { oncePoll: this });\n });\n }\n getLogs(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({ filter: this._getFilter(filter) });\n const logs = yield this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) {\n log.removed = false;\n }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n });\n }\n getEtherPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n return this.perform(\"getEtherPrice\", {});\n });\n }\n _getBlockTag(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n blockTag = yield blockTag;\n if (typeof (blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n return this.formatter.blockTag(blockNumber);\n }\n return this.formatter.blockTag(blockTag);\n });\n }\n getResolver(name) {\n return __awaiter(this, void 0, void 0, function* () {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") {\n return null;\n }\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") {\n return null;\n }\n // Check the current node for a resolver\n const addr = yield this._getResolver(currentName, \"getResolver\");\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(yield resolver.supportsWildcard())) {\n return null;\n }\n return resolver;\n }\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n });\n }\n _getResolver(name, operation) {\n return __awaiter(this, void 0, void 0, function* () {\n if (operation == null) {\n operation = \"ENS\";\n }\n const network = yield this.getNetwork();\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\"network does not support ENS\", Logger.errors.UNSUPPORTED_OPERATION, { operation, network: network.name });\n }\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = yield this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n }\n catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n return null;\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n name = yield name;\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n }\n catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) {\n throw error;\n }\n }\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n // Get the addr from the resolver\n const resolver = yield this.getResolver(name);\n if (!resolver) {\n return null;\n }\n return yield resolver.getAddress();\n });\n }\n lookupAddress(address) {\n return __awaiter(this, void 0, void 0, function* () {\n address = yield address;\n address = this.formatter.address(address);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddr = yield this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) {\n return null;\n }\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n const addr = yield this.resolveName(name);\n if (addr != address) {\n return null;\n }\n return name;\n });\n }\n getAvatar(nameOrAddress) {\n return __awaiter(this, void 0, void 0, function* () {\n let resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddress = yield this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) {\n return null;\n }\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = yield resolver.getAvatar();\n if (avatar) {\n return avatar.url;\n }\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n }\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = yield this.getResolver(name);\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n return null;\n }\n }\n else {\n // ENS name; forward lookup with wildcard\n resolver = yield this.getResolver(nameOrAddress);\n if (!resolver) {\n return null;\n }\n }\n const avatar = yield resolver.getAvatar();\n if (avatar == null) {\n return null;\n }\n return avatar.url;\n });\n }\n perform(method, params) {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n _startEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _stopEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _addEventListener(eventName, listener, once) {\n const event = new Event(getEventTag(eventName), listener, once);\n this._events.push(event);\n this._startEvent(event);\n return this;\n }\n on(eventName, listener) {\n return this._addEventListener(eventName, listener, false);\n }\n once(eventName, listener) {\n return this._addEventListener(eventName, listener, true);\n }\n emit(eventName, ...args) {\n let result = false;\n let stopped = [];\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n result = true;\n if (event.once) {\n stopped.push(event);\n return false;\n }\n return true;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return result;\n }\n listenerCount(eventName) {\n if (!eventName) {\n return this._events.length;\n }\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n listeners(eventName) {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n off(eventName, listener) {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n const stopped = [];\n let found = false;\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) {\n return true;\n }\n if (found) {\n return true;\n }\n found = true;\n stopped.push(event);\n return false;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n removeAllListeners(eventName) {\n let stopped = [];\n if (eventName == null) {\n stopped = this._events;\n this._events = [];\n }\n else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n stopped.push(event);\n return false;\n });\n }\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n}\n","\"use strict\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class Formatter {\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n getDefaultFormats() {\n const formats = ({});\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n const strictData = (v) => { return this.data(v, true); };\n formats.transaction = {\n hash: hash,\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n confirmations: Formatter.allowNull(number, null),\n from: address,\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n creates: Formatter.allowNull(address, null),\n raw: Formatter.allowNull(data),\n };\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n miner: Formatter.allowNull(address),\n extraData: data,\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n removed: Formatter.allowNull(this.boolean.bind(this)),\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n topics: Formatter.arrayOf(hash),\n transactionHash: hash,\n logIndex: number,\n };\n return formats;\n }\n accessList(accessList) {\n return accessListify(accessList || []);\n }\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number) {\n if (number === \"0x\") {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n type(number) {\n if (number === \"0x\" || number == null) {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n // Strict! Used on input.\n bigNumber(value) {\n return BigNumber.from(value);\n }\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value) {\n if (typeof (value) === \"boolean\") {\n return value;\n }\n if (typeof (value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n hex(value, strict) {\n if (typeof (value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n data(value, strict) {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n // Requires an address\n // Strict! Used on input.\n address(value) {\n return getAddress(value);\n }\n callAddress(value) {\n if (!isHexString(value, 32)) {\n return null;\n }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null : address;\n }\n contractAddress(value) {\n return getContractAddress(value);\n }\n // Strict! Used on input.\n blockTag(blockTag) {\n if (blockTag == null) {\n return \"latest\";\n }\n if (blockTag === \"earliest\") {\n return \"0x0\";\n }\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\":\n case \"pending\":\n case \"safe\":\n case \"finalized\":\n return blockTag;\n }\n if (typeof (blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n throw new Error(\"invalid blockTag\");\n }\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value, strict) {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value) {\n if (value == null) {\n return null;\n }\n const v = BigNumber.from(value);\n try {\n return v.toNumber();\n }\n catch (error) { }\n return null;\n }\n uint256(value) {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n _block(value, format) {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty : value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null : BigNumber.from(difficulty));\n return result;\n }\n block(value) {\n return this._block(value, this.formats.block);\n }\n blockWithTransactions(value) {\n return this._block(value, this.formats.blockWithTransactions);\n }\n // Strict! Used on input.\n transactionRequest(value) {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n transactionResponse(transaction) {\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {\n transaction.accessList = [];\n }\n const result = Formatter.check(this.formats.transaction, transaction);\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n result.chainId = chainId;\n }\n else {\n let chainId = transaction.networkId;\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n if (typeof (chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) {\n chainId = 0;\n }\n chainId = parseInt(chainId);\n }\n if (typeof (chainId) !== \"number\") {\n chainId = 0;\n }\n result.chainId = chainId;\n }\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n return result;\n }\n transaction(value) {\n return parseTransaction(value);\n }\n receiptLog(value) {\n return Formatter.check(this.formats.receiptLog, value);\n }\n receipt(value) {\n const result = Formatter.check(this.formats.receipt, value);\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n }\n else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n }\n else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n if (result.status != null) {\n result.byzantium = true;\n }\n return result;\n }\n topics(value) {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n }\n else if (value != null) {\n return this.hash(value, true);\n }\n return null;\n }\n filter(value) {\n return Formatter.check(this.formats.filter, value);\n }\n filterLog(value) {\n return Formatter.check(this.formats.filterLog, value);\n }\n static check(format, object) {\n const result = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) {\n result[key] = value;\n }\n }\n catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n // if value is null-ish, nullValue is returned\n static allowNull(format, nullValue) {\n return (function (value) {\n if (value == null) {\n return nullValue;\n }\n return format(value);\n });\n }\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format, replaceValue) {\n return (function (value) {\n if (!value) {\n return replaceValue;\n }\n return format(value);\n });\n }\n // Requires an Array satisfying check\n static arrayOf(format) {\n return (function (array) {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n const result = [];\n array.forEach(function (value) {\n result.push(format(value));\n });\n return result;\n });\n }\n}\nexport function isCommunityResourcable(value) {\n return (value && typeof (value.isCommunityResource) === \"function\");\n}\nexport function isCommunityResource(value) {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) {\n return;\n }\n throttleMessage = true;\n console.log(\"========= NOTICE =========\");\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\nconst errorGas = [\"call\", \"estimateGas\"];\nfunction spelunk(value, requireData) {\n if (value == null) {\n return null;\n }\n // These *are* the droids we're looking for.\n if (typeof (value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data : null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n // Spelunk further...\n if (typeof (value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) {\n return result;\n }\n }\n return null;\n }\n // Might be a JSON string we can further descend...\n if (typeof (value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n }\n catch (error) { }\n }\n return null;\n}\nfunction checkError(method, error, params) {\n const transaction = params.transaction || params.signedTransaction;\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) {\n return result.data;\n }\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) {\n result = spelunk(error, false);\n }\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n // @TODO: Should we spelunk for message too?\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nfunction timer(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\nfunction getResult(payload) {\n if (payload.error) {\n // @TODO: not any\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n return payload.result;\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nconst _constructorGuard = {};\nexport class JsonRpcSigner extends Signer {\n constructor(constructorGuard, provider, addressOrIndex) {\n super();\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n defineReadOnly(this, \"provider\", provider);\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n if (typeof (addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n }\n else if (typeof (addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n }\n else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n connect(provider) {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n getAddress() {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index]);\n });\n }\n sendUncheckedTransaction(transaction) {\n transaction = shallowCopy(transaction);\n const fromAddress = this.getAddress().then((address) => {\n if (address) {\n address = address.toLowerCase();\n }\n return address;\n });\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n }\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n }\n else {\n tx.from = sender;\n }\n const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true });\n return this.provider.send(\"eth_sendTransaction\", [hexTx]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n signTransaction(transaction) {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n // This cannot be mined any earlier than any recent block\n const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n // Send the transaction\n const hash = yield this.sendUncheckedTransaction(transaction);\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return yield poll(() => __awaiter(this, void 0, void 0, function* () {\n const tx = yield this.provider.getTransaction(hash);\n if (tx === null) {\n return undefined;\n }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }), { oncePoll: this.provider });\n }\n catch (error) {\n error.transactionHash = hash;\n throw error;\n }\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _legacySignMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return yield this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names (in-place)\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n return this.provider.resolveName(name);\n });\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n });\n }\n unlock(password) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = this.provider;\n const address = yield this.getAddress();\n return provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]);\n });\n }\n}\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction) {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n};\nexport class JsonRpcProvider extends BaseProvider {\n constructor(url, network) {\n let networkOrReady = network;\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n super(networkOrReady);\n // Default URL\n if (!url) {\n url = getStatic(this.constructor, \"defaultUrl\")();\n }\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"connection\", Object.freeze({\n url: url\n }));\n }\n else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n this._nextId = 42;\n }\n get _cache() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n return this._eventLoopCache;\n }\n static defaultUrl() {\n return \"http:/\\/localhost:8545\";\n }\n detectNetwork() {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n _uncachedDetectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n yield timer(0);\n let chainId = null;\n try {\n chainId = yield this.send(\"eth_chainId\", []);\n }\n catch (error) {\n try {\n chainId = yield this.send(\"net_version\", []);\n }\n catch (error) { }\n }\n if (chainId != null) {\n const getNetwork = getStatic(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n }\n catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n });\n }\n getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n listAccounts() {\n return this.send(\"eth_accounts\", []).then((accounts) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n return result;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n throw error;\n });\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n return result;\n }\n prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag]];\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n }\n else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n return null;\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n case \"call\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];\n }\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_estimateGas\", [hexlifyTransaction(params.transaction, { from: true })]];\n }\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [\"eth_getLogs\", [params.filter]];\n default:\n break;\n }\n return null;\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = yield this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n const args = this.prepareRequest(method, params);\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return yield this.send(args[0], args[1]);\n }\n catch (error) {\n return checkError(method, error, params);\n }\n });\n }\n _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n super._startEvent(event);\n }\n _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n const self = this;\n const pendingFilter = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n pendingFilter.then(function (filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [filterId]).then(function (hashes) {\n if (self._pendingFilter != pendingFilter) {\n return null;\n }\n let seq = Promise.resolve();\n hashes.forEach(function (hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function () {\n return self.getTransaction(hash).then(function (tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n return seq.then(function () {\n return timer(1000);\n });\n }).then(function () {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [filterId]);\n return;\n }\n setTimeout(function () { poll(); }, 0);\n return null;\n }).catch((error) => { });\n }\n poll();\n return filterId;\n }).catch((error) => { });\n }\n _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction, allowExtra) {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) {\n allowed[key] = true;\n }\n }\n }\n checkProperties(transaction, allowed);\n const result = {};\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n const value = hexValue(BigNumber.from(transaction[key]));\n if (key === \"gasLimit\") {\n key = \"gas\";\n }\n result[key] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n result[key] = hexlify(transaction[key]);\n });\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n return result;\n }\n}\n","export const version = \"rlp/5.7.0\";\n","\"use strict\";\n//See: https://github.com/ethereum/wiki/wiki/RLP\nimport { arrayify, hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction arrayifyInteger(value) {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\nfunction unarrayifyInteger(data, offset, length) {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\nfunction _encode(object) {\n if (Array.isArray(object)) {\n let payload = [];\n object.forEach(function (child) {\n payload = payload.concat(_encode(child));\n });\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length);\n return payload;\n }\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n return length.concat(payload);\n }\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n const data = Array.prototype.slice.call(arrayify(object));\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n }\n else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n return length.concat(data);\n}\nexport function encode(object) {\n return hexlify(_encode(object));\n}\nfunction _decodeChildren(data, offset, childOffset, length) {\n const result = [];\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n result.push(decoded.result);\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n }\n return { consumed: (1 + length), result: result };\n}\n// returns { consumed: number, result: Object }\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n }\n else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1, length);\n }\n else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result };\n }\n else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result };\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\nexport function decode(data) {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n","export const version = \"sha2/5.7.0\";\n","\"use strict\";\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function ripemd160(data) {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha256(data) {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha512(data) {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\nexport function computeHmac(algorithm, key, data) {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n","export var SupportedAlgorithm;\n(function (SupportedAlgorithm) {\n SupportedAlgorithm[\"sha256\"] = \"sha256\";\n SupportedAlgorithm[\"sha512\"] = \"sha512\";\n})(SupportedAlgorithm || (SupportedAlgorithm = {}));\n;\n","export const version = \"signing-key/5.7.0\";\n","import BN from 'bn.js';\nimport hash from 'hash.js';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction getDefaultExportFromNamespaceIfPresent (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;\n}\n\nfunction getDefaultExportFromNamespaceIfNotNamed (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;\n}\n\nfunction getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar minimalisticAssert = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n\nvar utils_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n});\n\nvar utils_1$1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\n\n\n\nutils.assert = minimalisticAssert;\nutils.toArray = utils_1.toArray;\nutils.zero2 = utils_1.zero2;\nutils.toHex = utils_1.toHex;\nutils.encode = utils_1.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n});\n\n'use strict';\n\n\n\nvar getNAF = utils_1$1.getNAF;\nvar getJSF = utils_1$1.getJSF;\nvar assert$1 = utils_1$1.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nvar base = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert$1(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert$1(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils_1$1.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert$1(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert$1(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils_1$1.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n\nvar inherits_browser = createCommonjsModule(function (module) {\nif (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}\n});\n\n'use strict';\n\n\n\n\n\n\nvar assert$2 = utils_1$1.assert;\n\nfunction ShortCurve(conf) {\n base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits_browser(ShortCurve, base);\nvar short_1 = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits_browser(Point, base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits_browser(JPoint, base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nvar curve_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curve = exports;\n\ncurve.base = base;\ncurve.short = short_1;\ncurve.mont = /*RicMoo:ethers:require(./mont)*/(null);\ncurve.edwards = /*RicMoo:ethers:require(./edwards)*/(null);\n});\n\nvar curves_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curves = exports;\n\n\n\n\n\nvar assert = utils_1$1.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve_1.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve_1.edwards(options);\n else\n this.curve = new curve_1.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/(null).crash();\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n});\n\n'use strict';\n\n\n\n\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils_1.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils_1.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils_1.toArray(options.pers, options.persEnc || 'hex');\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nvar hmacDrbg = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils_1.toArray(entropy, entropyEnc);\n add = utils_1.toArray(add, addEnc);\n\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils_1.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils_1.encode(res, enc);\n};\n\n'use strict';\n\n\n\nvar assert$3 = utils_1$1.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nvar key = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert$3(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert$3(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert$3(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n\n'use strict';\n\n\n\n\nvar assert$4 = utils_1$1.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert$4(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nvar signature = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils_1$1.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils_1$1.encode(res, enc);\n};\n\n'use strict';\n\n\n\n\n\nvar rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nvar assert$5 = utils_1$1.assert;\n\n\n\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert$5(Object.prototype.hasOwnProperty.call(curves_1, options),\n 'Unknown curve ' + options);\n\n options = curves_1[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves_1.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nvar ec = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new key(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return key.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return key.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature$1, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature$1 = new signature(signature$1, 'hex');\n\n // Perform primitive values validation\n var r = signature$1.r;\n var s = signature$1.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature$1, j, enc) {\n assert$5((3 & j) === j, 'The recovery param is more than two bits');\n signature$1 = new signature(signature$1, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature$1.r;\n var s = signature$1.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature$1.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) {\n signature$1 = new signature(signature$1, enc);\n if (signature$1.recoveryParam !== null)\n return signature$1.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature$1, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n\nvar elliptic_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = /*RicMoo:ethers*/{ version: \"6.5.4\" }.version;\nelliptic.utils = utils_1$1;\nelliptic.rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nelliptic.curve = curve_1;\nelliptic.curves = curves_1;\n\n// Protocols\nelliptic.ec = ec;\nelliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/(null);\n});\n\nvar EC$1 = elliptic_1.ec;\n\nexport { EC$1 as EC };\n","\"use strict\";\nimport { EC } from \"./elliptic\";\nimport { arrayify, hexDataLength, hexlify, hexZeroPad, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nlet _curve = null;\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\nexport class SigningKey {\n constructor(privateKey) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n _addPoint(other) {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n signDigest(digest) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n });\n }\n computeSharedSecret(otherKey) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n static isSigningKey(value) {\n return !!(value && value._isSigningKey);\n }\n}\nexport function recoverPublicKey(digest, signature) {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\nexport function computePublicKey(key, compressed) {\n const bytes = arrayify(key);\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n }\n else if (bytes.length === 33) {\n if (compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n }\n else if (bytes.length === 65) {\n if (!compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n","export const version = \"strings/5.7.0\";\n","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n","export const version = \"transactions/5.7.0\";\n","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport var TransactionTypes;\n(function (TransactionTypes) {\n TransactionTypes[TransactionTypes[\"legacy\"] = 0] = \"legacy\";\n TransactionTypes[TransactionTypes[\"eip2930\"] = 1] = \"eip2930\";\n TransactionTypes[TransactionTypes[\"eip1559\"] = 2] = \"eip1559\";\n})(TransactionTypes || (TransactionTypes = {}));\n;\n///////////////////////////////\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n return BigNumber.from(value);\n}\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, type: true, value: true\n};\nexport function computeAddress(key) {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\nexport function recoverAddress(digest, signature) {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\nfunction formatNumber(value, name) {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${addr}:${index}]`, storageKey);\n }\n return storageKey.toLowerCase();\n })\n };\n}\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${index}]`, set);\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _serializeEip1559(transaction, signature) {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x02\", RLP.encode(fields)]);\n}\nfunction _serializeEip2930(transaction, signature) {\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x01\", RLP.encode(fields)]);\n}\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction, signature) {\n checkProperties(transaction, allowedTransactionKeys);\n const raw = [];\n transactionFields.forEach(function (fieldInfo) {\n let value = transaction[fieldInfo.name] || ([]);\n const options = {};\n if (fieldInfo.numeric) {\n options.hexPad = \"left\";\n }\n value = arrayify(hexlify(value, options));\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n }\n raw.push(hexlify(value));\n });\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n if (typeof (chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n }\n else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam;\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n }\n else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n return RLP.encode(raw);\n}\nexport function serialize(transaction, signature) {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${transaction.type}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n tx.v = recid;\n }\n catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n }\n catch (error) { }\n}\nfunction _parseEip1559(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _parseEip2930(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n const tx = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n return tx;\n}\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction) {\n const transaction = RLP.decode(rawTransaction);\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n const tx = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n // Legacy unsigned transaction\n if (transaction.length === 6) {\n return tx;\n }\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n }\n catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n }\n else {\n // Signed Transaction\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n let recoveryParam = tx.v - 27;\n const raw = transaction.slice(0, 6);\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n }\n catch (error) { }\n tx.hash = keccak256(rawTransaction);\n }\n tx.type = null;\n return tx;\n}\nexport function parse(rawTransaction) {\n const payload = arrayify(rawTransaction);\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) {\n return _parse(payload);\n }\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n","export const version = \"web/5.7.1\";\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function getUrl(href, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options == null) {\n options = {};\n }\n const request = {\n method: (options.method || \"GET\"),\n headers: (options.headers || {}),\n body: (options.body || undefined),\n };\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n }\n ;\n if (options.fetchOptions != null) {\n const opts = options.fetchOptions;\n if (opts.mode) {\n request.mode = (opts.mode);\n }\n if (opts.cache) {\n request.cache = (opts.cache);\n }\n if (opts.credentials) {\n request.credentials = (opts.credentials);\n }\n if (opts.redirect) {\n request.redirect = (opts.redirect);\n }\n if (opts.referrer) {\n request.referrer = opts.referrer;\n }\n }\n const response = yield fetch(href, request);\n const body = yield response.arrayBuffer();\n const headers = {};\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n }\n else {\n ((response.headers).keys)().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n };\n });\n}\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { getUrl } from \"./geturl\";\nfunction staller(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\nfunction bodyify(value, type) {\n if (value == null) {\n return null;\n }\n if (typeof (value) === \"string\") {\n return value;\n }\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n }\n catch (error) { }\n ;\n }\n return hexlify(value);\n }\n return value;\n}\nfunction unpercent(value) {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection, body, processFunc) {\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof (connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit : 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0), \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n const throttleCallback = ((typeof (connection) === \"object\") ? connection.throttleCallback : null);\n const throttleSlotInterval = ((typeof (connection) === \"object\" && typeof (connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval : 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0), \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n const errorPassThrough = ((typeof (connection) === \"object\") ? !!(connection.errorPassThrough) : false);\n const headers = {};\n let url = null;\n // @TODO: Allow ConnectionInfo to override some of these values\n const options = {\n method: \"GET\",\n };\n let allow304 = false;\n let timeout = 2 * 60 * 1000;\n if (typeof (connection) === \"string\") {\n url = connection;\n }\n else if (typeof (connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n url = connection.url;\n if (typeof (connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n options.allowGzip = !!connection.allowGzip;\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\"basic authentication requires a secure https url\", Logger.errors.INVALID_ARGUMENT, { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" });\n }\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData) : null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\") },\n body: (dataMatch[2] ? base64Decode(dataMatch[3]) : unpercent(dataMatch[3]))\n };\n let result = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n }\n catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n const flatHeaders = {};\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n const runningTimeout = (function () {\n let timer = null;\n const promise = new Promise(function (resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) {\n return;\n }\n timer = null;\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n const cancel = function () {\n if (timer == null) {\n return;\n }\n clearTimeout(timer);\n timer = null;\n };\n return { promise, cancel };\n })();\n const runningFetch = (function () {\n return __awaiter(this, void 0, void 0, function* () {\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response = null;\n try {\n response = yield getUrl(url, options);\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n }\n else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n let stall = 0;\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof (retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n }\n else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n //console.log(\"Stalling 429\");\n yield staller(stall);\n continue;\n }\n }\n }\n }\n catch (error) {\n response = error.response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n let body = response.body;\n if (allow304 && response.statusCode === 304) {\n body = null;\n }\n else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"] : null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n if (processFunc) {\n try {\n const result = yield processFunc(body, response);\n runningTimeout.cancel();\n return result;\n }\n catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n yield staller(timeout);\n continue;\n }\n }\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"] : null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n runningTimeout.cancel();\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return body;\n }\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n });\n })();\n return Promise.race([runningTimeout.promise, runningFetch]);\n}\nexport function fetchJson(connection, json, processFunc) {\n let processJsonFunc = (value, response) => {\n let result = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n }\n catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n if (processFunc) {\n result = processFunc(result, response);\n }\n return result;\n };\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n // Create a connection with the content-type set for JSON\n const updated = (typeof (connection) === \"string\") ? ({ url: connection }) : shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n }\n else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n return _fetchData(connection, body, processJsonFunc);\n}\nexport function poll(func, options) {\n if (!options) {\n options = {};\n }\n options = shallowCopy(options);\n if (options.floor == null) {\n options.floor = 0;\n }\n if (options.ceiling == null) {\n options.ceiling = 10000;\n }\n if (options.interval == null) {\n options.interval = 250;\n }\n return new Promise(function (resolve, reject) {\n let timer = null;\n let done = false;\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = () => {\n if (done) {\n return false;\n }\n done = true;\n if (timer) {\n clearTimeout(timer);\n }\n return true;\n };\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) {\n reject(new Error(\"timeout\"));\n }\n }, options.timeout);\n }\n const retryLimit = options.retryLimit;\n let attempt = 0;\n function check() {\n return func().then(function (result) {\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) {\n resolve(result);\n }\n }\n else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n }\n else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n // Otherwise, exponential back-off (up to 10s) our next request\n }\n else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) {\n reject(new Error(\"retry limit reached\"));\n }\n return;\n }\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) {\n timeout = options.floor;\n }\n if (timeout > options.ceiling) {\n timeout = options.ceiling;\n }\n setTimeout(check, timeout);\n }\n return null;\n }, function (error) {\n if (cancel()) {\n reject(error);\n }\n });\n }\n check();\n });\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getEncryptionPublicKey = exports.decryptSafely = exports.decrypt = exports.encryptSafely = exports.encrypt = void 0;\nconst nacl = __importStar(require(\"tweetnacl\"));\nconst naclUtil = __importStar(require(\"tweetnacl-util\"));\nconst utils_1 = require(\"./utils\");\n/**\n * Encrypt a message.\n *\n * @param options - The encryption options.\n * @param options.publicKey - The public key of the message recipient.\n * @param options.data - The message data.\n * @param options.version - The type of encryption to use.\n * @returns The encrypted data.\n */\nfunction encrypt({ publicKey, data, version, }) {\n if (utils_1.isNullish(publicKey)) {\n throw new Error('Missing publicKey parameter');\n }\n else if (utils_1.isNullish(data)) {\n throw new Error('Missing data parameter');\n }\n else if (utils_1.isNullish(version)) {\n throw new Error('Missing version parameter');\n }\n switch (version) {\n case 'x25519-xsalsa20-poly1305': {\n if (typeof data !== 'string') {\n throw new Error('Message data must be given as a string');\n }\n // generate ephemeral keypair\n const ephemeralKeyPair = nacl.box.keyPair();\n // assemble encryption parameters - from string to UInt8\n let pubKeyUInt8Array;\n try {\n pubKeyUInt8Array = naclUtil.decodeBase64(publicKey);\n }\n catch (err) {\n throw new Error('Bad public key');\n }\n const msgParamsUInt8Array = naclUtil.decodeUTF8(data);\n const nonce = nacl.randomBytes(nacl.box.nonceLength);\n // encrypt\n const encryptedMessage = nacl.box(msgParamsUInt8Array, nonce, pubKeyUInt8Array, ephemeralKeyPair.secretKey);\n // handle encrypted data\n const output = {\n version: 'x25519-xsalsa20-poly1305',\n nonce: naclUtil.encodeBase64(nonce),\n ephemPublicKey: naclUtil.encodeBase64(ephemeralKeyPair.publicKey),\n ciphertext: naclUtil.encodeBase64(encryptedMessage),\n };\n // return encrypted msg data\n return output;\n }\n default:\n throw new Error('Encryption type/version not supported');\n }\n}\nexports.encrypt = encrypt;\n/**\n * Encrypt a message in a way that obscures the message length.\n *\n * The message is padded to a multiple of 2048 before being encrypted so that the length of the\n * resulting encrypted message can't be used to guess the exact length of the original message.\n *\n * @param options - The encryption options.\n * @param options.publicKey - The public key of the message recipient.\n * @param options.data - The message data.\n * @param options.version - The type of encryption to use.\n * @returns The encrypted data.\n */\nfunction encryptSafely({ publicKey, data, version, }) {\n if (utils_1.isNullish(publicKey)) {\n throw new Error('Missing publicKey parameter');\n }\n else if (utils_1.isNullish(data)) {\n throw new Error('Missing data parameter');\n }\n else if (utils_1.isNullish(version)) {\n throw new Error('Missing version parameter');\n }\n const DEFAULT_PADDING_LENGTH = 2 ** 11;\n const NACL_EXTRA_BYTES = 16;\n if (typeof data === 'object' && 'toJSON' in data) {\n // remove toJSON attack vector\n // TODO, check all possible children\n throw new Error('Cannot encrypt with toJSON property. Please remove toJSON property');\n }\n // add padding\n const dataWithPadding = {\n data,\n padding: '',\n };\n // calculate padding\n const dataLength = Buffer.byteLength(JSON.stringify(dataWithPadding), 'utf-8');\n const modVal = dataLength % DEFAULT_PADDING_LENGTH;\n let padLength = 0;\n // Only pad if necessary\n if (modVal > 0) {\n padLength = DEFAULT_PADDING_LENGTH - modVal - NACL_EXTRA_BYTES; // nacl extra bytes\n }\n dataWithPadding.padding = '0'.repeat(padLength);\n const paddedMessage = JSON.stringify(dataWithPadding);\n return encrypt({ publicKey, data: paddedMessage, version });\n}\nexports.encryptSafely = encryptSafely;\n/**\n * Decrypt a message.\n *\n * @param options - The decryption options.\n * @param options.encryptedData - The encrypted data.\n * @param options.privateKey - The private key to decrypt with.\n * @returns The decrypted message.\n */\nfunction decrypt({ encryptedData, privateKey, }) {\n if (utils_1.isNullish(encryptedData)) {\n throw new Error('Missing encryptedData parameter');\n }\n else if (utils_1.isNullish(privateKey)) {\n throw new Error('Missing privateKey parameter');\n }\n switch (encryptedData.version) {\n case 'x25519-xsalsa20-poly1305': {\n // string to buffer to UInt8Array\n const recieverPrivateKeyUint8Array = nacl_decodeHex(privateKey);\n const recieverEncryptionPrivateKey = nacl.box.keyPair.fromSecretKey(recieverPrivateKeyUint8Array).secretKey;\n // assemble decryption parameters\n const nonce = naclUtil.decodeBase64(encryptedData.nonce);\n const ciphertext = naclUtil.decodeBase64(encryptedData.ciphertext);\n const ephemPublicKey = naclUtil.decodeBase64(encryptedData.ephemPublicKey);\n // decrypt\n const decryptedMessage = nacl.box.open(ciphertext, nonce, ephemPublicKey, recieverEncryptionPrivateKey);\n // return decrypted msg data\n let output;\n try {\n output = naclUtil.encodeUTF8(decryptedMessage);\n }\n catch (err) {\n throw new Error('Decryption failed.');\n }\n if (output) {\n return output;\n }\n throw new Error('Decryption failed.');\n }\n default:\n throw new Error('Encryption type/version not supported.');\n }\n}\nexports.decrypt = decrypt;\n/**\n * Decrypt a message that has been encrypted using `encryptSafely`.\n *\n * @param options - The decryption options.\n * @param options.encryptedData - The encrypted data.\n * @param options.privateKey - The private key to decrypt with.\n * @returns The decrypted message.\n */\nfunction decryptSafely({ encryptedData, privateKey, }) {\n if (utils_1.isNullish(encryptedData)) {\n throw new Error('Missing encryptedData parameter');\n }\n else if (utils_1.isNullish(privateKey)) {\n throw new Error('Missing privateKey parameter');\n }\n const dataWithPadding = JSON.parse(decrypt({ encryptedData, privateKey }));\n return dataWithPadding.data;\n}\nexports.decryptSafely = decryptSafely;\n/**\n * Get the encryption public key for the given key.\n *\n * @param privateKey - The private key to generate the encryption public key with.\n * @returns The encryption public key.\n */\nfunction getEncryptionPublicKey(privateKey) {\n const privateKeyUint8Array = nacl_decodeHex(privateKey);\n const encryptionPublicKey = nacl.box.keyPair.fromSecretKey(privateKeyUint8Array).publicKey;\n return naclUtil.encodeBase64(encryptionPublicKey);\n}\nexports.getEncryptionPublicKey = getEncryptionPublicKey;\n/**\n * Convert a hex string to the UInt8Array format used by nacl.\n *\n * @param msgHex - The string to convert.\n * @returns The converted string.\n */\nfunction nacl_decodeHex(msgHex) {\n const msgBase64 = Buffer.from(msgHex, 'hex').toString('base64');\n return naclUtil.decodeBase64(msgBase64);\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.concatSig = void 0;\n__exportStar(require(\"./personal-sign\"), exports);\n__exportStar(require(\"./sign-typed-data\"), exports);\n__exportStar(require(\"./encryption\"), exports);\nvar utils_1 = require(\"./utils\");\nObject.defineProperty(exports, \"concatSig\", { enumerable: true, get: function () { return utils_1.concatSig; } });\nObject.defineProperty(exports, \"normalize\", { enumerable: true, get: function () { return utils_1.normalize; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.extractPublicKey = exports.recoverPersonalSignature = exports.personalSign = void 0;\nconst ethereumjs_util_1 = require(\"ethereumjs-util\");\nconst utils_1 = require(\"./utils\");\n/**\n * Create an Ethereum-specific signature for a message.\n *\n * This function is equivalent to the `eth_sign` Ethereum JSON-RPC method as specified in EIP-1417,\n * as well as the MetaMask's `personal_sign` method.\n *\n * @param options - The personal sign options.\n * @param options.privateKey - The key to sign with.\n * @param options.data - The hex data to sign.\n * @returns The '0x'-prefixed hex encoded signature.\n */\nfunction personalSign({ privateKey, data, }) {\n if (utils_1.isNullish(data)) {\n throw new Error('Missing data parameter');\n }\n else if (utils_1.isNullish(privateKey)) {\n throw new Error('Missing privateKey parameter');\n }\n const message = utils_1.legacyToBuffer(data);\n const msgHash = ethereumjs_util_1.hashPersonalMessage(message);\n const sig = ethereumjs_util_1.ecsign(msgHash, privateKey);\n const serialized = utils_1.concatSig(ethereumjs_util_1.toBuffer(sig.v), sig.r, sig.s);\n return serialized;\n}\nexports.personalSign = personalSign;\n/**\n * Recover the address of the account used to create the given Ethereum signature. The message\n * must have been signed using the `personalSign` function, or an equivalent function.\n *\n * @param options - The signature recovery options.\n * @param options.data - The hex data that was signed.\n * @param options.signature - The '0x'-prefixed hex encoded message signature.\n * @returns The '0x'-prefixed hex encoded address of the message signer.\n */\nfunction recoverPersonalSignature({ data, signature, }) {\n if (utils_1.isNullish(data)) {\n throw new Error('Missing data parameter');\n }\n else if (utils_1.isNullish(signature)) {\n throw new Error('Missing signature parameter');\n }\n const publicKey = getPublicKeyFor(data, signature);\n const sender = ethereumjs_util_1.publicToAddress(publicKey);\n const senderHex = ethereumjs_util_1.bufferToHex(sender);\n return senderHex;\n}\nexports.recoverPersonalSignature = recoverPersonalSignature;\n/**\n * Recover the public key of the account used to create the given Ethereum signature. The message\n * must have been signed using the `personalSign` function, or an equivalent function.\n *\n * @param options - The public key recovery options.\n * @param options.data - The hex data that was signed.\n * @param options.signature - The '0x'-prefixed hex encoded message signature.\n * @returns The '0x'-prefixed hex encoded public key of the message signer.\n */\nfunction extractPublicKey({ data, signature, }) {\n if (utils_1.isNullish(data)) {\n throw new Error('Missing data parameter');\n }\n else if (utils_1.isNullish(signature)) {\n throw new Error('Missing signature parameter');\n }\n const publicKey = getPublicKeyFor(data, signature);\n return `0x${publicKey.toString('hex')}`;\n}\nexports.extractPublicKey = extractPublicKey;\n/**\n * Get the public key for the given signature and message.\n *\n * @param message - The message that was signed.\n * @param signature - The '0x'-prefixed hex encoded message signature.\n * @returns The public key of the signer.\n */\nfunction getPublicKeyFor(message, signature) {\n const messageHash = ethereumjs_util_1.hashPersonalMessage(utils_1.legacyToBuffer(message));\n return utils_1.recoverPublicKey(messageHash, signature);\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.recoverTypedSignature = exports.signTypedData = exports.typedSignatureHash = exports.TypedDataUtils = exports.TYPED_MESSAGE_SCHEMA = exports.SignTypedDataVersion = void 0;\nconst ethereumjs_util_1 = require(\"ethereumjs-util\");\nconst ethereumjs_abi_1 = require(\"ethereumjs-abi\");\nconst utils_1 = require(\"./utils\");\n/**\n * Represents the version of `signTypedData` being used.\n *\n * V1 is based upon [an early version of EIP-712](https://github.com/ethereum/EIPs/pull/712/commits/21abe254fe0452d8583d5b132b1d7be87c0439ca)\n * that lacked some later security improvements, and should generally be neglected in favor of\n * later versions.\n *\n * V3 is based on EIP-712, except that arrays and recursive data structures are not supported.\n *\n * V4 is based on EIP-712, and includes full support of arrays and recursive data structures.\n */\nvar SignTypedDataVersion;\n(function (SignTypedDataVersion) {\n SignTypedDataVersion[\"V1\"] = \"V1\";\n SignTypedDataVersion[\"V3\"] = \"V3\";\n SignTypedDataVersion[\"V4\"] = \"V4\";\n})(SignTypedDataVersion = exports.SignTypedDataVersion || (exports.SignTypedDataVersion = {}));\nexports.TYPED_MESSAGE_SCHEMA = {\n type: 'object',\n properties: {\n types: {\n type: 'object',\n additionalProperties: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: { type: 'string' },\n type: { type: 'string' },\n },\n required: ['name', 'type'],\n },\n },\n },\n primaryType: { type: 'string' },\n domain: { type: 'object' },\n message: { type: 'object' },\n },\n required: ['types', 'primaryType', 'domain', 'message'],\n};\n/**\n * Validate that the given value is a valid version string.\n *\n * @param version - The version value to validate.\n * @param allowedVersions - A list of allowed versions. If omitted, all versions are assumed to be\n * allowed.\n */\nfunction validateVersion(version, allowedVersions) {\n if (!Object.keys(SignTypedDataVersion).includes(version)) {\n throw new Error(`Invalid version: '${version}'`);\n }\n else if (allowedVersions && !allowedVersions.includes(version)) {\n throw new Error(`SignTypedDataVersion not allowed: '${version}'. Allowed versions are: ${allowedVersions.join(', ')}`);\n }\n}\n/**\n * Encode a single field.\n *\n * @param types - All type definitions.\n * @param name - The name of the field to encode.\n * @param type - The type of the field being encoded.\n * @param value - The value to encode.\n * @param version - The EIP-712 version the encoding should comply with.\n * @returns Encoded representation of the field.\n */\nfunction encodeField(types, name, type, value, version) {\n validateVersion(version, [SignTypedDataVersion.V3, SignTypedDataVersion.V4]);\n if (types[type] !== undefined) {\n return [\n 'bytes32',\n version === SignTypedDataVersion.V4 && value == null // eslint-disable-line no-eq-null\n ? '0x0000000000000000000000000000000000000000000000000000000000000000'\n : ethereumjs_util_1.keccak(encodeData(type, value, types, version)),\n ];\n }\n if (value === undefined) {\n throw new Error(`missing value for field ${name} of type ${type}`);\n }\n if (type === 'bytes') {\n return ['bytes32', ethereumjs_util_1.keccak(value)];\n }\n if (type === 'string') {\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8');\n }\n return ['bytes32', ethereumjs_util_1.keccak(value)];\n }\n if (type.lastIndexOf(']') === type.length - 1) {\n if (version === SignTypedDataVersion.V3) {\n throw new Error('Arrays are unimplemented in encodeData; use V4 extension');\n }\n const parsedType = type.slice(0, type.lastIndexOf('['));\n const typeValuePairs = value.map((item) => encodeField(types, name, parsedType, item, version));\n return [\n 'bytes32',\n ethereumjs_util_1.keccak(ethereumjs_abi_1.rawEncode(typeValuePairs.map(([t]) => t), typeValuePairs.map(([, v]) => v))),\n ];\n }\n return [type, value];\n}\n/**\n * Encodes an object by encoding and concatenating each of its members.\n *\n * @param primaryType - The root type.\n * @param data - The object to encode.\n * @param types - Type definitions for all types included in the message.\n * @param version - The EIP-712 version the encoding should comply with.\n * @returns An encoded representation of an object.\n */\nfunction encodeData(primaryType, data, types, version) {\n validateVersion(version, [SignTypedDataVersion.V3, SignTypedDataVersion.V4]);\n const encodedTypes = ['bytes32'];\n const encodedValues = [hashType(primaryType, types)];\n for (const field of types[primaryType]) {\n if (version === SignTypedDataVersion.V3 && data[field.name] === undefined) {\n continue;\n }\n const [type, value] = encodeField(types, field.name, field.type, data[field.name], version);\n encodedTypes.push(type);\n encodedValues.push(value);\n }\n return ethereumjs_abi_1.rawEncode(encodedTypes, encodedValues);\n}\n/**\n * Encodes the type of an object by encoding a comma delimited list of its members.\n *\n * @param primaryType - The root type to encode.\n * @param types - Type definitions for all types included in the message.\n * @returns An encoded representation of the primary type.\n */\nfunction encodeType(primaryType, types) {\n let result = '';\n const unsortedDeps = findTypeDependencies(primaryType, types);\n unsortedDeps.delete(primaryType);\n const deps = [primaryType, ...Array.from(unsortedDeps).sort()];\n for (const type of deps) {\n const children = types[type];\n if (!children) {\n throw new Error(`No type definition specified: ${type}`);\n }\n result += `${type}(${types[type]\n .map(({ name, type: t }) => `${t} ${name}`)\n .join(',')})`;\n }\n return result;\n}\n/**\n * Finds all types within a type definition object.\n *\n * @param primaryType - The root type.\n * @param types - Type definitions for all types included in the message.\n * @param results - The current set of accumulated types.\n * @returns The set of all types found in the type definition.\n */\nfunction findTypeDependencies(primaryType, types, results = new Set()) {\n [primaryType] = primaryType.match(/^\\w*/u);\n if (results.has(primaryType) || types[primaryType] === undefined) {\n return results;\n }\n results.add(primaryType);\n for (const field of types[primaryType]) {\n findTypeDependencies(field.type, types, results);\n }\n return results;\n}\n/**\n * Hashes an object.\n *\n * @param primaryType - The root type.\n * @param data - The object to hash.\n * @param types - Type definitions for all types included in the message.\n * @param version - The EIP-712 version the encoding should comply with.\n * @returns The hash of the object.\n */\nfunction hashStruct(primaryType, data, types, version) {\n validateVersion(version, [SignTypedDataVersion.V3, SignTypedDataVersion.V4]);\n return ethereumjs_util_1.keccak(encodeData(primaryType, data, types, version));\n}\n/**\n * Hashes the type of an object.\n *\n * @param primaryType - The root type to hash.\n * @param types - Type definitions for all types included in the message.\n * @returns The hash of the object type.\n */\nfunction hashType(primaryType, types) {\n return ethereumjs_util_1.keccak(encodeType(primaryType, types));\n}\n/**\n * Removes properties from a message object that are not defined per EIP-712.\n *\n * @param data - The typed message object.\n * @returns The typed message object with only allowed fields.\n */\nfunction sanitizeData(data) {\n const sanitizedData = {};\n for (const key in exports.TYPED_MESSAGE_SCHEMA.properties) {\n if (data[key]) {\n sanitizedData[key] = data[key];\n }\n }\n if ('types' in sanitizedData) {\n sanitizedData.types = Object.assign({ EIP712Domain: [] }, sanitizedData.types);\n }\n return sanitizedData;\n}\n/**\n * Hash a typed message according to EIP-712. The returned message starts with the EIP-712 prefix,\n * which is \"1901\", followed by the hash of the domain separator, then the data (if any).\n * The result is hashed again and returned.\n *\n * This function does not sign the message. The resulting hash must still be signed to create an\n * EIP-712 signature.\n *\n * @param typedData - The typed message to hash.\n * @param version - The EIP-712 version the encoding should comply with.\n * @returns The hash of the typed message.\n */\nfunction eip712Hash(typedData, version) {\n validateVersion(version, [SignTypedDataVersion.V3, SignTypedDataVersion.V4]);\n const sanitizedData = sanitizeData(typedData);\n const parts = [Buffer.from('1901', 'hex')];\n parts.push(hashStruct('EIP712Domain', sanitizedData.domain, sanitizedData.types, version));\n if (sanitizedData.primaryType !== 'EIP712Domain') {\n parts.push(hashStruct(\n // TODO: Validate that this is a string, so this type cast can be removed.\n sanitizedData.primaryType, sanitizedData.message, sanitizedData.types, version));\n }\n return ethereumjs_util_1.keccak(Buffer.concat(parts));\n}\n/**\n * A collection of utility functions used for signing typed data.\n */\nexports.TypedDataUtils = {\n encodeData,\n encodeType,\n findTypeDependencies,\n hashStruct,\n hashType,\n sanitizeData,\n eip712Hash,\n};\n/**\n * Generate the \"V1\" hash for the provided typed message.\n *\n * The hash will be generated in accordance with an earlier version of the EIP-712\n * specification. This hash is used in `signTypedData_v1`.\n *\n * @param typedData - The typed message.\n * @returns The '0x'-prefixed hex encoded hash representing the type of the provided message.\n */\nfunction typedSignatureHash(typedData) {\n const hashBuffer = _typedSignatureHash(typedData);\n return ethereumjs_util_1.bufferToHex(hashBuffer);\n}\nexports.typedSignatureHash = typedSignatureHash;\n/**\n * Generate the \"V1\" hash for the provided typed message.\n *\n * The hash will be generated in accordance with an earlier version of the EIP-712\n * specification. This hash is used in `signTypedData_v1`.\n *\n * @param typedData - The typed message.\n * @returns The hash representing the type of the provided message.\n */\nfunction _typedSignatureHash(typedData) {\n const error = new Error('Expect argument to be non-empty array');\n if (typeof typedData !== 'object' ||\n !('length' in typedData) ||\n !typedData.length) {\n throw error;\n }\n const data = typedData.map(function (e) {\n if (e.type !== 'bytes') {\n return e.value;\n }\n return utils_1.legacyToBuffer(e.value);\n });\n const types = typedData.map(function (e) {\n return e.type;\n });\n const schema = typedData.map(function (e) {\n if (!e.name) {\n throw error;\n }\n return `${e.type} ${e.name}`;\n });\n return ethereumjs_abi_1.soliditySHA3(['bytes32', 'bytes32'], [\n ethereumjs_abi_1.soliditySHA3(new Array(typedData.length).fill('string'), schema),\n ethereumjs_abi_1.soliditySHA3(types, data),\n ]);\n}\n/**\n * Sign typed data according to EIP-712. The signing differs based upon the `version`.\n *\n * V1 is based upon [an early version of EIP-712](https://github.com/ethereum/EIPs/pull/712/commits/21abe254fe0452d8583d5b132b1d7be87c0439ca)\n * that lacked some later security improvements, and should generally be neglected in favor of\n * later versions.\n *\n * V3 is based on [EIP-712](https://eips.ethereum.org/EIPS/eip-712), except that arrays and\n * recursive data structures are not supported.\n *\n * V4 is based on [EIP-712](https://eips.ethereum.org/EIPS/eip-712), and includes full support of\n * arrays and recursive data structures.\n *\n * @param options - The signing options.\n * @param options.privateKey - The private key to sign with.\n * @param options.data - The typed data to sign.\n * @param options.version - The signing version to use.\n * @returns The '0x'-prefixed hex encoded signature.\n */\nfunction signTypedData({ privateKey, data, version, }) {\n validateVersion(version);\n if (utils_1.isNullish(data)) {\n throw new Error('Missing data parameter');\n }\n else if (utils_1.isNullish(privateKey)) {\n throw new Error('Missing private key parameter');\n }\n const messageHash = version === SignTypedDataVersion.V1\n ? _typedSignatureHash(data)\n : exports.TypedDataUtils.eip712Hash(data, version);\n const sig = ethereumjs_util_1.ecsign(messageHash, privateKey);\n return utils_1.concatSig(ethereumjs_util_1.toBuffer(sig.v), sig.r, sig.s);\n}\nexports.signTypedData = signTypedData;\n/**\n * Recover the address of the account that created the given EIP-712\n * signature. The version provided must match the version used to\n * create the signature.\n *\n * @param options - The signature recovery options.\n * @param options.data - The typed data that was signed.\n * @param options.signature - The '0x-prefixed hex encoded message signature.\n * @param options.version - The signing version to use.\n * @returns The '0x'-prefixed hex address of the signer.\n */\nfunction recoverTypedSignature({ data, signature, version, }) {\n validateVersion(version);\n if (utils_1.isNullish(data)) {\n throw new Error('Missing data parameter');\n }\n else if (utils_1.isNullish(signature)) {\n throw new Error('Missing signature parameter');\n }\n const messageHash = version === SignTypedDataVersion.V1\n ? _typedSignatureHash(data)\n : exports.TypedDataUtils.eip712Hash(data, version);\n const publicKey = utils_1.recoverPublicKey(messageHash, signature);\n const sender = ethereumjs_util_1.publicToAddress(publicKey);\n return ethereumjs_util_1.bufferToHex(sender);\n}\nexports.recoverTypedSignature = recoverTypedSignature;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalize = exports.recoverPublicKey = exports.concatSig = exports.legacyToBuffer = exports.isNullish = exports.padWithZeroes = void 0;\nconst ethereumjs_util_1 = require(\"ethereumjs-util\");\nconst ethjs_util_1 = require(\"ethjs-util\");\n/**\n * Pads the front of the given hex string with zeroes until it reaches the\n * target length. If the input string is already longer than or equal to the\n * target length, it is returned unmodified.\n *\n * If the input string is \"0x\"-prefixed or not a hex string, an error will be\n * thrown.\n *\n * @param hexString - The hexadecimal string to pad with zeroes.\n * @param targetLength - The target length of the hexadecimal string.\n * @returns The input string front-padded with zeroes, or the original string\n * if it was already greater than or equal to to the target length.\n */\nfunction padWithZeroes(hexString, targetLength) {\n if (hexString !== '' && !/^[a-f0-9]+$/iu.test(hexString)) {\n throw new Error(`Expected an unprefixed hex string. Received: ${hexString}`);\n }\n if (targetLength < 0) {\n throw new Error(`Expected a non-negative integer target length. Received: ${targetLength}`);\n }\n return String.prototype.padStart.call(hexString, targetLength, '0');\n}\nexports.padWithZeroes = padWithZeroes;\n/**\n * Returns `true` if the given value is nullish.\n *\n * @param value - The value being checked.\n * @returns Whether the value is nullish.\n */\nfunction isNullish(value) {\n return value === null || value === undefined;\n}\nexports.isNullish = isNullish;\n/**\n * Convert a value to a Buffer. This function should be equivalent to the `toBuffer` function in\n * `ethereumjs-util@5.2.1`.\n *\n * @param value - The value to convert to a Buffer.\n * @returns The given value as a Buffer.\n */\nfunction legacyToBuffer(value) {\n return typeof value === 'string' && !ethjs_util_1.isHexString(value)\n ? Buffer.from(value)\n : ethereumjs_util_1.toBuffer(value);\n}\nexports.legacyToBuffer = legacyToBuffer;\n/**\n * Concatenate an extended ECDSA signature into a single '0x'-prefixed hex string.\n *\n * @param v - The 'v' portion of the signature.\n * @param r - The 'r' portion of the signature.\n * @param s - The 's' portion of the signature.\n * @returns The concatenated ECDSA signature as a '0x'-prefixed string.\n */\nfunction concatSig(v, r, s) {\n const rSig = ethereumjs_util_1.fromSigned(r);\n const sSig = ethereumjs_util_1.fromSigned(s);\n const vSig = ethereumjs_util_1.bufferToInt(v);\n const rStr = padWithZeroes(ethereumjs_util_1.toUnsigned(rSig).toString('hex'), 64);\n const sStr = padWithZeroes(ethereumjs_util_1.toUnsigned(sSig).toString('hex'), 64);\n const vStr = ethjs_util_1.stripHexPrefix(ethjs_util_1.intToHex(vSig));\n return ethereumjs_util_1.addHexPrefix(rStr.concat(sStr, vStr));\n}\nexports.concatSig = concatSig;\n/**\n * Recover the public key from the given signature and message hash.\n *\n * @param messageHash - The hash of the signed message.\n * @param signature - The signature.\n * @returns The public key of the signer.\n */\nfunction recoverPublicKey(messageHash, signature) {\n const sigParams = ethereumjs_util_1.fromRpcSig(signature);\n return ethereumjs_util_1.ecrecover(messageHash, sigParams.v, sigParams.r, sigParams.s);\n}\nexports.recoverPublicKey = recoverPublicKey;\n/**\n * Normalize the input to a lower-cased '0x'-prefixed hex string.\n *\n * @param input - The value to normalize.\n * @returns The normalized value.\n */\nfunction normalize(input) {\n if (!input) {\n return undefined;\n }\n if (typeof input === 'number') {\n const buffer = ethereumjs_util_1.toBuffer(input);\n input = ethereumjs_util_1.bufferToHex(buffer);\n }\n if (typeof input !== 'string') {\n let msg = 'eth-sig-util.normalize() requires hex string or integer input.';\n msg += ` received ${typeof input}: ${input}`;\n throw new Error(msg);\n }\n return ethereumjs_util_1.addHexPrefix(input.toLowerCase());\n}\nexports.normalize = normalize;\n","\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n","\"use strict\";\r\nmodule.exports = codegen;\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @param {string[]} functionParams Function parameter names\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n */\r\nfunction codegen(functionParams, functionName) {\r\n\r\n /* istanbul ignore if */\r\n if (typeof functionParams === \"string\") {\r\n functionName = functionParams;\r\n functionParams = undefined;\r\n }\r\n\r\n var body = [];\r\n\r\n /**\r\n * Appends code to the function's body or finishes generation.\r\n * @typedef Codegen\r\n * @type {function}\r\n * @param {string|Object.} [formatStringOrScope] Format string or, to finish the function, an object of additional scope variables, if any\r\n * @param {...*} [formatParams] Format parameters\r\n * @returns {Codegen|Function} Itself or the generated function if finished\r\n * @throws {Error} If format parameter counts do not match\r\n */\r\n\r\n function Codegen(formatStringOrScope) {\r\n // note that explicit array handling below makes this ~50% faster\r\n\r\n // finish the function\r\n if (typeof formatStringOrScope !== \"string\") {\r\n var source = toString();\r\n if (codegen.verbose)\r\n console.log(\"codegen: \" + source); // eslint-disable-line no-console\r\n source = \"return \" + source;\r\n if (formatStringOrScope) {\r\n var scopeKeys = Object.keys(formatStringOrScope),\r\n scopeParams = new Array(scopeKeys.length + 1),\r\n scopeValues = new Array(scopeKeys.length),\r\n scopeOffset = 0;\r\n while (scopeOffset < scopeKeys.length) {\r\n scopeParams[scopeOffset] = scopeKeys[scopeOffset];\r\n scopeValues[scopeOffset] = formatStringOrScope[scopeKeys[scopeOffset++]];\r\n }\r\n scopeParams[scopeOffset] = source;\r\n return Function.apply(null, scopeParams).apply(null, scopeValues); // eslint-disable-line no-new-func\r\n }\r\n return Function(source)(); // eslint-disable-line no-new-func\r\n }\r\n\r\n // otherwise append to body\r\n var formatParams = new Array(arguments.length - 1),\r\n formatOffset = 0;\r\n while (formatOffset < formatParams.length)\r\n formatParams[formatOffset] = arguments[++formatOffset];\r\n formatOffset = 0;\r\n formatStringOrScope = formatStringOrScope.replace(/%([%dfijs])/g, function replace($0, $1) {\r\n var value = formatParams[formatOffset++];\r\n switch ($1) {\r\n case \"d\": case \"f\": return String(Number(value));\r\n case \"i\": return String(Math.floor(value));\r\n case \"j\": return JSON.stringify(value);\r\n case \"s\": return String(value);\r\n }\r\n return \"%\";\r\n });\r\n if (formatOffset !== formatParams.length)\r\n throw Error(\"parameter count mismatch\");\r\n body.push(formatStringOrScope);\r\n return Codegen;\r\n }\r\n\r\n function toString(functionNameOverride) {\r\n return \"function \" + (functionNameOverride || functionName || \"\") + \"(\" + (functionParams && functionParams.join(\",\") || \"\") + \"){\\n \" + body.join(\"\\n \") + \"\\n}\";\r\n }\r\n\r\n Codegen.toString = toString;\r\n return Codegen;\r\n}\r\n\r\n/**\r\n * Begins generating a function.\r\n * @memberof util\r\n * @function codegen\r\n * @param {string} [functionName] Function name if not anonymous\r\n * @returns {Codegen} Appender that appends code to the function's body\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * When set to `true`, codegen will log generated code to console. Useful for debugging.\r\n * @name util.codegen.verbose\r\n * @type {boolean}\r\n */\r\ncodegen.verbose = false;\r\n","\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n","\"use strict\";\r\nmodule.exports = fetch;\r\n\r\nvar asPromise = require(\"@protobufjs/aspromise\"),\r\n inquire = require(\"@protobufjs/inquire\");\r\n\r\nvar fs = inquire(\"fs\");\r\n\r\n/**\r\n * Node-style callback as used by {@link util.fetch}.\r\n * @typedef FetchCallback\r\n * @type {function}\r\n * @param {?Error} error Error, if any, otherwise `null`\r\n * @param {string} [contents] File contents, if there hasn't been an error\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Options as used by {@link util.fetch}.\r\n * @typedef FetchOptions\r\n * @type {Object}\r\n * @property {boolean} [binary=false] Whether expecting a binary response\r\n * @property {boolean} [xhr=false] If `true`, forces the use of XMLHttpRequest\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @memberof util\r\n * @param {string} filename File path or url\r\n * @param {FetchOptions} options Fetch options\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n */\r\nfunction fetch(filename, options, callback) {\r\n if (typeof options === \"function\") {\r\n callback = options;\r\n options = {};\r\n } else if (!options)\r\n options = {};\r\n\r\n if (!callback)\r\n return asPromise(fetch, this, filename, options); // eslint-disable-line no-invalid-this\r\n\r\n // if a node-like filesystem is present, try it first but fall back to XHR if nothing is found.\r\n if (!options.xhr && fs && fs.readFile)\r\n return fs.readFile(filename, function fetchReadFileCallback(err, contents) {\r\n return err && typeof XMLHttpRequest !== \"undefined\"\r\n ? fetch.xhr(filename, options, callback)\r\n : err\r\n ? callback(err)\r\n : callback(null, options.binary ? contents : contents.toString(\"utf8\"));\r\n });\r\n\r\n // use the XHR version otherwise.\r\n return fetch.xhr(filename, options, callback);\r\n}\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchCallback} callback Callback function\r\n * @returns {undefined}\r\n * @variation 2\r\n */\r\n\r\n/**\r\n * Fetches the contents of a file.\r\n * @name util.fetch\r\n * @function\r\n * @param {string} path File path or url\r\n * @param {FetchOptions} [options] Fetch options\r\n * @returns {Promise} Promise\r\n * @variation 3\r\n */\r\n\r\n/**/\r\nfetch.xhr = function fetch_xhr(filename, options, callback) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.onreadystatechange /* works everywhere */ = function fetchOnReadyStateChange() {\r\n\r\n if (xhr.readyState !== 4)\r\n return undefined;\r\n\r\n // local cors security errors return status 0 / empty string, too. afaik this cannot be\r\n // reliably distinguished from an actually empty file for security reasons. feel free\r\n // to send a pull request if you are aware of a solution.\r\n if (xhr.status !== 0 && xhr.status !== 200)\r\n return callback(Error(\"status \" + xhr.status));\r\n\r\n // if binary data is expected, make sure that some sort of array is returned, even if\r\n // ArrayBuffers are not supported. the binary string fallback, however, is unsafe.\r\n if (options.binary) {\r\n var buffer = xhr.response;\r\n if (!buffer) {\r\n buffer = [];\r\n for (var i = 0; i < xhr.responseText.length; ++i)\r\n buffer.push(xhr.responseText.charCodeAt(i) & 255);\r\n }\r\n return callback(null, typeof Uint8Array !== \"undefined\" ? new Uint8Array(buffer) : buffer);\r\n }\r\n return callback(null, xhr.responseText);\r\n };\r\n\r\n if (options.binary) {\r\n // ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Sending_and_Receiving_Binary_Data#Receiving_binary_data_in_older_browsers\r\n if (\"overrideMimeType\" in xhr)\r\n xhr.overrideMimeType(\"text/plain; charset=x-user-defined\");\r\n xhr.responseType = \"arraybuffer\";\r\n }\r\n\r\n xhr.open(\"GET\", filename);\r\n xhr.send();\r\n};\r\n","\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n","\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal path module to resolve Unix, Windows and URL paths alike.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar path = exports;\r\n\r\nvar isAbsolute =\r\n/**\r\n * Tests if the specified path is absolute.\r\n * @param {string} path Path to test\r\n * @returns {boolean} `true` if path is absolute\r\n */\r\npath.isAbsolute = function isAbsolute(path) {\r\n return /^(?:\\/|\\w+:)/.test(path);\r\n};\r\n\r\nvar normalize =\r\n/**\r\n * Normalizes the specified path.\r\n * @param {string} path Path to normalize\r\n * @returns {string} Normalized path\r\n */\r\npath.normalize = function normalize(path) {\r\n path = path.replace(/\\\\/g, \"/\")\r\n .replace(/\\/{2,}/g, \"/\");\r\n var parts = path.split(\"/\"),\r\n absolute = isAbsolute(path),\r\n prefix = \"\";\r\n if (absolute)\r\n prefix = parts.shift() + \"/\";\r\n for (var i = 0; i < parts.length;) {\r\n if (parts[i] === \"..\") {\r\n if (i > 0 && parts[i - 1] !== \"..\")\r\n parts.splice(--i, 2);\r\n else if (absolute)\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n } else if (parts[i] === \".\")\r\n parts.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n return prefix + parts.join(\"/\");\r\n};\r\n\r\n/**\r\n * Resolves the specified include path against the specified origin path.\r\n * @param {string} originPath Path to the origin file\r\n * @param {string} includePath Include path relative to origin path\r\n * @param {boolean} [alreadyNormalized=false] `true` if both paths are already known to be normalized\r\n * @returns {string} Path to the include file\r\n */\r\npath.resolve = function resolve(originPath, includePath, alreadyNormalized) {\r\n if (!alreadyNormalized)\r\n includePath = normalize(includePath);\r\n if (isAbsolute(includePath))\r\n return includePath;\r\n if (!alreadyNormalized)\r\n originPath = normalize(originPath);\r\n return (originPath = originPath.replace(/(?:\\/|^)[^/]+$/, \"\")).length ? normalize(originPath + \"/\" + includePath) : includePath;\r\n};\r\n","\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n","\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n","// Currently in sync with Node.js lib/assert.js\n// https://github.com/nodejs/node/commit/2a51ae424a513ec9a6aa3466baa0cc1d55dd4f3b\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('./internal/errors'),\n _require$codes = _require.codes,\n ERR_AMBIGUOUS_ARGUMENT = _require$codes.ERR_AMBIGUOUS_ARGUMENT,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_INVALID_ARG_VALUE = _require$codes.ERR_INVALID_ARG_VALUE,\n ERR_INVALID_RETURN_VALUE = _require$codes.ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS;\n\nvar AssertionError = require('./internal/assert/assertion_error');\n\nvar _require2 = require('util/'),\n inspect = _require2.inspect;\n\nvar _require$types = require('util/').types,\n isPromise = _require$types.isPromise,\n isRegExp = _require$types.isRegExp;\n\nvar objectAssign = Object.assign ? Object.assign : require('es6-object-assign').assign;\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar errorCache = new Map();\nvar isDeepEqual;\nvar isDeepStrictEqual;\nvar parseExpressionAt;\nvar findNodeAround;\nvar decoder;\n\nfunction lazyLoadComparison() {\n var comparison = require('./internal/util/comparisons');\n\n isDeepEqual = comparison.isDeepEqual;\n isDeepStrictEqual = comparison.isDeepStrictEqual;\n} // Escape control characters but not \\n and \\t to keep the line breaks and\n// indentation intact.\n// eslint-disable-next-line no-control-regex\n\n\nvar escapeSequencesRegExp = /[\\x00-\\x08\\x0b\\x0c\\x0e-\\x1f]/g;\nvar meta = [\"\\\\u0000\", \"\\\\u0001\", \"\\\\u0002\", \"\\\\u0003\", \"\\\\u0004\", \"\\\\u0005\", \"\\\\u0006\", \"\\\\u0007\", '\\\\b', '', '', \"\\\\u000b\", '\\\\f', '', \"\\\\u000e\", \"\\\\u000f\", \"\\\\u0010\", \"\\\\u0011\", \"\\\\u0012\", \"\\\\u0013\", \"\\\\u0014\", \"\\\\u0015\", \"\\\\u0016\", \"\\\\u0017\", \"\\\\u0018\", \"\\\\u0019\", \"\\\\u001a\", \"\\\\u001b\", \"\\\\u001c\", \"\\\\u001d\", \"\\\\u001e\", \"\\\\u001f\"];\n\nvar escapeFn = function escapeFn(str) {\n return meta[str.charCodeAt(0)];\n};\n\nvar warned = false; // The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\nvar assert = module.exports = ok;\nvar NO_EXCEPTION_SENTINEL = {}; // All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\nfunction innerFail(obj) {\n if (obj.message instanceof Error) throw obj.message;\n throw new AssertionError(obj);\n}\n\nfunction fail(actual, expected, message, operator, stackStartFn) {\n var argsLen = arguments.length;\n var internalMessage;\n\n if (argsLen === 0) {\n internalMessage = 'Failed';\n } else if (argsLen === 1) {\n message = actual;\n actual = undefined;\n } else {\n if (warned === false) {\n warned = true;\n var warn = process.emitWarning ? process.emitWarning : console.warn.bind(console);\n warn('assert.fail() with more than one argument is deprecated. ' + 'Please use assert.strictEqual() instead or only pass a message.', 'DeprecationWarning', 'DEP0094');\n }\n\n if (argsLen === 2) operator = '!=';\n }\n\n if (message instanceof Error) throw message;\n var errArgs = {\n actual: actual,\n expected: expected,\n operator: operator === undefined ? 'fail' : operator,\n stackStartFn: stackStartFn || fail\n };\n\n if (message !== undefined) {\n errArgs.message = message;\n }\n\n var err = new AssertionError(errArgs);\n\n if (internalMessage) {\n err.message = internalMessage;\n err.generatedMessage = true;\n }\n\n throw err;\n}\n\nassert.fail = fail; // The AssertionError is defined in internal/error.\n\nassert.AssertionError = AssertionError;\n\nfunction innerOk(fn, argLen, value, message) {\n if (!value) {\n var generatedMessage = false;\n\n if (argLen === 0) {\n generatedMessage = true;\n message = 'No value argument passed to `assert.ok()`';\n } else if (message instanceof Error) {\n throw message;\n }\n\n var err = new AssertionError({\n actual: value,\n expected: true,\n message: message,\n operator: '==',\n stackStartFn: fn\n });\n err.generatedMessage = generatedMessage;\n throw err;\n }\n} // Pure assertion tests whether a value is truthy, as determined\n// by !!value.\n\n\nfunction ok() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n innerOk.apply(void 0, [ok, args.length].concat(args));\n}\n\nassert.ok = ok; // The equality assertion tests shallow, coercive equality with ==.\n\n/* eslint-disable no-restricted-properties */\n\nassert.equal = function equal(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual != expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '==',\n stackStartFn: equal\n });\n }\n}; // The non-equality assertion tests for whether two objects are not\n// equal with !=.\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n } // eslint-disable-next-line eqeqeq\n\n\n if (actual == expected) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: '!=',\n stackStartFn: notEqual\n });\n }\n}; // The equivalence assertion tests a deep equality relation.\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepEqual',\n stackStartFn: deepEqual\n });\n }\n}; // The non-equivalence assertion tests for any deep inequality.\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepEqual',\n stackStartFn: notDeepEqual\n });\n }\n};\n/* eslint-enable */\n\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (!isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'deepStrictEqual',\n stackStartFn: deepStrictEqual\n });\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n\n if (isDeepStrictEqual(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notDeepStrictEqual',\n stackStartFn: notDeepStrictEqual\n });\n }\n}\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (!objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'strictEqual',\n stackStartFn: strictEqual\n });\n }\n};\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (arguments.length < 2) {\n throw new ERR_MISSING_ARGS('actual', 'expected');\n }\n\n if (objectIs(actual, expected)) {\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: 'notStrictEqual',\n stackStartFn: notStrictEqual\n });\n }\n};\n\nvar Comparison = function Comparison(obj, keys, actual) {\n var _this = this;\n\n _classCallCheck(this, Comparison);\n\n keys.forEach(function (key) {\n if (key in obj) {\n if (actual !== undefined && typeof actual[key] === 'string' && isRegExp(obj[key]) && obj[key].test(actual[key])) {\n _this[key] = actual[key];\n } else {\n _this[key] = obj[key];\n }\n }\n });\n};\n\nfunction compareExceptionKey(actual, expected, key, message, keys, fn) {\n if (!(key in actual) || !isDeepStrictEqual(actual[key], expected[key])) {\n if (!message) {\n // Create placeholder objects to create a nice output.\n var a = new Comparison(actual, keys);\n var b = new Comparison(expected, keys, actual);\n var err = new AssertionError({\n actual: a,\n expected: b,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.actual = actual;\n err.expected = expected;\n err.operator = fn.name;\n throw err;\n }\n\n innerFail({\n actual: actual,\n expected: expected,\n message: message,\n operator: fn.name,\n stackStartFn: fn\n });\n }\n}\n\nfunction expectedException(actual, expected, msg, fn) {\n if (typeof expected !== 'function') {\n if (isRegExp(expected)) return expected.test(actual); // assert.doesNotThrow does not accept objects.\n\n if (arguments.length === 2) {\n throw new ERR_INVALID_ARG_TYPE('expected', ['Function', 'RegExp'], expected);\n } // Handle primitives properly.\n\n\n if (_typeof(actual) !== 'object' || actual === null) {\n var err = new AssertionError({\n actual: actual,\n expected: expected,\n message: msg,\n operator: 'deepStrictEqual',\n stackStartFn: fn\n });\n err.operator = fn.name;\n throw err;\n }\n\n var keys = Object.keys(expected); // Special handle errors to make sure the name and the message are compared\n // as well.\n\n if (expected instanceof Error) {\n keys.push('name', 'message');\n } else if (keys.length === 0) {\n throw new ERR_INVALID_ARG_VALUE('error', expected, 'may not be an empty object');\n }\n\n if (isDeepEqual === undefined) lazyLoadComparison();\n keys.forEach(function (key) {\n if (typeof actual[key] === 'string' && isRegExp(expected[key]) && expected[key].test(actual[key])) {\n return;\n }\n\n compareExceptionKey(actual, expected, key, msg, keys, fn);\n });\n return true;\n } // Guard instanceof against arrow functions as they don't have a prototype.\n\n\n if (expected.prototype !== undefined && actual instanceof expected) {\n return true;\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction getActual(fn) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', 'Function', fn);\n }\n\n try {\n fn();\n } catch (e) {\n return e;\n }\n\n return NO_EXCEPTION_SENTINEL;\n}\n\nfunction checkIsPromise(obj) {\n // Accept native ES6 promises and promises that are implemented in a similar\n // way. Do not accept thenables that use a function as `obj` and that have no\n // `catch` handler.\n // TODO: thenables are checked up until they have the correct methods,\n // but according to documentation, the `then` method should receive\n // the `fulfill` and `reject` arguments as well or it may be never resolved.\n return isPromise(obj) || obj !== null && _typeof(obj) === 'object' && typeof obj.then === 'function' && typeof obj.catch === 'function';\n}\n\nfunction waitForActual(promiseFn) {\n return Promise.resolve().then(function () {\n var resultPromise;\n\n if (typeof promiseFn === 'function') {\n // Return a rejected promise if `promiseFn` throws synchronously.\n resultPromise = promiseFn(); // Fail in case no promise is returned.\n\n if (!checkIsPromise(resultPromise)) {\n throw new ERR_INVALID_RETURN_VALUE('instance of Promise', 'promiseFn', resultPromise);\n }\n } else if (checkIsPromise(promiseFn)) {\n resultPromise = promiseFn;\n } else {\n throw new ERR_INVALID_ARG_TYPE('promiseFn', ['Function', 'Promise'], promiseFn);\n }\n\n return Promise.resolve().then(function () {\n return resultPromise;\n }).then(function () {\n return NO_EXCEPTION_SENTINEL;\n }).catch(function (e) {\n return e;\n });\n });\n}\n\nfunction expectsError(stackStartFn, actual, error, message) {\n if (typeof error === 'string') {\n if (arguments.length === 4) {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (_typeof(actual) === 'object' && actual !== null) {\n if (actual.message === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error message \\\"\".concat(actual.message, \"\\\" is identical to the message.\"));\n }\n } else if (actual === error) {\n throw new ERR_AMBIGUOUS_ARGUMENT('error/message', \"The error \\\"\".concat(actual, \"\\\" is identical to the message.\"));\n }\n\n message = error;\n error = undefined;\n } else if (error != null && _typeof(error) !== 'object' && typeof error !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('error', ['Object', 'Error', 'Function', 'RegExp'], error);\n }\n\n if (actual === NO_EXCEPTION_SENTINEL) {\n var details = '';\n\n if (error && error.name) {\n details += \" (\".concat(error.name, \")\");\n }\n\n details += message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'rejects' ? 'rejection' : 'exception';\n innerFail({\n actual: undefined,\n expected: error,\n operator: stackStartFn.name,\n message: \"Missing expected \".concat(fnType).concat(details),\n stackStartFn: stackStartFn\n });\n }\n\n if (error && !expectedException(actual, error, message, stackStartFn)) {\n throw actual;\n }\n}\n\nfunction expectsNoError(stackStartFn, actual, error, message) {\n if (actual === NO_EXCEPTION_SENTINEL) return;\n\n if (typeof error === 'string') {\n message = error;\n error = undefined;\n }\n\n if (!error || expectedException(actual, error)) {\n var details = message ? \": \".concat(message) : '.';\n var fnType = stackStartFn.name === 'doesNotReject' ? 'rejection' : 'exception';\n innerFail({\n actual: actual,\n expected: error,\n operator: stackStartFn.name,\n message: \"Got unwanted \".concat(fnType).concat(details, \"\\n\") + \"Actual message: \\\"\".concat(actual && actual.message, \"\\\"\"),\n stackStartFn: stackStartFn\n });\n }\n\n throw actual;\n}\n\nassert.throws = function throws(promiseFn) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n expectsError.apply(void 0, [throws, getActual(promiseFn)].concat(args));\n};\n\nassert.rejects = function rejects(promiseFn) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n\n return waitForActual(promiseFn).then(function (result) {\n return expectsError.apply(void 0, [rejects, result].concat(args));\n });\n};\n\nassert.doesNotThrow = function doesNotThrow(fn) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n expectsNoError.apply(void 0, [doesNotThrow, getActual(fn)].concat(args));\n};\n\nassert.doesNotReject = function doesNotReject(fn) {\n for (var _len5 = arguments.length, args = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n args[_key5 - 1] = arguments[_key5];\n }\n\n return waitForActual(fn).then(function (result) {\n return expectsNoError.apply(void 0, [doesNotReject, result].concat(args));\n });\n};\n\nassert.ifError = function ifError(err) {\n if (err !== null && err !== undefined) {\n var message = 'ifError got unwanted exception: ';\n\n if (_typeof(err) === 'object' && typeof err.message === 'string') {\n if (err.message.length === 0 && err.constructor) {\n message += err.constructor.name;\n } else {\n message += err.message;\n }\n } else {\n message += inspect(err);\n }\n\n var newErr = new AssertionError({\n actual: err,\n expected: null,\n operator: 'ifError',\n message: message,\n stackStartFn: ifError\n }); // Make sure we actually have a stack trace!\n\n var origStack = err.stack;\n\n if (typeof origStack === 'string') {\n // This will remove any duplicated frames from the error frames taken\n // from within `ifError` and add the original error frames to the newly\n // created ones.\n var tmp2 = origStack.split('\\n');\n tmp2.shift(); // Filter all frames existing in err.stack.\n\n var tmp1 = newErr.stack.split('\\n');\n\n for (var i = 0; i < tmp2.length; i++) {\n // Find the first occurrence of the frame.\n var pos = tmp1.indexOf(tmp2[i]);\n\n if (pos !== -1) {\n // Only keep new frames.\n tmp1 = tmp1.slice(0, pos);\n break;\n }\n }\n\n newErr.stack = \"\".concat(tmp1.join('\\n'), \"\\n\").concat(tmp2.join('\\n'));\n }\n\n throw newErr;\n }\n}; // Expose a strict only variant of assert\n\n\nfunction strict() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n innerOk.apply(void 0, [strict, args.length].concat(args));\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;","// Currently in sync with Node.js lib/internal/assert/assertion_error.js\n// https://github.com/nodejs/node/commit/0817840f775032169ddd70c85ac059f18ffcc81c\n'use strict';\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _construct(Parent, args, Class) { if (isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('util/'),\n inspect = _require.inspect;\n\nvar _require2 = require('../errors'),\n ERR_INVALID_ARG_TYPE = _require2.codes.ERR_INVALID_ARG_TYPE; // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat\n\n\nfunction repeat(str, count) {\n count = Math.floor(count);\n if (str.length == 0 || count == 0) return '';\n var maxCount = str.length * count;\n count = Math.floor(Math.log(count) / Math.log(2));\n\n while (count) {\n str += str;\n count--;\n }\n\n str += str.substring(0, maxCount - str.length);\n return str;\n}\n\nvar blue = '';\nvar green = '';\nvar red = '';\nvar white = '';\nvar kReadableOperator = {\n deepStrictEqual: 'Expected values to be strictly deep-equal:',\n strictEqual: 'Expected values to be strictly equal:',\n strictEqualObject: 'Expected \"actual\" to be reference-equal to \"expected\":',\n deepEqual: 'Expected values to be loosely deep-equal:',\n equal: 'Expected values to be loosely equal:',\n notDeepStrictEqual: 'Expected \"actual\" not to be strictly deep-equal to:',\n notStrictEqual: 'Expected \"actual\" to be strictly unequal to:',\n notStrictEqualObject: 'Expected \"actual\" not to be reference-equal to \"expected\":',\n notDeepEqual: 'Expected \"actual\" not to be loosely deep-equal to:',\n notEqual: 'Expected \"actual\" to be loosely unequal to:',\n notIdentical: 'Values identical but not reference-equal:'\n}; // Comparing short primitives should just show === / !== instead of using the\n// diff.\n\nvar kMaxShortLength = 10;\n\nfunction copyError(source) {\n var keys = Object.keys(source);\n var target = Object.create(Object.getPrototypeOf(source));\n keys.forEach(function (key) {\n target[key] = source[key];\n });\n Object.defineProperty(target, 'message', {\n value: source.message\n });\n return target;\n}\n\nfunction inspectValue(val) {\n // The util.inspect default values could be changed. This makes sure the\n // error messages contain the necessary information nevertheless.\n return inspect(val, {\n compact: false,\n customInspect: false,\n depth: 1000,\n maxArrayLength: Infinity,\n // Assert compares only enumerable properties (with a few exceptions).\n showHidden: false,\n // Having a long line as error is better than wrapping the line for\n // comparison for now.\n // TODO(BridgeAR): `breakLength` should be limited as soon as soon as we\n // have meta information about the inspected properties (i.e., know where\n // in what line the property starts and ends).\n breakLength: Infinity,\n // Assert does not detect proxies currently.\n showProxy: false,\n sorted: true,\n // Inspect getters as we also check them when comparing entries.\n getters: true\n });\n}\n\nfunction createErrDiff(actual, expected, operator) {\n var other = '';\n var res = '';\n var lastPos = 0;\n var end = '';\n var skipped = false;\n var actualInspected = inspectValue(actual);\n var actualLines = actualInspected.split('\\n');\n var expectedLines = inspectValue(expected).split('\\n');\n var i = 0;\n var indicator = ''; // In case both values are objects explicitly mark them as not reference equal\n // for the `strictEqual` operator.\n\n if (operator === 'strictEqual' && _typeof(actual) === 'object' && _typeof(expected) === 'object' && actual !== null && expected !== null) {\n operator = 'strictEqualObject';\n } // If \"actual\" and \"expected\" fit on a single line and they are not strictly\n // equal, check further special handling.\n\n\n if (actualLines.length === 1 && expectedLines.length === 1 && actualLines[0] !== expectedLines[0]) {\n var inputLength = actualLines[0].length + expectedLines[0].length; // If the character length of \"actual\" and \"expected\" together is less than\n // kMaxShortLength and if neither is an object and at least one of them is\n // not `zero`, use the strict equal comparison to visualize the output.\n\n if (inputLength <= kMaxShortLength) {\n if ((_typeof(actual) !== 'object' || actual === null) && (_typeof(expected) !== 'object' || expected === null) && (actual !== 0 || expected !== 0)) {\n // -0 === +0\n return \"\".concat(kReadableOperator[operator], \"\\n\\n\") + \"\".concat(actualLines[0], \" !== \").concat(expectedLines[0], \"\\n\");\n }\n } else if (operator !== 'strictEqualObject') {\n // If the stderr is a tty and the input length is lower than the current\n // columns per line, add a mismatch indicator below the output. If it is\n // not a tty, use a default value of 80 characters.\n var maxLength = process.stderr && process.stderr.isTTY ? process.stderr.columns : 80;\n\n if (inputLength < maxLength) {\n while (actualLines[0][i] === expectedLines[0][i]) {\n i++;\n } // Ignore the first characters.\n\n\n if (i > 2) {\n // Add position indicator for the first mismatch in case it is a\n // single line and the input length is less than the column length.\n indicator = \"\\n \".concat(repeat(' ', i), \"^\");\n i = 0;\n }\n }\n }\n } // Remove all ending lines that match (this optimizes the output for\n // readability by reducing the number of total changed lines).\n\n\n var a = actualLines[actualLines.length - 1];\n var b = expectedLines[expectedLines.length - 1];\n\n while (a === b) {\n if (i++ < 2) {\n end = \"\\n \".concat(a).concat(end);\n } else {\n other = a;\n }\n\n actualLines.pop();\n expectedLines.pop();\n if (actualLines.length === 0 || expectedLines.length === 0) break;\n a = actualLines[actualLines.length - 1];\n b = expectedLines[expectedLines.length - 1];\n }\n\n var maxLines = Math.max(actualLines.length, expectedLines.length); // Strict equal with identical objects that are not identical by reference.\n // E.g., assert.deepStrictEqual({ a: Symbol() }, { a: Symbol() })\n\n if (maxLines === 0) {\n // We have to get the result again. The lines were all removed before.\n var _actualLines = actualInspected.split('\\n'); // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (_actualLines.length > 30) {\n _actualLines[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (_actualLines.length > 27) {\n _actualLines.pop();\n }\n }\n\n return \"\".concat(kReadableOperator.notIdentical, \"\\n\\n\").concat(_actualLines.join('\\n'), \"\\n\");\n }\n\n if (i > 3) {\n end = \"\\n\".concat(blue, \"...\").concat(white).concat(end);\n skipped = true;\n }\n\n if (other !== '') {\n end = \"\\n \".concat(other).concat(end);\n other = '';\n }\n\n var printedLines = 0;\n var msg = kReadableOperator[operator] + \"\\n\".concat(green, \"+ actual\").concat(white, \" \").concat(red, \"- expected\").concat(white);\n var skippedMsg = \" \".concat(blue, \"...\").concat(white, \" Lines skipped\");\n\n for (i = 0; i < maxLines; i++) {\n // Only extra expected lines exist\n var cur = i - lastPos;\n\n if (actualLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(expectedLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(expectedLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the expected line to the cache.\n\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLines[i]);\n printedLines++; // Only extra actual lines exist\n } else if (expectedLines.length < i + 1) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLines[i]);\n printedLines++; // Lines diverge\n } else {\n var expectedLine = expectedLines[i];\n var actualLine = actualLines[i]; // If the lines diverge, specifically check for lines that only diverge by\n // a trailing comma. In that case it is actually identical and we should\n // mark it as such.\n\n var divergingLines = actualLine !== expectedLine && (!endsWith(actualLine, ',') || actualLine.slice(0, -1) !== expectedLine); // If the expected line has a trailing comma but is otherwise identical,\n // add a comma at the end of the actual line. Otherwise the output could\n // look weird as in:\n //\n // [\n // 1 // No comma at the end!\n // + 2\n // ]\n //\n\n if (divergingLines && endsWith(expectedLine, ',') && expectedLine.slice(0, -1) === actualLine) {\n divergingLines = false;\n actualLine += ',';\n }\n\n if (divergingLines) {\n // If the last diverging line is more than one line above and the\n // current line is at least line three, add some of the former lines and\n // also add dots to indicate skipped entries.\n if (cur > 1 && i > 2) {\n if (cur > 4) {\n res += \"\\n\".concat(blue, \"...\").concat(white);\n skipped = true;\n } else if (cur > 3) {\n res += \"\\n \".concat(actualLines[i - 2]);\n printedLines++;\n }\n\n res += \"\\n \".concat(actualLines[i - 1]);\n printedLines++;\n } // Mark the current line as the last diverging one.\n\n\n lastPos = i; // Add the actual line to the result and cache the expected diverging\n // line so consecutive diverging lines show up as +++--- and not +-+-+-.\n\n res += \"\\n\".concat(green, \"+\").concat(white, \" \").concat(actualLine);\n other += \"\\n\".concat(red, \"-\").concat(white, \" \").concat(expectedLine);\n printedLines += 2; // Lines are identical\n } else {\n // Add all cached information to the result before adding other things\n // and reset the cache.\n res += other;\n other = ''; // If the last diverging line is exactly one line above or if it is the\n // very first line, add the line to the result.\n\n if (cur === 1 || i === 0) {\n res += \"\\n \".concat(actualLine);\n printedLines++;\n }\n }\n } // Inspected object to big (Show ~20 rows max)\n\n\n if (printedLines > 20 && i < maxLines - 2) {\n return \"\".concat(msg).concat(skippedMsg, \"\\n\").concat(res, \"\\n\").concat(blue, \"...\").concat(white).concat(other, \"\\n\") + \"\".concat(blue, \"...\").concat(white);\n }\n }\n\n return \"\".concat(msg).concat(skipped ? skippedMsg : '', \"\\n\").concat(res).concat(other).concat(end).concat(indicator);\n}\n\nvar AssertionError =\n/*#__PURE__*/\nfunction (_Error) {\n _inherits(AssertionError, _Error);\n\n function AssertionError(options) {\n var _this;\n\n _classCallCheck(this, AssertionError);\n\n if (_typeof(options) !== 'object' || options === null) {\n throw new ERR_INVALID_ARG_TYPE('options', 'Object', options);\n }\n\n var message = options.message,\n operator = options.operator,\n stackStartFn = options.stackStartFn;\n var actual = options.actual,\n expected = options.expected;\n var limit = Error.stackTraceLimit;\n Error.stackTraceLimit = 0;\n\n if (message != null) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, String(message)));\n } else {\n if (process.stderr && process.stderr.isTTY) {\n // Reset on each call to make sure we handle dynamically set environment\n // variables correct.\n if (process.stderr && process.stderr.getColorDepth && process.stderr.getColorDepth() !== 1) {\n blue = \"\\x1B[34m\";\n green = \"\\x1B[32m\";\n white = \"\\x1B[39m\";\n red = \"\\x1B[31m\";\n } else {\n blue = '';\n green = '';\n white = '';\n red = '';\n }\n } // Prevent the error stack from being visible by duplicating the error\n // in a very close way to the original in case both sides are actually\n // instances of Error.\n\n\n if (_typeof(actual) === 'object' && actual !== null && _typeof(expected) === 'object' && expected !== null && 'stack' in actual && actual instanceof Error && 'stack' in expected && expected instanceof Error) {\n actual = copyError(actual);\n expected = copyError(expected);\n }\n\n if (operator === 'deepStrictEqual' || operator === 'strictEqual') {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, createErrDiff(actual, expected, operator)));\n } else if (operator === 'notDeepStrictEqual' || operator === 'notStrictEqual') {\n // In case the objects are equal but the operator requires unequal, show\n // the first object and say A equals B\n var base = kReadableOperator[operator];\n var res = inspectValue(actual).split('\\n'); // In case \"actual\" is an object, it should not be reference equal.\n\n if (operator === 'notStrictEqual' && _typeof(actual) === 'object' && actual !== null) {\n base = kReadableOperator.notStrictEqualObject;\n } // Only remove lines in case it makes sense to collapse those.\n // TODO: Accept env to always show the full error.\n\n\n if (res.length > 30) {\n res[26] = \"\".concat(blue, \"...\").concat(white);\n\n while (res.length > 27) {\n res.pop();\n }\n } // Only print a single input.\n\n\n if (res.length === 1) {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \" \").concat(res[0])));\n } else {\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(base, \"\\n\\n\").concat(res.join('\\n'), \"\\n\")));\n }\n } else {\n var _res = inspectValue(actual);\n\n var other = '';\n var knownOperators = kReadableOperator[operator];\n\n if (operator === 'notDeepEqual' || operator === 'notEqual') {\n _res = \"\".concat(kReadableOperator[operator], \"\\n\\n\").concat(_res);\n\n if (_res.length > 1024) {\n _res = \"\".concat(_res.slice(0, 1021), \"...\");\n }\n } else {\n other = \"\".concat(inspectValue(expected));\n\n if (_res.length > 512) {\n _res = \"\".concat(_res.slice(0, 509), \"...\");\n }\n\n if (other.length > 512) {\n other = \"\".concat(other.slice(0, 509), \"...\");\n }\n\n if (operator === 'deepEqual' || operator === 'equal') {\n _res = \"\".concat(knownOperators, \"\\n\\n\").concat(_res, \"\\n\\nshould equal\\n\\n\");\n } else {\n other = \" \".concat(operator, \" \").concat(other);\n }\n }\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(AssertionError).call(this, \"\".concat(_res).concat(other)));\n }\n }\n\n Error.stackTraceLimit = limit;\n _this.generatedMessage = !message;\n Object.defineProperty(_assertThisInitialized(_this), 'name', {\n value: 'AssertionError [ERR_ASSERTION]',\n enumerable: false,\n writable: true,\n configurable: true\n });\n _this.code = 'ERR_ASSERTION';\n _this.actual = actual;\n _this.expected = expected;\n _this.operator = operator;\n\n if (Error.captureStackTrace) {\n // eslint-disable-next-line no-restricted-syntax\n Error.captureStackTrace(_assertThisInitialized(_this), stackStartFn);\n } // Create error message including the error code in the name.\n\n\n _this.stack; // Reset the name.\n\n _this.name = 'AssertionError';\n return _possibleConstructorReturn(_this);\n }\n\n _createClass(AssertionError, [{\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.name, \" [\").concat(this.code, \"]: \").concat(this.message);\n }\n }, {\n key: inspect.custom,\n value: function value(recurseTimes, ctx) {\n // This limits the `actual` and `expected` property default inspection to\n // the minimum depth. Otherwise those values would be too verbose compared\n // to the actual error message which contains a combined view of these two\n // input values.\n return inspect(this, _objectSpread({}, ctx, {\n customInspect: false,\n depth: 0\n }));\n }\n }]);\n\n return AssertionError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = AssertionError;","// Currently in sync with Node.js lib/internal/errors.js\n// https://github.com/nodejs/node/commit/3b044962c48fe313905877a96b5d0894a5404f6f\n\n/* eslint node-core/documented-errors: \"error\" */\n\n/* eslint node-core/alphabetize-errors: \"error\" */\n\n/* eslint node-core/prefer-util-format-errors: \"error\" */\n'use strict'; // The whole point behind this internal module is to allow Node.js to no\n// longer be forced to treat every error message change as a semver-major\n// change. The NodeError classes here all expose a `code` property whose\n// value statically and permanently identifies the error. While the error\n// message may change, the code should not.\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nvar codes = {}; // Lazy loaded\n\nvar assert;\nvar util;\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inherits(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n var _this;\n\n _classCallCheck(this, NodeError);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NodeError).call(this, getMessage(arg1, arg2, arg3)));\n _this.code = code;\n return _this;\n }\n\n return NodeError;\n }(Base);\n\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_AMBIGUOUS_ARGUMENT', 'The \"%s\" argument is ambiguous. %s', TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n if (assert === undefined) assert = require('../assert');\n assert(typeof name === 'string', \"'name' must be a string\"); // determiner: 'must be' or 'must not be'\n\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } // TODO(BridgeAR): Improve the output by showing `null` and similar.\n\n\n msg += \". Received type \".concat(_typeof(actual));\n return msg;\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_VALUE', function (name, value) {\n var reason = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'is invalid';\n if (util === undefined) util = require('util/');\n var inspected = util.inspect(value);\n\n if (inspected.length > 128) {\n inspected = \"\".concat(inspected.slice(0, 128), \"...\");\n }\n\n return \"The argument '\".concat(name, \"' \").concat(reason, \". Received \").concat(inspected);\n}, TypeError, RangeError);\ncreateErrorType('ERR_INVALID_RETURN_VALUE', function (input, name, value) {\n var type;\n\n if (value && value.constructor && value.constructor.name) {\n type = \"instance of \".concat(value.constructor.name);\n } else {\n type = \"type \".concat(_typeof(value));\n }\n\n return \"Expected \".concat(input, \" to be returned from the \\\"\").concat(name, \"\\\"\") + \" function but got \".concat(type, \".\");\n}, TypeError);\ncreateErrorType('ERR_MISSING_ARGS', function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (assert === undefined) assert = require('../assert');\n assert(args.length > 0, 'At least one arg needs to be specified');\n var msg = 'The ';\n var len = args.length;\n args = args.map(function (a) {\n return \"\\\"\".concat(a, \"\\\"\");\n });\n\n switch (len) {\n case 1:\n msg += \"\".concat(args[0], \" argument\");\n break;\n\n case 2:\n msg += \"\".concat(args[0], \" and \").concat(args[1], \" arguments\");\n break;\n\n default:\n msg += args.slice(0, len - 1).join(', ');\n msg += \", and \".concat(args[len - 1], \" arguments\");\n break;\n }\n\n return \"\".concat(msg, \" must be specified\");\n}, TypeError);\nmodule.exports.codes = codes;","// Currently in sync with Node.js lib/internal/util/comparisons.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n'use strict';\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar regexFlagsSupported = /a/g.flags !== undefined;\n\nvar arrayFromSet = function arrayFromSet(set) {\n var array = [];\n set.forEach(function (value) {\n return array.push(value);\n });\n return array;\n};\n\nvar arrayFromMap = function arrayFromMap(map) {\n var array = [];\n map.forEach(function (value, key) {\n return array.push([key, value]);\n });\n return array;\n};\n\nvar objectIs = Object.is ? Object.is : require('object-is');\nvar objectGetOwnPropertySymbols = Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols : function () {\n return [];\n};\nvar numberIsNaN = Number.isNaN ? Number.isNaN : require('is-nan');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar hasOwnProperty = uncurryThis(Object.prototype.hasOwnProperty);\nvar propertyIsEnumerable = uncurryThis(Object.prototype.propertyIsEnumerable);\nvar objectToString = uncurryThis(Object.prototype.toString);\n\nvar _require$types = require('util/').types,\n isAnyArrayBuffer = _require$types.isAnyArrayBuffer,\n isArrayBufferView = _require$types.isArrayBufferView,\n isDate = _require$types.isDate,\n isMap = _require$types.isMap,\n isRegExp = _require$types.isRegExp,\n isSet = _require$types.isSet,\n isNativeError = _require$types.isNativeError,\n isBoxedPrimitive = _require$types.isBoxedPrimitive,\n isNumberObject = _require$types.isNumberObject,\n isStringObject = _require$types.isStringObject,\n isBooleanObject = _require$types.isBooleanObject,\n isBigIntObject = _require$types.isBigIntObject,\n isSymbolObject = _require$types.isSymbolObject,\n isFloat32Array = _require$types.isFloat32Array,\n isFloat64Array = _require$types.isFloat64Array;\n\nfunction isNonIndex(key) {\n if (key.length === 0 || key.length > 10) return true;\n\n for (var i = 0; i < key.length; i++) {\n var code = key.charCodeAt(i);\n if (code < 48 || code > 57) return true;\n } // The maximum size for an array is 2 ** 32 -1.\n\n\n return key.length === 10 && key >= Math.pow(2, 32);\n}\n\nfunction getOwnNonIndexProperties(value) {\n return Object.keys(value).filter(isNonIndex).concat(objectGetOwnPropertySymbols(value).filter(Object.prototype.propertyIsEnumerable.bind(value)));\n} // Taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nvar ONLY_ENUMERABLE = undefined;\nvar kStrict = true;\nvar kLoose = false;\nvar kNoIterator = 0;\nvar kIsArray = 1;\nvar kIsSet = 2;\nvar kIsMap = 3; // Check if they have the same source and flags\n\nfunction areSimilarRegExps(a, b) {\n return regexFlagsSupported ? a.source === b.source && a.flags === b.flags : RegExp.prototype.toString.call(a) === RegExp.prototype.toString.call(b);\n}\n\nfunction areSimilarFloatArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n for (var offset = 0; offset < a.byteLength; offset++) {\n if (a[offset] !== b[offset]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction areSimilarTypedArrays(a, b) {\n if (a.byteLength !== b.byteLength) {\n return false;\n }\n\n return compare(new Uint8Array(a.buffer, a.byteOffset, a.byteLength), new Uint8Array(b.buffer, b.byteOffset, b.byteLength)) === 0;\n}\n\nfunction areEqualArrayBuffers(buf1, buf2) {\n return buf1.byteLength === buf2.byteLength && compare(new Uint8Array(buf1), new Uint8Array(buf2)) === 0;\n}\n\nfunction isEqualBoxedPrimitive(val1, val2) {\n if (isNumberObject(val1)) {\n return isNumberObject(val2) && objectIs(Number.prototype.valueOf.call(val1), Number.prototype.valueOf.call(val2));\n }\n\n if (isStringObject(val1)) {\n return isStringObject(val2) && String.prototype.valueOf.call(val1) === String.prototype.valueOf.call(val2);\n }\n\n if (isBooleanObject(val1)) {\n return isBooleanObject(val2) && Boolean.prototype.valueOf.call(val1) === Boolean.prototype.valueOf.call(val2);\n }\n\n if (isBigIntObject(val1)) {\n return isBigIntObject(val2) && BigInt.prototype.valueOf.call(val1) === BigInt.prototype.valueOf.call(val2);\n }\n\n return isSymbolObject(val2) && Symbol.prototype.valueOf.call(val1) === Symbol.prototype.valueOf.call(val2);\n} // Notes: Type tags are historical [[Class]] properties that can be set by\n// FunctionTemplate::SetClassName() in C++ or Symbol.toStringTag in JS\n// and retrieved using Object.prototype.toString.call(obj) in JS\n// See https://tc39.github.io/ecma262/#sec-object.prototype.tostring\n// for a list of tags pre-defined in the spec.\n// There are some unspecified tags in the wild too (e.g. typed array tags).\n// Since tags can be altered, they only serve fast failures\n//\n// Typed arrays and buffers are checked by comparing the content in their\n// underlying ArrayBuffer. This optimization requires that it's\n// reasonable to interpret their underlying memory in the same way,\n// which is checked by comparing their type tags.\n// (e.g. a Uint8Array and a Uint16Array with the same memory content\n// could still be different because they will be interpreted differently).\n//\n// For strict comparison, objects should have\n// a) The same built-in type tags\n// b) The same prototypes.\n\n\nfunction innerDeepEqual(val1, val2, strict, memos) {\n // All identical values are equivalent, as determined by ===.\n if (val1 === val2) {\n if (val1 !== 0) return true;\n return strict ? objectIs(val1, val2) : true;\n } // Check more closely if val1 and val2 are equal.\n\n\n if (strict) {\n if (_typeof(val1) !== 'object') {\n return typeof val1 === 'number' && numberIsNaN(val1) && numberIsNaN(val2);\n }\n\n if (_typeof(val2) !== 'object' || val1 === null || val2 === null) {\n return false;\n }\n\n if (Object.getPrototypeOf(val1) !== Object.getPrototypeOf(val2)) {\n return false;\n }\n } else {\n if (val1 === null || _typeof(val1) !== 'object') {\n if (val2 === null || _typeof(val2) !== 'object') {\n // eslint-disable-next-line eqeqeq\n return val1 == val2;\n }\n\n return false;\n }\n\n if (val2 === null || _typeof(val2) !== 'object') {\n return false;\n }\n }\n\n var val1Tag = objectToString(val1);\n var val2Tag = objectToString(val2);\n\n if (val1Tag !== val2Tag) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n // Check for sparse arrays and general fast path\n if (val1.length !== val2.length) {\n return false;\n }\n\n var keys1 = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n var keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (keys1.length !== keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsArray, keys1);\n } // [browserify] This triggers on certain types in IE (Map/Set) so we don't\n // wan't to early return out of the rest of the checks. However we can check\n // if the second value is one of these values and the first isn't.\n\n\n if (val1Tag === '[object Object]') {\n // return keyCheck(val1, val2, strict, memos, kNoIterator);\n if (!isMap(val1) && isMap(val2) || !isSet(val1) && isSet(val2)) {\n return false;\n }\n }\n\n if (isDate(val1)) {\n if (!isDate(val2) || Date.prototype.getTime.call(val1) !== Date.prototype.getTime.call(val2)) {\n return false;\n }\n } else if (isRegExp(val1)) {\n if (!isRegExp(val2) || !areSimilarRegExps(val1, val2)) {\n return false;\n }\n } else if (isNativeError(val1) || val1 instanceof Error) {\n // Do not compare the stack as it might differ even though the error itself\n // is otherwise identical.\n if (val1.message !== val2.message || val1.name !== val2.name) {\n return false;\n }\n } else if (isArrayBufferView(val1)) {\n if (!strict && (isFloat32Array(val1) || isFloat64Array(val1))) {\n if (!areSimilarFloatArrays(val1, val2)) {\n return false;\n }\n } else if (!areSimilarTypedArrays(val1, val2)) {\n return false;\n } // Buffer.compare returns true, so val1.length === val2.length. If they both\n // only contain numeric keys, we don't need to exam further than checking\n // the symbols.\n\n\n var _keys = getOwnNonIndexProperties(val1, ONLY_ENUMERABLE);\n\n var _keys2 = getOwnNonIndexProperties(val2, ONLY_ENUMERABLE);\n\n if (_keys.length !== _keys2.length) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator, _keys);\n } else if (isSet(val1)) {\n if (!isSet(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsSet);\n } else if (isMap(val1)) {\n if (!isMap(val2) || val1.size !== val2.size) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kIsMap);\n } else if (isAnyArrayBuffer(val1)) {\n if (!areEqualArrayBuffers(val1, val2)) {\n return false;\n }\n } else if (isBoxedPrimitive(val1) && !isEqualBoxedPrimitive(val1, val2)) {\n return false;\n }\n\n return keyCheck(val1, val2, strict, memos, kNoIterator);\n}\n\nfunction getEnumerables(val, keys) {\n return keys.filter(function (k) {\n return propertyIsEnumerable(val, k);\n });\n}\n\nfunction keyCheck(val1, val2, strict, memos, iterationType, aKeys) {\n // For all remaining Object pairs, including Array, objects and Maps,\n // equivalence is determined by having:\n // a) The same number of owned enumerable properties\n // b) The same set of keys/indexes (although not necessarily the same order)\n // c) Equivalent values for every corresponding key/index\n // d) For Sets and Maps, equal contents\n // Note: this accounts for both named and indexed properties on Arrays.\n if (arguments.length === 5) {\n aKeys = Object.keys(val1);\n var bKeys = Object.keys(val2); // The pair must have the same number of owned properties.\n\n if (aKeys.length !== bKeys.length) {\n return false;\n }\n } // Cheap key test\n\n\n var i = 0;\n\n for (; i < aKeys.length; i++) {\n if (!hasOwnProperty(val2, aKeys[i])) {\n return false;\n }\n }\n\n if (strict && arguments.length === 5) {\n var symbolKeysA = objectGetOwnPropertySymbols(val1);\n\n if (symbolKeysA.length !== 0) {\n var count = 0;\n\n for (i = 0; i < symbolKeysA.length; i++) {\n var key = symbolKeysA[i];\n\n if (propertyIsEnumerable(val1, key)) {\n if (!propertyIsEnumerable(val2, key)) {\n return false;\n }\n\n aKeys.push(key);\n count++;\n } else if (propertyIsEnumerable(val2, key)) {\n return false;\n }\n }\n\n var symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (symbolKeysA.length !== symbolKeysB.length && getEnumerables(val2, symbolKeysB).length !== count) {\n return false;\n }\n } else {\n var _symbolKeysB = objectGetOwnPropertySymbols(val2);\n\n if (_symbolKeysB.length !== 0 && getEnumerables(val2, _symbolKeysB).length !== 0) {\n return false;\n }\n }\n }\n\n if (aKeys.length === 0 && (iterationType === kNoIterator || iterationType === kIsArray && val1.length === 0 || val1.size === 0)) {\n return true;\n } // Use memos to handle cycles.\n\n\n if (memos === undefined) {\n memos = {\n val1: new Map(),\n val2: new Map(),\n position: 0\n };\n } else {\n // We prevent up to two map.has(x) calls by directly retrieving the value\n // and checking for undefined. The map can only contain numbers, so it is\n // safe to check for undefined only.\n var val2MemoA = memos.val1.get(val1);\n\n if (val2MemoA !== undefined) {\n var val2MemoB = memos.val2.get(val2);\n\n if (val2MemoB !== undefined) {\n return val2MemoA === val2MemoB;\n }\n }\n\n memos.position++;\n }\n\n memos.val1.set(val1, memos.position);\n memos.val2.set(val2, memos.position);\n var areEq = objEquiv(val1, val2, strict, aKeys, memos, iterationType);\n memos.val1.delete(val1);\n memos.val2.delete(val2);\n return areEq;\n}\n\nfunction setHasEqualElement(set, val1, strict, memo) {\n // Go looking.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var val2 = setValues[i];\n\n if (innerDeepEqual(val1, val2, strict, memo)) {\n // Remove the matching element to make sure we do not check that again.\n set.delete(val2);\n return true;\n }\n }\n\n return false;\n} // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Loose_equality_using\n// Sadly it is not possible to detect corresponding values properly in case the\n// type is a string, number, bigint or boolean. The reason is that those values\n// can match lots of different string values (e.g., 1n == '+00001').\n\n\nfunction findLooseMatchingPrimitives(prim) {\n switch (_typeof(prim)) {\n case 'undefined':\n return null;\n\n case 'object':\n // Only pass in null as object!\n return undefined;\n\n case 'symbol':\n return false;\n\n case 'string':\n prim = +prim;\n // Loose equal entries exist only if the string is possible to convert to\n // a regular number and not NaN.\n // Fall through\n\n case 'number':\n if (numberIsNaN(prim)) {\n return false;\n }\n\n }\n\n return true;\n}\n\nfunction setMightHaveLoosePrim(a, b, prim) {\n var altValue = findLooseMatchingPrimitives(prim);\n if (altValue != null) return altValue;\n return b.has(altValue) && !a.has(altValue);\n}\n\nfunction mapMightHaveLoosePrim(a, b, prim, item, memo) {\n var altValue = findLooseMatchingPrimitives(prim);\n\n if (altValue != null) {\n return altValue;\n }\n\n var curB = b.get(altValue);\n\n if (curB === undefined && !b.has(altValue) || !innerDeepEqual(item, curB, false, memo)) {\n return false;\n }\n\n return !a.has(altValue) && innerDeepEqual(item, curB, false, memo);\n}\n\nfunction setEquiv(a, b, strict, memo) {\n // This is a lazily initiated Set of entries which have to be compared\n // pairwise.\n var set = null;\n var aValues = arrayFromSet(a);\n\n for (var i = 0; i < aValues.length; i++) {\n var val = aValues[i]; // Note: Checking for the objects first improves the performance for object\n // heavy sets but it is a minor slow down for primitives. As they are fast\n // to check this improves the worst case scenario instead.\n\n if (_typeof(val) === 'object' && val !== null) {\n if (set === null) {\n set = new Set();\n } // If the specified value doesn't exist in the second set its an not null\n // object (or non strict only: a not matching primitive) we'll need to go\n // hunting for something thats deep-(strict-)equal to it. To make this\n // O(n log n) complexity we have to copy these values in a new set first.\n\n\n set.add(val);\n } else if (!b.has(val)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null values.\n\n if (!setMightHaveLoosePrim(a, b, val)) {\n return false;\n }\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(val);\n }\n }\n\n if (set !== null) {\n var bValues = arrayFromSet(b);\n\n for (var _i = 0; _i < bValues.length; _i++) {\n var _val = bValues[_i]; // We have to check if a primitive value is already\n // matching and only if it's not, go hunting for it.\n\n if (_typeof(_val) === 'object' && _val !== null) {\n if (!setHasEqualElement(set, _val, strict, memo)) return false;\n } else if (!strict && !a.has(_val) && !setHasEqualElement(set, _val, strict, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction mapHasEqualEntry(set, map, key1, item1, strict, memo) {\n // To be able to handle cases like:\n // Map([[{}, 'a'], [{}, 'b']]) vs Map([[{}, 'b'], [{}, 'a']])\n // ... we need to consider *all* matching keys, not just the first we find.\n var setValues = arrayFromSet(set);\n\n for (var i = 0; i < setValues.length; i++) {\n var key2 = setValues[i];\n\n if (innerDeepEqual(key1, key2, strict, memo) && innerDeepEqual(item1, map.get(key2), strict, memo)) {\n set.delete(key2);\n return true;\n }\n }\n\n return false;\n}\n\nfunction mapEquiv(a, b, strict, memo) {\n var set = null;\n var aEntries = arrayFromMap(a);\n\n for (var i = 0; i < aEntries.length; i++) {\n var _aEntries$i = _slicedToArray(aEntries[i], 2),\n key = _aEntries$i[0],\n item1 = _aEntries$i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n } else {\n // By directly retrieving the value we prevent another b.has(key) check in\n // almost all possible cases.\n var item2 = b.get(key);\n\n if (item2 === undefined && !b.has(key) || !innerDeepEqual(item1, item2, strict, memo)) {\n if (strict) return false; // Fast path to detect missing string, symbol, undefined and null\n // keys.\n\n if (!mapMightHaveLoosePrim(a, b, key, item1, memo)) return false;\n\n if (set === null) {\n set = new Set();\n }\n\n set.add(key);\n }\n }\n }\n\n if (set !== null) {\n var bEntries = arrayFromMap(b);\n\n for (var _i2 = 0; _i2 < bEntries.length; _i2++) {\n var _bEntries$_i = _slicedToArray(bEntries[_i2], 2),\n key = _bEntries$_i[0],\n item = _bEntries$_i[1];\n\n if (_typeof(key) === 'object' && key !== null) {\n if (!mapHasEqualEntry(set, a, key, item, strict, memo)) return false;\n } else if (!strict && (!a.has(key) || !innerDeepEqual(a.get(key), item, false, memo)) && !mapHasEqualEntry(set, a, key, item, false, memo)) {\n return false;\n }\n }\n\n return set.size === 0;\n }\n\n return true;\n}\n\nfunction objEquiv(a, b, strict, keys, memos, iterationType) {\n // Sets and maps don't have their entries accessible via normal object\n // properties.\n var i = 0;\n\n if (iterationType === kIsSet) {\n if (!setEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsMap) {\n if (!mapEquiv(a, b, strict, memos)) {\n return false;\n }\n } else if (iterationType === kIsArray) {\n for (; i < a.length; i++) {\n if (hasOwnProperty(a, i)) {\n if (!hasOwnProperty(b, i) || !innerDeepEqual(a[i], b[i], strict, memos)) {\n return false;\n }\n } else if (hasOwnProperty(b, i)) {\n return false;\n } else {\n // Array is sparse.\n var keysA = Object.keys(a);\n\n for (; i < keysA.length; i++) {\n var key = keysA[i];\n\n if (!hasOwnProperty(b, key) || !innerDeepEqual(a[key], b[key], strict, memos)) {\n return false;\n }\n }\n\n if (keysA.length !== Object.keys(b).length) {\n return false;\n }\n\n return true;\n }\n }\n } // The pair must have equivalent values for every corresponding key.\n // Possibly expensive deep test:\n\n\n for (i = 0; i < keys.length; i++) {\n var _key = keys[i];\n\n if (!innerDeepEqual(a[_key], b[_key], strict, memos)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction isDeepEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kLoose);\n}\n\nfunction isDeepStrictEqual(val1, val2) {\n return innerDeepEqual(val1, val2, kStrict);\n}\n\nmodule.exports = {\n isDeepEqual: isDeepEqual,\n isDeepStrictEqual: isDeepStrictEqual\n};","'use strict'\n// base-x encoding / decoding\n// Copyright (c) 2018 base-x contributors\n// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)\n// Distributed under the MIT software license, see the accompanying\n// file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n// @ts-ignore\nvar _Buffer = require('safe-buffer').Buffer\nfunction base (ALPHABET) {\n if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }\n var BASE_MAP = new Uint8Array(256)\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i)\n var xc = x.charCodeAt(0)\n if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }\n BASE_MAP[xc] = i\n }\n var BASE = ALPHABET.length\n var LEADER = ALPHABET.charAt(0)\n var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up\n var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up\n function encode (source) {\n if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) }\n if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') }\n if (source.length === 0) { return '' }\n // Skip & count leading zeroes.\n var zeroes = 0\n var length = 0\n var pbegin = 0\n var pend = source.length\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++\n zeroes++\n }\n // Allocate enough space in big-endian base58 representation.\n var size = ((pend - pbegin) * iFACTOR + 1) >>> 0\n var b58 = new Uint8Array(size)\n // Process the bytes.\n while (pbegin !== pend) {\n var carry = source[pbegin]\n // Apply \"b58 = b58 * 256 + ch\".\n var i = 0\n for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {\n carry += (256 * b58[it1]) >>> 0\n b58[it1] = (carry % BASE) >>> 0\n carry = (carry / BASE) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n pbegin++\n }\n // Skip leading zeroes in base58 result.\n var it2 = size - length\n while (it2 !== size && b58[it2] === 0) {\n it2++\n }\n // Translate the result into a string.\n var str = LEADER.repeat(zeroes)\n for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }\n return str\n }\n function decodeUnsafe (source) {\n if (typeof source !== 'string') { throw new TypeError('Expected String') }\n if (source.length === 0) { return _Buffer.alloc(0) }\n var psz = 0\n // Skip and count leading '1's.\n var zeroes = 0\n var length = 0\n while (source[psz] === LEADER) {\n zeroes++\n psz++\n }\n // Allocate enough space in big-endian base256 representation.\n var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.\n var b256 = new Uint8Array(size)\n // Process the characters.\n while (source[psz]) {\n // Decode character\n var carry = BASE_MAP[source.charCodeAt(psz)]\n // Invalid character\n if (carry === 255) { return }\n var i = 0\n for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {\n carry += (BASE * b256[it3]) >>> 0\n b256[it3] = (carry % 256) >>> 0\n carry = (carry / 256) >>> 0\n }\n if (carry !== 0) { throw new Error('Non-zero carry') }\n length = i\n psz++\n }\n // Skip leading zeroes in b256.\n var it4 = size - length\n while (it4 !== size && b256[it4] === 0) {\n it4++\n }\n var vch = _Buffer.allocUnsafe(zeroes + (size - it4))\n vch.fill(0x00, 0, zeroes)\n var j = zeroes\n while (it4 !== size) {\n vch[j++] = b256[it4++]\n }\n return vch\n }\n function decode (string) {\n var buffer = decodeUnsafe(string)\n if (buffer) { return buffer }\n throw new Error('Non-base' + BASE + ' character')\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n }\n}\nmodule.exports = base\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n",";(function (globalObject) {\r\n 'use strict';\r\n\r\n/*\r\n * bignumber.js v9.1.1\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\n var BigNumber,\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n /*\r\n * Create and return a BigNumber constructor.\r\n */\r\n function clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, P.lt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, P.gt);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n function maxOrMin(args, method) {\r\n var n,\r\n i = 1,\r\n m = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n n = new BigNumber(args[i]);\r\n\r\n // If any number is NaN, return NaN.\r\n if (!n.s) {\r\n m = n;\r\n break;\r\n } else if (method.call(m, n)) {\r\n m = n;\r\n }\r\n }\r\n\r\n return m;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = n / pows10[d - j - 1] % 10 | 0;\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n }\r\n\r\n\r\n // PRIVATE HELPER FUNCTIONS\r\n\r\n // These functions don't need access to variables,\r\n // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n function bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n }\r\n\r\n\r\n // Return a coefficient array as a string of base 10 digits.\r\n function coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n }\r\n\r\n\r\n // Compare the value of BigNumbers x and y.\r\n function compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n }\r\n\r\n\r\n /*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\n function intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n }\r\n\r\n\r\n // Assumes finite n.\r\n function isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n }\r\n\r\n\r\n function toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n }\r\n\r\n\r\n function toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n }\r\n\r\n\r\n // EXPORT\r\n\r\n\r\n BigNumber = clone();\r\n BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () { return BigNumber; });\r\n\r\n // Node.js and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = BigNumber;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalObject) {\r\n globalObject = typeof self != 'undefined' && self ? self : window;\r\n }\r\n\r\n globalObject.BigNumber = BigNumber;\r\n }\r\n})(this);\r\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","/* bignumber.js v1.3.0 https://github.com/MikeMcl/bignumber.js/LICENCE */\n\n/*jslint bitwise: true, eqeq: true, plusplus: true, sub: true, white: true, maxerr: 500 */\n/*global module */\n\n/*\n bignumber.js v1.3.0\n A JavaScript library for arbitrary-precision arithmetic.\n https://github.com/MikeMcl/bignumber.js\n Copyright (c) 2012 Michael Mclaughlin \n MIT Expat Licence\n*/\n\n/*********************************** DEFAULTS ************************************/\n\n/*\n * The default values below must be integers within the stated ranges (inclusive).\n * Most of these values can be changed during run-time using BigNumber.config().\n */\n\n/*\n * The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP,\n * MAX_EXP, and the argument to toFixed, toPrecision and toExponential, beyond\n * which an exception is thrown (if ERRORS is true).\n */\nvar MAX = 1E9, // 0 to 1e+9\n\n // Limit of magnitude of exponent argument to toPower.\n MAX_POWER = 1E6, // 1 to 1e+6\n\n // The maximum number of decimal places for operations involving division.\n DECIMAL_PLACES = 20, // 0 to MAX\n\n /*\n * The rounding mode used when rounding to the above decimal places, and when\n * using toFixed, toPrecision and toExponential, and round (default value).\n * UP 0 Away from zero.\n * DOWN 1 Towards zero.\n * CEIL 2 Towards +Infinity.\n * FLOOR 3 Towards -Infinity.\n * HALF_UP 4 Towards nearest neighbour. If equidistant, up.\n * HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\n * HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\n * HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\n * HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\n */\n ROUNDING_MODE = 4, // 0 to 8\n\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\n\n // The exponent value at and beneath which toString returns exponential notation.\n // Number type: -7\n TO_EXP_NEG = -7, // 0 to -MAX\n\n // The exponent value at and above which toString returns exponential notation.\n // Number type: 21\n TO_EXP_POS = 21, // 0 to MAX\n\n // RANGE : [MIN_EXP, MAX_EXP]\n\n // The minimum exponent value, beneath which underflow to zero occurs.\n // Number type: -324 (5e-324)\n MIN_EXP = -MAX, // -1 to -MAX\n\n // The maximum exponent value, above which overflow to Infinity occurs.\n // Number type: 308 (1.7976931348623157e+308)\n MAX_EXP = MAX, // 1 to MAX\n\n // Whether BigNumber Errors are ever thrown.\n // CHANGE parseInt to parseFloat if changing ERRORS to false.\n ERRORS = true, // true or false\n parse = parseInt, // parseInt or parseFloat\n\n/***********************************************************************************/\n\n P = BigNumber.prototype,\n DIGITS = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_',\n outOfRange,\n id = 0,\n isValid = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\n trim = String.prototype.trim || function () {return this.replace(/^\\s+|\\s+$/g, '')},\n ONE = BigNumber(1);\n\n\n// CONSTRUCTOR\n\n\n/*\n * The exported function.\n * Create and return a new instance of a BigNumber object.\n *\n * n {number|string|BigNumber} A numeric value.\n * [b] {number} The base of n. Integer, 2 to 64 inclusive.\n */\nfunction BigNumber( n, b ) {\n var e, i, isNum, digits, valid, orig,\n x = this;\n\n // Enable constructor usage without new.\n if ( !(x instanceof BigNumber) ) {\n return new BigNumber( n, b )\n }\n\n // Duplicate.\n if ( n instanceof BigNumber ) {\n id = 0;\n\n // e is undefined.\n if ( b !== e ) {\n n += ''\n } else {\n x['s'] = n['s'];\n x['e'] = n['e'];\n x['c'] = ( n = n['c'] ) ? n.slice() : n;\n return;\n }\n }\n\n // If number, check if minus zero.\n if ( typeof n != 'string' ) {\n n = ( isNum = typeof n == 'number' ||\n Object.prototype.toString.call(n) == '[object Number]' ) &&\n n === 0 && 1 / n < 0 ? '-0' : n + '';\n }\n\n orig = n;\n\n if ( b === e && isValid.test(n) ) {\n\n // Determine sign.\n x['s'] = n.charAt(0) == '-' ? ( n = n.slice(1), -1 ) : 1;\n\n // Either n is not a valid BigNumber or a base has been specified.\n } else {\n\n // Enable exponential notation to be used with base 10 argument.\n // Ensure return value is rounded to DECIMAL_PLACES as with other bases.\n if ( b == 10 ) {\n\n return setMode( n, DECIMAL_PLACES, ROUNDING_MODE );\n }\n\n n = trim.call(n).replace( /^\\+(?!-)/, '' );\n\n x['s'] = n.charAt(0) == '-' ? ( n = n.replace( /^-(?!-)/, '' ), -1 ) : 1;\n\n if ( b != null ) {\n\n if ( ( b == (b | 0) || !ERRORS ) &&\n !( outOfRange = !( b >= 2 && b < 65 ) ) ) {\n\n digits = '[' + DIGITS.slice( 0, b = b | 0 ) + ']+';\n\n // Before non-decimal number validity test and base conversion\n // remove the `.` from e.g. '1.', and replace e.g. '.1' with '0.1'.\n n = n.replace( /\\.$/, '' ).replace( /^\\./, '0.' );\n\n // Any number in exponential form will fail due to the e+/-.\n if ( valid = new RegExp(\n '^' + digits + '(?:\\\\.' + digits + ')?$', b < 37 ? 'i' : '' ).test(n) ) {\n\n if ( isNum ) {\n\n if ( n.replace( /^0\\.0*|\\./, '' ).length > 15 ) {\n\n // 'new BigNumber() number type has more than 15 significant digits: {n}'\n ifExceptionsThrow( orig, 0 );\n }\n\n // Prevent later check for length on converted number.\n isNum = !isNum;\n }\n n = convert( n, 10, b, x['s'] );\n\n } else if ( n != 'Infinity' && n != 'NaN' ) {\n\n // 'new BigNumber() not a base {b} number: {n}'\n ifExceptionsThrow( orig, 1, b );\n n = 'NaN';\n }\n } else {\n\n // 'new BigNumber() base not an integer: {b}'\n // 'new BigNumber() base out of range: {b}'\n ifExceptionsThrow( b, 2 );\n\n // Ignore base.\n valid = isValid.test(n);\n }\n } else {\n valid = isValid.test(n);\n }\n\n if ( !valid ) {\n\n // Infinity/NaN\n x['c'] = x['e'] = null;\n\n // NaN\n if ( n != 'Infinity' ) {\n\n // No exception on NaN.\n if ( n != 'NaN' ) {\n\n // 'new BigNumber() not a number: {n}'\n ifExceptionsThrow( orig, 3 );\n }\n x['s'] = null;\n }\n id = 0;\n\n return;\n }\n }\n\n // Decimal point?\n if ( ( e = n.indexOf('.') ) > -1 ) {\n n = n.replace( '.', '' );\n }\n\n // Exponential form?\n if ( ( i = n.search( /e/i ) ) > 0 ) {\n\n // Determine exponent.\n if ( e < 0 ) {\n e = i;\n }\n e += +n.slice( i + 1 );\n n = n.substring( 0, i );\n\n } else if ( e < 0 ) {\n\n // Integer.\n e = n.length;\n }\n\n // Determine leading zeros.\n for ( i = 0; n.charAt(i) == '0'; i++ ) {\n }\n\n b = n.length;\n\n // Disallow numbers with over 15 significant digits if number type.\n if ( isNum && b > 15 && n.slice(i).length > 15 ) {\n\n // 'new BigNumber() number type has more than 15 significant digits: {n}'\n ifExceptionsThrow( orig, 0 );\n }\n id = 0;\n\n // Overflow?\n if ( ( e -= i + 1 ) > MAX_EXP ) {\n\n // Infinity.\n x['c'] = x['e'] = null;\n\n // Zero or underflow?\n } else if ( i == b || e < MIN_EXP ) {\n\n // Zero.\n x['c'] = [ x['e'] = 0 ];\n } else {\n\n // Determine trailing zeros.\n for ( ; n.charAt(--b) == '0'; ) {\n }\n\n x['e'] = e;\n x['c'] = [];\n\n // Convert string to array of digits (without leading and trailing zeros).\n for ( e = 0; i <= b; x['c'][e++] = +n.charAt(i++) ) {\n }\n }\n}\n\n\n// CONSTRUCTOR PROPERTIES/METHODS\n\n\nBigNumber['ROUND_UP'] = 0;\nBigNumber['ROUND_DOWN'] = 1;\nBigNumber['ROUND_CEIL'] = 2;\nBigNumber['ROUND_FLOOR'] = 3;\nBigNumber['ROUND_HALF_UP'] = 4;\nBigNumber['ROUND_HALF_DOWN'] = 5;\nBigNumber['ROUND_HALF_EVEN'] = 6;\nBigNumber['ROUND_HALF_CEIL'] = 7;\nBigNumber['ROUND_HALF_FLOOR'] = 8;\n\n/*\n * Create an instance from a Buffer\n */\nBigNumber['fromBuffer'] = function (buf, opts) {\n\n if (!opts) opts = {};\n\n var endian = { 1 : 'big', '-1' : 'little' }[opts.endian]\n || opts.endian || 'big'\n ;\n\n var size = opts.size === 'auto' ? Math.ceil(buf.length) : (opts.size || 1);\n\n if (buf.length % size !== 0) {\n throw new RangeError('Buffer length (' + buf.length + ')'\n + ' must be a multiple of size (' + size + ')'\n );\n }\n\n var hex = [];\n for (var i = 0; i < buf.length; i += size) {\n var chunk = [];\n for (var j = 0; j < size; j++) {\n chunk.push(buf[\n i + (endian === 'big' ? j : (size - j - 1))\n ]);\n }\n\n hex.push(chunk\n .map(function (c) {\n return (c < 16 ? '0' : '') + c.toString(16);\n })\n .join('')\n );\n }\n\n return BigNumber(hex.join(''), 16);\n\n};\n\n/*\n * Configure infrequently-changing library-wide settings.\n *\n * Accept an object or an argument list, with one or many of the following\n * properties or parameters respectively:\n * [ DECIMAL_PLACES [, ROUNDING_MODE [, EXPONENTIAL_AT [, RANGE [, ERRORS ]]]]]\n *\n * E.g.\n * BigNumber.config(20, 4) is equivalent to\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\n * Ignore properties/parameters set to null or undefined.\n *\n * Return an object with the properties current values.\n */\nBigNumber['config'] = function () {\n var v, p,\n i = 0,\n r = {},\n a = arguments,\n o = a[0],\n c = 'config',\n inRange = function ( n, lo, hi ) {\n return !( ( outOfRange = n < lo || n > hi ) ||\n parse(n) != n && n !== 0 );\n },\n has = o && typeof o == 'object'\n ? function () {if ( o.hasOwnProperty(p) ) return ( v = o[p] ) != null}\n : function () {if ( a.length > i ) return ( v = a[i++] ) != null};\n\n // [DECIMAL_PLACES] {number} Integer, 0 to MAX inclusive.\n if ( has( p = 'DECIMAL_PLACES' ) ) {\n\n if ( inRange( v, 0, MAX ) ) {\n DECIMAL_PLACES = v | 0;\n } else {\n\n // 'config() DECIMAL_PLACES not an integer: {v}'\n // 'config() DECIMAL_PLACES out of range: {v}'\n ifExceptionsThrow( v, p, c );\n }\n }\n r[p] = DECIMAL_PLACES;\n\n // [ROUNDING_MODE] {number} Integer, 0 to 8 inclusive.\n if ( has( p = 'ROUNDING_MODE' ) ) {\n\n if ( inRange( v, 0, 8 ) ) {\n ROUNDING_MODE = v | 0;\n } else {\n\n // 'config() ROUNDING_MODE not an integer: {v}'\n // 'config() ROUNDING_MODE out of range: {v}'\n ifExceptionsThrow( v, p, c );\n }\n }\n r[p] = ROUNDING_MODE;\n\n /*\n * [EXPONENTIAL_AT] {number|number[]} Integer, -MAX to MAX inclusive or\n * [ integer -MAX to 0 inclusive, 0 to MAX inclusive ].\n */\n if ( has( p = 'EXPONENTIAL_AT' ) ) {\n\n if ( inRange( v, -MAX, MAX ) ) {\n TO_EXP_NEG = -( TO_EXP_POS = ~~( v < 0 ? -v : +v ) );\n } else if ( !outOfRange && v && inRange( v[0], -MAX, 0 ) &&\n inRange( v[1], 0, MAX ) ) {\n TO_EXP_NEG = ~~v[0];\n TO_EXP_POS = ~~v[1];\n } else {\n\n // 'config() EXPONENTIAL_AT not an integer or not [integer, integer]: {v}'\n // 'config() EXPONENTIAL_AT out of range or not [negative, positive: {v}'\n ifExceptionsThrow( v, p, c, 1 );\n }\n }\n r[p] = [ TO_EXP_NEG, TO_EXP_POS ];\n\n /*\n * [RANGE][ {number|number[]} Non-zero integer, -MAX to MAX inclusive or\n * [ integer -MAX to -1 inclusive, integer 1 to MAX inclusive ].\n */\n if ( has( p = 'RANGE' ) ) {\n\n if ( inRange( v, -MAX, MAX ) && ~~v ) {\n MIN_EXP = -( MAX_EXP = ~~( v < 0 ? -v : +v ) );\n } else if ( !outOfRange && v && inRange( v[0], -MAX, -1 ) &&\n inRange( v[1], 1, MAX ) ) {\n MIN_EXP = ~~v[0], MAX_EXP = ~~v[1];\n } else {\n\n // 'config() RANGE not a non-zero integer or not [integer, integer]: {v}'\n // 'config() RANGE out of range or not [negative, positive: {v}'\n ifExceptionsThrow( v, p, c, 1, 1 );\n }\n }\n r[p] = [ MIN_EXP, MAX_EXP ];\n\n // [ERRORS] {boolean|number} true, false, 1 or 0.\n if ( has( p = 'ERRORS' ) ) {\n\n if ( v === !!v || v === 1 || v === 0 ) {\n parse = ( outOfRange = id = 0, ERRORS = !!v )\n ? parseInt\n : parseFloat;\n } else {\n\n // 'config() ERRORS not a boolean or binary digit: {v}'\n ifExceptionsThrow( v, p, c, 0, 0, 1 );\n }\n }\n r[p] = ERRORS;\n\n return r;\n};\n\n\n// PRIVATE FUNCTIONS\n\n\n// Assemble error messages. Throw BigNumber Errors.\nfunction ifExceptionsThrow( arg, i, j, isArray, isRange, isErrors) {\n\n if ( ERRORS ) {\n var error,\n method = ['new BigNumber', 'cmp', 'div', 'eq', 'gt', 'gte', 'lt',\n 'lte', 'minus', 'mod', 'plus', 'times', 'toFr'\n ][ id ? id < 0 ? -id : id : 1 / id < 0 ? 1 : 0 ] + '()',\n message = outOfRange ? ' out of range' : ' not a' +\n ( isRange ? ' non-zero' : 'n' ) + ' integer';\n\n message = ( [\n method + ' number type has more than 15 significant digits',\n method + ' not a base ' + j + ' number',\n method + ' base' + message,\n method + ' not a number' ][i] ||\n j + '() ' + i + ( isErrors\n ? ' not a boolean or binary digit'\n : message + ( isArray\n ? ' or not [' + ( outOfRange\n ? ' negative, positive'\n : ' integer, integer' ) + ' ]'\n : '' ) ) ) + ': ' + arg;\n\n outOfRange = id = 0;\n error = new Error(message);\n error['name'] = 'BigNumber Error';\n\n throw error;\n }\n}\n\n\n/*\n * Convert a numeric string of baseIn to a numeric string of baseOut.\n */\nfunction convert( nStr, baseOut, baseIn, sign ) {\n var e, dvs, dvd, nArr, fracArr, fracBN;\n\n // Convert string of base bIn to an array of numbers of baseOut.\n // Eg. strToArr('255', 10) where baseOut is 16, returns [15, 15].\n // Eg. strToArr('ff', 16) where baseOut is 10, returns [2, 5, 5].\n function strToArr( str, bIn ) {\n var j,\n i = 0,\n strL = str.length,\n arrL,\n arr = [0];\n\n for ( bIn = bIn || baseIn; i < strL; i++ ) {\n\n for ( arrL = arr.length, j = 0; j < arrL; arr[j] *= bIn, j++ ) {\n }\n\n for ( arr[0] += DIGITS.indexOf( str.charAt(i) ), j = 0;\n j < arr.length;\n j++ ) {\n\n if ( arr[j] > baseOut - 1 ) {\n\n if ( arr[j + 1] == null ) {\n arr[j + 1] = 0;\n }\n arr[j + 1] += arr[j] / baseOut ^ 0;\n arr[j] %= baseOut;\n }\n }\n }\n\n return arr.reverse();\n }\n\n // Convert array to string.\n // E.g. arrToStr( [9, 10, 11] ) becomes '9ab' (in bases above 11).\n function arrToStr( arr ) {\n var i = 0,\n arrL = arr.length,\n str = '';\n\n for ( ; i < arrL; str += DIGITS.charAt( arr[i++] ) ) {\n }\n\n return str;\n }\n\n if ( baseIn < 37 ) {\n nStr = nStr.toLowerCase();\n }\n\n /*\n * If non-integer convert integer part and fraction part separately.\n * Convert the fraction part as if it is an integer than use division to\n * reduce it down again to a value less than one.\n */\n if ( ( e = nStr.indexOf( '.' ) ) > -1 ) {\n\n /*\n * Calculate the power to which to raise the base to get the number\n * to divide the fraction part by after it has been converted as an\n * integer to the required base.\n */\n e = nStr.length - e - 1;\n\n // Use toFixed to avoid possible exponential notation.\n dvs = strToArr( new BigNumber(baseIn)['pow'](e)['toF'](), 10 );\n\n nArr = nStr.split('.');\n\n // Convert the base of the fraction part (as integer).\n dvd = strToArr( nArr[1] );\n\n // Convert the base of the integer part.\n nArr = strToArr( nArr[0] );\n\n // Result will be a BigNumber with a value less than 1.\n fracBN = divide( dvd, dvs, dvd.length - dvs.length, sign, baseOut,\n // Is least significant digit of integer part an odd number?\n nArr[nArr.length - 1] & 1 );\n\n fracArr = fracBN['c'];\n\n // e can be <= 0 ( if e == 0, fracArr is [0] or [1] ).\n if ( e = fracBN['e'] ) {\n\n // Append zeros according to the exponent of the result.\n for ( ; ++e; fracArr.unshift(0) ) {\n }\n\n // Append the fraction part to the converted integer part.\n nStr = arrToStr(nArr) + '.' + arrToStr(fracArr);\n\n // fracArr is [1].\n // Fraction digits rounded up, so increment last digit of integer part.\n } else if ( fracArr[0] ) {\n\n if ( nArr[ e = nArr.length - 1 ] < baseOut - 1 ) {\n ++nArr[e];\n nStr = arrToStr(nArr);\n } else {\n nStr = new BigNumber( arrToStr(nArr),\n baseOut )['plus'](ONE)['toS'](baseOut);\n }\n\n // fracArr is [0]. No fraction digits.\n } else {\n nStr = arrToStr(nArr);\n }\n } else {\n\n // Simple integer. Convert base.\n nStr = arrToStr( strToArr(nStr) );\n }\n\n return nStr;\n}\n\n\n// Perform division in the specified base. Called by div and convert.\nfunction divide( dvd, dvs, exp, s, base, isOdd ) {\n var dvsL, dvsT, next, cmp, remI,\n dvsZ = dvs.slice(),\n dvdI = dvsL = dvs.length,\n dvdL = dvd.length,\n rem = dvd.slice( 0, dvsL ),\n remL = rem.length,\n quo = new BigNumber(ONE),\n qc = quo['c'] = [],\n qi = 0,\n dig = DECIMAL_PLACES + ( quo['e'] = exp ) + 1;\n\n quo['s'] = s;\n s = dig < 0 ? 0 : dig;\n\n // Add zeros to make remainder as long as divisor.\n for ( ; remL++ < dvsL; rem.push(0) ) {\n }\n\n // Create version of divisor with leading zero.\n dvsZ.unshift(0);\n\n do {\n\n // 'next' is how many times the divisor goes into the current remainder.\n for ( next = 0; next < base; next++ ) {\n\n // Compare divisor and remainder.\n if ( dvsL != ( remL = rem.length ) ) {\n cmp = dvsL > remL ? 1 : -1;\n } else {\n for ( remI = -1, cmp = 0; ++remI < dvsL; ) {\n\n if ( dvs[remI] != rem[remI] ) {\n cmp = dvs[remI] > rem[remI] ? 1 : -1;\n break;\n }\n }\n }\n\n // Subtract divisor from remainder (if divisor < remainder).\n if ( cmp < 0 ) {\n\n // Remainder cannot be more than one digit longer than divisor.\n // Equalise lengths using divisor with extra leading zero?\n for ( dvsT = remL == dvsL ? dvs : dvsZ; remL; ) {\n\n if ( rem[--remL] < dvsT[remL] ) {\n\n for ( remI = remL;\n remI && !rem[--remI];\n rem[remI] = base - 1 ) {\n }\n --rem[remI];\n rem[remL] += base;\n }\n rem[remL] -= dvsT[remL];\n }\n for ( ; !rem[0]; rem.shift() ) {\n }\n } else {\n break;\n }\n }\n\n // Add the 'next' digit to the result array.\n qc[qi++] = cmp ? next : ++next;\n\n // Update the remainder.\n rem[0] && cmp\n ? ( rem[remL] = dvd[dvdI] || 0 )\n : ( rem = [ dvd[dvdI] ] );\n\n } while ( ( dvdI++ < dvdL || rem[0] != null ) && s-- );\n\n // Leading zero? Do not remove if result is simply zero (qi == 1).\n if ( !qc[0] && qi != 1 ) {\n\n // There can't be more than one zero.\n --quo['e'];\n qc.shift();\n }\n\n // Round?\n if ( qi > dig ) {\n rnd( quo, DECIMAL_PLACES, base, isOdd, rem[0] != null );\n }\n\n // Overflow?\n if ( quo['e'] > MAX_EXP ) {\n\n // Infinity.\n quo['c'] = quo['e'] = null;\n\n // Underflow?\n } else if ( quo['e'] < MIN_EXP ) {\n\n // Zero.\n quo['c'] = [quo['e'] = 0];\n }\n\n return quo;\n}\n\n\n/*\n * Return a string representing the value of BigNumber n in normal or\n * exponential notation rounded to the specified decimal places or\n * significant digits.\n * Called by toString, toExponential (exp 1), toFixed, and toPrecision (exp 2).\n * d is the index (with the value in normal notation) of the digit that may be\n * rounded up.\n */\nfunction format( n, d, exp ) {\n\n // Initially, i is the number of decimal places required.\n var i = d - (n = new BigNumber(n))['e'],\n c = n['c'];\n\n // +-Infinity or NaN?\n if ( !c ) {\n return n['toS']();\n }\n\n // Round?\n if ( c.length > ++d ) {\n rnd( n, i, 10 );\n }\n\n // Recalculate d if toFixed as n['e'] may have changed if value rounded up.\n i = c[0] == 0 ? i + 1 : exp ? d : n['e'] + i + 1;\n\n // Append zeros?\n for ( ; c.length < i; c.push(0) ) {\n }\n i = n['e'];\n\n /*\n * toPrecision returns exponential notation if the number of significant\n * digits specified is less than the number of digits necessary to\n * represent the integer part of the value in normal notation.\n */\n return exp == 1 || exp == 2 && ( --d < i || i <= TO_EXP_NEG )\n\n // Exponential notation.\n ? ( n['s'] < 0 && c[0] ? '-' : '' ) + ( c.length > 1\n ? ( c.splice( 1, 0, '.' ), c.join('') )\n : c[0] ) + ( i < 0 ? 'e' : 'e+' ) + i\n\n // Normal notation.\n : n['toS']();\n}\n\n\n// Round if necessary.\n// Called by divide, format, setMode and sqrt.\nfunction rnd( x, dp, base, isOdd, r ) {\n var xc = x['c'],\n isNeg = x['s'] < 0,\n half = base / 2,\n i = x['e'] + dp + 1,\n\n // 'next' is the digit after the digit that may be rounded up.\n next = xc[i],\n\n /*\n * 'more' is whether there are digits after 'next'.\n * E.g.\n * 0.005 (e = -3) to be rounded to 0 decimal places (dp = 0) gives i = -2\n * The 'next' digit is zero, and there ARE 'more' digits after it.\n * 0.5 (e = -1) dp = 0 gives i = 0\n * The 'next' digit is 5 and there are no 'more' digits after it.\n */\n more = r || i < 0 || xc[i + 1] != null;\n\n r = ROUNDING_MODE < 4\n ? ( next != null || more ) &&\n ( ROUNDING_MODE == 0 ||\n ROUNDING_MODE == 2 && !isNeg ||\n ROUNDING_MODE == 3 && isNeg )\n : next > half || next == half &&\n ( ROUNDING_MODE == 4 || more ||\n\n /*\n * isOdd is used in base conversion and refers to the least significant\n * digit of the integer part of the value to be converted. The fraction\n * part is rounded by this method separately from the integer part.\n */\n ROUNDING_MODE == 6 && ( xc[i - 1] & 1 || !dp && isOdd ) ||\n ROUNDING_MODE == 7 && !isNeg ||\n ROUNDING_MODE == 8 && isNeg );\n\n if ( i < 1 || !xc[0] ) {\n xc.length = 0;\n xc.push(0);\n\n if ( r ) {\n\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\n xc[0] = 1;\n x['e'] = -dp;\n } else {\n\n // Zero.\n x['e'] = 0;\n }\n\n return x;\n }\n\n // Remove any digits after the required decimal places.\n xc.length = i--;\n\n // Round up?\n if ( r ) {\n\n // Rounding up may mean the previous digit has to be rounded up and so on.\n for ( --base; ++xc[i] > base; ) {\n xc[i] = 0;\n\n if ( !i-- ) {\n ++x['e'];\n xc.unshift(1);\n }\n }\n }\n\n // Remove trailing zeros.\n for ( i = xc.length; !xc[--i]; xc.pop() ) {\n }\n\n return x;\n}\n\n\n// Round after setting the appropriate rounding mode.\n// Handles ceil, floor and round.\nfunction setMode( x, dp, rm ) {\n var r = ROUNDING_MODE;\n\n ROUNDING_MODE = rm;\n x = new BigNumber(x);\n x['c'] && rnd( x, dp, 10 );\n ROUNDING_MODE = r;\n\n return x;\n}\n\n\n// PROTOTYPE/INSTANCE METHODS\n\n\n/*\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\n */\nP['abs'] = P['absoluteValue'] = function () {\n var x = new BigNumber(this);\n\n if ( x['s'] < 0 ) {\n x['s'] = 1;\n }\n\n return x;\n};\n\n/*\n * Return the bit length of the number.\n */\nP['bitLength'] = function () {\n return this.toString(2).length;\n};\n\n\n/*\n * Return a new BigNumber whose value is the value of this BigNumber\n * rounded to a whole number in the direction of Infinity.\n */\nP['ceil'] = function () {\n return setMode( this, 0, 2 );\n};\n\n\n/*\n * Return\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\n * 0 if they have the same value,\n * or null if the value of either is NaN.\n */\nP['comparedTo'] = P['cmp'] = function ( y, b ) {\n var a,\n x = this,\n xc = x['c'],\n yc = ( id = -id, y = new BigNumber( y, b ) )['c'],\n i = x['s'],\n j = y['s'],\n k = x['e'],\n l = y['e'];\n\n // Either NaN?\n if ( !i || !j ) {\n return null;\n }\n\n a = xc && !xc[0], b = yc && !yc[0];\n\n // Either zero?\n if ( a || b ) {\n return a ? b ? 0 : -j : i;\n }\n\n // Signs differ?\n if ( i != j ) {\n return i;\n }\n\n // Either Infinity?\n if ( a = i < 0, b = k == l, !xc || !yc ) {\n return b ? 0 : !xc ^ a ? 1 : -1;\n }\n\n // Compare exponents.\n if ( !b ) {\n return k > l ^ a ? 1 : -1;\n }\n\n // Compare digit by digit.\n for ( i = -1,\n j = ( k = xc.length ) < ( l = yc.length ) ? k : l;\n ++i < j; ) {\n\n if ( xc[i] != yc[i] ) {\n return xc[i] > yc[i] ^ a ? 1 : -1;\n }\n }\n // Compare lengths.\n return k == l ? 0 : k > l ^ a ? 1 : -1;\n};\n\n\n/*\n * n / 0 = I\n * n / N = N\n * n / I = 0\n * 0 / n = 0\n * 0 / 0 = N\n * 0 / N = N\n * 0 / I = 0\n * N / n = N\n * N / 0 = N\n * N / N = N\n * N / I = N\n * I / n = I\n * I / 0 = I\n * I / N = N\n * I / I = N\n *\n * Return a new BigNumber whose value is the value of this BigNumber\n * divided by the value of BigNumber(y, b), rounded according to\n * DECIMAL_PLACES and ROUNDING_MODE.\n */\nP['dividedBy'] = P['div'] = function ( y, b ) {\n var xc = this['c'],\n xe = this['e'],\n xs = this['s'],\n yc = ( id = 2, y = new BigNumber( y, b ) )['c'],\n ye = y['e'],\n ys = y['s'],\n s = xs == ys ? 1 : -1;\n\n // Either NaN/Infinity/0?\n return !xe && ( !xc || !xc[0] ) || !ye && ( !yc || !yc[0] )\n\n // Either NaN?\n ? new BigNumber( !xs || !ys ||\n\n // Both 0 or both Infinity?\n ( xc ? yc && xc[0] == yc[0] : !yc )\n\n // Return NaN.\n ? NaN\n\n // x is 0 or y is Infinity?\n : xc && xc[0] == 0 || !yc\n\n // Return +-0.\n ? s * 0\n\n // y is 0. Return +-Infinity.\n : s / 0 )\n\n : divide( xc, yc, xe - ye, s, 10 );\n};\n\n\n/*\n * Return true if the value of this BigNumber is equal to the value of\n * BigNumber(n, b), otherwise returns false.\n */\nP['equals'] = P['eq'] = function ( n, b ) {\n id = 3;\n return this['cmp']( n, b ) === 0;\n};\n\n\n/*\n * Return a new BigNumber whose value is the value of this BigNumber\n * rounded to a whole number in the direction of -Infinity.\n */\nP['floor'] = function () {\n return setMode( this, 0, 3 );\n};\n\n\n/*\n * Return true if the value of this BigNumber is greater than the value of\n * BigNumber(n, b), otherwise returns false.\n */\nP['greaterThan'] = P['gt'] = function ( n, b ) {\n id = 4;\n return this['cmp']( n, b ) > 0;\n};\n\n\n/*\n * Return true if the value of this BigNumber is greater than or equal to\n * the value of BigNumber(n, b), otherwise returns false.\n */\nP['greaterThanOrEqualTo'] = P['gte'] = P['gt'] = function ( n, b ) {\n id = 5;\n return ( b = this['cmp']( n, b ) ) == 1 || b === 0;\n};\n\n\n/*\n * Return true if the value of this BigNumber is a finite number, otherwise\n * returns false.\n */\nP['isFinite'] = P['isF'] = function () {\n return !!this['c'];\n};\n\n\n/*\n * Return true if the value of this BigNumber is NaN, otherwise returns\n * false.\n */\nP['isNaN'] = function () {\n return !this['s'];\n};\n\n\n/*\n * Return true if the value of this BigNumber is negative, otherwise\n * returns false.\n */\nP['isNegative'] = P['isNeg'] = function () {\n return this['s'] < 0;\n};\n\n\n/*\n * Return true if the value of this BigNumber is 0 or -0, otherwise returns\n * false.\n */\nP['isZero'] = P['isZ'] = function () {\n return !!this['c'] && this['c'][0] == 0;\n};\n\n\n/*\n * Return true if the value of this BigNumber is less than the value of\n * BigNumber(n, b), otherwise returns false.\n */\nP['lessThan'] = P['lt'] = function ( n, b ) {\n id = 6;\n return this['cmp']( n, b ) < 0;\n};\n\n\n/*\n * Return true if the value of this BigNumber is less than or equal to the\n * value of BigNumber(n, b), otherwise returns false.\n */\nP['lessThanOrEqualTo'] = P['lte'] = P['le'] = function ( n, b ) {\n id = 7;\n return ( b = this['cmp']( n, b ) ) == -1 || b === 0;\n};\n\n\n/*\n * n - 0 = n\n * n - N = N\n * n - I = -I\n * 0 - n = -n\n * 0 - 0 = 0\n * 0 - N = N\n * 0 - I = -I\n * N - n = N\n * N - 0 = N\n * N - N = N\n * N - I = N\n * I - n = I\n * I - 0 = I\n * I - N = N\n * I - I = N\n *\n * Return a new BigNumber whose value is the value of this BigNumber minus\n * the value of BigNumber(y, b).\n */\nP['minus'] = P['sub'] = function ( y, b ) {\n var d, i, j, xLTy,\n x = this,\n a = x['s'];\n\n b = ( id = 8, y = new BigNumber( y, b ) )['s'];\n\n // Either NaN?\n if ( !a || !b ) {\n return new BigNumber(NaN);\n }\n\n // Signs differ?\n if ( a != b ) {\n return y['s'] = -b, x['plus'](y);\n }\n\n var xc = x['c'],\n xe = x['e'],\n yc = y['c'],\n ye = y['e'];\n\n if ( !xe || !ye ) {\n\n // Either Infinity?\n if ( !xc || !yc ) {\n return xc ? ( y['s'] = -b, y ) : new BigNumber( yc ? x : NaN );\n }\n\n // Either zero?\n if ( !xc[0] || !yc[0] ) {\n\n // y is non-zero?\n return yc[0]\n ? ( y['s'] = -b, y )\n\n // x is non-zero?\n : new BigNumber( xc[0]\n ? x\n\n // Both are zero.\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\n : ROUNDING_MODE == 3 ? -0 : 0 );\n }\n }\n\n // Determine which is the bigger number.\n // Prepend zeros to equalise exponents.\n if ( xc = xc.slice(), a = xe - ye ) {\n d = ( xLTy = a < 0 ) ? ( a = -a, xc ) : ( ye = xe, yc );\n\n for ( d.reverse(), b = a; b--; d.push(0) ) {\n }\n d.reverse();\n } else {\n\n // Exponents equal. Check digit by digit.\n j = ( ( xLTy = xc.length < yc.length ) ? xc : yc ).length;\n\n for ( a = b = 0; b < j; b++ ) {\n\n if ( xc[b] != yc[b] ) {\n xLTy = xc[b] < yc[b];\n break;\n }\n }\n }\n\n // x < y? Point xc to the array of the bigger number.\n if ( xLTy ) {\n d = xc, xc = yc, yc = d;\n y['s'] = -y['s'];\n }\n\n /*\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter\n * as subtraction only needs to start at yc.length.\n */\n if ( ( b = -( ( j = xc.length ) - yc.length ) ) > 0 ) {\n\n for ( ; b--; xc[j++] = 0 ) {\n }\n }\n\n // Subtract yc from xc.\n for ( b = yc.length; b > a; ){\n\n if ( xc[--b] < yc[b] ) {\n\n for ( i = b; i && !xc[--i]; xc[i] = 9 ) {\n }\n --xc[i];\n xc[b] += 10;\n }\n xc[b] -= yc[b];\n }\n\n // Remove trailing zeros.\n for ( ; xc[--j] == 0; xc.pop() ) {\n }\n\n // Remove leading zeros and adjust exponent accordingly.\n for ( ; xc[0] == 0; xc.shift(), --ye ) {\n }\n\n /*\n * No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\n * when neither x or y are Infinity.\n */\n\n // Underflow?\n if ( ye < MIN_EXP || !xc[0] ) {\n\n /*\n * Following IEEE 754 (2008) 6.3,\n * n - n = +0 but n - n = -0 when rounding towards -Infinity.\n */\n if ( !xc[0] ) {\n y['s'] = ROUNDING_MODE == 3 ? -1 : 1;\n }\n\n // Result is zero.\n xc = [ye = 0];\n }\n\n return y['c'] = xc, y['e'] = ye, y;\n};\n\n\n/*\n * n % 0 = N\n * n % N = N\n * 0 % n = 0\n * -0 % n = -0\n * 0 % 0 = N\n * 0 % N = N\n * N % n = N\n * N % 0 = N\n * N % N = N\n *\n * Return a new BigNumber whose value is the value of this BigNumber modulo\n * the value of BigNumber(y, b).\n */\nP['modulo'] = P['mod'] = function ( y, b ) {\n var x = this,\n xc = x['c'],\n yc = ( id = 9, y = new BigNumber( y, b ) )['c'],\n i = x['s'],\n j = y['s'];\n\n // Is x or y NaN, or y zero?\n b = !i || !j || yc && !yc[0];\n\n if ( b || xc && !xc[0] ) {\n return new BigNumber( b ? NaN : x );\n }\n\n x['s'] = y['s'] = 1;\n b = y['cmp'](x) == 1;\n x['s'] = i, y['s'] = j;\n\n return b\n ? new BigNumber(x)\n : ( i = DECIMAL_PLACES, j = ROUNDING_MODE,\n DECIMAL_PLACES = 0, ROUNDING_MODE = 1,\n x = x['div'](y),\n DECIMAL_PLACES = i, ROUNDING_MODE = j,\n this['minus']( x['times'](y) ) );\n};\n\n\n/*\n * Return a new BigNumber whose value is the value of this BigNumber\n * negated, i.e. multiplied by -1.\n */\nP['negated'] = P['neg'] = function () {\n var x = new BigNumber(this);\n\n return x['s'] = -x['s'] || null, x;\n};\n\n\n/*\n * n + 0 = n\n * n + N = N\n * n + I = I\n * 0 + n = n\n * 0 + 0 = 0\n * 0 + N = N\n * 0 + I = I\n * N + n = N\n * N + 0 = N\n * N + N = N\n * N + I = N\n * I + n = I\n * I + 0 = I\n * I + N = N\n * I + I = I\n *\n * Return a new BigNumber whose value is the value of this BigNumber plus\n * the value of BigNumber(y, b).\n */\nP['plus'] = P['add'] = function ( y, b ) {\n var d,\n x = this,\n a = x['s'];\n\n b = ( id = 10, y = new BigNumber( y, b ) )['s'];\n\n // Either NaN?\n if ( !a || !b ) {\n return new BigNumber(NaN);\n }\n\n // Signs differ?\n if ( a != b ) {\n return y['s'] = -b, x['minus'](y);\n }\n\n var xe = x['e'],\n xc = x['c'],\n ye = y['e'],\n yc = y['c'];\n\n if ( !xe || !ye ) {\n\n // Either Infinity?\n if ( !xc || !yc ) {\n\n // Return +-Infinity.\n return new BigNumber( a / 0 );\n }\n\n // Either zero?\n if ( !xc[0] || !yc[0] ) {\n\n // y is non-zero?\n return yc[0]\n ? y\n\n // x is non-zero?\n : new BigNumber( xc[0]\n ? x\n\n // Both are zero. Return zero.\n : a * 0 );\n }\n }\n\n // Prepend zeros to equalise exponents.\n // Note: Faster to use reverse then do unshifts.\n if ( xc = xc.slice(), a = xe - ye ) {\n d = a > 0 ? ( ye = xe, yc ) : ( a = -a, xc );\n\n for ( d.reverse(); a--; d.push(0) ) {\n }\n d.reverse();\n }\n\n // Point xc to the longer array.\n if ( xc.length - yc.length < 0 ) {\n d = yc, yc = xc, xc = d;\n }\n\n /*\n * Only start adding at yc.length - 1 as the\n * further digits of xc can be left as they are.\n */\n for ( a = yc.length, b = 0; a;\n b = ( xc[--a] = xc[a] + yc[a] + b ) / 10 ^ 0, xc[a] %= 10 ) {\n }\n\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\n\n if ( b ) {\n xc.unshift(b);\n\n // Overflow? (MAX_EXP + 1 possible)\n if ( ++ye > MAX_EXP ) {\n\n // Infinity.\n xc = ye = null;\n }\n }\n\n // Remove trailing zeros.\n for ( a = xc.length; xc[--a] == 0; xc.pop() ) {\n }\n\n return y['c'] = xc, y['e'] = ye, y;\n};\n\n\n/*\n * Return a BigNumber whose value is the value of this BigNumber raised to\n * the power e. If e is negative round according to DECIMAL_PLACES and\n * ROUNDING_MODE.\n *\n * e {number} Integer, -MAX_POWER to MAX_POWER inclusive.\n */\nP['toPower'] = P['pow'] = function ( e ) {\n\n // e to integer, avoiding NaN or Infinity becoming 0.\n var i = e * 0 == 0 ? e | 0 : e,\n x = new BigNumber(this),\n y = new BigNumber(ONE);\n\n // Use Math.pow?\n // Pass +-Infinity for out of range exponents.\n if ( ( ( ( outOfRange = e < -MAX_POWER || e > MAX_POWER ) &&\n (i = e * 1 / 0) ) ||\n\n /*\n * Any exponent that fails the parse becomes NaN.\n *\n * Include 'e !== 0' because on Opera -0 == parseFloat(-0) is false,\n * despite -0 === parseFloat(-0) && -0 == parseFloat('-0') is true.\n */\n parse(e) != e && e !== 0 && !(i = NaN) ) &&\n\n // 'pow() exponent not an integer: {e}'\n // 'pow() exponent out of range: {e}'\n !ifExceptionsThrow( e, 'exponent', 'pow' ) ||\n\n // Pass zero to Math.pow, as any value to the power zero is 1.\n !i ) {\n\n // i is +-Infinity, NaN or 0.\n return new BigNumber( Math.pow( x['toS'](), i ) );\n }\n\n for ( i = i < 0 ? -i : i; ; ) {\n\n if ( i & 1 ) {\n y = y['times'](x);\n }\n i >>= 1;\n\n if ( !i ) {\n break;\n }\n x = x['times'](x);\n }\n\n return e < 0 ? ONE['div'](y) : y;\n};\n\n\n/*\n * Return a BigNumber whose value is the value of this BigNumber raised to\n * the power m modulo n.\n *\n * m {BigNumber} the value to take the power of\n * n {BigNumber} the value to modulo by\n */\nP['powm'] = function ( m, n ) {\n return this.pow(m).mod(n);\n};\n\n\n/*\n * Return a new BigNumber whose value is the value of this BigNumber\n * rounded to a maximum of dp decimal places using rounding mode rm, or to\n * 0 and ROUNDING_MODE respectively if omitted.\n *\n * [dp] {number} Integer, 0 to MAX inclusive.\n * [rm] {number} Integer, 0 to 8 inclusive.\n */\nP['round'] = function ( dp, rm ) {\n\n dp = dp == null || ( ( ( outOfRange = dp < 0 || dp > MAX ) ||\n parse(dp) != dp ) &&\n\n // 'round() decimal places out of range: {dp}'\n // 'round() decimal places not an integer: {dp}'\n !ifExceptionsThrow( dp, 'decimal places', 'round' ) )\n ? 0\n : dp | 0;\n\n rm = rm == null || ( ( ( outOfRange = rm < 0 || rm > 8 ) ||\n\n // Include '&& rm !== 0' because with Opera -0 == parseFloat(-0) is false.\n parse(rm) != rm && rm !== 0 ) &&\n\n // 'round() mode not an integer: {rm}'\n // 'round() mode out of range: {rm}'\n !ifExceptionsThrow( rm, 'mode', 'round' ) )\n ? ROUNDING_MODE\n : rm | 0;\n\n return setMode( this, dp, rm );\n};\n\n\n/*\n * sqrt(-n) = N\n * sqrt( N) = N\n * sqrt(-I) = N\n * sqrt( I) = I\n * sqrt( 0) = 0\n * sqrt(-0) = -0\n *\n * Return a new BigNumber whose value is the square root of the value of\n * this BigNumber, rounded according to DECIMAL_PLACES and ROUNDING_MODE.\n */\nP['squareRoot'] = P['sqrt'] = function () {\n var n, r, re, t,\n x = this,\n c = x['c'],\n s = x['s'],\n e = x['e'],\n dp = DECIMAL_PLACES,\n rm = ROUNDING_MODE,\n half = new BigNumber('0.5');\n\n // Negative/NaN/Infinity/zero?\n if ( s !== 1 || !c || !c[0] ) {\n\n return new BigNumber( !s || s < 0 && ( !c || c[0] )\n ? NaN\n : c ? x : 1 / 0 );\n }\n\n // Initial estimate.\n s = Math.sqrt( x['toS']() );\n ROUNDING_MODE = 1;\n\n /*\n Math.sqrt underflow/overflow?\n Pass x to Math.sqrt as integer, then adjust the exponent of the result.\n */\n if ( s == 0 || s == 1 / 0 ) {\n n = c.join('');\n\n if ( !( n.length + e & 1 ) ) {\n n += '0';\n }\n r = new BigNumber( Math.sqrt(n) + '' );\n\n // r may still not be finite.\n if ( !r['c'] ) {\n r['c'] = [1];\n }\n r['e'] = ( ( ( e + 1 ) / 2 ) | 0 ) - ( e < 0 || e & 1 );\n } else {\n r = new BigNumber( n = s.toString() );\n }\n re = r['e'];\n s = re + ( DECIMAL_PLACES += 4 );\n\n if ( s < 3 ) {\n s = 0;\n }\n e = s;\n\n // Newton-Raphson iteration.\n for ( ; ; ) {\n t = r;\n r = half['times']( t['plus']( x['div'](t) ) );\n\n if ( t['c'].slice( 0, s ).join('') === r['c'].slice( 0, s ).join('') ) {\n c = r['c'];\n\n /*\n The exponent of r may here be one less than the final result\n exponent (re), e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust\n s so the rounding digits are indexed correctly.\n */\n s = s - ( n && r['e'] < re );\n\n /*\n The 4th rounding digit may be in error by -1 so if the 4 rounding\n digits are 9999 or 4999 (i.e. approaching a rounding boundary)\n continue the iteration.\n */\n if ( c[s] == 9 && c[s - 1] == 9 && c[s - 2] == 9 &&\n ( c[s - 3] == 9 || n && c[s - 3] == 4 ) ) {\n\n /*\n If 9999 on first run through, check to see if rounding up\n gives the exact result as the nines may infinitely repeat.\n */\n if ( n && c[s - 3] == 9 ) {\n t = r['round']( dp, 0 );\n\n if ( t['times'](t)['eq'](x) ) {\n ROUNDING_MODE = rm;\n DECIMAL_PLACES = dp;\n\n return t;\n }\n }\n DECIMAL_PLACES += 4;\n s += 4;\n n = '';\n } else {\n\n /*\n If the rounding digits are null, 0000 or 5000, check for an\n exact result. If not, then there are further digits so\n increment the 1st rounding digit to ensure correct rounding.\n */\n if ( !c[e] && !c[e - 1] && !c[e - 2] &&\n ( !c[e - 3] || c[e - 3] == 5 ) ) {\n\n // Truncate to the first rounding digit.\n if ( c.length > e - 2 ) {\n c.length = e - 2;\n }\n\n if ( !r['times'](r)['eq'](x) ) {\n\n while ( c.length < e - 3 ) {\n c.push(0);\n }\n c[e - 3]++;\n }\n }\n ROUNDING_MODE = rm;\n rnd( r, DECIMAL_PLACES = dp, 10 );\n\n return r;\n }\n }\n }\n};\n\n\n/*\n * n * 0 = 0\n * n * N = N\n * n * I = I\n * 0 * n = 0\n * 0 * 0 = 0\n * 0 * N = N\n * 0 * I = N\n * N * n = N\n * N * 0 = N\n * N * N = N\n * N * I = N\n * I * n = I\n * I * 0 = N\n * I * N = N\n * I * I = I\n *\n * Return a new BigNumber whose value is the value of this BigNumber times\n * the value of BigNumber(y, b).\n */\nP['times'] = P['mul'] = function ( y, b ) {\n var c,\n x = this,\n xc = x['c'],\n yc = ( id = 11, y = new BigNumber( y, b ) )['c'],\n i = x['e'],\n j = y['e'],\n a = x['s'];\n\n y['s'] = a == ( b = y['s'] ) ? 1 : -1;\n\n // Either NaN/Infinity/0?\n if ( !i && ( !xc || !xc[0] ) || !j && ( !yc || !yc[0] ) ) {\n\n // Either NaN?\n return new BigNumber( !a || !b ||\n\n // x is 0 and y is Infinity or y is 0 and x is Infinity?\n xc && !xc[0] && !yc || yc && !yc[0] && !xc\n\n // Return NaN.\n ? NaN\n\n // Either Infinity?\n : !xc || !yc\n\n // Return +-Infinity.\n ? y['s'] / 0\n\n // x or y is 0. Return +-0.\n : y['s'] * 0 );\n }\n y['e'] = i + j;\n\n if ( ( a = xc.length ) < ( b = yc.length ) ) {\n c = xc, xc = yc, yc = c, j = a, a = b, b = j;\n }\n\n for ( j = a + b, c = []; j--; c.push(0) ) {\n }\n\n // Multiply!\n for ( i = b - 1; i > -1; i-- ) {\n\n for ( b = 0, j = a + i;\n j > i;\n b = c[j] + yc[i] * xc[j - i - 1] + b,\n c[j--] = b % 10 | 0,\n b = b / 10 | 0 ) {\n }\n\n if ( b ) {\n c[j] = ( c[j] + b ) % 10;\n }\n }\n\n b && ++y['e'];\n\n // Remove any leading zero.\n !c[0] && c.shift();\n\n // Remove trailing zeros.\n for ( j = c.length; !c[--j]; c.pop() ) {\n }\n\n // No zero check needed as only x * 0 == 0 etc.\n\n // Overflow?\n y['c'] = y['e'] > MAX_EXP\n\n // Infinity.\n ? ( y['e'] = null )\n\n // Underflow?\n : y['e'] < MIN_EXP\n\n // Zero.\n ? [ y['e'] = 0 ]\n\n // Neither.\n : c;\n\n return y;\n};\n\n/*\n * Return a buffer containing the \n */\nP['toBuffer'] = function ( opts ) {\n\n if (typeof opts === 'string') {\n if (opts !== 'mpint') return 'Unsupported Buffer representation';\n\n var abs = this.abs();\n var buf = abs.toBuffer({ size : 1, endian : 'big' });\n var len = buf.length === 1 && buf[0] === 0 ? 0 : buf.length;\n if (buf[0] & 0x80) len ++;\n\n var ret = new Buffer(4 + len);\n if (len > 0) buf.copy(ret, 4 + (buf[0] & 0x80 ? 1 : 0));\n if (buf[0] & 0x80) ret[4] = 0;\n\n ret[0] = len & (0xff << 24);\n ret[1] = len & (0xff << 16);\n ret[2] = len & (0xff << 8);\n ret[3] = len & (0xff << 0);\n\n // two's compliment for negative integers:\n var isNeg = this.lt(0);\n if (isNeg) {\n for (var i = 4; i < ret.length; i++) {\n ret[i] = 0xff - ret[i];\n }\n }\n ret[4] = (ret[4] & 0x7f) | (isNeg ? 0x80 : 0);\n if (isNeg) ret[ret.length - 1] ++;\n\n return ret;\n }\n\n if (!opts) opts = {};\n\n var endian = { 1 : 'big', '-1' : 'little' }[opts.endian]\n || opts.endian || 'big'\n ;\n\n var hex = this.toString(16);\n if (hex.charAt(0) === '-') throw new Error(\n 'converting negative numbers to Buffers not supported yet'\n );\n\n var size = opts.size === 'auto' ? Math.ceil(hex.length / 2) : (opts.size || 1);\n\n var len = Math.ceil(hex.length / (2 * size)) * size;\n var buf = new Buffer(len);\n\n // zero-pad the hex string so the chunks are all `size` long\n while (hex.length < 2 * len) hex = '0' + hex;\n\n var hx = hex\n .split(new RegExp('(.{' + (2 * size) + '})'))\n .filter(function (s) { return s.length > 0 })\n ;\n\n hx.forEach(function (chunk, i) {\n for (var j = 0; j < size; j++) {\n var ix = i * size + (endian === 'big' ? j : size - j - 1);\n buf[ix] = parseInt(chunk.slice(j*2,j*2+2), 16);\n }\n });\n\n return buf;\n};\n\n/*\n * Return a string representing the value of this BigNumber in exponential\n * notation to dp fixed decimal places and rounded using ROUNDING_MODE if\n * necessary.\n *\n * [dp] {number} Integer, 0 to MAX inclusive.\n */\nP['toExponential'] = P['toE'] = function ( dp ) {\n\n return format( this,\n ( dp == null || ( ( outOfRange = dp < 0 || dp > MAX ) ||\n\n /*\n * Include '&& dp !== 0' because with Opera -0 == parseFloat(-0) is\n * false, despite -0 == parseFloat('-0') && 0 == -0 being true.\n */\n parse(dp) != dp && dp !== 0 ) &&\n\n // 'toE() decimal places not an integer: {dp}'\n // 'toE() decimal places out of range: {dp}'\n !ifExceptionsThrow( dp, 'decimal places', 'toE' ) ) && this['c']\n ? this['c'].length - 1\n : dp | 0, 1 );\n};\n\n\n/*\n * Return a string representing the value of this BigNumber in normal\n * notation to dp fixed decimal places and rounded using ROUNDING_MODE if\n * necessary.\n *\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\n * but e.g. (-0.00001).toFixed(0) is '-0'.\n *\n * [dp] {number} Integer, 0 to MAX inclusive.\n */\nP['toFixed'] = P['toF'] = function ( dp ) {\n var n, str, d,\n x = this;\n\n if ( !( dp == null || ( ( outOfRange = dp < 0 || dp > MAX ) ||\n parse(dp) != dp && dp !== 0 ) &&\n\n // 'toF() decimal places not an integer: {dp}'\n // 'toF() decimal places out of range: {dp}'\n !ifExceptionsThrow( dp, 'decimal places', 'toF' ) ) ) {\n d = x['e'] + ( dp | 0 );\n }\n\n n = TO_EXP_NEG, dp = TO_EXP_POS;\n TO_EXP_NEG = -( TO_EXP_POS = 1 / 0 );\n\n // Note: str is initially undefined.\n if ( d == str ) {\n str = x['toS']();\n } else {\n str = format( x, d );\n\n // (-0).toFixed() is '0', but (-0.1).toFixed() is '-0'.\n // (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\n if ( x['s'] < 0 && x['c'] ) {\n\n // As e.g. -0 toFixed(3), will wrongly be returned as -0.000 from toString.\n if ( !x['c'][0] ) {\n str = str.replace(/^-/, '');\n\n // As e.g. -0.5 if rounded to -0 will cause toString to omit the minus sign.\n } else if ( str.indexOf('-') < 0 ) {\n str = '-' + str;\n }\n }\n }\n TO_EXP_NEG = n, TO_EXP_POS = dp;\n\n return str;\n};\n\n\n/*\n * Return a string array representing the value of this BigNumber as a\n * simple fraction with an integer numerator and an integer denominator.\n * The denominator will be a positive non-zero value less than or equal to\n * the specified maximum denominator. If a maximum denominator is not\n * specified, the denominator will be the lowest value necessary to\n * represent the number exactly.\n *\n * [maxD] {number|string|BigNumber} Integer >= 1 and < Infinity.\n */\nP['toFraction'] = P['toFr'] = function ( maxD ) {\n var q, frac, n0, d0, d2, n, e,\n n1 = d0 = new BigNumber(ONE),\n d1 = n0 = new BigNumber('0'),\n x = this,\n xc = x['c'],\n exp = MAX_EXP,\n dp = DECIMAL_PLACES,\n rm = ROUNDING_MODE,\n d = new BigNumber(ONE);\n\n // NaN, Infinity.\n if ( !xc ) {\n return x['toS']();\n }\n\n e = d['e'] = xc.length - x['e'] - 1;\n\n // If max denominator is undefined or null...\n if ( maxD == null ||\n\n // or NaN...\n ( !( id = 12, n = new BigNumber(maxD) )['s'] ||\n\n // or less than 1, or Infinity...\n ( outOfRange = n['cmp'](n1) < 0 || !n['c'] ) ||\n\n // or not an integer...\n ( ERRORS && n['e'] < n['c'].length - 1 ) ) &&\n\n // 'toFr() max denominator not an integer: {maxD}'\n // 'toFr() max denominator out of range: {maxD}'\n !ifExceptionsThrow( maxD, 'max denominator', 'toFr' ) ||\n\n // or greater than the maxD needed to specify the value exactly...\n ( maxD = n )['cmp'](d) > 0 ) {\n\n // d is e.g. 10, 100, 1000, 10000... , n1 is 1.\n maxD = e > 0 ? d : n1;\n }\n\n MAX_EXP = 1 / 0;\n n = new BigNumber( xc.join('') );\n\n for ( DECIMAL_PLACES = 0, ROUNDING_MODE = 1; ; ) {\n q = n['div'](d);\n d2 = d0['plus']( q['times'](d1) );\n\n if ( d2['cmp'](maxD) == 1 ) {\n break;\n }\n\n d0 = d1, d1 = d2;\n\n n1 = n0['plus']( q['times']( d2 = n1 ) );\n n0 = d2;\n\n d = n['minus']( q['times']( d2 = d ) );\n n = d2;\n }\n\n d2 = maxD['minus'](d0)['div'](d1);\n n0 = n0['plus']( d2['times'](n1) );\n d0 = d0['plus']( d2['times'](d1) );\n\n n0['s'] = n1['s'] = x['s'];\n\n DECIMAL_PLACES = e * 2;\n ROUNDING_MODE = rm;\n\n // Determine which fraction is closer to x, n0 / d0 or n1 / d1?\n frac = n1['div'](d1)['minus'](x)['abs']()['cmp'](\n n0['div'](d0)['minus'](x)['abs']() ) < 1\n ? [ n1['toS'](), d1['toS']() ]\n : [ n0['toS'](), d0['toS']() ];\n\n return MAX_EXP = exp, DECIMAL_PLACES = dp, frac;\n};\n\n\n/*\n * Return a string representing the value of this BigNumber to sd significant\n * digits and rounded using ROUNDING_MODE if necessary.\n * If sd is less than the number of digits necessary to represent the integer\n * part of the value in normal notation, then use exponential notation.\n *\n * sd {number} Integer, 1 to MAX inclusive.\n */\nP['toPrecision'] = P['toP'] = function ( sd ) {\n\n /*\n * ERRORS true: Throw if sd not undefined, null or an integer in range.\n * ERRORS false: Ignore sd if not a number or not in range.\n * Truncate non-integers.\n */\n return sd == null || ( ( ( outOfRange = sd < 1 || sd > MAX ) ||\n parse(sd) != sd ) &&\n\n // 'toP() precision not an integer: {sd}'\n // 'toP() precision out of range: {sd}'\n !ifExceptionsThrow( sd, 'precision', 'toP' ) )\n ? this['toS']()\n : format( this, --sd | 0, 2 );\n};\n\n\n/*\n * Return a string representing the value of this BigNumber in base b, or\n * base 10 if b is omitted. If a base is specified, including base 10,\n * round according to DECIMAL_PLACES and ROUNDING_MODE.\n * If a base is not specified, and this BigNumber has a positive exponent\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal\n * to or less than TO_EXP_NEG, return exponential notation.\n *\n * [b] {number} Integer, 2 to 64 inclusive.\n */\nP['toString'] = P['toS'] = function ( b ) {\n var u, str, strL,\n x = this,\n xe = x['e'];\n\n // Infinity or NaN?\n if ( xe === null ) {\n str = x['s'] ? 'Infinity' : 'NaN';\n\n // Exponential format?\n } else if ( b === u && ( xe <= TO_EXP_NEG || xe >= TO_EXP_POS ) ) {\n return format( x, x['c'].length - 1, 1 );\n } else {\n str = x['c'].join('');\n\n // Negative exponent?\n if ( xe < 0 ) {\n\n // Prepend zeros.\n for ( ; ++xe; str = '0' + str ) {\n }\n str = '0.' + str;\n\n // Positive exponent?\n } else if ( strL = str.length, xe > 0 ) {\n\n if ( ++xe > strL ) {\n\n // Append zeros.\n for ( xe -= strL; xe-- ; str += '0' ) {\n }\n } else if ( xe < strL ) {\n str = str.slice( 0, xe ) + '.' + str.slice(xe);\n }\n\n // Exponent zero.\n } else {\n if ( u = str.charAt(0), strL > 1 ) {\n str = u + '.' + str.slice(1);\n\n // Avoid '-0'\n } else if ( u == '0' ) {\n return u;\n }\n }\n\n if ( b != null ) {\n\n if ( !( outOfRange = !( b >= 2 && b < 65 ) ) &&\n ( b == (b | 0) || !ERRORS ) ) {\n str = convert( str, b | 0, 10, x['s'] );\n\n // Avoid '-0'\n if ( str == '0' ) {\n return str;\n }\n } else {\n\n // 'toS() base not an integer: {b}'\n // 'toS() base out of range: {b}'\n ifExceptionsThrow( b, 'base', 'toS' );\n }\n }\n\n }\n\n return x['s'] < 0 ? '-' + str : str;\n};\n\n\n/*\n * Return as toString, but do not accept a base argument.\n */\nP['valueOf'] = function () {\n return this['toS']();\n};\n\n\n// Add aliases for BigDecimal methods.\n//P['add'] = P['plus'];\n//P['subtract'] = P['minus'];\n//P['multiply'] = P['times'];\n//P['divide'] = P['div'];\n//P['remainder'] = P['mod'];\n//P['compareTo'] = P['cmp'];\n//P['negate'] = P['neg'];\n\n\n// EXPORT\nmodule.exports = BigNumber;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n var copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n Buffer.from(buf).copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (var i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*\r\n * The MIT License (MIT)\r\n *\r\n * Copyright (c) 2014 Patrick Gansterer \r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n */\r\n\r\n(function(global, undefined) { \"use strict\";\r\nvar POW_2_24 = Math.pow(2, -24),\r\n POW_2_32 = Math.pow(2, 32),\r\n POW_2_53 = Math.pow(2, 53);\r\n\r\nfunction encode(value) {\r\n var data = new ArrayBuffer(256);\r\n var dataView = new DataView(data);\r\n var lastLength;\r\n var offset = 0;\r\n\r\n function ensureSpace(length) {\r\n var newByteLength = data.byteLength;\r\n var requiredLength = offset + length;\r\n while (newByteLength < requiredLength)\r\n newByteLength *= 2;\r\n if (newByteLength !== data.byteLength) {\r\n var oldDataView = dataView;\r\n data = new ArrayBuffer(newByteLength);\r\n dataView = new DataView(data);\r\n var uint32count = (offset + 3) >> 2;\r\n for (var i = 0; i < uint32count; ++i)\r\n dataView.setUint32(i * 4, oldDataView.getUint32(i * 4));\r\n }\r\n\r\n lastLength = length;\r\n return dataView;\r\n }\r\n function write() {\r\n offset += lastLength;\r\n }\r\n function writeFloat64(value) {\r\n write(ensureSpace(8).setFloat64(offset, value));\r\n }\r\n function writeUint8(value) {\r\n write(ensureSpace(1).setUint8(offset, value));\r\n }\r\n function writeUint8Array(value) {\r\n var dataView = ensureSpace(value.length);\r\n for (var i = 0; i < value.length; ++i)\r\n dataView.setUint8(offset + i, value[i]);\r\n write();\r\n }\r\n function writeUint16(value) {\r\n write(ensureSpace(2).setUint16(offset, value));\r\n }\r\n function writeUint32(value) {\r\n write(ensureSpace(4).setUint32(offset, value));\r\n }\r\n function writeUint64(value) {\r\n var low = value % POW_2_32;\r\n var high = (value - low) / POW_2_32;\r\n var dataView = ensureSpace(8);\r\n dataView.setUint32(offset, high);\r\n dataView.setUint32(offset + 4, low);\r\n write();\r\n }\r\n function writeTypeAndLength(type, length) {\r\n if (length < 24) {\r\n writeUint8(type << 5 | length);\r\n } else if (length < 0x100) {\r\n writeUint8(type << 5 | 24);\r\n writeUint8(length);\r\n } else if (length < 0x10000) {\r\n writeUint8(type << 5 | 25);\r\n writeUint16(length);\r\n } else if (length < 0x100000000) {\r\n writeUint8(type << 5 | 26);\r\n writeUint32(length);\r\n } else {\r\n writeUint8(type << 5 | 27);\r\n writeUint64(length);\r\n }\r\n }\r\n \r\n function encodeItem(value) {\r\n var i;\r\n\r\n if (value === false)\r\n return writeUint8(0xf4);\r\n if (value === true)\r\n return writeUint8(0xf5);\r\n if (value === null)\r\n return writeUint8(0xf6);\r\n if (value === undefined)\r\n return writeUint8(0xf7);\r\n \r\n switch (typeof value) {\r\n case \"number\":\r\n if (Math.floor(value) === value) {\r\n if (0 <= value && value <= POW_2_53)\r\n return writeTypeAndLength(0, value);\r\n if (-POW_2_53 <= value && value < 0)\r\n return writeTypeAndLength(1, -(value + 1));\r\n }\r\n writeUint8(0xfb);\r\n return writeFloat64(value);\r\n\r\n case \"string\":\r\n var utf8data = [];\r\n for (i = 0; i < value.length; ++i) {\r\n var charCode = value.charCodeAt(i);\r\n if (charCode < 0x80) {\r\n utf8data.push(charCode);\r\n } else if (charCode < 0x800) {\r\n utf8data.push(0xc0 | charCode >> 6);\r\n utf8data.push(0x80 | charCode & 0x3f);\r\n } else if (charCode < 0xd800) {\r\n utf8data.push(0xe0 | charCode >> 12);\r\n utf8data.push(0x80 | (charCode >> 6) & 0x3f);\r\n utf8data.push(0x80 | charCode & 0x3f);\r\n } else {\r\n charCode = (charCode & 0x3ff) << 10;\r\n charCode |= value.charCodeAt(++i) & 0x3ff;\r\n charCode += 0x10000;\r\n\r\n utf8data.push(0xf0 | charCode >> 18);\r\n utf8data.push(0x80 | (charCode >> 12) & 0x3f);\r\n utf8data.push(0x80 | (charCode >> 6) & 0x3f);\r\n utf8data.push(0x80 | charCode & 0x3f);\r\n }\r\n }\r\n\r\n writeTypeAndLength(3, utf8data.length);\r\n return writeUint8Array(utf8data);\r\n\r\n default:\r\n var length;\r\n if (Array.isArray(value)) {\r\n length = value.length;\r\n writeTypeAndLength(4, length);\r\n for (i = 0; i < length; ++i)\r\n encodeItem(value[i]);\r\n } else if (value instanceof Uint8Array) {\r\n writeTypeAndLength(2, value.length);\r\n writeUint8Array(value);\r\n } else {\r\n var keys = Object.keys(value);\r\n length = keys.length;\r\n writeTypeAndLength(5, length);\r\n for (i = 0; i < length; ++i) {\r\n var key = keys[i];\r\n encodeItem(key);\r\n encodeItem(value[key]);\r\n }\r\n }\r\n }\r\n }\r\n \r\n encodeItem(value);\r\n\r\n if (\"slice\" in data)\r\n return data.slice(0, offset);\r\n \r\n var ret = new ArrayBuffer(offset);\r\n var retView = new DataView(ret);\r\n for (var i = 0; i < offset; ++i)\r\n retView.setUint8(i, dataView.getUint8(i));\r\n return ret;\r\n}\r\n\r\nfunction decode(data, tagger, simpleValue) {\r\n var dataView = new DataView(data);\r\n var offset = 0;\r\n \r\n if (typeof tagger !== \"function\")\r\n tagger = function(value) { return value; };\r\n if (typeof simpleValue !== \"function\")\r\n simpleValue = function() { return undefined; };\r\n\r\n function read(value, length) {\r\n offset += length;\r\n return value;\r\n }\r\n function readArrayBuffer(length) {\r\n return read(new Uint8Array(data, offset, length), length);\r\n }\r\n function readFloat16() {\r\n var tempArrayBuffer = new ArrayBuffer(4);\r\n var tempDataView = new DataView(tempArrayBuffer);\r\n var value = readUint16();\r\n\r\n var sign = value & 0x8000;\r\n var exponent = value & 0x7c00;\r\n var fraction = value & 0x03ff;\r\n \r\n if (exponent === 0x7c00)\r\n exponent = 0xff << 10;\r\n else if (exponent !== 0)\r\n exponent += (127 - 15) << 10;\r\n else if (fraction !== 0)\r\n return fraction * POW_2_24;\r\n \r\n tempDataView.setUint32(0, sign << 16 | exponent << 13 | fraction << 13);\r\n return tempDataView.getFloat32(0);\r\n }\r\n function readFloat32() {\r\n return read(dataView.getFloat32(offset), 4);\r\n }\r\n function readFloat64() {\r\n return read(dataView.getFloat64(offset), 8);\r\n }\r\n function readUint8() {\r\n return read(dataView.getUint8(offset), 1);\r\n }\r\n function readUint16() {\r\n return read(dataView.getUint16(offset), 2);\r\n }\r\n function readUint32() {\r\n return read(dataView.getUint32(offset), 4);\r\n }\r\n function readUint64() {\r\n return readUint32() * POW_2_32 + readUint32();\r\n }\r\n function readBreak() {\r\n if (dataView.getUint8(offset) !== 0xff)\r\n return false;\r\n offset += 1;\r\n return true;\r\n }\r\n function readLength(additionalInformation) {\r\n if (additionalInformation < 24)\r\n return additionalInformation;\r\n if (additionalInformation === 24)\r\n return readUint8();\r\n if (additionalInformation === 25)\r\n return readUint16();\r\n if (additionalInformation === 26)\r\n return readUint32();\r\n if (additionalInformation === 27)\r\n return readUint64();\r\n if (additionalInformation === 31)\r\n return -1;\r\n throw \"Invalid length encoding\";\r\n }\r\n function readIndefiniteStringLength(majorType) {\r\n var initialByte = readUint8();\r\n if (initialByte === 0xff)\r\n return -1;\r\n var length = readLength(initialByte & 0x1f);\r\n if (length < 0 || (initialByte >> 5) !== majorType)\r\n throw \"Invalid indefinite length element\";\r\n return length;\r\n }\r\n\r\n function appendUtf16data(utf16data, length) {\r\n for (var i = 0; i < length; ++i) {\r\n var value = readUint8();\r\n if (value & 0x80) {\r\n if (value < 0xe0) {\r\n value = (value & 0x1f) << 6\r\n | (readUint8() & 0x3f);\r\n length -= 1;\r\n } else if (value < 0xf0) {\r\n value = (value & 0x0f) << 12\r\n | (readUint8() & 0x3f) << 6\r\n | (readUint8() & 0x3f);\r\n length -= 2;\r\n } else {\r\n value = (value & 0x0f) << 18\r\n | (readUint8() & 0x3f) << 12\r\n | (readUint8() & 0x3f) << 6\r\n | (readUint8() & 0x3f);\r\n length -= 3;\r\n }\r\n }\r\n\r\n if (value < 0x10000) {\r\n utf16data.push(value);\r\n } else {\r\n value -= 0x10000;\r\n utf16data.push(0xd800 | (value >> 10));\r\n utf16data.push(0xdc00 | (value & 0x3ff));\r\n }\r\n }\r\n }\r\n\r\n function decodeItem() {\r\n var initialByte = readUint8();\r\n var majorType = initialByte >> 5;\r\n var additionalInformation = initialByte & 0x1f;\r\n var i;\r\n var length;\r\n\r\n if (majorType === 7) {\r\n switch (additionalInformation) {\r\n case 25:\r\n return readFloat16();\r\n case 26:\r\n return readFloat32();\r\n case 27:\r\n return readFloat64();\r\n }\r\n }\r\n\r\n length = readLength(additionalInformation);\r\n if (length < 0 && (majorType < 2 || 6 < majorType))\r\n throw \"Invalid length\";\r\n\r\n switch (majorType) {\r\n case 0:\r\n return length;\r\n case 1:\r\n return -1 - length;\r\n case 2:\r\n if (length < 0) {\r\n var elements = [];\r\n var fullArrayLength = 0;\r\n while ((length = readIndefiniteStringLength(majorType)) >= 0) {\r\n fullArrayLength += length;\r\n elements.push(readArrayBuffer(length));\r\n }\r\n var fullArray = new Uint8Array(fullArrayLength);\r\n var fullArrayOffset = 0;\r\n for (i = 0; i < elements.length; ++i) {\r\n fullArray.set(elements[i], fullArrayOffset);\r\n fullArrayOffset += elements[i].length;\r\n }\r\n return fullArray;\r\n }\r\n return readArrayBuffer(length);\r\n case 3:\r\n var utf16data = [];\r\n if (length < 0) {\r\n while ((length = readIndefiniteStringLength(majorType)) >= 0)\r\n appendUtf16data(utf16data, length);\r\n } else\r\n appendUtf16data(utf16data, length);\r\n return String.fromCharCode.apply(null, utf16data);\r\n case 4:\r\n var retArray;\r\n if (length < 0) {\r\n retArray = [];\r\n while (!readBreak())\r\n retArray.push(decodeItem());\r\n } else {\r\n retArray = new Array(length);\r\n for (i = 0; i < length; ++i)\r\n retArray[i] = decodeItem();\r\n }\r\n return retArray;\r\n case 5:\r\n var retObject = {};\r\n for (i = 0; i < length || length < 0 && !readBreak(); ++i) {\r\n var key = decodeItem();\r\n retObject[key] = decodeItem();\r\n }\r\n return retObject;\r\n case 6:\r\n return tagger(decodeItem(), length);\r\n case 7:\r\n switch (length) {\r\n case 20:\r\n return false;\r\n case 21:\r\n return true;\r\n case 22:\r\n return null;\r\n case 23:\r\n return undefined;\r\n default:\r\n return simpleValue(length);\r\n }\r\n }\r\n }\r\n\r\n var ret = decodeItem();\r\n if (offset !== data.byteLength)\r\n throw \"Remaining bytes\";\r\n return ret;\r\n}\r\n\r\nvar obj = { encode: encode, decode: decode };\r\n\r\nif (typeof define === \"function\" && define.amd)\r\n define(\"cbor/cbor\", obj);\r\nelse if (typeof module !== 'undefined' && module.exports)\r\n module.exports = obj;\r\nelse if (!global.CBOR)\r\n global.CBOR = obj;\r\n\r\n})(this);\r\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","/* global define */\n(function (root, factory) {\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define([], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.compareVersions = factory();\n }\n}(this, function () {\n\n var semver = /^v?(?:\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+)(\\.(?:[x*]|\\d+))?(?:-[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\n function indexOrEnd(str, q) {\n return str.indexOf(q) === -1 ? str.length : str.indexOf(q);\n }\n\n function split(v) {\n var c = v.replace(/^v/, '').replace(/\\+.*$/, '');\n var patchIndex = indexOrEnd(c, '-');\n var arr = c.substring(0, patchIndex).split('.');\n arr.push(c.substring(patchIndex + 1));\n return arr;\n }\n\n function tryParse(v) {\n return isNaN(Number(v)) ? v : Number(v);\n }\n\n function validate(version) {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n if (!semver.test(version)) {\n throw new Error('Invalid argument not valid semver (\\''+version+'\\' received)');\n }\n }\n\n function compareVersions(v1, v2) {\n [v1, v2].forEach(validate);\n\n var s1 = split(v1);\n var s2 = split(v2);\n\n for (var i = 0; i < Math.max(s1.length - 1, s2.length - 1); i++) {\n var n1 = parseInt(s1[i] || 0, 10);\n var n2 = parseInt(s2[i] || 0, 10);\n\n if (n1 > n2) return 1;\n if (n2 > n1) return -1;\n }\n\n var sp1 = s1[s1.length - 1];\n var sp2 = s2[s2.length - 1];\n\n if (sp1 && sp2) {\n var p1 = sp1.split('.').map(tryParse);\n var p2 = sp2.split('.').map(tryParse);\n\n for (i = 0; i < Math.max(p1.length, p2.length); i++) {\n if (p1[i] === undefined || typeof p2[i] === 'string' && typeof p1[i] === 'number') return -1;\n if (p2[i] === undefined || typeof p1[i] === 'string' && typeof p2[i] === 'number') return 1;\n\n if (p1[i] > p2[i]) return 1;\n if (p2[i] > p1[i]) return -1;\n }\n } else if (sp1 || sp2) {\n return sp1 ? -1 : 1;\n }\n\n return 0;\n };\n\n var allowedOperators = [\n '>',\n '>=',\n '=',\n '<',\n '<='\n ];\n\n var operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1]\n };\n\n function validateOperator(op) {\n if (typeof op !== 'string') {\n throw new TypeError('Invalid operator type, expected string but got ' + typeof op);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new TypeError('Invalid operator, expected one of ' + allowedOperators.join('|'));\n }\n }\n\n compareVersions.validate = function(version) {\n return typeof version === 'string' && semver.test(version);\n }\n\n compareVersions.compare = function (v1, v2, operator) {\n // Validate operator\n validateOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n var res = compareVersions(v1, v2);\n return operatorResMap[operator].indexOf(res) > -1;\n }\n\n return compareVersions;\n}));\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\nconst crc1 = defineCrc('crc1', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n let accum = 0;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n accum += byte;\n }\n\n crc += accum % 256;\n return crc % 256;\n});\n\nexport default crc1;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,\n 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,\n 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,\n 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,\n 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,\n 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,\n 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,\n 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,\n 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,\n 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,\n 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,\n 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,\n 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,\n 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,\n 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,\n 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,\n 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,\n 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,\n 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,\n 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,\n 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,\n 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,\n 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,\n 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,\n 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,\n 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,\n 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,\n 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,\n 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,\n 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,\n 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,\n 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040\n]\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16 = defineCrc('crc-16', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=ccitt --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,\n 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,\n 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,\n 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,\n 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,\n 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,\n 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,\n 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,\n 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,\n 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,\n 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,\n 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,\n 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,\n 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,\n 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,\n 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,\n 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,\n 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,\n 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,\n 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,\n 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,\n 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,\n 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,\n 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,\n 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,\n 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,\n 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,\n 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,\n 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,\n 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,\n 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,\n 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16ccitt = defineCrc('ccitt', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0xffff;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[((crc >> 8) ^ byte) & 0xff] ^ (crc << 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16ccitt;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=kermit --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,\n 0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,\n 0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,\n 0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,\n 0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,\n 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,\n 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,\n 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,\n 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,\n 0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,\n 0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,\n 0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,\n 0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,\n 0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,\n 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,\n 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,\n 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,\n 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,\n 0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,\n 0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,\n 0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,\n 0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,\n 0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,\n 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,\n 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,\n 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,\n 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,\n 0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,\n 0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,\n 0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,\n 0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,\n 0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16kermit = defineCrc('kermit', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0x0000;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16kermit;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-16-modbus --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,\n 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,\n 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,\n 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,\n 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,\n 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,\n 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,\n 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,\n 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,\n 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,\n 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,\n 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,\n 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,\n 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,\n 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,\n 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,\n 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,\n 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,\n 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,\n 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,\n 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,\n 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,\n 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,\n 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,\n 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,\n 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,\n 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,\n 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,\n 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,\n 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,\n 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,\n 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040\n]\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc16modbus = defineCrc('crc-16-modbus', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0xffff;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[(crc ^ byte) & 0xff] ^ (crc >> 8)) & 0xffff;\n }\n\n return crc;\n});\n\nexport default crc16modbus;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\nconst crc16xmodem = defineCrc('xmodem', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0x0;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n let code = (crc >>> 8) & 0xff;\n\n code ^= byte & 0xff;\n code ^= code >>> 4;\n crc = (crc << 8) & 0xffff;\n crc ^= code;\n code = (code << 5) & 0xffff;\n crc ^= code;\n code = (code << 7) & 0xffff;\n crc ^= code;\n }\n\n return crc;\n});\n\nexport default crc16xmodem;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-drive --model=crc-24 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x000000, 0x864cfb, 0x8ad50d, 0x0c99f6, 0x93e6e1, 0x15aa1a, 0x1933ec, 0x9f7f17,\n 0xa18139, 0x27cdc2, 0x2b5434, 0xad18cf, 0x3267d8, 0xb42b23, 0xb8b2d5, 0x3efe2e,\n 0xc54e89, 0x430272, 0x4f9b84, 0xc9d77f, 0x56a868, 0xd0e493, 0xdc7d65, 0x5a319e,\n 0x64cfb0, 0xe2834b, 0xee1abd, 0x685646, 0xf72951, 0x7165aa, 0x7dfc5c, 0xfbb0a7,\n 0x0cd1e9, 0x8a9d12, 0x8604e4, 0x00481f, 0x9f3708, 0x197bf3, 0x15e205, 0x93aefe,\n 0xad50d0, 0x2b1c2b, 0x2785dd, 0xa1c926, 0x3eb631, 0xb8faca, 0xb4633c, 0x322fc7,\n 0xc99f60, 0x4fd39b, 0x434a6d, 0xc50696, 0x5a7981, 0xdc357a, 0xd0ac8c, 0x56e077,\n 0x681e59, 0xee52a2, 0xe2cb54, 0x6487af, 0xfbf8b8, 0x7db443, 0x712db5, 0xf7614e,\n 0x19a3d2, 0x9fef29, 0x9376df, 0x153a24, 0x8a4533, 0x0c09c8, 0x00903e, 0x86dcc5,\n 0xb822eb, 0x3e6e10, 0x32f7e6, 0xb4bb1d, 0x2bc40a, 0xad88f1, 0xa11107, 0x275dfc,\n 0xdced5b, 0x5aa1a0, 0x563856, 0xd074ad, 0x4f0bba, 0xc94741, 0xc5deb7, 0x43924c,\n 0x7d6c62, 0xfb2099, 0xf7b96f, 0x71f594, 0xee8a83, 0x68c678, 0x645f8e, 0xe21375,\n 0x15723b, 0x933ec0, 0x9fa736, 0x19ebcd, 0x8694da, 0x00d821, 0x0c41d7, 0x8a0d2c,\n 0xb4f302, 0x32bff9, 0x3e260f, 0xb86af4, 0x2715e3, 0xa15918, 0xadc0ee, 0x2b8c15,\n 0xd03cb2, 0x567049, 0x5ae9bf, 0xdca544, 0x43da53, 0xc596a8, 0xc90f5e, 0x4f43a5,\n 0x71bd8b, 0xf7f170, 0xfb6886, 0x7d247d, 0xe25b6a, 0x641791, 0x688e67, 0xeec29c,\n 0x3347a4, 0xb50b5f, 0xb992a9, 0x3fde52, 0xa0a145, 0x26edbe, 0x2a7448, 0xac38b3,\n 0x92c69d, 0x148a66, 0x181390, 0x9e5f6b, 0x01207c, 0x876c87, 0x8bf571, 0x0db98a,\n 0xf6092d, 0x7045d6, 0x7cdc20, 0xfa90db, 0x65efcc, 0xe3a337, 0xef3ac1, 0x69763a,\n 0x578814, 0xd1c4ef, 0xdd5d19, 0x5b11e2, 0xc46ef5, 0x42220e, 0x4ebbf8, 0xc8f703,\n 0x3f964d, 0xb9dab6, 0xb54340, 0x330fbb, 0xac70ac, 0x2a3c57, 0x26a5a1, 0xa0e95a,\n 0x9e1774, 0x185b8f, 0x14c279, 0x928e82, 0x0df195, 0x8bbd6e, 0x872498, 0x016863,\n 0xfad8c4, 0x7c943f, 0x700dc9, 0xf64132, 0x693e25, 0xef72de, 0xe3eb28, 0x65a7d3,\n 0x5b59fd, 0xdd1506, 0xd18cf0, 0x57c00b, 0xc8bf1c, 0x4ef3e7, 0x426a11, 0xc426ea,\n 0x2ae476, 0xaca88d, 0xa0317b, 0x267d80, 0xb90297, 0x3f4e6c, 0x33d79a, 0xb59b61,\n 0x8b654f, 0x0d29b4, 0x01b042, 0x87fcb9, 0x1883ae, 0x9ecf55, 0x9256a3, 0x141a58,\n 0xefaaff, 0x69e604, 0x657ff2, 0xe33309, 0x7c4c1e, 0xfa00e5, 0xf69913, 0x70d5e8,\n 0x4e2bc6, 0xc8673d, 0xc4fecb, 0x42b230, 0xddcd27, 0x5b81dc, 0x57182a, 0xd154d1,\n 0x26359f, 0xa07964, 0xace092, 0x2aac69, 0xb5d37e, 0x339f85, 0x3f0673, 0xb94a88,\n 0x87b4a6, 0x01f85d, 0x0d61ab, 0x8b2d50, 0x145247, 0x921ebc, 0x9e874a, 0x18cbb1,\n 0xe37b16, 0x6537ed, 0x69ae1b, 0xefe2e0, 0x709df7, 0xf6d10c, 0xfa48fa, 0x7c0401,\n 0x42fa2f, 0xc4b6d4, 0xc82f22, 0x4e63d9, 0xd11cce, 0x575035, 0x5bc9c3, 0xdd8538\n]\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc24 = defineCrc('crc-24', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = typeof previous !== 'undefined' ? ~~previous : 0xb704ce;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = (TABLE[((crc >> 16) ^ byte) & 0xff] ^ (crc << 8)) & 0xffffff;\n }\n\n return crc;\n});\n\nexport default crc24;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-32 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,\n 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,\n 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,\n 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,\n 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,\n 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,\n 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,\n 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,\n 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,\n 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,\n 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,\n 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,\n 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,\n 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,\n 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,\n 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,\n 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,\n 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,\n 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,\n 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,\n 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,\n 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc32 = defineCrc('crc-32', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = previous === 0 ? 0 : ~~previous ^ -1;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);\n }\n\n return crc ^ -1;\n});\n\nexport default crc32;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=crc-8 --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d,\n 0x70, 0x77, 0x7e, 0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d,\n 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb, 0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd,\n 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8, 0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd,\n 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6, 0xe3, 0xe4, 0xed, 0xea,\n 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d, 0x9a,\n 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a,\n 0x57, 0x50, 0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a,\n 0x89, 0x8e, 0x87, 0x80, 0x95, 0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4,\n 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec, 0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4,\n 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f, 0x58, 0x4d, 0x4a, 0x43, 0x44,\n 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a, 0x33, 0x34,\n 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63,\n 0x3e, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13,\n 0xae, 0xa9, 0xa0, 0xa7, 0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83,\n 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc, 0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc8 = defineCrc('crc-8', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] & 0xff;\n }\n\n return crc;\n});\n\nexport default crc8;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=dallas-1-wire --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83, 0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41,\n 0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e, 0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc,\n 0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0, 0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62,\n 0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d, 0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff,\n 0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5, 0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07,\n 0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58, 0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a,\n 0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6, 0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24,\n 0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b, 0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9,\n 0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f, 0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd,\n 0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92, 0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50,\n 0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c, 0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee,\n 0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1, 0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73,\n 0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49, 0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b,\n 0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4, 0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16,\n 0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a, 0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8,\n 0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7, 0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crc81wire = defineCrc('dallas-1-wire', function(buf, previous) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] & 0xff;\n }\n\n return crc;\n});\n\nexport default crc81wire;\n","import { Buffer } from 'buffer';\nimport createBuffer from './create_buffer';\nimport defineCrc from './define_crc';\n\n// Generated by `./pycrc.py --algorithm=table-driven --model=jam --generate=c`\n// prettier-ignore\nlet TABLE = [\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,\n 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,\n 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,\n 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,\n 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,\n 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,\n 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,\n 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,\n 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,\n 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,\n 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,\n 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,\n 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,\n 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,\n 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,\n 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,\n 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,\n 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,\n 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,\n 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,\n 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,\n 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,\n 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,\n 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,\n 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,\n 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,\n 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,\n 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,\n 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,\n 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,\n 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,\n 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,\n 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,\n 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,\n 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,\n 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,\n 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,\n 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,\n 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,\n 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,\n 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,\n 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,\n 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n];\n\nif (typeof Int32Array !== 'undefined') TABLE = new Int32Array(TABLE);\n\nconst crcjam = defineCrc('jam', function(buf, previous = -1) {\n if (!Buffer.isBuffer(buf)) buf = createBuffer(buf);\n\n let crc = previous === 0 ? 0 : ~~previous;\n\n for (let index = 0; index < buf.length; index++) {\n const byte = buf[index];\n crc = TABLE[(crc ^ byte) & 0xff] ^ (crc >>> 8);\n }\n\n return crc;\n});\n\nexport default crcjam;\n","import { Buffer } from 'buffer';\n\nconst createBuffer =\n Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow\n ? Buffer.from\n : // support for Node < 5.10\n val => new Buffer(val);\n\nexport default createBuffer;\n","export default function(model, calc) {\n const fn = (buf, previous) => calc(buf, previous) >>> 0;\n fn.signed = calc;\n fn.unsigned = fn;\n fn.model = model;\n\n return fn;\n}\n","import crc1 from './crc1';\nimport crc8 from './crc8';\nimport crc81wire from './crc81wire';\nimport crc16 from './crc16';\nimport crc16ccitt from './crc16ccitt';\nimport crc16modbus from './crc16modbus';\nimport crc16xmodem from './crc16xmodem';\nimport crc16kermit from './crc16kermit';\nimport crc24 from './crc24';\nimport crc32 from './crc32';\nimport crcjam from './crcjam';\n\nexport { crc1 };\nexport { crc8 };\nexport { crc81wire };\nexport { crc16 };\nexport { crc16ccitt };\nexport { crc16modbus };\nexport { crc16xmodem };\nexport { crc16kermit };\nexport { crc24 };\nexport { crc32 };\nexport { crcjam };\n\nexport default {\n crc1,\n crc8,\n crc81wire,\n crc16,\n crc16ccitt,\n crc16modbus,\n crc16xmodem,\n crc16kermit,\n crc24,\n crc32,\n crcjam,\n};\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","\n/**\n * Expose `Emitter`.\n */\n\nmodule.exports = Emitter;\n\n/**\n * Initialize a new `Emitter`.\n *\n * @api public\n */\n\nfunction Emitter(obj) {\n if (obj) return mixin(obj);\n};\n\n/**\n * Mixin the emitter properties.\n *\n * @param {Object} obj\n * @return {Object}\n * @api private\n */\n\nfunction mixin(obj) {\n for (var key in Emitter.prototype) {\n obj[key] = Emitter.prototype[key];\n }\n return obj;\n}\n\n/**\n * Listen on the given `event` with `fn`.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.on =\nEmitter.prototype.addEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n (this._callbacks[event] = this._callbacks[event] || [])\n .push(fn);\n return this;\n};\n\n/**\n * Adds an `event` listener that will be invoked a single\n * time then automatically removed.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.once = function(event, fn){\n var self = this;\n this._callbacks = this._callbacks || {};\n\n function on() {\n self.off(event, on);\n fn.apply(this, arguments);\n }\n\n on.fn = fn;\n this.on(event, on);\n return this;\n};\n\n/**\n * Remove the given callback for `event` or all\n * registered callbacks.\n *\n * @param {String} event\n * @param {Function} fn\n * @return {Emitter}\n * @api public\n */\n\nEmitter.prototype.off =\nEmitter.prototype.removeListener =\nEmitter.prototype.removeAllListeners =\nEmitter.prototype.removeEventListener = function(event, fn){\n this._callbacks = this._callbacks || {};\n\n // all\n if (0 == arguments.length) {\n this._callbacks = {};\n return this;\n }\n\n // specific event\n var callbacks = this._callbacks[event];\n if (!callbacks) return this;\n\n // remove all handlers\n if (1 == arguments.length) {\n delete this._callbacks[event];\n return this;\n }\n\n // remove specific handler\n var cb;\n for (var i = 0; i < callbacks.length; i++) {\n cb = callbacks[i];\n if (cb === fn || cb.fn === fn) {\n callbacks.splice(i, 1);\n break;\n }\n }\n return this;\n};\n\n/**\n * Emit `event` with the given args.\n *\n * @param {String} event\n * @param {Mixed} ...\n * @return {Emitter}\n */\n\nEmitter.prototype.emit = function(event){\n this._callbacks = this._callbacks || {};\n var args = [].slice.call(arguments, 1)\n , callbacks = this._callbacks[event];\n\n if (callbacks) {\n callbacks = callbacks.slice(0);\n for (var i = 0, len = callbacks.length; i < len; ++i) {\n callbacks[i].apply(this, args);\n }\n }\n\n return this;\n};\n\n/**\n * Return array of callbacks for `event`.\n *\n * @param {String} event\n * @return {Array}\n * @api public\n */\n\nEmitter.prototype.listeners = function(event){\n this._callbacks = this._callbacks || {};\n return this._callbacks[event] || [];\n};\n\n/**\n * Check if this emitter has `event` handlers.\n *\n * @param {String} event\n * @return {Boolean}\n * @api public\n */\n\nEmitter.prototype.hasListeners = function(event){\n return !! this.listeners(event).length;\n};\n","/**\n * Code refactored from Mozilla Developer Network:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n'use strict';\n\nfunction assign(target, firstSource) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert first argument to object');\n }\n\n var to = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var nextSource = arguments[i];\n if (nextSource === undefined || nextSource === null) {\n continue;\n }\n\n var keysArray = Object.keys(Object(nextSource));\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex++) {\n var nextKey = keysArray[nextIndex];\n var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n if (desc !== undefined && desc.enumerable) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n return to;\n}\n\nfunction polyfill() {\n if (!Object.assign) {\n Object.defineProperty(Object, 'assign', {\n enumerable: false,\n configurable: true,\n writable: true,\n value: assign\n });\n }\n}\n\nmodule.exports = {\n assign: assign,\n polyfill: polyfill\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction createHashFunction(hashConstructor) {\n return function (msg) {\n var hash = hashConstructor();\n hash.update(msg);\n return Buffer.from(hash.digest());\n };\n}\nexports.createHashFunction = createHashFunction;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hash_utils_1 = require(\"./hash-utils\");\nvar createKeccakHash = require(\"keccak\");\nexports.keccak224 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak224\");\n});\nexports.keccak256 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak256\");\n});\nexports.keccak384 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak384\");\n});\nexports.keccak512 = hash_utils_1.createHashFunction(function () {\n return createKeccakHash(\"keccak512\");\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar randombytes = require(\"randombytes\");\nfunction getRandomBytes(bytes) {\n return new Promise(function (resolve, reject) {\n randombytes(bytes, function (err, resp) {\n if (err) {\n reject(err);\n return;\n }\n resolve(resp);\n });\n });\n}\nexports.getRandomBytes = getRandomBytes;\nfunction getRandomBytesSync(bytes) {\n return randombytes(bytes);\n}\nexports.getRandomBytesSync = getRandomBytesSync;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar secp256k1_1 = require(\"secp256k1\");\nvar random_1 = require(\"./random\");\nvar SECP256K1_PRIVATE_KEY_SIZE = 32;\nfunction createPrivateKey() {\n return __awaiter(this, void 0, void 0, function () {\n var pk;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!true) return [3 /*break*/, 2];\n return [4 /*yield*/, random_1.getRandomBytes(SECP256K1_PRIVATE_KEY_SIZE)];\n case 1:\n pk = _a.sent();\n if (secp256k1_1.privateKeyVerify(pk)) {\n return [2 /*return*/, pk];\n }\n return [3 /*break*/, 0];\n case 2: return [2 /*return*/];\n }\n });\n });\n}\nexports.createPrivateKey = createPrivateKey;\nfunction createPrivateKeySync() {\n while (true) {\n var pk = random_1.getRandomBytesSync(SECP256K1_PRIVATE_KEY_SIZE);\n if (secp256k1_1.privateKeyVerify(pk)) {\n return pk;\n }\n }\n}\nexports.createPrivateKeySync = createPrivateKeySync;\n__export(require(\"secp256k1\"));\n","module.exports = require('./lib/index.js')\n","/* eslint-disable no-useless-escape */\nconst utils = require('ethereumjs-util')\nconst BN = require('bn.js')\n\nvar ABI = function () {\n}\n\n// Convert from short to canonical names\n// FIXME: optimise or make this nicer?\nfunction elementaryName (name) {\n if (name.startsWith('int[')) {\n return 'int256' + name.slice(3)\n } else if (name === 'int') {\n return 'int256'\n } else if (name.startsWith('uint[')) {\n return 'uint256' + name.slice(4)\n } else if (name === 'uint') {\n return 'uint256'\n } else if (name.startsWith('fixed[')) {\n return 'fixed128x128' + name.slice(5)\n } else if (name === 'fixed') {\n return 'fixed128x128'\n } else if (name.startsWith('ufixed[')) {\n return 'ufixed128x128' + name.slice(6)\n } else if (name === 'ufixed') {\n return 'ufixed128x128'\n }\n return name\n}\n\nABI.eventID = function (name, types) {\n // FIXME: use node.js util.format?\n var sig = name + '(' + types.map(elementaryName).join(',') + ')'\n return utils.keccak256(Buffer.from(sig))\n}\n\nABI.methodID = function (name, types) {\n return ABI.eventID(name, types).slice(0, 4)\n}\n\n// Parse N from type\nfunction parseTypeN (type) {\n return parseInt(/^\\D+(\\d+)$/.exec(type)[1], 10)\n}\n\n// Parse N,M from typex\nfunction parseTypeNxM (type) {\n var tmp = /^\\D+(\\d+)x(\\d+)$/.exec(type)\n return [ parseInt(tmp[1], 10), parseInt(tmp[2], 10) ]\n}\n\n// Parse N in type[] where \"type\" can itself be an array type.\nfunction parseTypeArray (type) {\n var tmp = type.match(/(.*)\\[(.*?)\\]$/)\n if (tmp) {\n return tmp[2] === '' ? 'dynamic' : parseInt(tmp[2], 10)\n }\n return null\n}\n\nfunction parseNumber (arg) {\n var type = typeof arg\n if (type === 'string') {\n if (utils.isHexPrefixed(arg)) {\n return new BN(utils.stripHexPrefix(arg), 16)\n } else {\n return new BN(arg, 10)\n }\n } else if (type === 'number') {\n return new BN(arg)\n } else if (arg.toArray) {\n // assume this is a BN for the moment, replace with BN.isBN soon\n return arg\n } else {\n throw new Error('Argument is not a number')\n }\n}\n\n// someMethod(bytes,uint)\n// someMethod(bytes,uint):(boolean)\nfunction parseSignature (sig) {\n var tmp = /^(\\w+)\\((.*)\\)$/.exec(sig)\n\n if (tmp.length !== 3) {\n throw new Error('Invalid method signature')\n }\n\n var args = /^(.+)\\):\\((.+)$/.exec(tmp[2])\n\n if (args !== null && args.length === 3) {\n return {\n method: tmp[1],\n args: args[1].split(','),\n retargs: args[2].split(',')\n }\n } else {\n var params = tmp[2].split(',')\n if (params.length === 1 && params[0] === '') {\n // Special-case (possibly naive) fixup for functions that take no arguments.\n // TODO: special cases are always bad, but this makes the function return\n // match what the calling functions expect\n params = []\n }\n return {\n method: tmp[1],\n args: params\n }\n }\n}\n\n// Encodes a single item (can be dynamic array)\n// @returns: Buffer\nfunction encodeSingle (type, arg) {\n var size, num, ret, i\n\n if (type === 'address') {\n return encodeSingle('uint160', parseNumber(arg))\n } else if (type === 'bool') {\n return encodeSingle('uint8', arg ? 1 : 0)\n } else if (type === 'string') {\n return encodeSingle('bytes', Buffer.from(arg, 'utf8'))\n } else if (isArray(type)) {\n // this part handles fixed-length ([2]) and variable length ([]) arrays\n // NOTE: we catch here all calls to arrays, that simplifies the rest\n if (typeof arg.length === 'undefined') {\n throw new Error('Not an array?')\n }\n size = parseTypeArray(type)\n if (size !== 'dynamic' && size !== 0 && arg.length > size) {\n throw new Error('Elements exceed array size: ' + size)\n }\n ret = []\n type = type.slice(0, type.lastIndexOf('['))\n if (typeof arg === 'string') {\n arg = JSON.parse(arg)\n }\n for (i in arg) {\n ret.push(encodeSingle(type, arg[i]))\n }\n if (size === 'dynamic') {\n var length = encodeSingle('uint256', arg.length)\n ret.unshift(length)\n }\n return Buffer.concat(ret)\n } else if (type === 'bytes') {\n arg = Buffer.from(arg)\n\n ret = Buffer.concat([ encodeSingle('uint256', arg.length), arg ])\n\n if ((arg.length % 32) !== 0) {\n ret = Buffer.concat([ ret, utils.zeros(32 - (arg.length % 32)) ])\n }\n\n return ret\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n return utils.setLengthRight(arg, 32)\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(arg)\n if (num.bitLength() > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n if (num < 0) {\n throw new Error('Supplied uint is negative')\n }\n\n return num.toArrayLike(Buffer, 'be', 32)\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(arg)\n if (num.bitLength() > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n return num.toTwos(256).toArrayLike(Buffer, 'be', 32)\n } else if (type.startsWith('ufixed')) {\n size = parseTypeNxM(type)\n\n num = parseNumber(arg)\n\n if (num < 0) {\n throw new Error('Supplied ufixed is negative')\n }\n\n return encodeSingle('uint256', num.mul(new BN(2).pow(new BN(size[1]))))\n } else if (type.startsWith('fixed')) {\n size = parseTypeNxM(type)\n\n return encodeSingle('int256', parseNumber(arg).mul(new BN(2).pow(new BN(size[1]))))\n }\n\n throw new Error('Unsupported or invalid type: ' + type)\n}\n\n// Decodes a single item (can be dynamic array)\n// @returns: array\n// FIXME: this method will need a lot of attention at checking limits and validation\nfunction decodeSingle (parsedType, data, offset) {\n if (typeof parsedType === 'string') {\n parsedType = parseType(parsedType)\n }\n var size, num, ret, i\n\n if (parsedType.name === 'address') {\n return decodeSingle(parsedType.rawType, data, offset).toArrayLike(Buffer, 'be', 20).toString('hex')\n } else if (parsedType.name === 'bool') {\n return decodeSingle(parsedType.rawType, data, offset).toString() === new BN(1).toString()\n } else if (parsedType.name === 'string') {\n var bytes = decodeSingle(parsedType.rawType, data, offset)\n return Buffer.from(bytes, 'utf8').toString()\n } else if (parsedType.isArray) {\n // this part handles fixed-length arrays ([2]) and variable length ([]) arrays\n // NOTE: we catch here all calls to arrays, that simplifies the rest\n ret = []\n size = parsedType.size\n\n if (parsedType.size === 'dynamic') {\n offset = decodeSingle('uint256', data, offset).toNumber()\n size = decodeSingle('uint256', data, offset).toNumber()\n offset = offset + 32\n }\n for (i = 0; i < size; i++) {\n var decoded = decodeSingle(parsedType.subArray, data, offset)\n ret.push(decoded)\n offset += parsedType.subArray.memoryUsage\n }\n return ret\n } else if (parsedType.name === 'bytes') {\n offset = decodeSingle('uint256', data, offset).toNumber()\n size = decodeSingle('uint256', data, offset).toNumber()\n return data.slice(offset + 32, offset + 32 + size)\n } else if (parsedType.name.startsWith('bytes')) {\n return data.slice(offset, offset + parsedType.size)\n } else if (parsedType.name.startsWith('uint')) {\n num = new BN(data.slice(offset, offset + 32), 16, 'be')\n if (num.bitLength() > parsedType.size) {\n throw new Error('Decoded int exceeds width: ' + parsedType.size + ' vs ' + num.bitLength())\n }\n return num\n } else if (parsedType.name.startsWith('int')) {\n num = new BN(data.slice(offset, offset + 32), 16, 'be').fromTwos(256)\n if (num.bitLength() > parsedType.size) {\n throw new Error('Decoded uint exceeds width: ' + parsedType.size + ' vs ' + num.bitLength())\n }\n\n return num\n } else if (parsedType.name.startsWith('ufixed')) {\n size = new BN(2).pow(new BN(parsedType.size[1]))\n num = decodeSingle('uint256', data, offset)\n if (!num.mod(size).isZero()) {\n throw new Error('Decimals not supported yet')\n }\n return num.div(size)\n } else if (parsedType.name.startsWith('fixed')) {\n size = new BN(2).pow(new BN(parsedType.size[1]))\n num = decodeSingle('int256', data, offset)\n if (!num.mod(size).isZero()) {\n throw new Error('Decimals not supported yet')\n }\n return num.div(size)\n }\n throw new Error('Unsupported or invalid type: ' + parsedType.name)\n}\n\n// Parse the given type\n// @returns: {} containing the type itself, memory usage and (including size and subArray if applicable)\nfunction parseType (type) {\n var size\n var ret\n if (isArray(type)) {\n size = parseTypeArray(type)\n var subArray = type.slice(0, type.lastIndexOf('['))\n subArray = parseType(subArray)\n ret = {\n isArray: true,\n name: type,\n size: size,\n memoryUsage: size === 'dynamic' ? 32 : subArray.memoryUsage * size,\n subArray: subArray\n }\n return ret\n } else {\n var rawType\n switch (type) {\n case 'address':\n rawType = 'uint160'\n break\n case 'bool':\n rawType = 'uint8'\n break\n case 'string':\n rawType = 'bytes'\n break\n }\n ret = {\n rawType: rawType,\n name: type,\n memoryUsage: 32\n }\n\n if ((type.startsWith('bytes') && type !== 'bytes') || type.startsWith('uint') || type.startsWith('int')) {\n ret.size = parseTypeN(type)\n } else if (type.startsWith('ufixed') || type.startsWith('fixed')) {\n ret.size = parseTypeNxM(type)\n }\n\n if (type.startsWith('bytes') && type !== 'bytes' && (ret.size < 1 || ret.size > 32)) {\n throw new Error('Invalid bytes width: ' + ret.size)\n }\n if ((type.startsWith('uint') || type.startsWith('int')) && (ret.size % 8 || ret.size < 8 || ret.size > 256)) {\n throw new Error('Invalid int/uint width: ' + ret.size)\n }\n return ret\n }\n}\n\n// Is a type dynamic?\nfunction isDynamic (type) {\n // FIXME: handle all types? I don't think anything is missing now\n return (type === 'string') || (type === 'bytes') || (parseTypeArray(type) === 'dynamic')\n}\n\n// Is a type an array?\nfunction isArray (type) {\n return type.lastIndexOf(']') === type.length - 1\n}\n\n// Encode a method/event with arguments\n// @types an array of string type names\n// @args an array of the appropriate values\nABI.rawEncode = function (types, values) {\n var output = []\n var data = []\n\n var headLength = 0\n\n types.forEach(function (type) {\n if (isArray(type)) {\n var size = parseTypeArray(type)\n\n if (size !== 'dynamic') {\n headLength += 32 * size\n } else {\n headLength += 32\n }\n } else {\n headLength += 32\n }\n })\n\n for (var i = 0; i < types.length; i++) {\n var type = elementaryName(types[i])\n var value = values[i]\n var cur = encodeSingle(type, value)\n\n // Use the head/tail method for storing dynamic data\n if (isDynamic(type)) {\n output.push(encodeSingle('uint256', headLength))\n data.push(cur)\n headLength += cur.length\n } else {\n output.push(cur)\n }\n }\n\n return Buffer.concat(output.concat(data))\n}\n\nABI.rawDecode = function (types, data) {\n var ret = []\n data = Buffer.from(data)\n var offset = 0\n for (var i = 0; i < types.length; i++) {\n var type = elementaryName(types[i])\n var parsed = parseType(type, data, offset)\n var decoded = decodeSingle(parsed, data, offset)\n offset += parsed.memoryUsage\n ret.push(decoded)\n }\n return ret\n}\n\nABI.simpleEncode = function (method) {\n var args = Array.prototype.slice.call(arguments).slice(1)\n var sig = parseSignature(method)\n\n // FIXME: validate/convert arguments\n if (args.length !== sig.args.length) {\n throw new Error('Argument count mismatch')\n }\n\n return Buffer.concat([ ABI.methodID(sig.method, sig.args), ABI.rawEncode(sig.args, args) ])\n}\n\nABI.simpleDecode = function (method, data) {\n var sig = parseSignature(method)\n\n // FIXME: validate/convert arguments\n if (!sig.retargs) {\n throw new Error('No return values in method')\n }\n\n return ABI.rawDecode(sig.retargs, data)\n}\n\nfunction stringify (type, value) {\n if (type.startsWith('address') || type.startsWith('bytes')) {\n return '0x' + value.toString('hex')\n } else {\n return value.toString()\n }\n}\n\nABI.stringify = function (types, values) {\n var ret = []\n\n for (var i in types) {\n var type = types[i]\n var value = values[i]\n\n // if it is an array type, concat the items\n if (/^[^\\[]+\\[.*\\]$/.test(type)) {\n value = value.map(function (item) {\n return stringify(type, item)\n }).join(', ')\n } else {\n value = stringify(type, value)\n }\n\n ret.push(value)\n }\n\n return ret\n}\n\nABI.solidityHexValue = function (type, value, bitsize) {\n // pass in bitsize = null if use default bitsize\n var size, num\n if (isArray(type)) {\n var subType = type.replace(/\\[.*?\\]/, '')\n if (!isArray(subType)) {\n var arraySize = parseTypeArray(type)\n if (arraySize !== 'dynamic' && arraySize !== 0 && value.length > arraySize) {\n throw new Error('Elements exceed array size: ' + arraySize)\n }\n }\n var arrayValues = value.map(function (v) {\n return ABI.solidityHexValue(subType, v, 256)\n })\n return Buffer.concat(arrayValues)\n } else if (type === 'bytes') {\n return value\n } else if (type === 'string') {\n return Buffer.from(value, 'utf8')\n } else if (type === 'bool') {\n bitsize = bitsize || 8\n var padding = Array((bitsize) / 4).join('0')\n return Buffer.from(value ? padding + '1' : padding + '0', 'hex')\n } else if (type === 'address') {\n var bytesize = 20\n if (bitsize) {\n bytesize = bitsize / 8\n }\n return utils.setLengthLeft(value, bytesize)\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n return utils.setLengthRight(value, size)\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(value)\n if (num.bitLength() > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n bitsize = bitsize || size\n return num.toArrayLike(Buffer, 'be', bitsize / 8)\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(value)\n if (num.bitLength() > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n bitsize = bitsize || size\n return num.toTwos(size).toArrayLike(Buffer, 'be', bitsize / 8)\n } else {\n // FIXME: support all other types\n throw new Error('Unsupported or invalid type: ' + type)\n }\n}\n\nABI.solidityPack = function (types, values) {\n if (types.length !== values.length) {\n throw new Error('Number of types are not matching the values')\n }\n\n var ret = []\n\n for (var i = 0; i < types.length; i++) {\n var type = elementaryName(types[i])\n var value = values[i]\n ret.push(ABI.solidityHexValue(type, value, null))\n }\n\n return Buffer.concat(ret)\n}\n\nABI.soliditySHA3 = function (types, values) {\n return utils.keccak256(ABI.solidityPack(types, values))\n}\n\nABI.soliditySHA256 = function (types, values) {\n return utils.sha256(ABI.solidityPack(types, values))\n}\n\nABI.solidityRIPEMD160 = function (types, values) {\n return utils.ripemd160(ABI.solidityPack(types, values), true)\n}\n\n// Serpent's users are familiar with this encoding\n// - s: string\n// - b: bytes\n// - b: bytes\n// - i: int256\n// - a: int256[]\n\nfunction isNumeric (c) {\n // FIXME: is this correct? Seems to work\n return (c >= '0') && (c <= '9')\n}\n\n// For a \"documentation\" refer to https://github.com/ethereum/serpent/blob/develop/preprocess.cpp\nABI.fromSerpent = function (sig) {\n var ret = []\n for (var i = 0; i < sig.length; i++) {\n var type = sig[i]\n if (type === 's') {\n ret.push('bytes')\n } else if (type === 'b') {\n var tmp = 'bytes'\n var j = i + 1\n while ((j < sig.length) && isNumeric(sig[j])) {\n tmp += sig[j] - '0'\n j++\n }\n i = j - 1\n ret.push(tmp)\n } else if (type === 'i') {\n ret.push('int256')\n } else if (type === 'a') {\n ret.push('int256[]')\n } else {\n throw new Error('Unsupported or invalid type: ' + type)\n }\n }\n return ret\n}\n\nABI.toSerpent = function (types) {\n var ret = []\n for (var i = 0; i < types.length; i++) {\n var type = types[i]\n if (type === 'bytes') {\n ret.push('s')\n } else if (type.startsWith('bytes')) {\n ret.push('b' + parseTypeN(type))\n } else if (type === 'int256') {\n ret.push('i')\n } else if (type === 'int256[]') {\n ret.push('a')\n } else {\n throw new Error('Unsupported or invalid type: ' + type)\n }\n }\n return ret.join('')\n}\n\nmodule.exports = ABI\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.importPublic = exports.privateToPublic = exports.privateToAddress = exports.publicToAddress = exports.pubToAddress = exports.isValidPublic = exports.isValidPrivate = exports.isPrecompiled = exports.generateAddress2 = exports.generateAddress = exports.isValidChecksumAddress = exports.toChecksumAddress = exports.isZeroAddress = exports.isValidAddress = exports.zeroAddress = void 0;\nvar assert = require('assert');\nvar ethjsUtil = require('ethjs-util');\nvar secp256k1 = require('./secp256k1v3-adapter');\nvar BN = require(\"bn.js\");\nvar bytes_1 = require(\"./bytes\");\nvar hash_1 = require(\"./hash\");\n/**\n * Returns a zero address.\n */\nexports.zeroAddress = function () {\n var addressLength = 20;\n var addr = bytes_1.zeros(addressLength);\n return bytes_1.bufferToHex(addr);\n};\n/**\n * Checks if the address is a valid. Accepts checksummed addresses too.\n */\nexports.isValidAddress = function (address) {\n return /^0x[0-9a-fA-F]{40}$/.test(address);\n};\n/**\n * Checks if a given address is a zero address.\n */\nexports.isZeroAddress = function (address) {\n var zeroAddr = exports.zeroAddress();\n return zeroAddr === bytes_1.addHexPrefix(address);\n};\n/**\n * Returns a checksummed address.\n *\n * If a eip1191ChainId is provided, the chainId will be included in the checksum calculation. This\n * has the effect of checksummed addresses for one chain having invalid checksums for others.\n * For more details, consult EIP-1191.\n *\n * WARNING: Checksums with and without the chainId will differ. As of 2019-06-26, the most commonly\n * used variation in Ethereum was without the chainId. This may change in the future.\n */\nexports.toChecksumAddress = function (address, eip1191ChainId) {\n address = ethjsUtil.stripHexPrefix(address).toLowerCase();\n var prefix = eip1191ChainId !== undefined ? eip1191ChainId.toString() + '0x' : '';\n var hash = hash_1.keccak(prefix + address).toString('hex');\n var ret = '0x';\n for (var i = 0; i < address.length; i++) {\n if (parseInt(hash[i], 16) >= 8) {\n ret += address[i].toUpperCase();\n }\n else {\n ret += address[i];\n }\n }\n return ret;\n};\n/**\n * Checks if the address is a valid checksummed address.\n *\n * See toChecksumAddress' documentation for details about the eip1191ChainId parameter.\n */\nexports.isValidChecksumAddress = function (address, eip1191ChainId) {\n return exports.isValidAddress(address) && exports.toChecksumAddress(address, eip1191ChainId) === address;\n};\n/**\n * Generates an address of a newly created contract.\n * @param from The address which is creating this new address\n * @param nonce The nonce of the from account\n */\nexports.generateAddress = function (from, nonce) {\n from = bytes_1.toBuffer(from);\n var nonceBN = new BN(nonce);\n if (nonceBN.isZero()) {\n // in RLP we want to encode null in the case of zero nonce\n // read the RLP documentation for an answer if you dare\n return hash_1.rlphash([from, null]).slice(-20);\n }\n // Only take the lower 160bits of the hash\n return hash_1.rlphash([from, Buffer.from(nonceBN.toArray())]).slice(-20);\n};\n/**\n * Generates an address for a contract created using CREATE2.\n * @param from The address which is creating this new address\n * @param salt A salt\n * @param initCode The init code of the contract being created\n */\nexports.generateAddress2 = function (from, salt, initCode) {\n var fromBuf = bytes_1.toBuffer(from);\n var saltBuf = bytes_1.toBuffer(salt);\n var initCodeBuf = bytes_1.toBuffer(initCode);\n assert(fromBuf.length === 20);\n assert(saltBuf.length === 32);\n var address = hash_1.keccak256(Buffer.concat([Buffer.from('ff', 'hex'), fromBuf, saltBuf, hash_1.keccak256(initCodeBuf)]));\n return address.slice(-20);\n};\n/**\n * Returns true if the supplied address belongs to a precompiled account (Byzantium).\n */\nexports.isPrecompiled = function (address) {\n var a = bytes_1.unpad(address);\n return a.length === 1 && a[0] >= 1 && a[0] <= 8;\n};\n/**\n * Checks if the private key satisfies the rules of the curve secp256k1.\n */\nexports.isValidPrivate = function (privateKey) {\n return secp256k1.privateKeyVerify(privateKey);\n};\n/**\n * Checks if the public key satisfies the rules of the curve secp256k1\n * and the requirements of Ethereum.\n * @param publicKey The two points of an uncompressed key, unless sanitize is enabled\n * @param sanitize Accept public keys in other formats\n */\nexports.isValidPublic = function (publicKey, sanitize) {\n if (sanitize === void 0) { sanitize = false; }\n if (publicKey.length === 64) {\n // Convert to SEC1 for secp256k1\n return secp256k1.publicKeyVerify(Buffer.concat([Buffer.from([4]), publicKey]));\n }\n if (!sanitize) {\n return false;\n }\n return secp256k1.publicKeyVerify(publicKey);\n};\n/**\n * Returns the ethereum address of a given public key.\n * Accepts \"Ethereum public keys\" and SEC1 encoded keys.\n * @param pubKey The two points of an uncompressed key, unless sanitize is enabled\n * @param sanitize Accept public keys in other formats\n */\nexports.pubToAddress = function (pubKey, sanitize) {\n if (sanitize === void 0) { sanitize = false; }\n pubKey = bytes_1.toBuffer(pubKey);\n if (sanitize && pubKey.length !== 64) {\n pubKey = secp256k1.publicKeyConvert(pubKey, false).slice(1);\n }\n assert(pubKey.length === 64);\n // Only take the lower 160bits of the hash\n return hash_1.keccak(pubKey).slice(-20);\n};\nexports.publicToAddress = exports.pubToAddress;\n/**\n * Returns the ethereum address of a given private key.\n * @param privateKey A private key must be 256 bits wide\n */\nexports.privateToAddress = function (privateKey) {\n return exports.publicToAddress(exports.privateToPublic(privateKey));\n};\n/**\n * Returns the ethereum public key of a given private key.\n * @param privateKey A private key must be 256 bits wide\n */\nexports.privateToPublic = function (privateKey) {\n privateKey = bytes_1.toBuffer(privateKey);\n // skip the type flag and use the X, Y points\n return secp256k1.publicKeyCreate(privateKey, false).slice(1);\n};\n/**\n * Converts a public key to the Ethereum format.\n */\nexports.importPublic = function (publicKey) {\n publicKey = bytes_1.toBuffer(publicKey);\n if (publicKey.length !== 64) {\n publicKey = secp256k1.publicKeyConvert(publicKey, false).slice(1);\n }\n return publicKey;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.baToJSON = exports.addHexPrefix = exports.toUnsigned = exports.fromSigned = exports.bufferToHex = exports.bufferToInt = exports.toBuffer = exports.stripZeros = exports.unpad = exports.setLengthRight = exports.setLength = exports.setLengthLeft = exports.zeros = void 0;\nvar ethjsUtil = require('ethjs-util');\nvar BN = require(\"bn.js\");\n/**\n * Returns a buffer filled with 0s.\n * @param bytes the number of bytes the buffer should be\n */\nexports.zeros = function (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0);\n};\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param msg the value to pad (Buffer|Array)\n * @param length the number of bytes the output should be\n * @param right whether to start padding form the left or right\n * @return (Buffer|Array)\n */\nexports.setLengthLeft = function (msg, length, right) {\n if (right === void 0) { right = false; }\n var buf = exports.zeros(length);\n msg = exports.toBuffer(msg);\n if (right) {\n if (msg.length < length) {\n msg.copy(buf);\n return buf;\n }\n return msg.slice(0, length);\n }\n else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length);\n return buf;\n }\n return msg.slice(-length);\n }\n};\nexports.setLength = exports.setLengthLeft;\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param msg the value to pad (Buffer|Array)\n * @param length the number of bytes the output should be\n * @return (Buffer|Array)\n */\nexports.setLengthRight = function (msg, length) {\n return exports.setLength(msg, length, true);\n};\n/**\n * Trims leading zeros from a `Buffer` or an `Array`.\n * @param a (Buffer|Array|String)\n * @return (Buffer|Array|String)\n */\nexports.unpad = function (a) {\n a = ethjsUtil.stripHexPrefix(a);\n var first = a[0];\n while (a.length > 0 && first.toString() === '0') {\n a = a.slice(1);\n first = a[0];\n }\n return a;\n};\nexports.stripZeros = exports.unpad;\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.\n * @param v the value\n */\nexports.toBuffer = function (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v);\n }\n else if (typeof v === 'string') {\n if (ethjsUtil.isHexString(v)) {\n v = Buffer.from(ethjsUtil.padToEven(ethjsUtil.stripHexPrefix(v)), 'hex');\n }\n else {\n throw new Error(\"Cannot convert string to buffer. toBuffer only supports 0x-prefixed hex strings and this string was given: \" + v);\n }\n }\n else if (typeof v === 'number') {\n v = ethjsUtil.intToBuffer(v);\n }\n else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0);\n }\n else if (BN.isBN(v)) {\n v = v.toArrayLike(Buffer);\n }\n else if (v.toArray) {\n // converts a BN to a Buffer\n v = Buffer.from(v.toArray());\n }\n else {\n throw new Error('invalid type');\n }\n }\n return v;\n};\n/**\n * Converts a `Buffer` to a `Number`.\n * @param buf `Buffer` object to convert\n * @throws If the input number exceeds 53 bits.\n */\nexports.bufferToInt = function (buf) {\n return new BN(exports.toBuffer(buf)).toNumber();\n};\n/**\n * Converts a `Buffer` into a `0x`-prefixed hex `String`.\n * @param buf `Buffer` object to convert\n */\nexports.bufferToHex = function (buf) {\n buf = exports.toBuffer(buf);\n return '0x' + buf.toString('hex');\n};\n/**\n * Interprets a `Buffer` as a signed integer and returns a `BN`. Assumes 256-bit numbers.\n * @param num Signed integer value\n */\nexports.fromSigned = function (num) {\n return new BN(num).fromTwos(256);\n};\n/**\n * Converts a `BN` to an unsigned integer and returns it as a `Buffer`. Assumes 256-bit numbers.\n * @param num\n */\nexports.toUnsigned = function (num) {\n return Buffer.from(num.toTwos(256).toArray());\n};\n/**\n * Adds \"0x\" to a given `String` if it does not already start with \"0x\".\n */\nexports.addHexPrefix = function (str) {\n if (typeof str !== 'string') {\n return str;\n }\n return ethjsUtil.isHexPrefixed(str) ? str : '0x' + str;\n};\n/**\n * Converts a `Buffer` or `Array` to JSON.\n * @param ba (Buffer|Array)\n * @return (Array|String|null)\n */\nexports.baToJSON = function (ba) {\n if (Buffer.isBuffer(ba)) {\n return \"0x\" + ba.toString('hex');\n }\n else if (ba instanceof Array) {\n var array = [];\n for (var i = 0; i < ba.length; i++) {\n array.push(exports.baToJSON(ba[i]));\n }\n return array;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.KECCAK256_RLP = exports.KECCAK256_RLP_S = exports.KECCAK256_RLP_ARRAY = exports.KECCAK256_RLP_ARRAY_S = exports.KECCAK256_NULL = exports.KECCAK256_NULL_S = exports.TWO_POW256 = exports.MAX_INTEGER = void 0;\nvar BN = require(\"bn.js\");\n/**\n * The max integer that this VM can handle\n */\nexports.MAX_INTEGER = new BN('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 16);\n/**\n * 2^256\n */\nexports.TWO_POW256 = new BN('10000000000000000000000000000000000000000000000000000000000000000', 16);\n/**\n * Keccak-256 hash of null\n */\nexports.KECCAK256_NULL_S = 'c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470';\n/**\n * Keccak-256 hash of null\n */\nexports.KECCAK256_NULL = Buffer.from(exports.KECCAK256_NULL_S, 'hex');\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexports.KECCAK256_RLP_ARRAY_S = '1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347';\n/**\n * Keccak-256 of an RLP of an empty array\n */\nexports.KECCAK256_RLP_ARRAY = Buffer.from(exports.KECCAK256_RLP_ARRAY_S, 'hex');\n/**\n * Keccak-256 hash of the RLP of null\n */\nexports.KECCAK256_RLP_S = '56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421';\n/**\n * Keccak-256 hash of the RLP of null\n */\nexports.KECCAK256_RLP = Buffer.from(exports.KECCAK256_RLP_S, 'hex');\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.rlphash = exports.ripemd160 = exports.sha256 = exports.keccak256 = exports.keccak = void 0;\nvar _a = require('ethereum-cryptography/keccak'), keccak224 = _a.keccak224, keccak384 = _a.keccak384, k256 = _a.keccak256, keccak512 = _a.keccak512;\nvar createHash = require('create-hash');\nvar ethjsUtil = require('ethjs-util');\nvar rlp = require(\"rlp\");\nvar bytes_1 = require(\"./bytes\");\n/**\n * Creates Keccak hash of the input\n * @param a The input data (Buffer|Array|String|Number) If the string is a 0x-prefixed hex value\n * it's interpreted as hexadecimal, otherwise as utf8.\n * @param bits The Keccak width\n */\nexports.keccak = function (a, bits) {\n if (bits === void 0) { bits = 256; }\n if (typeof a === 'string' && !ethjsUtil.isHexString(a)) {\n a = Buffer.from(a, 'utf8');\n }\n else {\n a = bytes_1.toBuffer(a);\n }\n if (!bits)\n bits = 256;\n switch (bits) {\n case 224: {\n return keccak224(a);\n }\n case 256: {\n return k256(a);\n }\n case 384: {\n return keccak384(a);\n }\n case 512: {\n return keccak512(a);\n }\n default: {\n throw new Error(\"Invald algorithm: keccak\" + bits);\n }\n }\n};\n/**\n * Creates Keccak-256 hash of the input, alias for keccak(a, 256).\n * @param a The input data (Buffer|Array|String|Number)\n */\nexports.keccak256 = function (a) {\n return exports.keccak(a);\n};\n/**\n * Creates SHA256 hash of the input.\n * @param a The input data (Buffer|Array|String|Number)\n */\nexports.sha256 = function (a) {\n a = bytes_1.toBuffer(a);\n return createHash('sha256')\n .update(a)\n .digest();\n};\n/**\n * Creates RIPEMD160 hash of the input.\n * @param a The input data (Buffer|Array|String|Number)\n * @param padded Whether it should be padded to 256 bits or not\n */\nexports.ripemd160 = function (a, padded) {\n a = bytes_1.toBuffer(a);\n var hash = createHash('rmd160')\n .update(a)\n .digest();\n if (padded === true) {\n return bytes_1.setLength(hash, 32);\n }\n else {\n return hash;\n }\n};\n/**\n * Creates SHA-3 hash of the RLP encoded version of the input.\n * @param a The input data\n */\nexports.rlphash = function (a) {\n return exports.keccak(rlp.encode(a));\n};\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.secp256k1 = exports.rlp = exports.BN = void 0;\nvar secp256k1 = require('./secp256k1v3-adapter');\nexports.secp256k1 = secp256k1;\nvar ethjsUtil = require('ethjs-util');\nvar BN = require(\"bn.js\");\nexports.BN = BN;\nvar rlp = require(\"rlp\");\nexports.rlp = rlp;\nObject.assign(exports, ethjsUtil);\n/**\n * Constants\n */\n__exportStar(require(\"./constants\"), exports);\n/**\n * Public-key cryptography (secp256k1) and addresses\n */\n__exportStar(require(\"./account\"), exports);\n/**\n * Hash functions\n */\n__exportStar(require(\"./hash\"), exports);\n/**\n * ECDSA signature\n */\n__exportStar(require(\"./signature\"), exports);\n/**\n * Utilities for manipulating Buffers, byte arrays, etc.\n */\n__exportStar(require(\"./bytes\"), exports);\n/**\n * Function for definining properties on an object\n */\n__exportStar(require(\"./object\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defineProperties = void 0;\nvar assert = require('assert');\nvar ethjsUtil = require('ethjs-util');\nvar rlp = require(\"rlp\");\nvar bytes_1 = require(\"./bytes\");\n/**\n * Defines properties on a `Object`. It make the assumption that underlying data is binary.\n * @param self the `Object` to define properties on\n * @param fields an array fields to define. Fields can contain:\n * * `name` - the name of the properties\n * * `length` - the number of bytes the field can have\n * * `allowLess` - if the field can be less than the length\n * * `allowEmpty`\n * @param data data to be validated against the definitions\n * @deprecated\n */\nexports.defineProperties = function (self, fields, data) {\n self.raw = [];\n self._fields = [];\n // attach the `toJSON`\n self.toJSON = function (label) {\n if (label === void 0) { label = false; }\n if (label) {\n var obj_1 = {};\n self._fields.forEach(function (field) {\n obj_1[field] = \"0x\" + self[field].toString('hex');\n });\n return obj_1;\n }\n return bytes_1.baToJSON(self.raw);\n };\n self.serialize = function serialize() {\n return rlp.encode(self.raw);\n };\n fields.forEach(function (field, i) {\n self._fields.push(field.name);\n function getter() {\n return self.raw[i];\n }\n function setter(v) {\n v = bytes_1.toBuffer(v);\n if (v.toString('hex') === '00' && !field.allowZero) {\n v = Buffer.allocUnsafe(0);\n }\n if (field.allowLess && field.length) {\n v = bytes_1.stripZeros(v);\n assert(field.length >= v.length, \"The field \" + field.name + \" must not have more \" + field.length + \" bytes\");\n }\n else if (!(field.allowZero && v.length === 0) && field.length) {\n assert(field.length === v.length, \"The field \" + field.name + \" must have byte length of \" + field.length);\n }\n self.raw[i] = v;\n }\n Object.defineProperty(self, field.name, {\n enumerable: true,\n configurable: true,\n get: getter,\n set: setter,\n });\n if (field.default) {\n self[field.name] = field.default;\n }\n // attach alias\n if (field.alias) {\n Object.defineProperty(self, field.alias, {\n enumerable: false,\n configurable: true,\n set: setter,\n get: getter,\n });\n }\n });\n // if the constuctor is passed data\n if (data) {\n if (typeof data === 'string') {\n data = Buffer.from(ethjsUtil.stripHexPrefix(data), 'hex');\n }\n if (Buffer.isBuffer(data)) {\n data = rlp.decode(data);\n }\n if (Array.isArray(data)) {\n if (data.length > self._fields.length) {\n throw new Error('wrong number of fields in data');\n }\n // make sure all the items are buffers\n data.forEach(function (d, i) {\n self[self._fields[i]] = bytes_1.toBuffer(d);\n });\n }\n else if (typeof data === 'object') {\n var keys_1 = Object.keys(data);\n fields.forEach(function (field) {\n if (keys_1.indexOf(field.name) !== -1)\n self[field.name] = data[field.name];\n if (keys_1.indexOf(field.alias) !== -1)\n self[field.alias] = data[field.alias];\n });\n }\n else {\n throw new Error('invalid data');\n }\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ecdhUnsafe = exports.ecdh = exports.recover = exports.verify = exports.sign = exports.signatureImportLax = exports.signatureImport = exports.signatureExport = exports.signatureNormalize = exports.publicKeyCombine = exports.publicKeyTweakMul = exports.publicKeyTweakAdd = exports.publicKeyVerify = exports.publicKeyConvert = exports.publicKeyCreate = exports.privateKeyTweakMul = exports.privateKeyTweakAdd = exports.privateKeyModInverse = exports.privateKeyNegate = exports.privateKeyImport = exports.privateKeyExport = exports.privateKeyVerify = void 0;\nvar secp256k1 = require('ethereum-cryptography/secp256k1');\nvar secp256k1v3 = require('./secp256k1v3-lib/index');\nvar der = require('./secp256k1v3-lib/der');\n/**\n * Verify an ECDSA privateKey\n * @method privateKeyVerify\n * @param {Buffer} privateKey\n * @return {boolean}\n */\nexports.privateKeyVerify = function (privateKey) {\n // secp256k1 v4 version throws when privateKey length is not 32\n if (privateKey.length !== 32) {\n return false;\n }\n return secp256k1.privateKeyVerify(Uint8Array.from(privateKey));\n};\n/**\n * Export a privateKey in DER format\n * @method privateKeyExport\n * @param {Buffer} privateKey\n * @param {boolean} compressed\n * @return {boolean}\n */\nexports.privateKeyExport = function (privateKey, compressed) {\n // secp256k1 v4 version throws when privateKey length is not 32\n if (privateKey.length !== 32) {\n throw new RangeError('private key length is invalid');\n }\n var publicKey = secp256k1v3.privateKeyExport(privateKey, compressed);\n return der.privateKeyExport(privateKey, publicKey, compressed);\n};\n/**\n * Import a privateKey in DER format\n * @method privateKeyImport\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.privateKeyImport = function (privateKey) {\n // privateKeyImport method is not part of secp256k1 v4 package\n // this implementation is based on v3\n privateKey = der.privateKeyImport(privateKey);\n if (privateKey !== null && privateKey.length === 32 && exports.privateKeyVerify(privateKey)) {\n return privateKey;\n }\n throw new Error(\"couldn't import from DER format\");\n};\n/**\n * Negate a privateKey by subtracting it from the order of the curve's base point\n * @method privateKeyNegate\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.privateKeyNegate = function (privateKey) {\n return Buffer.from(secp256k1.privateKeyNegate(Uint8Array.from(privateKey)));\n};\n/**\n * Compute the inverse of a privateKey (modulo the order of the curve's base point).\n * @method privateKeyModInverse\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.privateKeyModInverse = function (privateKey) {\n if (privateKey.length !== 32) {\n throw new Error('private key length is invalid');\n }\n return Buffer.from(secp256k1v3.privateKeyModInverse(Uint8Array.from(privateKey)));\n};\n/**\n * Tweak a privateKey by adding tweak to it.\n * @method privateKeyTweakAdd\n * @param {Buffer} privateKey\n * @param {Buffer} tweak\n * @return {Buffer}\n */\nexports.privateKeyTweakAdd = function (privateKey, tweak) {\n return Buffer.from(secp256k1.privateKeyTweakAdd(Uint8Array.from(privateKey), tweak));\n};\n/**\n * Tweak a privateKey by multiplying it by a tweak.\n * @method privateKeyTweakMul\n * @param {Buffer} privateKey\n * @param {Buffer} tweak\n * @return {Buffer}\n */\nexports.privateKeyTweakMul = function (privateKey, tweak) {\n return Buffer.from(secp256k1.privateKeyTweakMul(Uint8Array.from(privateKey), Uint8Array.from(tweak)));\n};\n/**\n * Compute the public key for a privateKey.\n * @method publicKeyCreate\n * @param {Buffer} privateKey\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyCreate = function (privateKey, compressed) {\n return Buffer.from(secp256k1.publicKeyCreate(Uint8Array.from(privateKey), compressed));\n};\n/**\n * Convert a publicKey to compressed or uncompressed form.\n * @method publicKeyConvert\n * @param {Buffer} publicKey\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyConvert = function (publicKey, compressed) {\n return Buffer.from(secp256k1.publicKeyConvert(Uint8Array.from(publicKey), compressed));\n};\n/**\n * Verify an ECDSA publicKey.\n * @method publicKeyVerify\n * @param {Buffer} publicKey\n * @return {boolean}\n */\nexports.publicKeyVerify = function (publicKey) {\n // secp256k1 v4 version throws when publicKey length is not 33 or 65\n if (publicKey.length !== 33 && publicKey.length !== 65) {\n return false;\n }\n return secp256k1.publicKeyVerify(Uint8Array.from(publicKey));\n};\n/**\n * Tweak a publicKey by adding tweak times the generator to it.\n * @method publicKeyTweakAdd\n * @param {Buffer} publicKey\n * @param {Buffer} tweak\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyTweakAdd = function (publicKey, tweak, compressed) {\n return Buffer.from(secp256k1.publicKeyTweakAdd(Uint8Array.from(publicKey), Uint8Array.from(tweak), compressed));\n};\n/**\n * Tweak a publicKey by multiplying it by a tweak value\n * @method publicKeyTweakMul\n * @param {Buffer} publicKey\n * @param {Buffer} tweak\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyTweakMul = function (publicKey, tweak, compressed) {\n return Buffer.from(secp256k1.publicKeyTweakMul(Uint8Array.from(publicKey), Uint8Array.from(tweak), compressed));\n};\n/**\n * Add a given publicKeys together.\n * @method publicKeyCombine\n * @param {Array} publicKeys\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.publicKeyCombine = function (publicKeys, compressed) {\n var keys = [];\n publicKeys.forEach(function (publicKey) {\n keys.push(Uint8Array.from(publicKey));\n });\n return Buffer.from(secp256k1.publicKeyCombine(keys, compressed));\n};\n/**\n * Convert a signature to a normalized lower-S form.\n * @method signatureNormalize\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureNormalize = function (signature) {\n return Buffer.from(secp256k1.signatureNormalize(Uint8Array.from(signature)));\n};\n/**\n * Serialize an ECDSA signature in DER format.\n * @method signatureExport\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureExport = function (signature) {\n return Buffer.from(secp256k1.signatureExport(Uint8Array.from(signature)));\n};\n/**\n * Parse a DER ECDSA signature (follow by [BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)).\n * @method signatureImport\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureImport = function (signature) {\n return Buffer.from(secp256k1.signatureImport(Uint8Array.from(signature)));\n};\n/**\n * Parse a DER ECDSA signature (not follow by [BIP66](https://github.com/bitcoin/bips/blob/master/bip-0066.mediawiki)).\n * @method signatureImportLax\n * @param {Buffer} signature\n * @return {Buffer}\n */\nexports.signatureImportLax = function (signature) {\n // signatureImportLax method is not part of secp256k1 v4 package\n // this implementation is based on v3\n // ensure that signature is greater than 0\n if (signature.length === 0) {\n throw new RangeError('signature length is invalid');\n }\n var sigObj = der.signatureImportLax(signature);\n if (sigObj === null) {\n throw new Error(\"couldn't parse DER signature\");\n }\n return secp256k1v3.signatureImport(sigObj);\n};\n/**\n * Create an ECDSA signature. Always return low-S signature.\n * @method sign\n * @param {Buffer} message\n * @param {Buffer} privateKey\n * @param {Object} options\n * @return {Buffer}\n */\nexports.sign = function (message, privateKey, options) {\n if (options === null) {\n throw new TypeError('options should be an Object');\n }\n var signOptions = undefined;\n if (options) {\n signOptions = {};\n if (options.data === null) {\n // validate option.data length\n throw new TypeError('options.data should be a Buffer');\n }\n if (options.data) {\n if (options.data.length != 32) {\n throw new RangeError('options.data length is invalid');\n }\n signOptions.data = new Uint8Array(options.data);\n }\n if (options.noncefn === null) {\n throw new TypeError('options.noncefn should be a Function');\n }\n if (options.noncefn) {\n // convert option.noncefn function signature\n signOptions.noncefn = function (message, privateKey, algo, data, attempt) {\n var bufferAlgo = algo != null ? Buffer.from(algo) : null;\n var bufferData = data != null ? Buffer.from(data) : null;\n var buffer = Buffer.from('');\n if (options.noncefn) {\n buffer = options.noncefn(Buffer.from(message), Buffer.from(privateKey), bufferAlgo, bufferData, attempt);\n }\n return new Uint8Array(buffer);\n };\n }\n }\n var sig = secp256k1.ecdsaSign(Uint8Array.from(message), Uint8Array.from(privateKey), signOptions);\n return {\n signature: Buffer.from(sig.signature),\n recovery: sig.recid,\n };\n};\n/**\n * Verify an ECDSA signature.\n * @method verify\n * @param {Buffer} message\n * @param {Buffer} signature\n * @param {Buffer} publicKey\n * @return {boolean}\n */\nexports.verify = function (message, signature, publicKey) {\n return secp256k1.ecdsaVerify(Uint8Array.from(signature), Uint8Array.from(message), publicKey);\n};\n/**\n * Recover an ECDSA public key from a signature.\n * @method recover\n * @param {Buffer} message\n * @param {Buffer} signature\n * @param {Number} recid\n * @param {boolean} compressed\n * @return {Buffer}\n */\nexports.recover = function (message, signature, recid, compressed) {\n return Buffer.from(secp256k1.ecdsaRecover(Uint8Array.from(signature), recid, Uint8Array.from(message), compressed));\n};\n/**\n * Compute an EC Diffie-Hellman secret and applied sha256 to compressed public key.\n * @method ecdh\n * @param {Buffer} publicKey\n * @param {Buffer} privateKey\n * @return {Buffer}\n */\nexports.ecdh = function (publicKey, privateKey) {\n // note: secp256k1 v3 doesn't allow optional parameter\n return Buffer.from(secp256k1.ecdh(Uint8Array.from(publicKey), Uint8Array.from(privateKey), {}));\n};\nexports.ecdhUnsafe = function (publicKey, privateKey, compressed) {\n // ecdhUnsafe method is not part of secp256k1 v4 package\n // this implementation is based on v3\n // ensure valid publicKey length\n if (publicKey.length !== 33 && publicKey.length !== 65) {\n throw new RangeError('public key length is invalid');\n }\n // ensure valid privateKey length\n if (privateKey.length !== 32) {\n throw new RangeError('private key length is invalid');\n }\n return Buffer.from(secp256k1v3.ecdhUnsafe(Uint8Array.from(publicKey), Uint8Array.from(privateKey), compressed));\n};\n","\"use strict\";\n// This file is imported from secp256k1 v3\n// https://github.com/cryptocoinjs/secp256k1-node/blob/master/LICENSE\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar EC_PRIVKEY_EXPORT_DER_COMPRESSED = Buffer.from([\n // begin\n 0x30,\n 0x81,\n 0xd3,\n 0x02,\n 0x01,\n 0x01,\n 0x04,\n 0x20,\n // private key\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n // middle\n 0xa0,\n 0x81,\n 0x85,\n 0x30,\n 0x81,\n 0x82,\n 0x02,\n 0x01,\n 0x01,\n 0x30,\n 0x2c,\n 0x06,\n 0x07,\n 0x2a,\n 0x86,\n 0x48,\n 0xce,\n 0x3d,\n 0x01,\n 0x01,\n 0x02,\n 0x21,\n 0x00,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xfe,\n 0xff,\n 0xff,\n 0xfc,\n 0x2f,\n 0x30,\n 0x06,\n 0x04,\n 0x01,\n 0x00,\n 0x04,\n 0x01,\n 0x07,\n 0x04,\n 0x21,\n 0x02,\n 0x79,\n 0xbe,\n 0x66,\n 0x7e,\n 0xf9,\n 0xdc,\n 0xbb,\n 0xac,\n 0x55,\n 0xa0,\n 0x62,\n 0x95,\n 0xce,\n 0x87,\n 0x0b,\n 0x07,\n 0x02,\n 0x9b,\n 0xfc,\n 0xdb,\n 0x2d,\n 0xce,\n 0x28,\n 0xd9,\n 0x59,\n 0xf2,\n 0x81,\n 0x5b,\n 0x16,\n 0xf8,\n 0x17,\n 0x98,\n 0x02,\n 0x21,\n 0x00,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xfe,\n 0xba,\n 0xae,\n 0xdc,\n 0xe6,\n 0xaf,\n 0x48,\n 0xa0,\n 0x3b,\n 0xbf,\n 0xd2,\n 0x5e,\n 0x8c,\n 0xd0,\n 0x36,\n 0x41,\n 0x41,\n 0x02,\n 0x01,\n 0x01,\n 0xa1,\n 0x24,\n 0x03,\n 0x22,\n 0x00,\n // public key\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n]);\nvar EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED = Buffer.from([\n // begin\n 0x30,\n 0x82,\n 0x01,\n 0x13,\n 0x02,\n 0x01,\n 0x01,\n 0x04,\n 0x20,\n // private key\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n // middle\n 0xa0,\n 0x81,\n 0xa5,\n 0x30,\n 0x81,\n 0xa2,\n 0x02,\n 0x01,\n 0x01,\n 0x30,\n 0x2c,\n 0x06,\n 0x07,\n 0x2a,\n 0x86,\n 0x48,\n 0xce,\n 0x3d,\n 0x01,\n 0x01,\n 0x02,\n 0x21,\n 0x00,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xfe,\n 0xff,\n 0xff,\n 0xfc,\n 0x2f,\n 0x30,\n 0x06,\n 0x04,\n 0x01,\n 0x00,\n 0x04,\n 0x01,\n 0x07,\n 0x04,\n 0x41,\n 0x04,\n 0x79,\n 0xbe,\n 0x66,\n 0x7e,\n 0xf9,\n 0xdc,\n 0xbb,\n 0xac,\n 0x55,\n 0xa0,\n 0x62,\n 0x95,\n 0xce,\n 0x87,\n 0x0b,\n 0x07,\n 0x02,\n 0x9b,\n 0xfc,\n 0xdb,\n 0x2d,\n 0xce,\n 0x28,\n 0xd9,\n 0x59,\n 0xf2,\n 0x81,\n 0x5b,\n 0x16,\n 0xf8,\n 0x17,\n 0x98,\n 0x48,\n 0x3a,\n 0xda,\n 0x77,\n 0x26,\n 0xa3,\n 0xc4,\n 0x65,\n 0x5d,\n 0xa4,\n 0xfb,\n 0xfc,\n 0x0e,\n 0x11,\n 0x08,\n 0xa8,\n 0xfd,\n 0x17,\n 0xb4,\n 0x48,\n 0xa6,\n 0x85,\n 0x54,\n 0x19,\n 0x9c,\n 0x47,\n 0xd0,\n 0x8f,\n 0xfb,\n 0x10,\n 0xd4,\n 0xb8,\n 0x02,\n 0x21,\n 0x00,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xff,\n 0xfe,\n 0xba,\n 0xae,\n 0xdc,\n 0xe6,\n 0xaf,\n 0x48,\n 0xa0,\n 0x3b,\n 0xbf,\n 0xd2,\n 0x5e,\n 0x8c,\n 0xd0,\n 0x36,\n 0x41,\n 0x41,\n 0x02,\n 0x01,\n 0x01,\n 0xa1,\n 0x44,\n 0x03,\n 0x42,\n 0x00,\n // public key\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n 0x00,\n]);\nexports.privateKeyExport = function (privateKey, publicKey, compressed) {\n if (compressed === void 0) { compressed = true; }\n var result = Buffer.from(compressed ? EC_PRIVKEY_EXPORT_DER_COMPRESSED : EC_PRIVKEY_EXPORT_DER_UNCOMPRESSED);\n privateKey.copy(result, compressed ? 8 : 9);\n publicKey.copy(result, compressed ? 181 : 214);\n return result;\n};\nexports.privateKeyImport = function (privateKey) {\n var length = privateKey.length;\n // sequence header\n var index = 0;\n if (length < index + 1 || privateKey[index] !== 0x30)\n return null;\n index += 1;\n // sequence length constructor\n if (length < index + 1 || !(privateKey[index] & 0x80))\n return null;\n var lenb = privateKey[index] & 0x7f;\n index += 1;\n if (lenb < 1 || lenb > 2)\n return null;\n if (length < index + lenb)\n return null;\n // sequence length\n var len = privateKey[index + lenb - 1] | (lenb > 1 ? privateKey[index + lenb - 2] << 8 : 0);\n index += lenb;\n if (length < index + len)\n return null;\n // sequence element 0: version number (=1)\n if (length < index + 3 ||\n privateKey[index] !== 0x02 ||\n privateKey[index + 1] !== 0x01 ||\n privateKey[index + 2] !== 0x01) {\n return null;\n }\n index += 3;\n // sequence element 1: octet string, up to 32 bytes\n if (length < index + 2 ||\n privateKey[index] !== 0x04 ||\n privateKey[index + 1] > 0x20 ||\n length < index + 2 + privateKey[index + 1]) {\n return null;\n }\n return privateKey.slice(index + 2, index + 2 + privateKey[index + 1]);\n};\nexports.signatureImportLax = function (signature) {\n var r = Buffer.alloc(32, 0);\n var s = Buffer.alloc(32, 0);\n var length = signature.length;\n var index = 0;\n // sequence tag byte\n if (signature[index++] !== 0x30) {\n return null;\n }\n // sequence length byte\n var lenbyte = signature[index++];\n if (lenbyte & 0x80) {\n index += lenbyte - 0x80;\n if (index > length) {\n return null;\n }\n }\n // sequence tag byte for r\n if (signature[index++] !== 0x02) {\n return null;\n }\n // length for r\n var rlen = signature[index++];\n if (rlen & 0x80) {\n lenbyte = rlen - 0x80;\n if (index + lenbyte > length) {\n return null;\n }\n for (; lenbyte > 0 && signature[index] === 0x00; index += 1, lenbyte -= 1)\n ;\n for (rlen = 0; lenbyte > 0; index += 1, lenbyte -= 1)\n rlen = (rlen << 8) + signature[index];\n }\n if (rlen > length - index) {\n return null;\n }\n var rindex = index;\n index += rlen;\n // sequence tag byte for s\n if (signature[index++] !== 0x02) {\n return null;\n }\n // length for s\n var slen = signature[index++];\n if (slen & 0x80) {\n lenbyte = slen - 0x80;\n if (index + lenbyte > length) {\n return null;\n }\n for (; lenbyte > 0 && signature[index] === 0x00; index += 1, lenbyte -= 1)\n ;\n for (slen = 0; lenbyte > 0; index += 1, lenbyte -= 1)\n slen = (slen << 8) + signature[index];\n }\n if (slen > length - index) {\n return null;\n }\n var sindex = index;\n index += slen;\n // ignore leading zeros in r\n for (; rlen > 0 && signature[rindex] === 0x00; rlen -= 1, rindex += 1)\n ;\n // copy r value\n if (rlen > 32) {\n return null;\n }\n var rvalue = signature.slice(rindex, rindex + rlen);\n rvalue.copy(r, 32 - rvalue.length);\n // ignore leading zeros in s\n for (; slen > 0 && signature[sindex] === 0x00; slen -= 1, sindex += 1)\n ;\n // copy s value\n if (slen > 32) {\n return null;\n }\n var svalue = signature.slice(sindex, sindex + slen);\n svalue.copy(s, 32 - svalue.length);\n return { r: r, s: s };\n};\n","\"use strict\";\n// This file is imported from secp256k1 v3\n// https://github.com/cryptocoinjs/secp256k1-node/blob/master/LICENSE\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BN = require(\"bn.js\");\nvar EC = require('elliptic').ec;\nvar ec = new EC('secp256k1');\nvar ecparams = ec.curve;\nexports.privateKeyExport = function (privateKey, compressed) {\n if (compressed === void 0) { compressed = true; }\n var d = new BN(privateKey);\n if (d.ucmp(ecparams.n) >= 0) {\n throw new Error(\"couldn't export to DER format\");\n }\n var point = ec.g.mul(d);\n return toPublicKey(point.getX(), point.getY(), compressed);\n};\nexports.privateKeyModInverse = function (privateKey) {\n var bn = new BN(privateKey);\n if (bn.ucmp(ecparams.n) >= 0 || bn.isZero()) {\n throw new Error('private key range is invalid');\n }\n return bn.invm(ecparams.n).toArrayLike(Buffer, 'be', 32);\n};\nexports.signatureImport = function (sigObj) {\n var r = new BN(sigObj.r);\n if (r.ucmp(ecparams.n) >= 0) {\n r = new BN(0);\n }\n var s = new BN(sigObj.s);\n if (s.ucmp(ecparams.n) >= 0) {\n s = new BN(0);\n }\n return Buffer.concat([r.toArrayLike(Buffer, 'be', 32), s.toArrayLike(Buffer, 'be', 32)]);\n};\nexports.ecdhUnsafe = function (publicKey, privateKey, compressed) {\n if (compressed === void 0) { compressed = true; }\n var point = ec.keyFromPublic(publicKey);\n var scalar = new BN(privateKey);\n if (scalar.ucmp(ecparams.n) >= 0 || scalar.isZero()) {\n throw new Error('scalar was invalid (zero or overflow)');\n }\n var shared = point.pub.mul(scalar);\n return toPublicKey(shared.getX(), shared.getY(), compressed);\n};\nvar toPublicKey = function (x, y, compressed) {\n var publicKey;\n if (compressed) {\n publicKey = Buffer.alloc(33);\n publicKey[0] = y.isOdd() ? 0x03 : 0x02;\n x.toArrayLike(Buffer, 'be', 32).copy(publicKey, 1);\n }\n else {\n publicKey = Buffer.alloc(65);\n publicKey[0] = 0x04;\n x.toArrayLike(Buffer, 'be', 32).copy(publicKey, 1);\n y.toArrayLike(Buffer, 'be', 32).copy(publicKey, 33);\n }\n return publicKey;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.hashPersonalMessage = exports.isValidSignature = exports.fromRpcSig = exports.toRpcSig = exports.ecrecover = exports.ecsign = void 0;\nvar secp256k1 = require('./secp256k1v3-adapter');\nvar BN = require(\"bn.js\");\nvar bytes_1 = require(\"./bytes\");\nvar hash_1 = require(\"./hash\");\n/**\n * Returns the ECDSA signature of a message hash.\n */\nexports.ecsign = function (msgHash, privateKey, chainId) {\n var sig = secp256k1.sign(msgHash, privateKey);\n var recovery = sig.recovery;\n var ret = {\n r: sig.signature.slice(0, 32),\n s: sig.signature.slice(32, 64),\n v: chainId ? recovery + (chainId * 2 + 35) : recovery + 27,\n };\n return ret;\n};\n/**\n * ECDSA public key recovery from signature.\n * @returns Recovered public key\n */\nexports.ecrecover = function (msgHash, v, r, s, chainId) {\n var signature = Buffer.concat([bytes_1.setLength(r, 32), bytes_1.setLength(s, 32)], 64);\n var recovery = calculateSigRecovery(v, chainId);\n if (!isValidSigRecovery(recovery)) {\n throw new Error('Invalid signature v value');\n }\n var senderPubKey = secp256k1.recover(msgHash, signature, recovery);\n return secp256k1.publicKeyConvert(senderPubKey, false).slice(1);\n};\n/**\n * Convert signature parameters into the format of `eth_sign` RPC method.\n * @returns Signature\n */\nexports.toRpcSig = function (v, r, s, chainId) {\n var recovery = calculateSigRecovery(v, chainId);\n if (!isValidSigRecovery(recovery)) {\n throw new Error('Invalid signature v value');\n }\n // geth (and the RPC eth_sign method) uses the 65 byte format used by Bitcoin\n return bytes_1.bufferToHex(Buffer.concat([bytes_1.setLengthLeft(r, 32), bytes_1.setLengthLeft(s, 32), bytes_1.toBuffer(v)]));\n};\n/**\n * Convert signature format of the `eth_sign` RPC method to signature parameters\n * NOTE: all because of a bug in geth: https://github.com/ethereum/go-ethereum/issues/2053\n */\nexports.fromRpcSig = function (sig) {\n var buf = bytes_1.toBuffer(sig);\n // NOTE: with potential introduction of chainId this might need to be updated\n if (buf.length !== 65) {\n throw new Error('Invalid signature length');\n }\n var v = buf[64];\n // support both versions of `eth_sign` responses\n if (v < 27) {\n v += 27;\n }\n return {\n v: v,\n r: buf.slice(0, 32),\n s: buf.slice(32, 64),\n };\n};\n/**\n * Validate a ECDSA signature.\n * @param homesteadOrLater Indicates whether this is being used on either the homestead hardfork or a later one\n */\nexports.isValidSignature = function (v, r, s, homesteadOrLater, chainId) {\n if (homesteadOrLater === void 0) { homesteadOrLater = true; }\n var SECP256K1_N_DIV_2 = new BN('7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0', 16);\n var SECP256K1_N = new BN('fffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141', 16);\n if (r.length !== 32 || s.length !== 32) {\n return false;\n }\n if (!isValidSigRecovery(calculateSigRecovery(v, chainId))) {\n return false;\n }\n var rBN = new BN(r);\n var sBN = new BN(s);\n if (rBN.isZero() || rBN.gt(SECP256K1_N) || sBN.isZero() || sBN.gt(SECP256K1_N)) {\n return false;\n }\n if (homesteadOrLater && sBN.cmp(SECP256K1_N_DIV_2) === 1) {\n return false;\n }\n return true;\n};\n/**\n * Returns the keccak-256 hash of `message`, prefixed with the header used by the `eth_sign` RPC call.\n * The output of this function can be fed into `ecsign` to produce the same signature as the `eth_sign`\n * call for a given `message`, or fed to `ecrecover` along with a signature to recover the public key\n * used to produce the signature.\n */\nexports.hashPersonalMessage = function (message) {\n var prefix = Buffer.from(\"\\u0019Ethereum Signed Message:\\n\" + message.length.toString(), 'utf-8');\n return hash_1.keccak(Buffer.concat([prefix, message]));\n};\nfunction calculateSigRecovery(v, chainId) {\n return chainId ? v - (2 * chainId + 35) : v - 27;\n}\nfunction isValidSigRecovery(recovery) {\n return recovery === 0 || recovery === 1;\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nvar isHexPrefixed = require('is-hex-prefixed');\nvar stripHexPrefix = require('strip-hex-prefix');\n\n/**\n * Pads a `String` to have an even length\n * @param {String} value\n * @return {String} output\n */\nfunction padToEven(value) {\n var a = value; // eslint-disable-line\n\n if (typeof a !== 'string') {\n throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.');\n }\n\n if (a.length % 2) {\n a = '0' + a;\n }\n\n return a;\n}\n\n/**\n * Converts a `Number` into a hex `String`\n * @param {Number} i\n * @return {String}\n */\nfunction intToHex(i) {\n var hex = i.toString(16); // eslint-disable-line\n\n return '0x' + hex;\n}\n\n/**\n * Converts an `Number` to a `Buffer`\n * @param {Number} i\n * @return {Buffer}\n */\nfunction intToBuffer(i) {\n var hex = intToHex(i);\n\n return new Buffer(padToEven(hex.slice(2)), 'hex');\n}\n\n/**\n * Get the binary size of a string\n * @param {String} str\n * @return {Number}\n */\nfunction getBinarySize(str) {\n if (typeof str !== 'string') {\n throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \\'str\\' to be type String, got \\'' + typeof str + '\\'.');\n }\n\n return Buffer.byteLength(str, 'utf8');\n}\n\n/**\n * Returns TRUE if the first specified array contains all elements\n * from the second one. FALSE otherwise.\n *\n * @param {array} superset\n * @param {array} subset\n *\n * @returns {boolean}\n */\nfunction arrayContainsArray(superset, subset, some) {\n if (Array.isArray(superset) !== true) {\n throw new Error('[ethjs-util] method arrayContainsArray requires input \\'superset\\' to be an array got type \\'' + typeof superset + '\\'');\n }\n if (Array.isArray(subset) !== true) {\n throw new Error('[ethjs-util] method arrayContainsArray requires input \\'subset\\' to be an array got type \\'' + typeof subset + '\\'');\n }\n\n return subset[Boolean(some) && 'some' || 'every'](function (value) {\n return superset.indexOf(value) >= 0;\n });\n}\n\n/**\n * Should be called to get utf8 from it's hex representation\n *\n * @method toUtf8\n * @param {String} string in hex\n * @returns {String} ascii string representation of hex value\n */\nfunction toUtf8(hex) {\n var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^0+|0+$/g, '')), 'hex');\n\n return bufferValue.toString('utf8');\n}\n\n/**\n * Should be called to get ascii from it's hex representation\n *\n * @method toAscii\n * @param {String} string in hex\n * @returns {String} ascii string representation of hex value\n */\nfunction toAscii(hex) {\n var str = ''; // eslint-disable-line\n var i = 0,\n l = hex.length; // eslint-disable-line\n\n if (hex.substring(0, 2) === '0x') {\n i = 2;\n }\n\n for (; i < l; i += 2) {\n var code = parseInt(hex.substr(i, 2), 16);\n str += String.fromCharCode(code);\n }\n\n return str;\n}\n\n/**\n * Should be called to get hex representation (prefixed by 0x) of utf8 string\n *\n * @method fromUtf8\n * @param {String} string\n * @param {Number} optional padding\n * @returns {String} hex representation of input string\n */\nfunction fromUtf8(stringValue) {\n var str = new Buffer(stringValue, 'utf8');\n\n return '0x' + padToEven(str.toString('hex')).replace(/^0+|0+$/g, '');\n}\n\n/**\n * Should be called to get hex representation (prefixed by 0x) of ascii string\n *\n * @method fromAscii\n * @param {String} string\n * @param {Number} optional padding\n * @returns {String} hex representation of input string\n */\nfunction fromAscii(stringValue) {\n var hex = ''; // eslint-disable-line\n for (var i = 0; i < stringValue.length; i++) {\n // eslint-disable-line\n var code = stringValue.charCodeAt(i);\n var n = code.toString(16);\n hex += n.length < 2 ? '0' + n : n;\n }\n\n return '0x' + hex;\n}\n\n/**\n * getKeys([{a: 1, b: 2}, {a: 3, b: 4}], 'a') => [1, 3]\n *\n * @method getKeys get specific key from inner object array of objects\n * @param {String} params\n * @param {String} key\n * @param {Boolean} allowEmpty\n * @returns {Array} output just a simple array of output keys\n */\nfunction getKeys(params, key, allowEmpty) {\n if (!Array.isArray(params)) {\n throw new Error('[ethjs-util] method getKeys expecting type Array as \\'params\\' input, got \\'' + typeof params + '\\'');\n }\n if (typeof key !== 'string') {\n throw new Error('[ethjs-util] method getKeys expecting type String for input \\'key\\' got \\'' + typeof key + '\\'.');\n }\n\n var result = []; // eslint-disable-line\n\n for (var i = 0; i < params.length; i++) {\n // eslint-disable-line\n var value = params[i][key]; // eslint-disable-line\n if (allowEmpty && !value) {\n value = '';\n } else if (typeof value !== 'string') {\n throw new Error('invalid abi');\n }\n result.push(value);\n }\n\n return result;\n}\n\n/**\n * Is the string a hex string.\n *\n * @method check if string is hex string of specific length\n * @param {String} value\n * @param {Number} length\n * @returns {Boolean} output the string is a hex string\n */\nfunction isHexString(value, length) {\n if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = {\n arrayContainsArray: arrayContainsArray,\n intToBuffer: intToBuffer,\n getBinarySize: getBinarySize,\n isHexPrefixed: isHexPrefixed,\n stripHexPrefix: stripHexPrefix,\n padToEven: padToEven,\n intToHex: intToHex,\n fromAscii: fromAscii,\n fromUtf8: fromUtf8,\n toAscii: toAscii,\n toUtf8: toUtf8,\n getKeys: getKeys,\n isHexString: isHexString\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./interfaces\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./levels\"), exports);\n__exportStar(require(\"./logger\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LogLevel = void 0;\nvar LogLevel;\n(function (LogLevel) {\n LogLevel[LogLevel[\"TRACE\"] = 0] = \"TRACE\";\n LogLevel[LogLevel[\"DEBUG\"] = 1] = \"DEBUG\";\n LogLevel[LogLevel[\"INFO\"] = 2] = \"INFO\";\n LogLevel[LogLevel[\"WARN\"] = 3] = \"WARN\";\n LogLevel[LogLevel[\"ERROR\"] = 4] = \"ERROR\";\n LogLevel[LogLevel[\"FATAL\"] = 5] = \"FATAL\";\n LogLevel[LogLevel[\"OFF\"] = 6] = \"OFF\";\n})(LogLevel = exports.LogLevel || (exports.LogLevel = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","/**\n * Returns a `Boolean` on whether or not the a `String` starts with '0x'\n * @param {String} str the string input value\n * @return {Boolean} a boolean if it is or is not hex prefixed\n * @throws if the str input is not a string\n */\nmodule.exports = function isHexPrefixed(str) {\n if (typeof str !== 'string') {\n throw new Error(\"[is-hex-prefixed] value must be type 'string', is currently type \" + (typeof str) + \", while checking isHexPrefixed.\");\n }\n\n return str.slice(0, 2) === '0x';\n}\n","'use strict';\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function isNaN(value) {\n\treturn value !== value;\n};\n","'use strict';\n\nvar callBind = require('call-bind');\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Number);\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (Number.isNaN && Number.isNaN(NaN) && !Number.isNaN('a')) {\n\t\treturn Number.isNaN;\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\n/* http://www.ecma-international.org/ecma-262/6.0/#sec-number.isnan */\n\nmodule.exports = function shimNumberIsNaN() {\n\tvar polyfill = getPolyfill();\n\tdefine(Number, { isNaN: polyfill }, {\n\t\tisNaN: function testIsNaN() {\n\t\t\treturn Number.isNaN !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar gOPD = require('gopd');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","/*\n * [js-sha512]{@link https://github.com/emn178/js-sha512}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2014-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA512_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA512_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA512_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA512_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var EXTRA = [-2147483648, 8388608, 32768, 128];\n var SHIFT = [24, 16, 8, 0];\n var K = [\n 0x428A2F98, 0xD728AE22, 0x71374491, 0x23EF65CD,\n 0xB5C0FBCF, 0xEC4D3B2F, 0xE9B5DBA5, 0x8189DBBC,\n 0x3956C25B, 0xF348B538, 0x59F111F1, 0xB605D019,\n 0x923F82A4, 0xAF194F9B, 0xAB1C5ED5, 0xDA6D8118,\n 0xD807AA98, 0xA3030242, 0x12835B01, 0x45706FBE,\n 0x243185BE, 0x4EE4B28C, 0x550C7DC3, 0xD5FFB4E2,\n 0x72BE5D74, 0xF27B896F, 0x80DEB1FE, 0x3B1696B1,\n 0x9BDC06A7, 0x25C71235, 0xC19BF174, 0xCF692694,\n 0xE49B69C1, 0x9EF14AD2, 0xEFBE4786, 0x384F25E3,\n 0x0FC19DC6, 0x8B8CD5B5, 0x240CA1CC, 0x77AC9C65,\n 0x2DE92C6F, 0x592B0275, 0x4A7484AA, 0x6EA6E483,\n 0x5CB0A9DC, 0xBD41FBD4, 0x76F988DA, 0x831153B5,\n 0x983E5152, 0xEE66DFAB, 0xA831C66D, 0x2DB43210,\n 0xB00327C8, 0x98FB213F, 0xBF597FC7, 0xBEEF0EE4,\n 0xC6E00BF3, 0x3DA88FC2, 0xD5A79147, 0x930AA725,\n 0x06CA6351, 0xE003826F, 0x14292967, 0x0A0E6E70,\n 0x27B70A85, 0x46D22FFC, 0x2E1B2138, 0x5C26C926,\n 0x4D2C6DFC, 0x5AC42AED, 0x53380D13, 0x9D95B3DF,\n 0x650A7354, 0x8BAF63DE, 0x766A0ABB, 0x3C77B2A8,\n 0x81C2C92E, 0x47EDAEE6, 0x92722C85, 0x1482353B,\n 0xA2BFE8A1, 0x4CF10364, 0xA81A664B, 0xBC423001,\n 0xC24B8B70, 0xD0F89791, 0xC76C51A3, 0x0654BE30,\n 0xD192E819, 0xD6EF5218, 0xD6990624, 0x5565A910,\n 0xF40E3585, 0x5771202A, 0x106AA070, 0x32BBD1B8,\n 0x19A4C116, 0xB8D2D0C8, 0x1E376C08, 0x5141AB53,\n 0x2748774C, 0xDF8EEB99, 0x34B0BCB5, 0xE19B48A8,\n 0x391C0CB3, 0xC5C95A63, 0x4ED8AA4A, 0xE3418ACB,\n 0x5B9CCA4F, 0x7763E373, 0x682E6FF3, 0xD6B2B8A3,\n 0x748F82EE, 0x5DEFB2FC, 0x78A5636F, 0x43172F60,\n 0x84C87814, 0xA1F0AB72, 0x8CC70208, 0x1A6439EC,\n 0x90BEFFFA, 0x23631E28, 0xA4506CEB, 0xDE82BDE9,\n 0xBEF9A3F7, 0xB2C67915, 0xC67178F2, 0xE372532B,\n 0xCA273ECE, 0xEA26619C, 0xD186B8C7, 0x21C0C207,\n 0xEADA7DD6, 0xCDE0EB1E, 0xF57D4F7F, 0xEE6ED178,\n 0x06F067AA, 0x72176FBA, 0x0A637DC5, 0xA2C898A6,\n 0x113F9804, 0xBEF90DAE, 0x1B710B35, 0x131C471B,\n 0x28DB77F5, 0x23047D84, 0x32CAAB7B, 0x40C72493,\n 0x3C9EBE0A, 0x15C9BEBC, 0x431D67C4, 0x9C100D4C,\n 0x4CC5D4BE, 0xCB3E42B6, 0x597F299C, 0xFC657E2A,\n 0x5FCB6FAB, 0x3AD6FAEC, 0x6C44198C, 0x4A475817\n ];\n\n var OUTPUT_TYPES = ['hex', 'array', 'digest', 'arrayBuffer'];\n\n var blocks = [];\n\n if (root.JS_SHA512_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA512_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (outputType, bits) {\n return function (message) {\n return new Sha512(bits, true).update(message)[outputType]();\n };\n };\n\n var createMethod = function (bits) {\n var method = createOutputMethod('hex', bits);\n method.create = function () {\n return new Sha512(bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createOutputMethod(type, bits);\n }\n return method;\n };\n\n var createHmacOutputMethod = function (outputType, bits) {\n return function (key, message) {\n return new HmacSha512(key, bits, true).update(message)[outputType]();\n };\n };\n\n var createHmacMethod = function (bits) {\n var method = createHmacOutputMethod('hex', bits);\n method.create = function (key) {\n return new HmacSha512(key, bits);\n };\n method.update = function (key, message) {\n return method.create(key).update(message);\n };\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createHmacOutputMethod(type, bits);\n }\n return method;\n };\n\n function Sha512(bits, sharedMemory) {\n if (sharedMemory) {\n blocks[0] = blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n this.blocks = blocks;\n } else {\n this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n }\n\n if (bits == 384) {\n this.h0h = 0xCBBB9D5D;\n this.h0l = 0xC1059ED8;\n this.h1h = 0x629A292A;\n this.h1l = 0x367CD507;\n this.h2h = 0x9159015A;\n this.h2l = 0x3070DD17;\n this.h3h = 0x152FECD8;\n this.h3l = 0xF70E5939;\n this.h4h = 0x67332667;\n this.h4l = 0xFFC00B31;\n this.h5h = 0x8EB44A87;\n this.h5l = 0x68581511;\n this.h6h = 0xDB0C2E0D;\n this.h6l = 0x64F98FA7;\n this.h7h = 0x47B5481D;\n this.h7l = 0xBEFA4FA4;\n } else if (bits == 256) {\n this.h0h = 0x22312194;\n this.h0l = 0xFC2BF72C;\n this.h1h = 0x9F555FA3;\n this.h1l = 0xC84C64C2;\n this.h2h = 0x2393B86B;\n this.h2l = 0x6F53B151;\n this.h3h = 0x96387719;\n this.h3l = 0x5940EABD;\n this.h4h = 0x96283EE2;\n this.h4l = 0xA88EFFE3;\n this.h5h = 0xBE5E1E25;\n this.h5l = 0x53863992;\n this.h6h = 0x2B0199FC;\n this.h6l = 0x2C85B8AA;\n this.h7h = 0x0EB72DDC;\n this.h7l = 0x81C52CA2;\n } else if (bits == 224) {\n this.h0h = 0x8C3D37C8;\n this.h0l = 0x19544DA2;\n this.h1h = 0x73E19966;\n this.h1l = 0x89DCD4D6;\n this.h2h = 0x1DFAB7AE;\n this.h2l = 0x32FF9C82;\n this.h3h = 0x679DD514;\n this.h3l = 0x582F9FCF;\n this.h4h = 0x0F6D2B69;\n this.h4l = 0x7BD44DA8;\n this.h5h = 0x77E36F73;\n this.h5l = 0x04C48942;\n this.h6h = 0x3F9D85A8;\n this.h6l = 0x6A1D36C8;\n this.h7h = 0x1112E6AD;\n this.h7l = 0x91D692A1;\n } else { // 512\n this.h0h = 0x6A09E667;\n this.h0l = 0xF3BCC908;\n this.h1h = 0xBB67AE85;\n this.h1l = 0x84CAA73B;\n this.h2h = 0x3C6EF372;\n this.h2l = 0xFE94F82B;\n this.h3h = 0xA54FF53A;\n this.h3l = 0x5F1D36F1;\n this.h4h = 0x510E527F;\n this.h4l = 0xADE682D1;\n this.h5h = 0x9B05688C;\n this.h5l = 0x2B3E6C1F;\n this.h6h = 0x1F83D9AB;\n this.h6l = 0xFB41BD6B;\n this.h7h = 0x5BE0CD19;\n this.h7l = 0x137E2179;\n }\n this.bits = bits;\n\n this.block = this.start = this.bytes = this.hBytes = 0;\n this.finalized = this.hashed = false;\n }\n\n Sha512.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var code, index = 0, i, length = message.length, blocks = this.blocks;\n\n while (index < length) {\n if (this.hashed) {\n this.hashed = false;\n blocks[0] = this.block;\n blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n }\n\n if(notString) {\n for (i = this.start; index < length && i < 128; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < 128; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n\n this.lastByteIndex = i;\n this.bytes += i - this.start;\n if (i >= 128) {\n this.block = blocks[32];\n this.start = i - 128;\n this.hash();\n this.hashed = true;\n } else {\n this.start = i;\n }\n }\n if (this.bytes > 4294967295) {\n this.hBytes += this.bytes / 4294967296 << 0;\n this.bytes = this.bytes % 4294967296;\n }\n return this;\n };\n\n Sha512.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex;\n blocks[32] = this.block;\n blocks[i >> 2] |= EXTRA[i & 3];\n this.block = blocks[32];\n if (i >= 112) {\n if (!this.hashed) {\n this.hash();\n }\n blocks[0] = this.block;\n blocks[1] = blocks[2] = blocks[3] = blocks[4] =\n blocks[5] = blocks[6] = blocks[7] = blocks[8] =\n blocks[9] = blocks[10] = blocks[11] = blocks[12] =\n blocks[13] = blocks[14] = blocks[15] = blocks[16] =\n blocks[17] = blocks[18] = blocks[19] = blocks[20] =\n blocks[21] = blocks[22] = blocks[23] = blocks[24] =\n blocks[25] = blocks[26] = blocks[27] = blocks[28] =\n blocks[29] = blocks[30] = blocks[31] = blocks[32] = 0;\n }\n blocks[30] = this.hBytes << 3 | this.bytes >>> 29;\n blocks[31] = this.bytes << 3;\n this.hash();\n };\n\n Sha512.prototype.hash = function () {\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n blocks = this.blocks, j, s0h, s0l, s1h, s1l, c1, c2, c3, c4,\n abh, abl, dah, dal, cdh, cdl, bch, bcl,\n majh, majl, t1h, t1l, t2h, t2l, chh, chl;\n\n for (j = 32; j < 160; j += 2) {\n t1h = blocks[j - 30];\n t1l = blocks[j - 29];\n s0h = ((t1h >>> 1) | (t1l << 31)) ^ ((t1h >>> 8) | (t1l << 24)) ^ (t1h >>> 7);\n s0l = ((t1l >>> 1) | (t1h << 31)) ^ ((t1l >>> 8) | (t1h << 24)) ^ ((t1l >>> 7) | t1h << 25);\n\n t1h = blocks[j - 4];\n t1l = blocks[j - 3];\n s1h = ((t1h >>> 19) | (t1l << 13)) ^ ((t1l >>> 29) | (t1h << 3)) ^ (t1h >>> 6);\n s1l = ((t1l >>> 19) | (t1h << 13)) ^ ((t1h >>> 29) | (t1l << 3)) ^ ((t1l >>> 6) | t1h << 26);\n\n t1h = blocks[j - 32];\n t1l = blocks[j - 31];\n t2h = blocks[j - 14];\n t2l = blocks[j - 13];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (s0l & 0xFFFF) + (s1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (s0l >>> 16) + (s1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (s0h & 0xFFFF) + (s1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (s0h >>> 16) + (s1h >>> 16) + (c3 >>> 16);\n\n blocks[j] = (c4 << 16) | (c3 & 0xFFFF);\n blocks[j + 1] = (c2 << 16) | (c1 & 0xFFFF);\n }\n\n var ah = h0h, al = h0l, bh = h1h, bl = h1l, ch = h2h, cl = h2l, dh = h3h, dl = h3l, eh = h4h, el = h4l, fh = h5h, fl = h5l, gh = h6h, gl = h6l, hh = h7h, hl = h7l;\n bch = bh & ch;\n bcl = bl & cl;\n for (j = 0; j < 160; j += 8) {\n s0h = ((ah >>> 28) | (al << 4)) ^ ((al >>> 2) | (ah << 30)) ^ ((al >>> 7) | (ah << 25));\n s0l = ((al >>> 28) | (ah << 4)) ^ ((ah >>> 2) | (al << 30)) ^ ((ah >>> 7) | (al << 25));\n\n s1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((el >>> 9) | (eh << 23));\n s1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((eh >>> 9) | (el << 23));\n\n abh = ah & bh;\n abl = al & bl;\n majh = abh ^ (ah & ch) ^ bch;\n majl = abl ^ (al & cl) ^ bcl;\n\n chh = (eh & fh) ^ (~eh & gh);\n chl = (el & fl) ^ (~el & gl);\n\n t1h = blocks[j];\n t1l = blocks[j + 1];\n t2h = K[j];\n t2l = K[j + 1];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (hl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (hl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (hh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (hh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (dl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (dl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (dh & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (dh >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n hh = (c4 << 16) | (c3 & 0xFFFF);\n hl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n dh = (c4 << 16) | (c3 & 0xFFFF);\n dl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((dh >>> 28) | (dl << 4)) ^ ((dl >>> 2) | (dh << 30)) ^ ((dl >>> 7) | (dh << 25));\n s0l = ((dl >>> 28) | (dh << 4)) ^ ((dh >>> 2) | (dl << 30)) ^ ((dh >>> 7) | (dl << 25));\n\n s1h = ((hh >>> 14) | (hl << 18)) ^ ((hh >>> 18) | (hl << 14)) ^ ((hl >>> 9) | (hh << 23));\n s1l = ((hl >>> 14) | (hh << 18)) ^ ((hl >>> 18) | (hh << 14)) ^ ((hh >>> 9) | (hl << 23));\n\n dah = dh & ah;\n dal = dl & al;\n majh = dah ^ (dh & bh) ^ abh;\n majl = dal ^ (dl & bl) ^ abl;\n\n chh = (hh & eh) ^ (~hh & fh);\n chl = (hl & el) ^ (~hl & fl);\n\n t1h = blocks[j + 2];\n t1l = blocks[j + 3];\n t2h = K[j + 2];\n t2l = K[j + 3];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (gl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (gl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (gh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (gh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (cl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (cl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (ch & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (ch >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n gh = (c4 << 16) | (c3 & 0xFFFF);\n gl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n ch = (c4 << 16) | (c3 & 0xFFFF);\n cl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((ch >>> 28) | (cl << 4)) ^ ((cl >>> 2) | (ch << 30)) ^ ((cl >>> 7) | (ch << 25));\n s0l = ((cl >>> 28) | (ch << 4)) ^ ((ch >>> 2) | (cl << 30)) ^ ((ch >>> 7) | (cl << 25));\n\n s1h = ((gh >>> 14) | (gl << 18)) ^ ((gh >>> 18) | (gl << 14)) ^ ((gl >>> 9) | (gh << 23));\n s1l = ((gl >>> 14) | (gh << 18)) ^ ((gl >>> 18) | (gh << 14)) ^ ((gh >>> 9) | (gl << 23));\n\n cdh = ch & dh;\n cdl = cl & dl;\n majh = cdh ^ (ch & ah) ^ dah;\n majl = cdl ^ (cl & al) ^ dal;\n\n chh = (gh & hh) ^ (~gh & eh);\n chl = (gl & hl) ^ (~gl & el);\n\n t1h = blocks[j + 4];\n t1l = blocks[j + 5];\n t2h = K[j + 4];\n t2l = K[j + 5];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (fl & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (fl >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (fh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (fh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (bl & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (bl >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (bh & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (bh >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n fh = (c4 << 16) | (c3 & 0xFFFF);\n fl = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n bh = (c4 << 16) | (c3 & 0xFFFF);\n bl = (c2 << 16) | (c1 & 0xFFFF);\n\n s0h = ((bh >>> 28) | (bl << 4)) ^ ((bl >>> 2) | (bh << 30)) ^ ((bl >>> 7) | (bh << 25));\n s0l = ((bl >>> 28) | (bh << 4)) ^ ((bh >>> 2) | (bl << 30)) ^ ((bh >>> 7) | (bl << 25));\n\n s1h = ((fh >>> 14) | (fl << 18)) ^ ((fh >>> 18) | (fl << 14)) ^ ((fl >>> 9) | (fh << 23));\n s1l = ((fl >>> 14) | (fh << 18)) ^ ((fl >>> 18) | (fh << 14)) ^ ((fh >>> 9) | (fl << 23));\n\n bch = bh & ch;\n bcl = bl & cl;\n majh = bch ^ (bh & dh) ^ cdh;\n majl = bcl ^ (bl & dl) ^ cdl;\n\n chh = (fh & gh) ^ (~fh & hh);\n chl = (fl & gl) ^ (~fl & hl);\n\n t1h = blocks[j + 6];\n t1l = blocks[j + 7];\n t2h = K[j + 6];\n t2l = K[j + 7];\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF) + (chl & 0xFFFF) + (s1l & 0xFFFF) + (el & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (chl >>> 16) + (s1l >>> 16) + (el >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (chh & 0xFFFF) + (s1h & 0xFFFF) + (eh & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (chh >>> 16) + (s1h >>> 16) + (eh >>> 16) + (c3 >>> 16);\n\n t1h = (c4 << 16) | (c3 & 0xFFFF);\n t1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (majl & 0xFFFF) + (s0l & 0xFFFF);\n c2 = (majl >>> 16) + (s0l >>> 16) + (c1 >>> 16);\n c3 = (majh & 0xFFFF) + (s0h & 0xFFFF) + (c2 >>> 16);\n c4 = (majh >>> 16) + (s0h >>> 16) + (c3 >>> 16);\n\n t2h = (c4 << 16) | (c3 & 0xFFFF);\n t2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (al & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (al >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (ah & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (ah >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n eh = (c4 << 16) | (c3 & 0xFFFF);\n el = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (t2l & 0xFFFF) + (t1l & 0xFFFF);\n c2 = (t2l >>> 16) + (t1l >>> 16) + (c1 >>> 16);\n c3 = (t2h & 0xFFFF) + (t1h & 0xFFFF) + (c2 >>> 16);\n c4 = (t2h >>> 16) + (t1h >>> 16) + (c3 >>> 16);\n\n ah = (c4 << 16) | (c3 & 0xFFFF);\n al = (c2 << 16) | (c1 & 0xFFFF);\n }\n\n c1 = (h0l & 0xFFFF) + (al & 0xFFFF);\n c2 = (h0l >>> 16) + (al >>> 16) + (c1 >>> 16);\n c3 = (h0h & 0xFFFF) + (ah & 0xFFFF) + (c2 >>> 16);\n c4 = (h0h >>> 16) + (ah >>> 16) + (c3 >>> 16);\n\n this.h0h = (c4 << 16) | (c3 & 0xFFFF);\n this.h0l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h1l & 0xFFFF) + (bl & 0xFFFF);\n c2 = (h1l >>> 16) + (bl >>> 16) + (c1 >>> 16);\n c3 = (h1h & 0xFFFF) + (bh & 0xFFFF) + (c2 >>> 16);\n c4 = (h1h >>> 16) + (bh >>> 16) + (c3 >>> 16);\n\n this.h1h = (c4 << 16) | (c3 & 0xFFFF);\n this.h1l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h2l & 0xFFFF) + (cl & 0xFFFF);\n c2 = (h2l >>> 16) + (cl >>> 16) + (c1 >>> 16);\n c3 = (h2h & 0xFFFF) + (ch & 0xFFFF) + (c2 >>> 16);\n c4 = (h2h >>> 16) + (ch >>> 16) + (c3 >>> 16);\n\n this.h2h = (c4 << 16) | (c3 & 0xFFFF);\n this.h2l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h3l & 0xFFFF) + (dl & 0xFFFF);\n c2 = (h3l >>> 16) + (dl >>> 16) + (c1 >>> 16);\n c3 = (h3h & 0xFFFF) + (dh & 0xFFFF) + (c2 >>> 16);\n c4 = (h3h >>> 16) + (dh >>> 16) + (c3 >>> 16);\n\n this.h3h = (c4 << 16) | (c3 & 0xFFFF);\n this.h3l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h4l & 0xFFFF) + (el & 0xFFFF);\n c2 = (h4l >>> 16) + (el >>> 16) + (c1 >>> 16);\n c3 = (h4h & 0xFFFF) + (eh & 0xFFFF) + (c2 >>> 16);\n c4 = (h4h >>> 16) + (eh >>> 16) + (c3 >>> 16);\n\n this.h4h = (c4 << 16) | (c3 & 0xFFFF);\n this.h4l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h5l & 0xFFFF) + (fl & 0xFFFF);\n c2 = (h5l >>> 16) + (fl >>> 16) + (c1 >>> 16);\n c3 = (h5h & 0xFFFF) + (fh & 0xFFFF) + (c2 >>> 16);\n c4 = (h5h >>> 16) + (fh >>> 16) + (c3 >>> 16);\n\n this.h5h = (c4 << 16) | (c3 & 0xFFFF);\n this.h5l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h6l & 0xFFFF) + (gl & 0xFFFF);\n c2 = (h6l >>> 16) + (gl >>> 16) + (c1 >>> 16);\n c3 = (h6h & 0xFFFF) + (gh & 0xFFFF) + (c2 >>> 16);\n c4 = (h6h >>> 16) + (gh >>> 16) + (c3 >>> 16);\n\n this.h6h = (c4 << 16) | (c3 & 0xFFFF);\n this.h6l = (c2 << 16) | (c1 & 0xFFFF);\n\n c1 = (h7l & 0xFFFF) + (hl & 0xFFFF);\n c2 = (h7l >>> 16) + (hl >>> 16) + (c1 >>> 16);\n c3 = (h7h & 0xFFFF) + (hh & 0xFFFF) + (c2 >>> 16);\n c4 = (h7h >>> 16) + (hh >>> 16) + (c3 >>> 16);\n\n this.h7h = (c4 << 16) | (c3 & 0xFFFF);\n this.h7l = (c2 << 16) | (c1 & 0xFFFF);\n };\n\n Sha512.prototype.hex = function () {\n this.finalize();\n\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n bits = this.bits;\n\n var hex = HEX_CHARS[(h0h >> 28) & 0x0F] + HEX_CHARS[(h0h >> 24) & 0x0F] +\n HEX_CHARS[(h0h >> 20) & 0x0F] + HEX_CHARS[(h0h >> 16) & 0x0F] +\n HEX_CHARS[(h0h >> 12) & 0x0F] + HEX_CHARS[(h0h >> 8) & 0x0F] +\n HEX_CHARS[(h0h >> 4) & 0x0F] + HEX_CHARS[h0h & 0x0F] +\n HEX_CHARS[(h0l >> 28) & 0x0F] + HEX_CHARS[(h0l >> 24) & 0x0F] +\n HEX_CHARS[(h0l >> 20) & 0x0F] + HEX_CHARS[(h0l >> 16) & 0x0F] +\n HEX_CHARS[(h0l >> 12) & 0x0F] + HEX_CHARS[(h0l >> 8) & 0x0F] +\n HEX_CHARS[(h0l >> 4) & 0x0F] + HEX_CHARS[h0l & 0x0F] +\n HEX_CHARS[(h1h >> 28) & 0x0F] + HEX_CHARS[(h1h >> 24) & 0x0F] +\n HEX_CHARS[(h1h >> 20) & 0x0F] + HEX_CHARS[(h1h >> 16) & 0x0F] +\n HEX_CHARS[(h1h >> 12) & 0x0F] + HEX_CHARS[(h1h >> 8) & 0x0F] +\n HEX_CHARS[(h1h >> 4) & 0x0F] + HEX_CHARS[h1h & 0x0F] +\n HEX_CHARS[(h1l >> 28) & 0x0F] + HEX_CHARS[(h1l >> 24) & 0x0F] +\n HEX_CHARS[(h1l >> 20) & 0x0F] + HEX_CHARS[(h1l >> 16) & 0x0F] +\n HEX_CHARS[(h1l >> 12) & 0x0F] + HEX_CHARS[(h1l >> 8) & 0x0F] +\n HEX_CHARS[(h1l >> 4) & 0x0F] + HEX_CHARS[h1l & 0x0F] +\n HEX_CHARS[(h2h >> 28) & 0x0F] + HEX_CHARS[(h2h >> 24) & 0x0F] +\n HEX_CHARS[(h2h >> 20) & 0x0F] + HEX_CHARS[(h2h >> 16) & 0x0F] +\n HEX_CHARS[(h2h >> 12) & 0x0F] + HEX_CHARS[(h2h >> 8) & 0x0F] +\n HEX_CHARS[(h2h >> 4) & 0x0F] + HEX_CHARS[h2h & 0x0F] +\n HEX_CHARS[(h2l >> 28) & 0x0F] + HEX_CHARS[(h2l >> 24) & 0x0F] +\n HEX_CHARS[(h2l >> 20) & 0x0F] + HEX_CHARS[(h2l >> 16) & 0x0F] +\n HEX_CHARS[(h2l >> 12) & 0x0F] + HEX_CHARS[(h2l >> 8) & 0x0F] +\n HEX_CHARS[(h2l >> 4) & 0x0F] + HEX_CHARS[h2l & 0x0F] +\n HEX_CHARS[(h3h >> 28) & 0x0F] + HEX_CHARS[(h3h >> 24) & 0x0F] +\n HEX_CHARS[(h3h >> 20) & 0x0F] + HEX_CHARS[(h3h >> 16) & 0x0F] +\n HEX_CHARS[(h3h >> 12) & 0x0F] + HEX_CHARS[(h3h >> 8) & 0x0F] +\n HEX_CHARS[(h3h >> 4) & 0x0F] + HEX_CHARS[h3h & 0x0F];\n if (bits >= 256) {\n hex += HEX_CHARS[(h3l >> 28) & 0x0F] + HEX_CHARS[(h3l >> 24) & 0x0F] +\n HEX_CHARS[(h3l >> 20) & 0x0F] + HEX_CHARS[(h3l >> 16) & 0x0F] +\n HEX_CHARS[(h3l >> 12) & 0x0F] + HEX_CHARS[(h3l >> 8) & 0x0F] +\n HEX_CHARS[(h3l >> 4) & 0x0F] + HEX_CHARS[h3l & 0x0F];\n }\n if (bits >= 384) {\n hex += HEX_CHARS[(h4h >> 28) & 0x0F] + HEX_CHARS[(h4h >> 24) & 0x0F] +\n HEX_CHARS[(h4h >> 20) & 0x0F] + HEX_CHARS[(h4h >> 16) & 0x0F] +\n HEX_CHARS[(h4h >> 12) & 0x0F] + HEX_CHARS[(h4h >> 8) & 0x0F] +\n HEX_CHARS[(h4h >> 4) & 0x0F] + HEX_CHARS[h4h & 0x0F] +\n HEX_CHARS[(h4l >> 28) & 0x0F] + HEX_CHARS[(h4l >> 24) & 0x0F] +\n HEX_CHARS[(h4l >> 20) & 0x0F] + HEX_CHARS[(h4l >> 16) & 0x0F] +\n HEX_CHARS[(h4l >> 12) & 0x0F] + HEX_CHARS[(h4l >> 8) & 0x0F] +\n HEX_CHARS[(h4l >> 4) & 0x0F] + HEX_CHARS[h4l & 0x0F] +\n HEX_CHARS[(h5h >> 28) & 0x0F] + HEX_CHARS[(h5h >> 24) & 0x0F] +\n HEX_CHARS[(h5h >> 20) & 0x0F] + HEX_CHARS[(h5h >> 16) & 0x0F] +\n HEX_CHARS[(h5h >> 12) & 0x0F] + HEX_CHARS[(h5h >> 8) & 0x0F] +\n HEX_CHARS[(h5h >> 4) & 0x0F] + HEX_CHARS[h5h & 0x0F] +\n HEX_CHARS[(h5l >> 28) & 0x0F] + HEX_CHARS[(h5l >> 24) & 0x0F] +\n HEX_CHARS[(h5l >> 20) & 0x0F] + HEX_CHARS[(h5l >> 16) & 0x0F] +\n HEX_CHARS[(h5l >> 12) & 0x0F] + HEX_CHARS[(h5l >> 8) & 0x0F] +\n HEX_CHARS[(h5l >> 4) & 0x0F] + HEX_CHARS[h5l & 0x0F];\n }\n if (bits == 512) {\n hex += HEX_CHARS[(h6h >> 28) & 0x0F] + HEX_CHARS[(h6h >> 24) & 0x0F] +\n HEX_CHARS[(h6h >> 20) & 0x0F] + HEX_CHARS[(h6h >> 16) & 0x0F] +\n HEX_CHARS[(h6h >> 12) & 0x0F] + HEX_CHARS[(h6h >> 8) & 0x0F] +\n HEX_CHARS[(h6h >> 4) & 0x0F] + HEX_CHARS[h6h & 0x0F] +\n HEX_CHARS[(h6l >> 28) & 0x0F] + HEX_CHARS[(h6l >> 24) & 0x0F] +\n HEX_CHARS[(h6l >> 20) & 0x0F] + HEX_CHARS[(h6l >> 16) & 0x0F] +\n HEX_CHARS[(h6l >> 12) & 0x0F] + HEX_CHARS[(h6l >> 8) & 0x0F] +\n HEX_CHARS[(h6l >> 4) & 0x0F] + HEX_CHARS[h6l & 0x0F] +\n HEX_CHARS[(h7h >> 28) & 0x0F] + HEX_CHARS[(h7h >> 24) & 0x0F] +\n HEX_CHARS[(h7h >> 20) & 0x0F] + HEX_CHARS[(h7h >> 16) & 0x0F] +\n HEX_CHARS[(h7h >> 12) & 0x0F] + HEX_CHARS[(h7h >> 8) & 0x0F] +\n HEX_CHARS[(h7h >> 4) & 0x0F] + HEX_CHARS[h7h & 0x0F] +\n HEX_CHARS[(h7l >> 28) & 0x0F] + HEX_CHARS[(h7l >> 24) & 0x0F] +\n HEX_CHARS[(h7l >> 20) & 0x0F] + HEX_CHARS[(h7l >> 16) & 0x0F] +\n HEX_CHARS[(h7l >> 12) & 0x0F] + HEX_CHARS[(h7l >> 8) & 0x0F] +\n HEX_CHARS[(h7l >> 4) & 0x0F] + HEX_CHARS[h7l & 0x0F];\n }\n return hex;\n };\n\n Sha512.prototype.toString = Sha512.prototype.hex;\n\n Sha512.prototype.digest = function () {\n this.finalize();\n\n var h0h = this.h0h, h0l = this.h0l, h1h = this.h1h, h1l = this.h1l,\n h2h = this.h2h, h2l = this.h2l, h3h = this.h3h, h3l = this.h3l,\n h4h = this.h4h, h4l = this.h4l, h5h = this.h5h, h5l = this.h5l,\n h6h = this.h6h, h6l = this.h6l, h7h = this.h7h, h7l = this.h7l,\n bits = this.bits;\n\n var arr = [\n (h0h >> 24) & 0xFF, (h0h >> 16) & 0xFF, (h0h >> 8) & 0xFF, h0h & 0xFF,\n (h0l >> 24) & 0xFF, (h0l >> 16) & 0xFF, (h0l >> 8) & 0xFF, h0l & 0xFF,\n (h1h >> 24) & 0xFF, (h1h >> 16) & 0xFF, (h1h >> 8) & 0xFF, h1h & 0xFF,\n (h1l >> 24) & 0xFF, (h1l >> 16) & 0xFF, (h1l >> 8) & 0xFF, h1l & 0xFF,\n (h2h >> 24) & 0xFF, (h2h >> 16) & 0xFF, (h2h >> 8) & 0xFF, h2h & 0xFF,\n (h2l >> 24) & 0xFF, (h2l >> 16) & 0xFF, (h2l >> 8) & 0xFF, h2l & 0xFF,\n (h3h >> 24) & 0xFF, (h3h >> 16) & 0xFF, (h3h >> 8) & 0xFF, h3h & 0xFF\n ];\n\n if (bits >= 256) {\n arr.push((h3l >> 24) & 0xFF, (h3l >> 16) & 0xFF, (h3l >> 8) & 0xFF, h3l & 0xFF);\n }\n if (bits >= 384) {\n arr.push(\n (h4h >> 24) & 0xFF, (h4h >> 16) & 0xFF, (h4h >> 8) & 0xFF, h4h & 0xFF,\n (h4l >> 24) & 0xFF, (h4l >> 16) & 0xFF, (h4l >> 8) & 0xFF, h4l & 0xFF,\n (h5h >> 24) & 0xFF, (h5h >> 16) & 0xFF, (h5h >> 8) & 0xFF, h5h & 0xFF,\n (h5l >> 24) & 0xFF, (h5l >> 16) & 0xFF, (h5l >> 8) & 0xFF, h5l & 0xFF\n );\n }\n if (bits == 512) {\n arr.push(\n (h6h >> 24) & 0xFF, (h6h >> 16) & 0xFF, (h6h >> 8) & 0xFF, h6h & 0xFF,\n (h6l >> 24) & 0xFF, (h6l >> 16) & 0xFF, (h6l >> 8) & 0xFF, h6l & 0xFF,\n (h7h >> 24) & 0xFF, (h7h >> 16) & 0xFF, (h7h >> 8) & 0xFF, h7h & 0xFF,\n (h7l >> 24) & 0xFF, (h7l >> 16) & 0xFF, (h7l >> 8) & 0xFF, h7l & 0xFF\n );\n }\n return arr;\n };\n\n Sha512.prototype.array = Sha512.prototype.digest;\n\n Sha512.prototype.arrayBuffer = function () {\n this.finalize();\n\n var bits = this.bits;\n var buffer = new ArrayBuffer(bits / 8);\n var dataView = new DataView(buffer);\n dataView.setUint32(0, this.h0h);\n dataView.setUint32(4, this.h0l);\n dataView.setUint32(8, this.h1h);\n dataView.setUint32(12, this.h1l);\n dataView.setUint32(16, this.h2h);\n dataView.setUint32(20, this.h2l);\n dataView.setUint32(24, this.h3h);\n\n if (bits >= 256) {\n dataView.setUint32(28, this.h3l);\n }\n if (bits >= 384) {\n dataView.setUint32(32, this.h4h);\n dataView.setUint32(36, this.h4l);\n dataView.setUint32(40, this.h5h);\n dataView.setUint32(44, this.h5l);\n }\n if (bits == 512) {\n dataView.setUint32(48, this.h6h);\n dataView.setUint32(52, this.h6l);\n dataView.setUint32(56, this.h7h);\n dataView.setUint32(60, this.h7l);\n }\n return buffer;\n };\n\n Sha512.prototype.clone = function () {\n var hash = new Sha512(this.bits, false);\n this.copyTo(hash);\n return hash;\n };\n\n Sha512.prototype.copyTo = function (hash) {\n var i = 0, attrs = [\n 'h0h', 'h0l', 'h1h', 'h1l', 'h2h', 'h2l', 'h3h', 'h3l', 'h4h', 'h4l', 'h5h', 'h5l', 'h6h', 'h6l', 'h7h', 'h7l',\n 'start', 'bytes', 'hBytes', 'finalized', 'hashed', 'lastByteIndex'\n ];\n for (i = 0; i < attrs.length; ++i) {\n hash[attrs[i]] = this[attrs[i]];\n }\n for (i = 0; i < this.blocks.length; ++i) {\n hash.blocks[i] = this.blocks[i];\n }\n };\n\n function HmacSha512(key, bits, sharedMemory) {\n var notString, type = typeof key;\n if (type !== 'string') {\n if (type === 'object') {\n if (key === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && key.constructor === ArrayBuffer) {\n key = new Uint8Array(key);\n } else if (!Array.isArray(key)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(key)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var length = key.length;\n if (!notString) {\n var bytes = [], length = key.length, index = 0, code;\n for (var i = 0; i < length; ++i) {\n code = key.charCodeAt(i);\n if (code < 0x80) {\n bytes[index++] = code;\n } else if (code < 0x800) {\n bytes[index++] = (0xc0 | (code >> 6));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes[index++] = (0xe0 | (code >> 12));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (key.charCodeAt(++i) & 0x3ff));\n bytes[index++] = (0xf0 | (code >> 18));\n bytes[index++] = (0x80 | ((code >> 12) & 0x3f));\n bytes[index++] = (0x80 | ((code >> 6) & 0x3f));\n bytes[index++] = (0x80 | (code & 0x3f));\n }\n }\n key = bytes;\n }\n\n if (key.length > 128) {\n key = (new Sha512(bits, true)).update(key).array();\n }\n\n var oKeyPad = [], iKeyPad = [];\n for (var i = 0; i < 128; ++i) {\n var b = key[i] || 0;\n oKeyPad[i] = 0x5c ^ b;\n iKeyPad[i] = 0x36 ^ b;\n }\n\n Sha512.call(this, bits, sharedMemory);\n\n this.update(iKeyPad);\n this.oKeyPad = oKeyPad;\n this.inner = true;\n this.sharedMemory = sharedMemory;\n }\n HmacSha512.prototype = new Sha512();\n\n HmacSha512.prototype.finalize = function () {\n Sha512.prototype.finalize.call(this);\n if (this.inner) {\n this.inner = false;\n var innerHash = this.array();\n Sha512.call(this, this.bits, this.sharedMemory);\n this.update(this.oKeyPad);\n this.update(innerHash);\n Sha512.prototype.finalize.call(this);\n }\n };\n\n HmacSha512.prototype.clone = function () {\n var hash = new HmacSha512([], this.bits, false);\n this.copyTo(hash);\n hash.inner = this.inner;\n for (var i = 0; i < this.oKeyPad.length; ++i) {\n hash.oKeyPad[i] = this.oKeyPad[i];\n }\n return hash;\n };\n\n var exports = createMethod(512);\n exports.sha512 = exports;\n exports.sha384 = createMethod(384);\n exports.sha512_256 = createMethod(256);\n exports.sha512_224 = createMethod(224);\n exports.sha512.hmac = createHmacMethod(512);\n exports.sha384.hmac = createHmacMethod(384);\n exports.sha512_256.hmac = createHmacMethod(256);\n exports.sha512_224.hmac = createHmacMethod(224);\n\n if (COMMON_JS) {\n module.exports = exports;\n } else {\n root.sha512 = exports.sha512;\n root.sha384 = exports.sha384;\n root.sha512_256 = exports.sha512_256;\n root.sha512_224 = exports.sha512_224;\n if (AMD) {\n define(function () {\n return exports;\n });\n }\n }\n})();\n","/*\n A JavaScript implementation of the SHA family of hashes, as\n defined in FIPS PUB 180-4 and FIPS PUB 202, as well as the corresponding\n HMAC implementation as defined in FIPS PUB 198a\n\n Copyright 2008-2020 Brian Turek, 1998-2009 Paul Johnston & Contributors\n Distributed under the BSD License\n See http://caligatio.github.com/jsSHA/ for more information\n*/\n'use strict';(function(aa){function C(d,b,a){var h=0,k=[],m=0,g,l,c,f,n,q,u,r,I=!1,v=[],x=[],t,y=!1,z=!1,w=-1;a=a||{};g=a.encoding||\"UTF8\";t=a.numRounds||1;if(t!==parseInt(t,10)||1>t)throw Error(\"numRounds must a integer >= 1\");if(\"SHA-1\"===d)n=512,q=K,u=ba,f=160,r=function(b){return b.slice()};else if(0===d.lastIndexOf(\"SHA-\",0))if(q=function(b,h){return L(b,h,d)},u=function(b,h,k,a){var e,f;if(\"SHA-224\"===d||\"SHA-256\"===d)e=(h+65>>>9<<4)+15,f=16;else if(\"SHA-384\"===d||\"SHA-512\"===d)e=(h+129>>>10<<\n5)+31,f=32;else throw Error(\"Unexpected error in SHA-2 implementation\");for(;b.length<=e;)b.push(0);b[h>>>5]|=128<<24-h%32;h=h+k;b[e]=h&4294967295;b[e-1]=h/4294967296|0;k=b.length;for(h=0;ha;a+=1)d[a]=b[a].slice();return d};w=1;if(\"SHA3-224\"===\nd)n=1152,f=224;else if(\"SHA3-256\"===d)n=1088,f=256;else if(\"SHA3-384\"===d)n=832,f=384;else if(\"SHA3-512\"===d)n=576,f=512;else if(\"SHAKE128\"===d)n=1344,f=-1,F=31,z=!0;else if(\"SHAKE256\"===d)n=1088,f=-1,F=31,z=!0;else throw Error(\"Chosen SHA variant is not supported\");u=function(b,d,a,h,k){a=n;var e=F,f,g=[],m=a>>>5,l=0,c=d>>>5;for(f=0;f=a;f+=m)h=D(b.slice(f,f+m),h),d-=a;b=b.slice(f);for(d%=a;b.length>>3;b[f>>2]^=e<=k)break;g.push(b.a);l+=1;0===64*l%a&&(D(null,h),l=0)}return g}}else throw Error(\"Chosen SHA variant is not supported\");c=M(b,g,w);l=A(d);this.setHMACKey=function(b,a,k){var e;if(!0===I)throw Error(\"HMAC key already set\");if(!0===y)throw Error(\"Cannot set HMAC key after calling update\");if(!0===z)throw Error(\"SHAKE is not supported for HMAC\");g=(k||{}).encoding||\"UTF8\";a=M(a,g,w)(b);b=a.binLen;a=a.value;e=n>>>3;k=e/4-1;for(e>>5;d=c(b,k,m);b=d.binLen;a=d.value;d=b>>>5;for(e=0;e>>5);m=b%n;y=!0};this.getHash=function(b,a){var e,g,c,n;if(!0===I)throw Error(\"Cannot call getHash after setting HMAC key\");c=N(a);if(!0===z){if(-1===c.shakeLen)throw Error(\"shakeLen must be specified in options\");f=c.shakeLen}switch(b){case \"HEX\":e=function(b){return O(b,\nf,w,c)};break;case \"B64\":e=function(b){return P(b,f,w,c)};break;case \"BYTES\":e=function(b){return Q(b,f,w)};break;case \"ARRAYBUFFER\":try{g=new ArrayBuffer(0)}catch(p){throw Error(\"ARRAYBUFFER not supported by this environment\");}e=function(b){return R(b,f,w)};break;case \"UINT8ARRAY\":try{g=new Uint8Array(0)}catch(p){throw Error(\"UINT8ARRAY not supported by this environment\");}e=function(b){return S(b,f,w)};break;default:throw Error(\"format must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\");}n=u(k.slice(),\nm,h,r(l),f);for(g=1;g>>24-f%32),n=u(n,f,0,A(d),f);return e(n)};this.getHMAC=function(b,a){var e,g,c,p;if(!1===I)throw Error(\"Cannot call getHMAC without first setting HMAC key\");c=N(a);switch(b){case \"HEX\":e=function(b){return O(b,f,w,c)};break;case \"B64\":e=function(b){return P(b,f,w,c)};break;case \"BYTES\":e=function(b){return Q(b,f,w)};break;case \"ARRAYBUFFER\":try{e=new ArrayBuffer(0)}catch(v){throw Error(\"ARRAYBUFFER not supported by this environment\");\n}e=function(b){return R(b,f,w)};break;case \"UINT8ARRAY\":try{e=new Uint8Array(0)}catch(v){throw Error(\"UINT8ARRAY not supported by this environment\");}e=function(b){return S(b,f,w)};break;default:throw Error(\"outputFormat must be HEX, B64, BYTES, ARRAYBUFFER, or UINT8ARRAY\");}g=u(k.slice(),m,h,r(l),f);p=q(x,A(d));p=u(g,f,n,p,f);return e(p)}}function a(d,b){this.a=d;this.b=b}function T(d,b,a,h){var k,m,g,l,c;b=b||[0];a=a||0;m=a>>>3;c=-1===h?3:0;for(k=0;k>>2,b.length<=g&&b.push(0),\nb[g]|=d[k]<<8*(c+l%4*h);return{value:b,binLen:8*d.length+a}}function O(a,b,e,h){var k=\"\";b/=8;var m,g,c;c=-1===e?3:0;for(m=0;m>>2]>>>8*(c+m%4*e),k+=\"0123456789abcdef\".charAt(g>>>4&15)+\"0123456789abcdef\".charAt(g&15);return h.outputUpper?k.toUpperCase():k}function P(a,b,e,h){var k=\"\",m=b/8,g,c,p,f;f=-1===e?3:0;for(g=0;g>>2]:0,p=g+2>>2]:0,p=(a[g>>>2]>>>8*(f+g%4*e)&255)<<16|(c>>>8*(f+(g+1)%4*e)&255)<<8|p>>>8*(f+(g+2)%4*e)&255,c=0;4>c;c+=1)8*g+6*c<=b?k+=\n\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".charAt(p>>>6*(3-c)&63):k+=h.b64Pad;return k}function Q(a,b,e){var h=\"\";b/=8;var k,c,g;g=-1===e?3:0;for(k=0;k>>2]>>>8*(g+k%4*e)&255,h+=String.fromCharCode(c);return h}function R(a,b,e){b/=8;var h,k=new ArrayBuffer(b),c,g;g=new Uint8Array(k);c=-1===e?3:0;for(h=0;h>>2]>>>8*(c+h%4*e)&255;return k}function S(a,b,e){b/=8;var h,k=new Uint8Array(b),c;c=-1===e?3:0;for(h=0;h>>2]>>>8*(c+h%4*e)&\n255;return k}function N(a){var b={outputUpper:!1,b64Pad:\"=\",shakeLen:-1};a=a||{};b.outputUpper=a.outputUpper||!1;!0===a.hasOwnProperty(\"b64Pad\")&&(b.b64Pad=a.b64Pad);if(!0===a.hasOwnProperty(\"shakeLen\")){if(0!==a.shakeLen%8)throw Error(\"shakeLen must be a multiple of 8\");b.shakeLen=a.shakeLen}if(\"boolean\"!==typeof b.outputUpper)throw Error(\"Invalid outputUpper formatting option\");if(\"string\"!==typeof b.b64Pad)throw Error(\"Invalid b64Pad formatting option\");return b}function M(a,b,e){switch(b){case \"UTF8\":case \"UTF16BE\":case \"UTF16LE\":break;\ndefault:throw Error(\"encoding must be UTF8, UTF16BE, or UTF16LE\");}switch(a){case \"HEX\":a=function(b,a,d){var g=b.length,c,p,f,n,q,u;if(0!==g%2)throw Error(\"String of HEX type must be in byte increments\");a=a||[0];d=d||0;q=d>>>3;u=-1===e?3:0;for(c=0;c>>1)+q;for(f=n>>>2;a.length<=f;)a.push(0);a[f]|=p<<8*(u+n%4*e)}return{value:a,binLen:4*g+d}};break;case \"TEXT\":a=function(a,d,c){var g,\nl,p=0,f,n,q,u,r,t;d=d||[0];c=c||0;q=c>>>3;if(\"UTF8\"===b)for(t=-1===e?3:0,f=0;fg?l.push(g):2048>g?(l.push(192|g>>>6),l.push(128|g&63)):55296>g||57344<=g?l.push(224|g>>>12,128|g>>>6&63,128|g&63):(f+=1,g=65536+((g&1023)<<10|a.charCodeAt(f)&1023),l.push(240|g>>>18,128|g>>>12&63,128|g>>>6&63,128|g&63)),n=0;n>>2;d.length<=u;)d.push(0);d[u]|=l[n]<<8*(t+r%4*e);p+=1}else if(\"UTF16BE\"===b||\"UTF16LE\"===b)for(t=-1===e?2:0,l=\"UTF16LE\"===\nb&&1!==e||\"UTF16LE\"!==b&&1===e,f=0;f>>8);r=p+q;for(u=r>>>2;d.length<=u;)d.push(0);d[u]|=g<<8*(t+r%4*e);p+=2}return{value:d,binLen:8*p+c}};break;case \"B64\":a=function(b,a,d){var c=0,l,p,f,n,q,u,r,t;if(-1===b.search(/^[a-zA-Z0-9=+\\/]+$/))throw Error(\"Invalid character in base-64 string\");p=b.indexOf(\"=\");b=b.replace(/\\=/g,\"\");if(-1!==p&&p class Keccak extends Transform {\n constructor (rate, capacity, delimitedSuffix, hashBitLength, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._hashBitLength = hashBitLength\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush (callback) {\n let error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n digest (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)\n let digest = this._state.squeeze(this._hashBitLength / 8)\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n this._resetState()\n\n return digest\n }\n\n // remove result from memory\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n // because sometimes we need hash right now and little later\n _clone () {\n const clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","const { Transform } = require('readable-stream')\n\nmodule.exports = (KeccakState) => class Shake extends Transform {\n constructor (rate, capacity, delimitedSuffix, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush () {}\n\n _read (size) {\n this.push(this.squeeze(size))\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Squeeze already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n squeeze (dataByteLength, encoding) {\n if (!this._finalized) {\n this._finalized = true\n this._state.absorbLastFewBits(this._delimitedSuffix)\n }\n\n let data = this._state.squeeze(dataByteLength)\n if (encoding !== undefined) data = data.toString(encoding)\n\n return data\n }\n\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n _clone () {\n const clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","const P1600_ROUND_CONSTANTS = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648]\n\nexports.p1600 = function (s) {\n for (let round = 0; round < 24; ++round) {\n // theta\n const lo0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]\n const hi0 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]\n const lo1 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]\n const hi1 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]\n const lo2 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]\n const hi2 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]\n const lo3 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]\n const hi3 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]\n const lo4 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]\n const hi4 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]\n\n let lo = lo4 ^ (lo1 << 1 | hi1 >>> 31)\n let hi = hi4 ^ (hi1 << 1 | lo1 >>> 31)\n const t1slo0 = s[0] ^ lo\n const t1shi0 = s[1] ^ hi\n const t1slo5 = s[10] ^ lo\n const t1shi5 = s[11] ^ hi\n const t1slo10 = s[20] ^ lo\n const t1shi10 = s[21] ^ hi\n const t1slo15 = s[30] ^ lo\n const t1shi15 = s[31] ^ hi\n const t1slo20 = s[40] ^ lo\n const t1shi20 = s[41] ^ hi\n lo = lo0 ^ (lo2 << 1 | hi2 >>> 31)\n hi = hi0 ^ (hi2 << 1 | lo2 >>> 31)\n const t1slo1 = s[2] ^ lo\n const t1shi1 = s[3] ^ hi\n const t1slo6 = s[12] ^ lo\n const t1shi6 = s[13] ^ hi\n const t1slo11 = s[22] ^ lo\n const t1shi11 = s[23] ^ hi\n const t1slo16 = s[32] ^ lo\n const t1shi16 = s[33] ^ hi\n const t1slo21 = s[42] ^ lo\n const t1shi21 = s[43] ^ hi\n lo = lo1 ^ (lo3 << 1 | hi3 >>> 31)\n hi = hi1 ^ (hi3 << 1 | lo3 >>> 31)\n const t1slo2 = s[4] ^ lo\n const t1shi2 = s[5] ^ hi\n const t1slo7 = s[14] ^ lo\n const t1shi7 = s[15] ^ hi\n const t1slo12 = s[24] ^ lo\n const t1shi12 = s[25] ^ hi\n const t1slo17 = s[34] ^ lo\n const t1shi17 = s[35] ^ hi\n const t1slo22 = s[44] ^ lo\n const t1shi22 = s[45] ^ hi\n lo = lo2 ^ (lo4 << 1 | hi4 >>> 31)\n hi = hi2 ^ (hi4 << 1 | lo4 >>> 31)\n const t1slo3 = s[6] ^ lo\n const t1shi3 = s[7] ^ hi\n const t1slo8 = s[16] ^ lo\n const t1shi8 = s[17] ^ hi\n const t1slo13 = s[26] ^ lo\n const t1shi13 = s[27] ^ hi\n const t1slo18 = s[36] ^ lo\n const t1shi18 = s[37] ^ hi\n const t1slo23 = s[46] ^ lo\n const t1shi23 = s[47] ^ hi\n lo = lo3 ^ (lo0 << 1 | hi0 >>> 31)\n hi = hi3 ^ (hi0 << 1 | lo0 >>> 31)\n const t1slo4 = s[8] ^ lo\n const t1shi4 = s[9] ^ hi\n const t1slo9 = s[18] ^ lo\n const t1shi9 = s[19] ^ hi\n const t1slo14 = s[28] ^ lo\n const t1shi14 = s[29] ^ hi\n const t1slo19 = s[38] ^ lo\n const t1shi19 = s[39] ^ hi\n const t1slo24 = s[48] ^ lo\n const t1shi24 = s[49] ^ hi\n\n // rho & pi\n const t2slo0 = t1slo0\n const t2shi0 = t1shi0\n const t2slo16 = (t1shi5 << 4 | t1slo5 >>> 28)\n const t2shi16 = (t1slo5 << 4 | t1shi5 >>> 28)\n const t2slo7 = (t1slo10 << 3 | t1shi10 >>> 29)\n const t2shi7 = (t1shi10 << 3 | t1slo10 >>> 29)\n const t2slo23 = (t1shi15 << 9 | t1slo15 >>> 23)\n const t2shi23 = (t1slo15 << 9 | t1shi15 >>> 23)\n const t2slo14 = (t1slo20 << 18 | t1shi20 >>> 14)\n const t2shi14 = (t1shi20 << 18 | t1slo20 >>> 14)\n const t2slo10 = (t1slo1 << 1 | t1shi1 >>> 31)\n const t2shi10 = (t1shi1 << 1 | t1slo1 >>> 31)\n const t2slo1 = (t1shi6 << 12 | t1slo6 >>> 20)\n const t2shi1 = (t1slo6 << 12 | t1shi6 >>> 20)\n const t2slo17 = (t1slo11 << 10 | t1shi11 >>> 22)\n const t2shi17 = (t1shi11 << 10 | t1slo11 >>> 22)\n const t2slo8 = (t1shi16 << 13 | t1slo16 >>> 19)\n const t2shi8 = (t1slo16 << 13 | t1shi16 >>> 19)\n const t2slo24 = (t1slo21 << 2 | t1shi21 >>> 30)\n const t2shi24 = (t1shi21 << 2 | t1slo21 >>> 30)\n const t2slo20 = (t1shi2 << 30 | t1slo2 >>> 2)\n const t2shi20 = (t1slo2 << 30 | t1shi2 >>> 2)\n const t2slo11 = (t1slo7 << 6 | t1shi7 >>> 26)\n const t2shi11 = (t1shi7 << 6 | t1slo7 >>> 26)\n const t2slo2 = (t1shi12 << 11 | t1slo12 >>> 21)\n const t2shi2 = (t1slo12 << 11 | t1shi12 >>> 21)\n const t2slo18 = (t1slo17 << 15 | t1shi17 >>> 17)\n const t2shi18 = (t1shi17 << 15 | t1slo17 >>> 17)\n const t2slo9 = (t1shi22 << 29 | t1slo22 >>> 3)\n const t2shi9 = (t1slo22 << 29 | t1shi22 >>> 3)\n const t2slo5 = (t1slo3 << 28 | t1shi3 >>> 4)\n const t2shi5 = (t1shi3 << 28 | t1slo3 >>> 4)\n const t2slo21 = (t1shi8 << 23 | t1slo8 >>> 9)\n const t2shi21 = (t1slo8 << 23 | t1shi8 >>> 9)\n const t2slo12 = (t1slo13 << 25 | t1shi13 >>> 7)\n const t2shi12 = (t1shi13 << 25 | t1slo13 >>> 7)\n const t2slo3 = (t1slo18 << 21 | t1shi18 >>> 11)\n const t2shi3 = (t1shi18 << 21 | t1slo18 >>> 11)\n const t2slo19 = (t1shi23 << 24 | t1slo23 >>> 8)\n const t2shi19 = (t1slo23 << 24 | t1shi23 >>> 8)\n const t2slo15 = (t1slo4 << 27 | t1shi4 >>> 5)\n const t2shi15 = (t1shi4 << 27 | t1slo4 >>> 5)\n const t2slo6 = (t1slo9 << 20 | t1shi9 >>> 12)\n const t2shi6 = (t1shi9 << 20 | t1slo9 >>> 12)\n const t2slo22 = (t1shi14 << 7 | t1slo14 >>> 25)\n const t2shi22 = (t1slo14 << 7 | t1shi14 >>> 25)\n const t2slo13 = (t1slo19 << 8 | t1shi19 >>> 24)\n const t2shi13 = (t1shi19 << 8 | t1slo19 >>> 24)\n const t2slo4 = (t1slo24 << 14 | t1shi24 >>> 18)\n const t2shi4 = (t1shi24 << 14 | t1slo24 >>> 18)\n\n // chi\n s[0] = t2slo0 ^ (~t2slo1 & t2slo2)\n s[1] = t2shi0 ^ (~t2shi1 & t2shi2)\n s[10] = t2slo5 ^ (~t2slo6 & t2slo7)\n s[11] = t2shi5 ^ (~t2shi6 & t2shi7)\n s[20] = t2slo10 ^ (~t2slo11 & t2slo12)\n s[21] = t2shi10 ^ (~t2shi11 & t2shi12)\n s[30] = t2slo15 ^ (~t2slo16 & t2slo17)\n s[31] = t2shi15 ^ (~t2shi16 & t2shi17)\n s[40] = t2slo20 ^ (~t2slo21 & t2slo22)\n s[41] = t2shi20 ^ (~t2shi21 & t2shi22)\n s[2] = t2slo1 ^ (~t2slo2 & t2slo3)\n s[3] = t2shi1 ^ (~t2shi2 & t2shi3)\n s[12] = t2slo6 ^ (~t2slo7 & t2slo8)\n s[13] = t2shi6 ^ (~t2shi7 & t2shi8)\n s[22] = t2slo11 ^ (~t2slo12 & t2slo13)\n s[23] = t2shi11 ^ (~t2shi12 & t2shi13)\n s[32] = t2slo16 ^ (~t2slo17 & t2slo18)\n s[33] = t2shi16 ^ (~t2shi17 & t2shi18)\n s[42] = t2slo21 ^ (~t2slo22 & t2slo23)\n s[43] = t2shi21 ^ (~t2shi22 & t2shi23)\n s[4] = t2slo2 ^ (~t2slo3 & t2slo4)\n s[5] = t2shi2 ^ (~t2shi3 & t2shi4)\n s[14] = t2slo7 ^ (~t2slo8 & t2slo9)\n s[15] = t2shi7 ^ (~t2shi8 & t2shi9)\n s[24] = t2slo12 ^ (~t2slo13 & t2slo14)\n s[25] = t2shi12 ^ (~t2shi13 & t2shi14)\n s[34] = t2slo17 ^ (~t2slo18 & t2slo19)\n s[35] = t2shi17 ^ (~t2shi18 & t2shi19)\n s[44] = t2slo22 ^ (~t2slo23 & t2slo24)\n s[45] = t2shi22 ^ (~t2shi23 & t2shi24)\n s[6] = t2slo3 ^ (~t2slo4 & t2slo0)\n s[7] = t2shi3 ^ (~t2shi4 & t2shi0)\n s[16] = t2slo8 ^ (~t2slo9 & t2slo5)\n s[17] = t2shi8 ^ (~t2shi9 & t2shi5)\n s[26] = t2slo13 ^ (~t2slo14 & t2slo10)\n s[27] = t2shi13 ^ (~t2shi14 & t2shi10)\n s[36] = t2slo18 ^ (~t2slo19 & t2slo15)\n s[37] = t2shi18 ^ (~t2shi19 & t2shi15)\n s[46] = t2slo23 ^ (~t2slo24 & t2slo20)\n s[47] = t2shi23 ^ (~t2shi24 & t2shi20)\n s[8] = t2slo4 ^ (~t2slo0 & t2slo1)\n s[9] = t2shi4 ^ (~t2shi0 & t2shi1)\n s[18] = t2slo9 ^ (~t2slo5 & t2slo6)\n s[19] = t2shi9 ^ (~t2shi5 & t2shi6)\n s[28] = t2slo14 ^ (~t2slo10 & t2slo11)\n s[29] = t2shi14 ^ (~t2shi10 & t2shi11)\n s[38] = t2slo19 ^ (~t2slo15 & t2slo16)\n s[39] = t2shi19 ^ (~t2shi15 & t2shi16)\n s[48] = t2slo24 ^ (~t2slo20 & t2slo21)\n s[49] = t2shi24 ^ (~t2shi20 & t2shi21)\n\n // iota\n s[0] ^= P1600_ROUND_CONSTANTS[round * 2]\n s[1] ^= P1600_ROUND_CONSTANTS[round * 2 + 1]\n }\n}\n","const keccakState = require('./keccak-state-unroll')\n\nfunction Keccak () {\n // much faster than `new Array(50)`\n this.state = [\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0\n ]\n\n this.blockSize = null\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.initialize = function (rate, capacity) {\n for (let i = 0; i < 50; ++i) this.state[i] = 0\n this.blockSize = rate / 8\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.absorb = function (data) {\n for (let i = 0; i < data.length; ++i) {\n this.state[~~(this.count / 4)] ^= data[i] << (8 * (this.count % 4))\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n}\n\nKeccak.prototype.absorbLastFewBits = function (bits) {\n this.state[~~(this.count / 4)] ^= bits << (8 * (this.count % 4))\n if ((bits & 0x80) !== 0 && this.count === (this.blockSize - 1)) keccakState.p1600(this.state)\n this.state[~~((this.blockSize - 1) / 4)] ^= 0x80 << (8 * ((this.blockSize - 1) % 4))\n keccakState.p1600(this.state)\n this.count = 0\n this.squeezing = true\n}\n\nKeccak.prototype.squeeze = function (length) {\n if (!this.squeezing) this.absorbLastFewBits(0x01)\n\n const output = Buffer.alloc(length)\n for (let i = 0; i < length; ++i) {\n output[i] = (this.state[~~(this.count / 4)] >>> (8 * (this.count % 4))) & 0xff\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n\n return output\n}\n\nKeccak.prototype.copy = function (dest) {\n for (let i = 0; i < 50; ++i) dest.state[i] = this.state[i]\n dest.blockSize = this.blockSize\n dest.count = this.count\n dest.squeezing = this.squeezing\n}\n\nmodule.exports = Keccak\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","var cbor = require('cbor-js');\nvar CRC = require('crc');\nvar base58 = require('./crypto/base58');\nvar bech32 = require('./crypto/bech32');\n\nfunction getDecoded(address) {\n try {\n var decoded = base58.decode(address);\n return cbor.decode(new Uint8Array(decoded).buffer);\n } catch (e) {\n // if decoding fails, assume invalid address\n return null;\n }\n}\n\nfunction isValidAddressV1(address) {\n var decoded = getDecoded(address);\n\n if (!decoded || (!Array.isArray(decoded) && decoded.length != 2)) {\n return false;\n }\n\n var tagged = decoded[0];\n var validCrc = decoded[1];\n if (typeof (validCrc) != 'number') {\n return false;\n }\n\n // get crc of the payload\n var crc = CRC.crc32(tagged);\n\n return crc == validCrc;\n}\n\nfunction isValidAddressShelley(address, currency, opts) {\n const {networkType = 'prod'} = opts;\n const decoded = bech32.decode(address);\n if(!decoded) {\n return false;\n }\n\n const bech32Hrp = decoded.hrp;\n let correctBech32Hrps;\n if (networkType === 'prod' || networkType === 'testnet') {\n correctBech32Hrps = currency.bech32Hrp[networkType];\n } else if (currency.bech32Hrp) {\n correctBech32Hrps = currency.bech32Hrp.prod.concat(currency.bech32Hrp.testnet)\n } else {\n return false;\n }\n\n if (correctBech32Hrps.indexOf(bech32Hrp) === -1) {\n return false;\n }\n\n return true;\n}\n\nmodule.exports = {\n isValidAddress: function (address, currency, opts = {}) {\n return isValidAddressV1(address) || isValidAddressShelley(address, currency, opts);\n }\n};\n","const cryptoUtils = require('./crypto/utils');\n\nconst ALGORAND_CHECKSUM_BYTE_LENGTH = 4;\nconst ALGORAND_ADDRESS_LENGTH = 58;\n\nmodule.exports = {\n isValidAddress: function (address, currency, opts = {}) {\n const { networkType = 'prod' } = opts;\n\n return this.verifyChecksum(address)\n },\n\n verifyChecksum: function (address) {\n if (address.length !== ALGORAND_ADDRESS_LENGTH) {\n return false\n } else {\n // Decode base32 Address\n const decoded = cryptoUtils.base32.b32decode(address);\n const addr = decoded.slice(0, decoded.length - ALGORAND_CHECKSUM_BYTE_LENGTH)\n const checksum = cryptoUtils.byteArray2hexStr(decoded.slice(-4)).toString('HEX')\n\n // Hash Address - Checksum\n const code = cryptoUtils.sha512_256(cryptoUtils.byteArray2hexStr(addr)).substr(-ALGORAND_CHECKSUM_BYTE_LENGTH * 2);\n\n return code === checksum\n }\n }\n}\n","var cryptoUtils = require('./crypto/utils');\nvar bech32 = require('./crypto/bech32');\nvar BTCValidator = require('./bitcoin_validator');\n\nfunction validateAddress(address, currency, opts) {\n var networkType = opts ? opts.networkType : ''\n var prefix = 'bitcoincash';\n var regexp = new RegExp(currency.regexp);\n var raw_address;\n\n var res = address.split(':');\n if (res.length === 1) {\n raw_address = address\n } else {\n if (res[0] !== 'bitcoincash') {\n return false;\n }\n raw_address = res[1];\n }\n\n if (!regexp.test(raw_address)) {\n return false;\n }\n\n if (raw_address.toLowerCase() != raw_address && raw_address.toUpperCase() != raw_address) {\n return false;\n }\n\n var decoded = cryptoUtils.base32.b32decode(raw_address);\n if (networkType === 'testnet') {\n prefix = 'bchtest';\n }\n\n try {\n if (bech32.verifyChecksum(prefix, decoded)) {\n return false;\n }\n } catch(e) {\n return false;\n }\n return true;\n}\n\nmodule.exports = {\n isValidAddress: function (address, currency, networkType) {\n return validateAddress(address, currency, networkType) || BTCValidator.isValidAddress(address, currency, networkType);\n }\n}\n","var base58 = require('./crypto/base58');\nvar segwit = require('./crypto/segwit_addr');\nvar cryptoUtils = require('./crypto/utils');\n\nvar DEFAULT_NETWORK_TYPE = 'prod';\n\nfunction getDecoded(address) {\n try {\n return base58.decode(address);\n } catch (e) {\n // if decoding fails, assume invalid address\n return null;\n }\n}\n\nfunction getChecksum(hashFunction, payload) {\n // Each currency may implement different hashing algorithm\n switch (hashFunction) {\n // blake then keccak hash chain\n case 'blake256keccak256':\n var blake = cryptoUtils.blake2b256(payload);\n return cryptoUtils.keccak256Checksum(Buffer.from(blake, 'hex'));\n case 'blake256':\n return cryptoUtils.blake256Checksum(payload);\n case 'keccak256':\n return cryptoUtils.keccak256Checksum(payload);\n case 'sha256':\n default:\n return cryptoUtils.sha256Checksum(payload);\n }\n}\n\nfunction getAddressType(address, currency) {\n currency = currency || {};\n // should be 25 bytes per btc address spec and 26 decred\n var expectedLength = currency.expectedLength || 25;\n var hashFunction = currency.hashFunction || 'sha256';\n var decoded = getDecoded(address);\n\n if (decoded) {\n var length = decoded.length;\n\n if (length !== expectedLength) {\n return null;\n }\n\n if(currency.regex) {\n if(!currency.regex.test(address)) {\n return false;\n }\n }\n\n var checksum = cryptoUtils.toHex(decoded.slice(length - 4, length)),\n body = cryptoUtils.toHex(decoded.slice(0, length - 4)),\n goodChecksum = getChecksum(hashFunction, body);\n\n return checksum === goodChecksum ? cryptoUtils.toHex(decoded.slice(0, expectedLength - 24)) : null;\n }\n\n return null;\n}\n\nfunction isValidP2PKHandP2SHAddress(address, currency, opts) {\n const { networkType = DEFAULT_NETWORK_TYPE} = opts;\n\n var correctAddressTypes;\n var addressType = getAddressType(address, currency);\n\n if (addressType) {\n if (networkType === 'prod' || networkType === 'testnet') {\n correctAddressTypes = currency.addressTypes[networkType]\n } else if (currency.addressTypes) {\n correctAddressTypes = currency.addressTypes.prod.concat(currency.addressTypes.testnet);\n } else {\n return false;\n }\n\n return correctAddressTypes.indexOf(addressType) >= 0;\n }\n\n return false;\n}\n\nmodule.exports = {\n isValidAddress: function (address, currency, opts = {}) {\n return isValidP2PKHandP2SHAddress(address, currency, opts) || segwit.isValidAddress(address, currency, opts);\n }\n};\n","var alphabet = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\";\n\n /**\n* Encode a string to base32\n*/\nvar b32encode = function(s) {\n var parts = [];\n var quanta = Math.floor((s.length / 5));\n var leftover = s.length % 5;\n\n if (leftover != 0) {\n for (var i = 0; i < (5 - leftover); i++) {\n s += '\\x00';\n }\n quanta += 1;\n }\n\n for (var i = 0; i < quanta; i++) {\n parts.push(alphabet.charAt(s.charCodeAt(i * 5) >> 3));\n parts.push(alphabet.charAt(((s.charCodeAt(i * 5) & 0x07) << 2) | (s.charCodeAt(i * 5 + 1) >> 6)));\n parts.push(alphabet.charAt(((s.charCodeAt(i * 5 + 1) & 0x3F) >> 1)));\n parts.push(alphabet.charAt(((s.charCodeAt(i * 5 + 1) & 0x01) << 4) | (s.charCodeAt(i * 5 + 2) >> 4)));\n parts.push(alphabet.charAt(((s.charCodeAt(i * 5 + 2) & 0x0F) << 1) | (s.charCodeAt(i * 5 + 3) >> 7)));\n parts.push(alphabet.charAt(((s.charCodeAt(i * 5 + 3) & 0x7F) >> 2)));\n parts.push(alphabet.charAt(((s.charCodeAt(i * 5 + 3) & 0x03) << 3) | (s.charCodeAt(i * 5 + 4) >> 5)));\n parts.push(alphabet.charAt(((s.charCodeAt(i * 5 + 4) & 0x1F))));\n }\n\n var replace = 0;\n if (leftover == 1) replace = 6;\n else if (leftover == 2) replace = 4;\n else if (leftover == 3) replace = 3;\n else if (leftover == 4) replace = 1;\n\n for (var i = 0; i < replace; i++) parts.pop();\n for (var i = 0; i < replace; i++) parts.push(\"=\");\n\n return parts.join(\"\");\n}\n\n/**\n* Decode a base32 string.\n* This is made specifically for our use, deals only with proper strings\n*/\nvar b32decode = function(s) {\n var r = new ArrayBuffer(s.length * 5 / 8);\n var b = new Uint8Array(r);\n for (var j = 0; j < s.length / 8; j++) {\n var v = [0, 0, 0, 0, 0, 0, 0, 0];\n for (var i = 0; i < 8; ++i) {\n v[i] = alphabet.indexOf(s[j * 8 + i]);\n }\n var i = 0;\n b[j * 5 + 0] = (v[i + 0] << 3) | (v[i + 1] >> 2);\n b[j * 5 + 1] = ((v[i + 1] & 0x3) << 6) | (v[i + 2] << 1) | (v[i + 3] >> 4);\n b[j * 5 + 2] = ((v[i + 3] & 0xf) << 4) | (v[i + 4] >> 1);\n b[j * 5 + 3] = ((v[i + 4] & 0x1) << 7) | (v[i + 5] << 2) | (v[i + 6] >> 3);\n b[j * 5 + 4] = ((v[i + 6] & 0x7) << 5) | (v[i + 7]);\n }\n return b;\n}\n\nmodule.exports = {\n b32decode: b32decode,\n b32encode: b32encode\n};","// Base58 encoding/decoding\n// Originally written by Mike Hearn for BitcoinJ\n// Copyright (c) 2011 Google Inc\n// Ported to JavaScript by Stefan Thomas\n// Merged Buffer refactorings from base58-native by Stephen Pair\n// Copyright (c) 2013 BitPay Inc\n\nvar ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';\nvar ALPHABET_MAP = {};\nfor (var i = 0; i < ALPHABET.length; ++i) {\n ALPHABET_MAP[ALPHABET.charAt(i)] = i;\n}\nvar BASE = ALPHABET.length;\n\nmodule.exports = {\n decode: function(string) {\n if (string.length === 0) return [];\n\n var i, j, bytes = [0];\n for (i = 0; i < string.length; ++i) {\n var c = string[i];\n if (!(c in ALPHABET_MAP)) throw new Error('Non-base58 character');\n\n for (j = 0; j < bytes.length; ++j) bytes[j] *= BASE\n bytes[0] += ALPHABET_MAP[c];\n\n var carry = 0;\n for (j = 0; j < bytes.length; ++j) {\n bytes[j] += carry;\n carry = bytes[j] >> 8;\n bytes[j] &= 0xff\n }\n\n while (carry) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n // deal with leading zeros\n for (i = 0; string[i] === '1' && i < string.length - 1; ++i){\n bytes.push(0);\n }\n\n return bytes.reverse();\n }\n};\n","// Copyright (c) 2017 Pieter Wuille\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nvar CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nvar GENERATOR = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\n\nmodule.exports = {\n decode: decode,\n encode: encode,\n verifyChecksum: verifyChecksum\n};\n\n\nfunction polymod (values) {\n var chk = 1;\n for (var p = 0; p < values.length; ++p) {\n var top = chk >> 25;\n chk = (chk & 0x1ffffff) << 5 ^ values[p];\n for (var i = 0; i < 5; ++i) {\n if ((top >> i) & 1) {\n chk ^= GENERATOR[i];\n }\n }\n }\n return chk;\n}\n\nfunction hrpExpand (hrp) {\n var ret = [];\n var p;\n for (p = 0; p < hrp.length; ++p) {\n ret.push(hrp.charCodeAt(p) >> 5);\n }\n ret.push(0);\n for (p = 0; p < hrp.length; ++p) {\n ret.push(hrp.charCodeAt(p) & 31);\n }\n return ret;\n}\n\nfunction verifyChecksum (hrp, data) {\n return polymod(hrpExpand(hrp).concat(data)) === 1;\n}\n\nfunction createChecksum (hrp, data) {\n var values = hrpExpand(hrp).concat(data).concat([0, 0, 0, 0, 0, 0]);\n var mod = polymod(values) ^ 1;\n var ret = [];\n for (var p = 0; p < 6; ++p) {\n ret.push((mod >> 5 * (5 - p)) & 31);\n }\n return ret;\n}\n\nfunction encode (hrp, data) {\n var combined = data.concat(createChecksum(hrp, data));\n var ret = hrp + '1';\n for (var p = 0; p < combined.length; ++p) {\n ret += CHARSET.charAt(combined[p]);\n }\n return ret;\n}\n\nfunction decode (bechString) {\n var p;\n var has_lower = false;\n var has_upper = false;\n for (p = 0; p < bechString.length; ++p) {\n if (bechString.charCodeAt(p) < 33 || bechString.charCodeAt(p) > 126) {\n return null;\n }\n if (bechString.charCodeAt(p) >= 97 && bechString.charCodeAt(p) <= 122) {\n has_lower = true;\n }\n if (bechString.charCodeAt(p) >= 65 && bechString.charCodeAt(p) <= 90) {\n has_upper = true;\n }\n }\n if (has_lower && has_upper) {\n return null;\n }\n bechString = bechString.toLowerCase();\n var pos = bechString.lastIndexOf('1');\n if (pos < 1 || pos + 7 > bechString.length || bechString.length > 110) {\n return null;\n }\n var hrp = bechString.substring(0, pos);\n var data = [];\n for (p = pos + 1; p < bechString.length; ++p) {\n var d = CHARSET.indexOf(bechString.charAt(p));\n if (d === -1) {\n return null;\n }\n data.push(d);\n }\n if (!verifyChecksum(hrp, data)) {\n return null;\n }\n return {hrp: hrp, data: data.slice(0, data.length - 6)};\n}\n","/*\n\tJavaScript BigInteger library version 0.9.1\n\thttp://silentmatt.com/biginteger/\n\tCopyright (c) 2009 Matthew Crumley \n\tCopyright (c) 2010,2011 by John Tobey \n\tLicensed under the MIT license.\n\tSupport for arbitrary internal representation base was added by\n\tVitaly Magerya.\n*/\n\n/*\n\tFile: biginteger.js\n\tExports:\n\t\t\n*/\n(function(exports) {\n \"use strict\";\n /*\n Class: BigInteger\n An arbitrarily-large integer.\n objects should be considered immutable. None of the \"built-in\"\n methods modify *this* or their arguments. All properties should be\n considered private.\n All the methods of instances can be called \"statically\". The\n static versions are convenient if you don't already have a \n object.\n As an example, these calls are equivalent.\n > BigInteger(4).multiply(5); // returns BigInteger(20);\n > BigInteger.multiply(4, 5); // returns BigInteger(20);\n > var a = 42;\n > var a = BigInteger.toJSValue(\"0b101010\"); // Not completely useless...\n */\n \n var CONSTRUCT = {}; // Unique token to call \"private\" version of constructor\n \n /*\n Constructor: BigInteger()\n Convert a value to a .\n Although is the constructor for objects, it is\n best not to call it as a constructor. If *n* is a object, it is\n simply returned as-is. Otherwise, is equivalent to \n without a radix argument.\n > var n0 = BigInteger(); // Same as \n > var n1 = BigInteger(\"123\"); // Create a new with value 123\n > var n2 = BigInteger(123); // Create a new with value 123\n > var n3 = BigInteger(n2); // Return n2, unchanged\n The constructor form only takes an array and a sign. *n* must be an\n array of numbers in little-endian order, where each digit is between 0\n and BigInteger.base. The second parameter sets the sign: -1 for\n negative, +1 for positive, or 0 for zero. The array is *not copied and\n may be modified*. If the array contains only zeros, the sign parameter\n is ignored and is forced to zero.\n > new BigInteger([5], -1): create a new BigInteger with value -5\n Parameters:\n n - Value to convert to a .\n Returns:\n A value.\n See Also:\n , \n */\n function BigInteger(n, s, token) {\n \n if (token !== CONSTRUCT) {\n if (n instanceof BigInteger) {\n return n;\n }\n else if (typeof n === \"undefined\") {\n return ZERO;\n }\n return BigInteger.parse(n);\n }\n \n n = n || []; // Provide the nullary constructor for subclasses.\n while (n.length && !n[n.length - 1]) {\n --n.length;\n }\n this._d = n;\n this._s = n.length ? (s || 1) : 0;\n }\n \n BigInteger._construct = function(n, s) {\n return new BigInteger(n, s, CONSTRUCT);\n };\n \n // Base-10 speedup hacks in parse, toString, exp10 and log functions\n // require base to be a power of 10. 10^7 is the largest such power\n // that won't cause a precision loss when digits are multiplied.\n var BigInteger_base = 10000000;\n var BigInteger_base_log10 = 7;\n \n BigInteger.base = BigInteger_base;\n BigInteger.base_log10 = BigInteger_base_log10;\n \n var ZERO = new BigInteger([], 0, CONSTRUCT);\n // Constant: ZERO\n // 0.\n BigInteger.ZERO = ZERO;\n \n var ONE = new BigInteger([1], 1, CONSTRUCT);\n // Constant: ONE\n // 1.\n BigInteger.ONE = ONE;\n \n var M_ONE = new BigInteger(ONE._d, -1, CONSTRUCT);\n // Constant: M_ONE\n // -1.\n BigInteger.M_ONE = M_ONE;\n \n // Constant: _0\n // Shortcut for .\n BigInteger._0 = ZERO;\n \n // Constant: _1\n // Shortcut for .\n BigInteger._1 = ONE;\n \n /*\n Constant: small\n Array of from 0 to 36.\n These are used internally for parsing, but useful when you need a \"small\"\n .\n See Also:\n , , <_0>, <_1>\n */\n BigInteger.small = [\n ZERO,\n ONE,\n /* Assuming BigInteger_base > 36 */\n new BigInteger( [2], 1, CONSTRUCT),\n new BigInteger( [3], 1, CONSTRUCT),\n new BigInteger( [4], 1, CONSTRUCT),\n new BigInteger( [5], 1, CONSTRUCT),\n new BigInteger( [6], 1, CONSTRUCT),\n new BigInteger( [7], 1, CONSTRUCT),\n new BigInteger( [8], 1, CONSTRUCT),\n new BigInteger( [9], 1, CONSTRUCT),\n new BigInteger([10], 1, CONSTRUCT),\n new BigInteger([11], 1, CONSTRUCT),\n new BigInteger([12], 1, CONSTRUCT),\n new BigInteger([13], 1, CONSTRUCT),\n new BigInteger([14], 1, CONSTRUCT),\n new BigInteger([15], 1, CONSTRUCT),\n new BigInteger([16], 1, CONSTRUCT),\n new BigInteger([17], 1, CONSTRUCT),\n new BigInteger([18], 1, CONSTRUCT),\n new BigInteger([19], 1, CONSTRUCT),\n new BigInteger([20], 1, CONSTRUCT),\n new BigInteger([21], 1, CONSTRUCT),\n new BigInteger([22], 1, CONSTRUCT),\n new BigInteger([23], 1, CONSTRUCT),\n new BigInteger([24], 1, CONSTRUCT),\n new BigInteger([25], 1, CONSTRUCT),\n new BigInteger([26], 1, CONSTRUCT),\n new BigInteger([27], 1, CONSTRUCT),\n new BigInteger([28], 1, CONSTRUCT),\n new BigInteger([29], 1, CONSTRUCT),\n new BigInteger([30], 1, CONSTRUCT),\n new BigInteger([31], 1, CONSTRUCT),\n new BigInteger([32], 1, CONSTRUCT),\n new BigInteger([33], 1, CONSTRUCT),\n new BigInteger([34], 1, CONSTRUCT),\n new BigInteger([35], 1, CONSTRUCT),\n new BigInteger([36], 1, CONSTRUCT)\n ];\n \n // Used for parsing/radix conversion\n BigInteger.digits = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\".split(\"\");\n \n /*\n Method: toString\n Convert a to a string.\n When *base* is greater than 10, letters are upper case.\n Parameters:\n base - Optional base to represent the number in (default is base 10).\n Must be between 2 and 36 inclusive, or an Error will be thrown.\n Returns:\n The string representation of the .\n */\n BigInteger.prototype.toString = function(base) {\n base = +base || 10;\n if (base < 2 || base > 36) {\n throw new Error(\"illegal radix \" + base + \".\");\n }\n if (this._s === 0) {\n return \"0\";\n }\n if (base === 10) {\n var str = this._s < 0 ? \"-\" : \"\";\n str += this._d[this._d.length - 1].toString();\n for (var i = this._d.length - 2; i >= 0; i--) {\n var group = this._d[i].toString();\n while (group.length < BigInteger_base_log10) group = '0' + group;\n str += group;\n }\n return str;\n }\n else {\n var numerals = BigInteger.digits;\n base = BigInteger.small[base];\n var sign = this._s;\n \n var n = this.abs();\n var digits = [];\n var digit;\n \n while (n._s !== 0) {\n var divmod = n.divRem(base);\n n = divmod[0];\n digit = divmod[1];\n // TODO: This could be changed to unshift instead of reversing at the end.\n // Benchmark both to compare speeds.\n digits.push(numerals[digit.valueOf()]);\n }\n return (sign < 0 ? \"-\" : \"\") + digits.reverse().join(\"\");\n }\n };\n \n // Verify strings for parsing\n BigInteger.radixRegex = [\n /^$/,\n /^$/,\n /^[01]*$/,\n /^[012]*$/,\n /^[0-3]*$/,\n /^[0-4]*$/,\n /^[0-5]*$/,\n /^[0-6]*$/,\n /^[0-7]*$/,\n /^[0-8]*$/,\n /^[0-9]*$/,\n /^[0-9aA]*$/,\n /^[0-9abAB]*$/,\n /^[0-9abcABC]*$/,\n /^[0-9a-dA-D]*$/,\n /^[0-9a-eA-E]*$/,\n /^[0-9a-fA-F]*$/,\n /^[0-9a-gA-G]*$/,\n /^[0-9a-hA-H]*$/,\n /^[0-9a-iA-I]*$/,\n /^[0-9a-jA-J]*$/,\n /^[0-9a-kA-K]*$/,\n /^[0-9a-lA-L]*$/,\n /^[0-9a-mA-M]*$/,\n /^[0-9a-nA-N]*$/,\n /^[0-9a-oA-O]*$/,\n /^[0-9a-pA-P]*$/,\n /^[0-9a-qA-Q]*$/,\n /^[0-9a-rA-R]*$/,\n /^[0-9a-sA-S]*$/,\n /^[0-9a-tA-T]*$/,\n /^[0-9a-uA-U]*$/,\n /^[0-9a-vA-V]*$/,\n /^[0-9a-wA-W]*$/,\n /^[0-9a-xA-X]*$/,\n /^[0-9a-yA-Y]*$/,\n /^[0-9a-zA-Z]*$/\n ];\n \n /*\n Function: parse\n Parse a string into a .\n *base* is optional but, if provided, must be from 2 to 36 inclusive. If\n *base* is not provided, it will be guessed based on the leading characters\n of *s* as follows:\n - \"0x\" or \"0X\": *base* = 16\n - \"0c\" or \"0C\": *base* = 8\n - \"0b\" or \"0B\": *base* = 2\n - else: *base* = 10\n If no base is provided, or *base* is 10, the number can be in exponential\n form. For example, these are all valid:\n > BigInteger.parse(\"1e9\"); // Same as \"1000000000\"\n > BigInteger.parse(\"1.234*10^3\"); // Same as 1234\n > BigInteger.parse(\"56789 * 10 ** -2\"); // Same as 567\n If any characters fall outside the range defined by the radix, an exception\n will be thrown.\n Parameters:\n s - The string to parse.\n base - Optional radix (default is to guess based on *s*).\n Returns:\n a instance.\n */\n BigInteger.parse = function(s, base) {\n // Expands a number in exponential form to decimal form.\n // expandExponential(\"-13.441*10^5\") === \"1344100\";\n // expandExponential(\"1.12300e-1\") === \"0.112300\";\n // expandExponential(1000000000000000000000000000000) === \"1000000000000000000000000000000\";\n function expandExponential(str) {\n str = str.replace(/\\s*[*xX]\\s*10\\s*(\\^|\\*\\*)\\s*/, \"e\");\n \n return str.replace(/^([+\\-])?(\\d+)\\.?(\\d*)[eE]([+\\-]?\\d+)$/, function(x, s, n, f, c) {\n c = +c;\n var l = c < 0;\n var i = n.length + c;\n x = (l ? n : f).length;\n c = ((c = Math.abs(c)) >= x ? c - x + l : 0);\n var z = (new Array(c + 1)).join(\"0\");\n var r = n + f;\n return (s || \"\") + (l ? r = z + r : r += z).substr(0, i += l ? z.length : 0) + (i < r.length ? \".\" + r.substr(i) : \"\");\n });\n }\n \n s = s.toString();\n if (typeof base === \"undefined\" || +base === 10) {\n s = expandExponential(s);\n }\n \n var prefixRE;\n if (typeof base === \"undefined\") {\n prefixRE = '0[xcb]';\n }\n else if (base == 16) {\n prefixRE = '0x';\n }\n else if (base == 8) {\n prefixRE = '0c';\n }\n else if (base == 2) {\n prefixRE = '0b';\n }\n else {\n prefixRE = '';\n }\n var parts = new RegExp('^([+\\\\-]?)(' + prefixRE + ')?([0-9a-z]*)(?:\\\\.\\\\d*)?$', 'i').exec(s);\n if (parts) {\n var sign = parts[1] || \"+\";\n var baseSection = parts[2] || \"\";\n var digits = parts[3] || \"\";\n \n if (typeof base === \"undefined\") {\n // Guess base\n if (baseSection === \"0x\" || baseSection === \"0X\") { // Hex\n base = 16;\n }\n else if (baseSection === \"0c\" || baseSection === \"0C\") { // Octal\n base = 8;\n }\n else if (baseSection === \"0b\" || baseSection === \"0B\") { // Binary\n base = 2;\n }\n else {\n base = 10;\n }\n }\n else if (base < 2 || base > 36) {\n throw new Error(\"Illegal radix \" + base + \".\");\n }\n \n base = +base;\n \n // Check for digits outside the range\n if (!(BigInteger.radixRegex[base].test(digits))) {\n throw new Error(\"Bad digit for radix \" + base);\n }\n \n // Strip leading zeros, and convert to array\n digits = digits.replace(/^0+/, \"\").split(\"\");\n if (digits.length === 0) {\n return ZERO;\n }\n \n // Get the sign (we know it's not zero)\n sign = (sign === \"-\") ? -1 : 1;\n \n // Optimize 10\n if (base == 10) {\n var d = [];\n while (digits.length >= BigInteger_base_log10) {\n d.push(parseInt(digits.splice(digits.length-BigInteger.base_log10, BigInteger.base_log10).join(''), 10));\n }\n d.push(parseInt(digits.join(''), 10));\n return new BigInteger(d, sign, CONSTRUCT);\n }\n \n // Do the conversion\n var d = ZERO;\n base = BigInteger.small[base];\n var small = BigInteger.small;\n for (var i = 0; i < digits.length; i++) {\n d = d.multiply(base).add(small[parseInt(digits[i], 36)]);\n }\n return new BigInteger(d._d, sign, CONSTRUCT);\n }\n else {\n throw new Error(\"Invalid BigInteger format: \" + s);\n }\n };\n \n /*\n Function: add\n Add two .\n Parameters:\n n - The number to add to *this*. Will be converted to a .\n Returns:\n The numbers added together.\n See Also:\n , , , \n */\n BigInteger.prototype.add = function(n) {\n if (this._s === 0) {\n return BigInteger(n);\n }\n \n n = BigInteger(n);\n if (n._s === 0) {\n return this;\n }\n if (this._s !== n._s) {\n n = n.negate();\n return this.subtract(n);\n }\n \n var a = this._d;\n var b = n._d;\n var al = a.length;\n var bl = b.length;\n var sum = new Array(Math.max(al, bl) + 1);\n var size = Math.min(al, bl);\n var carry = 0;\n var digit;\n \n for (var i = 0; i < size; i++) {\n digit = a[i] + b[i] + carry;\n sum[i] = digit % BigInteger_base;\n carry = (digit / BigInteger_base) | 0;\n }\n if (bl > al) {\n a = b;\n al = bl;\n }\n for (i = size; carry && i < al; i++) {\n digit = a[i] + carry;\n sum[i] = digit % BigInteger_base;\n carry = (digit / BigInteger_base) | 0;\n }\n if (carry) {\n sum[i] = carry;\n }\n \n for ( ; i < al; i++) {\n sum[i] = a[i];\n }\n \n return new BigInteger(sum, this._s, CONSTRUCT);\n };\n \n /*\n Function: negate\n Get the additive inverse of a .\n Returns:\n A with the same magnatude, but with the opposite sign.\n See Also:\n \n */\n BigInteger.prototype.negate = function() {\n return new BigInteger(this._d, (-this._s) | 0, CONSTRUCT);\n };\n \n /*\n Function: abs\n Get the absolute value of a .\n Returns:\n A with the same magnatude, but always positive (or zero).\n See Also:\n \n */\n BigInteger.prototype.abs = function() {\n return (this._s < 0) ? this.negate() : this;\n };\n \n /*\n Function: subtract\n Subtract two .\n Parameters:\n n - The number to subtract from *this*. Will be converted to a .\n Returns:\n The *n* subtracted from *this*.\n See Also:\n , , , \n */\n BigInteger.prototype.subtract = function(n) {\n if (this._s === 0) {\n return BigInteger(n).negate();\n }\n \n n = BigInteger(n);\n if (n._s === 0) {\n return this;\n }\n if (this._s !== n._s) {\n n = n.negate();\n return this.add(n);\n }\n \n var m = this;\n // negative - negative => -|a| - -|b| => -|a| + |b| => |b| - |a|\n if (this._s < 0) {\n m = new BigInteger(n._d, 1, CONSTRUCT);\n n = new BigInteger(this._d, 1, CONSTRUCT);\n }\n \n // Both are positive => a - b\n var sign = m.compareAbs(n);\n if (sign === 0) {\n return ZERO;\n }\n else if (sign < 0) {\n // swap m and n\n var t = n;\n n = m;\n m = t;\n }\n \n // a > b\n var a = m._d;\n var b = n._d;\n var al = a.length;\n var bl = b.length;\n var diff = new Array(al); // al >= bl since a > b\n var borrow = 0;\n var i;\n var digit;\n \n for (i = 0; i < bl; i++) {\n digit = a[i] - borrow - b[i];\n if (digit < 0) {\n digit += BigInteger_base;\n borrow = 1;\n }\n else {\n borrow = 0;\n }\n diff[i] = digit;\n }\n for (i = bl; i < al; i++) {\n digit = a[i] - borrow;\n if (digit < 0) {\n digit += BigInteger_base;\n }\n else {\n diff[i++] = digit;\n break;\n }\n diff[i] = digit;\n }\n for ( ; i < al; i++) {\n diff[i] = a[i];\n }\n \n return new BigInteger(diff, sign, CONSTRUCT);\n };\n \n (function() {\n function addOne(n, sign) {\n var a = n._d;\n var sum = a.slice();\n var carry = true;\n var i = 0;\n \n while (true) {\n var digit = (a[i] || 0) + 1;\n sum[i] = digit % BigInteger_base;\n if (digit <= BigInteger_base - 1) {\n break;\n }\n ++i;\n }\n \n return new BigInteger(sum, sign, CONSTRUCT);\n }\n \n function subtractOne(n, sign) {\n var a = n._d;\n var sum = a.slice();\n var borrow = true;\n var i = 0;\n \n while (true) {\n var digit = (a[i] || 0) - 1;\n if (digit < 0) {\n sum[i] = digit + BigInteger_base;\n }\n else {\n sum[i] = digit;\n break;\n }\n ++i;\n }\n \n return new BigInteger(sum, sign, CONSTRUCT);\n }\n \n /*\n Function: next\n Get the next (add one).\n Returns:\n *this* + 1.\n See Also:\n , \n */\n BigInteger.prototype.next = function() {\n switch (this._s) {\n case 0:\n return ONE;\n case -1:\n return subtractOne(this, -1);\n // case 1:\n default:\n return addOne(this, 1);\n }\n };\n \n /*\n Function: prev\n Get the previous (subtract one).\n Returns:\n *this* - 1.\n See Also:\n , \n */\n BigInteger.prototype.prev = function() {\n switch (this._s) {\n case 0:\n return M_ONE;\n case -1:\n return addOne(this, -1);\n // case 1:\n default:\n return subtractOne(this, 1);\n }\n };\n })();\n \n /*\n Function: compareAbs\n Compare the absolute value of two .\n Calling is faster than calling twice, then .\n Parameters:\n n - The number to compare to *this*. Will be converted to a .\n Returns:\n -1, 0, or +1 if *|this|* is less than, equal to, or greater than *|n|*.\n See Also:\n , \n */\n BigInteger.prototype.compareAbs = function(n) {\n if (this === n) {\n return 0;\n }\n \n if (!(n instanceof BigInteger)) {\n if (!isFinite(n)) {\n return(isNaN(n) ? n : -1);\n }\n n = BigInteger(n);\n }\n \n if (this._s === 0) {\n return (n._s !== 0) ? -1 : 0;\n }\n if (n._s === 0) {\n return 1;\n }\n \n var l = this._d.length;\n var nl = n._d.length;\n if (l < nl) {\n return -1;\n }\n else if (l > nl) {\n return 1;\n }\n \n var a = this._d;\n var b = n._d;\n for (var i = l-1; i >= 0; i--) {\n if (a[i] !== b[i]) {\n return a[i] < b[i] ? -1 : 1;\n }\n }\n \n return 0;\n };\n \n /*\n Function: compare\n Compare two .\n Parameters:\n n - The number to compare to *this*. Will be converted to a .\n Returns:\n -1, 0, or +1 if *this* is less than, equal to, or greater than *n*.\n See Also:\n , , , \n */\n BigInteger.prototype.compare = function(n) {\n if (this === n) {\n return 0;\n }\n \n n = BigInteger(n);\n \n if (this._s === 0) {\n return -n._s;\n }\n \n if (this._s === n._s) { // both positive or both negative\n var cmp = this.compareAbs(n);\n return cmp * this._s;\n }\n else {\n return this._s;\n }\n };\n \n /*\n Function: isUnit\n Return true iff *this* is either 1 or -1.\n Returns:\n true if *this* compares equal to or .\n See Also:\n , , , , ,\n , \n */\n BigInteger.prototype.isUnit = function() {\n return this === ONE ||\n this === M_ONE ||\n (this._d.length === 1 && this._d[0] === 1);\n };\n \n /*\n Function: multiply\n Multiply two .\n Parameters:\n n - The number to multiply *this* by. Will be converted to a\n .\n Returns:\n The numbers multiplied together.\n See Also:\n , , , \n */\n BigInteger.prototype.multiply = function(n) {\n // TODO: Consider adding Karatsuba multiplication for large numbers\n if (this._s === 0) {\n return ZERO;\n }\n \n n = BigInteger(n);\n if (n._s === 0) {\n return ZERO;\n }\n if (this.isUnit()) {\n if (this._s < 0) {\n return n.negate();\n }\n return n;\n }\n if (n.isUnit()) {\n if (n._s < 0) {\n return this.negate();\n }\n return this;\n }\n if (this === n) {\n return this.square();\n }\n \n var r = (this._d.length >= n._d.length);\n var a = (r ? this : n)._d; // a will be longer than b\n var b = (r ? n : this)._d;\n var al = a.length;\n var bl = b.length;\n \n var pl = al + bl;\n var partial = new Array(pl);\n var i;\n for (i = 0; i < pl; i++) {\n partial[i] = 0;\n }\n \n for (i = 0; i < bl; i++) {\n var carry = 0;\n var bi = b[i];\n var jlimit = al + i;\n var digit;\n for (var j = i; j < jlimit; j++) {\n digit = partial[j] + bi * a[j - i] + carry;\n carry = (digit / BigInteger_base) | 0;\n partial[j] = (digit % BigInteger_base) | 0;\n }\n if (carry) {\n digit = partial[j] + carry;\n carry = (digit / BigInteger_base) | 0;\n partial[j] = digit % BigInteger_base;\n }\n }\n return new BigInteger(partial, this._s * n._s, CONSTRUCT);\n };\n \n // Multiply a BigInteger by a single-digit native number\n // Assumes that this and n are >= 0\n // This is not really intended to be used outside the library itself\n BigInteger.prototype.multiplySingleDigit = function(n) {\n if (n === 0 || this._s === 0) {\n return ZERO;\n }\n if (n === 1) {\n return this;\n }\n \n var digit;\n if (this._d.length === 1) {\n digit = this._d[0] * n;\n if (digit >= BigInteger_base) {\n return new BigInteger([(digit % BigInteger_base)|0,\n (digit / BigInteger_base)|0], 1, CONSTRUCT);\n }\n return new BigInteger([digit], 1, CONSTRUCT);\n }\n \n if (n === 2) {\n return this.add(this);\n }\n if (this.isUnit()) {\n return new BigInteger([n], 1, CONSTRUCT);\n }\n \n var a = this._d;\n var al = a.length;\n \n var pl = al + 1;\n var partial = new Array(pl);\n for (var i = 0; i < pl; i++) {\n partial[i] = 0;\n }\n \n var carry = 0;\n for (var j = 0; j < al; j++) {\n digit = n * a[j] + carry;\n carry = (digit / BigInteger_base) | 0;\n partial[j] = (digit % BigInteger_base) | 0;\n }\n if (carry) {\n partial[j] = carry;\n }\n \n return new BigInteger(partial, 1, CONSTRUCT);\n };\n \n /*\n Function: square\n Multiply a by itself.\n This is slightly faster than regular multiplication, since it removes the\n duplicated multiplcations.\n Returns:\n > this.multiply(this)\n See Also:\n \n */\n BigInteger.prototype.square = function() {\n // Normally, squaring a 10-digit number would take 100 multiplications.\n // Of these 10 are unique diagonals, of the remaining 90 (100-10), 45 are repeated.\n // This procedure saves (N*(N-1))/2 multiplications, (e.g., 45 of 100 multiplies).\n // Based on code by Gary Darby, Intellitech Systems Inc., www.DelphiForFun.org\n \n if (this._s === 0) {\n return ZERO;\n }\n if (this.isUnit()) {\n return ONE;\n }\n \n var digits = this._d;\n var length = digits.length;\n var imult1 = new Array(length + length + 1);\n var product, carry, k;\n var i;\n \n // Calculate diagonal\n for (i = 0; i < length; i++) {\n k = i * 2;\n product = digits[i] * digits[i];\n carry = (product / BigInteger_base) | 0;\n imult1[k] = product % BigInteger_base;\n imult1[k + 1] = carry;\n }\n \n // Calculate repeating part\n for (i = 0; i < length; i++) {\n carry = 0;\n k = i * 2 + 1;\n for (var j = i + 1; j < length; j++, k++) {\n product = digits[j] * digits[i] * 2 + imult1[k] + carry;\n carry = (product / BigInteger_base) | 0;\n imult1[k] = product % BigInteger_base;\n }\n k = length + i;\n var digit = carry + imult1[k];\n carry = (digit / BigInteger_base) | 0;\n imult1[k] = digit % BigInteger_base;\n imult1[k + 1] += carry;\n }\n \n return new BigInteger(imult1, 1, CONSTRUCT);\n };\n \n /*\n Function: quotient\n Divide two and truncate towards zero.\n throws an exception if *n* is zero.\n Parameters:\n n - The number to divide *this* by. Will be converted to a .\n Returns:\n The *this* / *n*, truncated to an integer.\n See Also:\n , , , , \n */\n BigInteger.prototype.quotient = function(n) {\n return this.divRem(n)[0];\n };\n \n /*\n Function: divide\n Deprecated synonym for .\n */\n BigInteger.prototype.divide = BigInteger.prototype.quotient;\n \n /*\n Function: remainder\n Calculate the remainder of two .\n throws an exception if *n* is zero.\n Parameters:\n n - The remainder after *this* is divided *this* by *n*. Will be\n converted to a .\n Returns:\n *this* % *n*.\n See Also:\n , \n */\n BigInteger.prototype.remainder = function(n) {\n return this.divRem(n)[1];\n };\n \n /*\n Function: divRem\n Calculate the integer quotient and remainder of two .\n throws an exception if *n* is zero.\n Parameters:\n n - The number to divide *this* by. Will be converted to a .\n Returns:\n A two-element array containing the quotient and the remainder.\n > a.divRem(b)\n is exactly equivalent to\n > [a.quotient(b), a.remainder(b)]\n except it is faster, because they are calculated at the same time.\n See Also:\n , \n */\n BigInteger.prototype.divRem = function(n) {\n n = BigInteger(n);\n if (n._s === 0) {\n throw new Error(\"Divide by zero\");\n }\n if (this._s === 0) {\n return [ZERO, ZERO];\n }\n if (n._d.length === 1) {\n return this.divRemSmall(n._s * n._d[0]);\n }\n \n // Test for easy cases -- |n1| <= |n2|\n switch (this.compareAbs(n)) {\n case 0: // n1 == n2\n return [this._s === n._s ? ONE : M_ONE, ZERO];\n case -1: // |n1| < |n2|\n return [ZERO, this];\n }\n \n var sign = this._s * n._s;\n var a = n.abs();\n var b_digits = this._d;\n var b_index = b_digits.length;\n var digits = n._d.length;\n var quot = [];\n var guess;\n \n var part = new BigInteger([], 0, CONSTRUCT);\n \n while (b_index) {\n part._d.unshift(b_digits[--b_index]);\n part = new BigInteger(part._d, 1, CONSTRUCT);\n \n if (part.compareAbs(n) < 0) {\n quot.push(0);\n continue;\n }\n if (part._s === 0) {\n guess = 0;\n }\n else {\n var xlen = part._d.length, ylen = a._d.length;\n var highx = part._d[xlen-1]*BigInteger_base + part._d[xlen-2];\n var highy = a._d[ylen-1]*BigInteger_base + a._d[ylen-2];\n if (part._d.length > a._d.length) {\n // The length of part._d can either match a._d length,\n // or exceed it by one.\n highx = (highx+1)*BigInteger_base;\n }\n guess = Math.ceil(highx/highy);\n }\n do {\n var check = a.multiplySingleDigit(guess);\n if (check.compareAbs(part) <= 0) {\n break;\n }\n guess--;\n } while (guess);\n \n quot.push(guess);\n if (!guess) {\n continue;\n }\n var diff = part.subtract(check);\n part._d = diff._d.slice();\n }\n \n return [new BigInteger(quot.reverse(), sign, CONSTRUCT),\n new BigInteger(part._d, this._s, CONSTRUCT)];\n };\n \n // Throws an exception if n is outside of (-BigInteger.base, -1] or\n // [1, BigInteger.base). It's not necessary to call this, since the\n // other division functions will call it if they are able to.\n BigInteger.prototype.divRemSmall = function(n) {\n var r;\n n = +n;\n if (n === 0) {\n throw new Error(\"Divide by zero\");\n }\n \n var n_s = n < 0 ? -1 : 1;\n var sign = this._s * n_s;\n n = Math.abs(n);\n \n if (n < 1 || n >= BigInteger_base) {\n throw new Error(\"Argument out of range\");\n }\n \n if (this._s === 0) {\n return [ZERO, ZERO];\n }\n \n if (n === 1 || n === -1) {\n return [(sign === 1) ? this.abs() : new BigInteger(this._d, sign, CONSTRUCT), ZERO];\n }\n \n // 2 <= n < BigInteger_base\n \n // divide a single digit by a single digit\n if (this._d.length === 1) {\n var q = new BigInteger([(this._d[0] / n) | 0], 1, CONSTRUCT);\n r = new BigInteger([(this._d[0] % n) | 0], 1, CONSTRUCT);\n if (sign < 0) {\n q = q.negate();\n }\n if (this._s < 0) {\n r = r.negate();\n }\n return [q, r];\n }\n \n var digits = this._d.slice();\n var quot = new Array(digits.length);\n var part = 0;\n var diff = 0;\n var i = 0;\n var guess;\n \n while (digits.length) {\n part = part * BigInteger_base + digits[digits.length - 1];\n if (part < n) {\n quot[i++] = 0;\n digits.pop();\n diff = BigInteger_base * diff + part;\n continue;\n }\n if (part === 0) {\n guess = 0;\n }\n else {\n guess = (part / n) | 0;\n }\n \n var check = n * guess;\n diff = part - check;\n quot[i++] = guess;\n if (!guess) {\n digits.pop();\n continue;\n }\n \n digits.pop();\n part = diff;\n }\n \n r = new BigInteger([diff], 1, CONSTRUCT);\n if (this._s < 0) {\n r = r.negate();\n }\n return [new BigInteger(quot.reverse(), sign, CONSTRUCT), r];\n };\n \n /*\n Function: isEven\n Return true iff *this* is divisible by two.\n Note that is even.\n Returns:\n true if *this* is even, false otherwise.\n See Also:\n \n */\n BigInteger.prototype.isEven = function() {\n var digits = this._d;\n return this._s === 0 || digits.length === 0 || (digits[0] % 2) === 0;\n };\n \n /*\n Function: isOdd\n Return true iff *this* is not divisible by two.\n Returns:\n true if *this* is odd, false otherwise.\n See Also:\n \n */\n BigInteger.prototype.isOdd = function() {\n return !this.isEven();\n };\n \n /*\n Function: sign\n Get the sign of a .\n Returns:\n * -1 if *this* < 0\n * 0 if *this* == 0\n * +1 if *this* > 0\n See Also:\n , , , , \n */\n BigInteger.prototype.sign = function() {\n return this._s;\n };\n \n /*\n Function: isPositive\n Return true iff *this* > 0.\n Returns:\n true if *this*.compare() == 1.\n See Also:\n , , , , , \n */\n BigInteger.prototype.isPositive = function() {\n return this._s > 0;\n };\n \n /*\n Function: isNegative\n Return true iff *this* < 0.\n Returns:\n true if *this*.compare() == -1.\n See Also:\n , , , , , \n */\n BigInteger.prototype.isNegative = function() {\n return this._s < 0;\n };\n \n /*\n Function: isZero\n Return true iff *this* == 0.\n Returns:\n true if *this*.compare() == 0.\n See Also:\n , , , , \n */\n BigInteger.prototype.isZero = function() {\n return this._s === 0;\n };\n \n /*\n Function: exp10\n Multiply a by a power of 10.\n This is equivalent to, but faster than\n > if (n >= 0) {\n > return this.multiply(BigInteger(\"1e\" + n));\n > }\n > else { // n <= 0\n > return this.quotient(BigInteger(\"1e\" + -n));\n > }\n Parameters:\n n - The power of 10 to multiply *this* by. *n* is converted to a\n javascipt number and must be no greater than \n (0x7FFFFFFF), or an exception will be thrown.\n Returns:\n *this* * (10 ** *n*), truncated to an integer if necessary.\n See Also:\n , \n */\n BigInteger.prototype.exp10 = function(n) {\n n = +n;\n if (n === 0) {\n return this;\n }\n if (Math.abs(n) > Number(MAX_EXP)) {\n throw new Error(\"exponent too large in BigInteger.exp10\");\n }\n // Optimization for this == 0. This also keeps us from having to trim zeros in the positive n case\n if (this._s === 0) {\n return ZERO;\n }\n if (n > 0) {\n var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);\n \n for (; n >= BigInteger_base_log10; n -= BigInteger_base_log10) {\n k._d.unshift(0);\n }\n if (n == 0)\n return k;\n k._s = 1;\n k = k.multiplySingleDigit(Math.pow(10, n));\n return (this._s < 0 ? k.negate() : k);\n } else if (-n >= this._d.length*BigInteger_base_log10) {\n return ZERO;\n } else {\n var k = new BigInteger(this._d.slice(), this._s, CONSTRUCT);\n \n for (n = -n; n >= BigInteger_base_log10; n -= BigInteger_base_log10) {\n k._d.shift();\n }\n return (n == 0) ? k : k.divRemSmall(Math.pow(10, n))[0];\n }\n };\n \n /*\n Function: pow\n Raise a to a power.\n In this implementation, 0**0 is 1.\n Parameters:\n n - The exponent to raise *this* by. *n* must be no greater than\n (0x7FFFFFFF), or an exception will be thrown.\n Returns:\n *this* raised to the *nth* power.\n See Also:\n \n */\n BigInteger.prototype.pow = function(n) {\n if (this.isUnit()) {\n if (this._s > 0) {\n return this;\n }\n else {\n return BigInteger(n).isOdd() ? this : this.negate();\n }\n }\n \n n = BigInteger(n);\n if (n._s === 0) {\n return ONE;\n }\n else if (n._s < 0) {\n if (this._s === 0) {\n throw new Error(\"Divide by zero\");\n }\n else {\n return ZERO;\n }\n }\n if (this._s === 0) {\n return ZERO;\n }\n if (n.isUnit()) {\n return this;\n }\n \n if (n.compareAbs(MAX_EXP) > 0) {\n throw new Error(\"exponent too large in BigInteger.pow\");\n }\n var x = this;\n var aux = ONE;\n var two = BigInteger.small[2];\n \n while (n.isPositive()) {\n if (n.isOdd()) {\n aux = aux.multiply(x);\n if (n.isUnit()) {\n return aux;\n }\n }\n x = x.square();\n n = n.quotient(two);\n }\n \n return aux;\n };\n \n /*\n Function: modPow\n Raise a to a power (mod m).\n Because it is reduced by a modulus, is not limited by\n like .\n Parameters:\n exponent - The exponent to raise *this* by. Must be positive.\n modulus - The modulus.\n Returns:\n *this* ^ *exponent* (mod *modulus*).\n See Also:\n , \n */\n BigInteger.prototype.modPow = function(exponent, modulus) {\n var result = ONE;\n var base = this;\n \n while (exponent.isPositive()) {\n if (exponent.isOdd()) {\n result = result.multiply(base).remainder(modulus);\n }\n \n exponent = exponent.quotient(BigInteger.small[2]);\n if (exponent.isPositive()) {\n base = base.square().remainder(modulus);\n }\n }\n \n return result;\n };\n \n /*\n Function: log\n Get the natural logarithm of a as a native JavaScript number.\n This is equivalent to\n > Math.log(this.toJSValue())\n but handles values outside of the native number range.\n Returns:\n log( *this* )\n See Also:\n \n */\n BigInteger.prototype.log = function() {\n switch (this._s) {\n case 0:\t return -Infinity;\n case -1: return NaN;\n default: // Fall through.\n }\n \n var l = this._d.length;\n \n if (l*BigInteger_base_log10 < 30) {\n return Math.log(this.valueOf());\n }\n \n var N = Math.ceil(30/BigInteger_base_log10);\n var firstNdigits = this._d.slice(l - N);\n return Math.log((new BigInteger(firstNdigits, 1, CONSTRUCT)).valueOf()) + (l - N) * Math.log(BigInteger_base);\n };\n \n /*\n Function: valueOf\n Convert a to a native JavaScript integer.\n This is called automatically by JavaScipt to convert a to a\n native value.\n Returns:\n > parseInt(this.toString(), 10)\n See Also:\n , \n */\n BigInteger.prototype.valueOf = function() {\n return parseInt(this.toString(), 10);\n };\n \n /*\n Function: toJSValue\n Convert a to a native JavaScript integer.\n This is the same as valueOf, but more explicitly named.\n Returns:\n > parseInt(this.toString(), 10)\n See Also:\n , \n */\n BigInteger.prototype.toJSValue = function() {\n return parseInt(this.toString(), 10);\n };\n \n \n /*\n Function: lowVal\n Author: Lucas Jones\n */\n BigInteger.prototype.lowVal = function () {\n return this._d[0] || 0;\n };\n \n var MAX_EXP = BigInteger(0x7FFFFFFF);\n // Constant: MAX_EXP\n // The largest exponent allowed in and (0x7FFFFFFF or 2147483647).\n BigInteger.MAX_EXP = MAX_EXP;\n \n (function() {\n function makeUnary(fn) {\n return function(a) {\n return fn.call(BigInteger(a));\n };\n }\n \n function makeBinary(fn) {\n return function(a, b) {\n return fn.call(BigInteger(a), BigInteger(b));\n };\n }\n \n function makeTrinary(fn) {\n return function(a, b, c) {\n return fn.call(BigInteger(a), BigInteger(b), BigInteger(c));\n };\n }\n \n (function() {\n var i, fn;\n var unary = \"toJSValue,isEven,isOdd,sign,isZero,isNegative,abs,isUnit,square,negate,isPositive,toString,next,prev,log\".split(\",\");\n var binary = \"compare,remainder,divRem,subtract,add,quotient,divide,multiply,pow,compareAbs\".split(\",\");\n var trinary = [\"modPow\"];\n \n for (i = 0; i < unary.length; i++) {\n fn = unary[i];\n BigInteger[fn] = makeUnary(BigInteger.prototype[fn]);\n }\n \n for (i = 0; i < binary.length; i++) {\n fn = binary[i];\n BigInteger[fn] = makeBinary(BigInteger.prototype[fn]);\n }\n \n for (i = 0; i < trinary.length; i++) {\n fn = trinary[i];\n BigInteger[fn] = makeTrinary(BigInteger.prototype[fn]);\n }\n \n BigInteger.exp10 = function(x, n) {\n return BigInteger(x).exp10(n);\n };\n })();\n })();\n \n exports.JSBigInt = BigInteger; // exports.BigInteger changed to exports.JSBigInt\n })(typeof exports !== 'undefined' ? exports : this);","'use strict';\n\n/**\n * Credits to https://github.com/cryptocoinjs/blake-hash\n */\nBlake256.sigma = [\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],\n [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],\n [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],\n [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],\n [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9],\n [12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11],\n [13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10],\n [6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5],\n [10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0],\n [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],\n [14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3],\n [11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4],\n [7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8],\n [9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13],\n [2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9]\n]\n\nBlake256.u256 = [\n 0x243f6a88, 0x85a308d3, 0x13198a2e, 0x03707344,\n 0xa4093822, 0x299f31d0, 0x082efa98, 0xec4e6c89,\n 0x452821e6, 0x38d01377, 0xbe5466cf, 0x34e90c6c,\n 0xc0ac29b7, 0xc97c50dd, 0x3f84d5b5, 0xb5470917\n]\n\nBlake256.padding = Buffer.from([\n 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0\n])\n\nBlake256.prototype._length_carry = function (arr) {\n for (var j = 0; j < arr.length; ++j) {\n if (arr[j] < 0x0100000000) break\n arr[j] -= 0x0100000000\n arr[j + 1] += 1\n }\n}\n\nBlake256.prototype.update = function (data, encoding) {\n data = Buffer.from(data, encoding);\n var block = this._block\n var offset = 0\n\n while (this._blockOffset + data.length - offset >= block.length) {\n for (var i = this._blockOffset; i < block.length;) block[i++] = data[offset++]\n\n this._length[0] += block.length * 8\n this._length_carry(this._length)\n\n this._compress()\n this._blockOffset = 0\n }\n\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n return this;\n}\n\nvar zo = Buffer.from([0x01])\nvar oo = Buffer.from([0x81])\n\nfunction rot (x, n) {\n return ((x << (32 - n)) | (x >>> n)) >>> 0\n}\n\nfunction g (v, m, i, a, b, c, d, e) {\n var sigma = Blake256.sigma\n var u256 = Blake256.u256\n\n v[a] = (v[a] + ((m[sigma[i][e]] ^ u256[sigma[i][e + 1]]) >>> 0) + v[b]) >>> 0\n v[d] = rot(v[d] ^ v[a], 16)\n v[c] = (v[c] + v[d]) >>> 0\n v[b] = rot(v[b] ^ v[c], 12)\n v[a] = (v[a] + ((m[sigma[i][e + 1]] ^ u256[sigma[i][e]]) >>> 0) + v[b]) >>> 0\n v[d] = rot(v[d] ^ v[a], 8)\n v[c] = (v[c] + v[d]) >>> 0\n v[b] = rot(v[b] ^ v[c], 7)\n}\n\nfunction Blake256 () {\n this._h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ]\n\n this._s = [0, 0, 0, 0]\n\n this._block = Buffer.allocUnsafe(64)\n this._blockOffset = 0\n this._length = [0, 0]\n\n this._nullt = false\n\n this._zo = zo\n this._oo = oo\n}\n\nBlake256.prototype._compress = function () {\n var u256 = Blake256.u256\n var v = new Array(16)\n var m = new Array(16)\n var i\n\n for (i = 0; i < 16; ++i) m[i] = this._block.readUInt32BE(i * 4)\n for (i = 0; i < 8; ++i) v[i] = this._h[i] >>> 0\n for (i = 8; i < 12; ++i) v[i] = (this._s[i - 8] ^ u256[i - 8]) >>> 0\n for (i = 12; i < 16; ++i) v[i] = u256[i - 8]\n\n if (!this._nullt) {\n v[12] = (v[12] ^ this._length[0]) >>> 0\n v[13] = (v[13] ^ this._length[0]) >>> 0\n v[14] = (v[14] ^ this._length[1]) >>> 0\n v[15] = (v[15] ^ this._length[1]) >>> 0\n }\n\n for (i = 0; i < 14; ++i) {\n /* column step */\n g(v, m, i, 0, 4, 8, 12, 0)\n g(v, m, i, 1, 5, 9, 13, 2)\n g(v, m, i, 2, 6, 10, 14, 4)\n g(v, m, i, 3, 7, 11, 15, 6)\n /* diagonal step */\n g(v, m, i, 0, 5, 10, 15, 8)\n g(v, m, i, 1, 6, 11, 12, 10)\n g(v, m, i, 2, 7, 8, 13, 12)\n g(v, m, i, 3, 4, 9, 14, 14)\n }\n\n for (i = 0; i < 16; ++i) this._h[i % 8] = (this._h[i % 8] ^ v[i]) >>> 0\n for (i = 0; i < 8; ++i) this._h[i] = (this._h[i] ^ this._s[i % 4]) >>> 0\n}\n\nBlake256.prototype._padding = function () {\n var lo = this._length[0] + this._blockOffset * 8\n var hi = this._length[1]\n if (lo >= 0x0100000000) {\n lo -= 0x0100000000\n hi += 1\n }\n\n var msglen = Buffer.allocUnsafe(8)\n msglen.writeUInt32BE(hi, 0)\n msglen.writeUInt32BE(lo, 4)\n\n if (this._blockOffset === 55) {\n this._length[0] -= 8\n this.update(this._oo)\n } else {\n if (this._blockOffset < 55) {\n if (this._blockOffset === 0) this._nullt = true\n this._length[0] -= (55 - this._blockOffset) * 8\n this.update(Blake256.padding.slice(0, 55 - this._blockOffset))\n } else {\n this._length[0] -= (64 - this._blockOffset) * 8\n this.update(Blake256.padding.slice(0, 64 - this._blockOffset))\n this._length[0] -= 55 * 8\n this.update(Blake256.padding.slice(1, 1 + 55))\n this._nullt = true\n }\n\n this.update(this._zo)\n this._length[0] -= 8\n }\n\n this._length[0] -= 64\n this.update(msglen)\n}\n\nBlake256.prototype.digest = function (encoding) {\n this._padding()\n\n var buffer = Buffer.allocUnsafe(32)\n for (var i = 0; i < 8; ++i) buffer.writeUInt32BE(this._h[i], i * 4)\n return buffer.toString(encoding);\n}\n\nmodule.exports = Blake256;\n","'use strict';\n\n/**\n * Credits to https://github.com/emilbayes/blake2b\n *\n * Copyright (c) 2017, Emil Bay github@tixz.dk\n *\n * Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n */\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n var o0 = v[a] + v[b]\n var o1 = v[a + 1] + v[b + 1]\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n var o0 = v[a] + b0\n if (b0 < 0) {\n o0 += 0x100000000\n }\n var o1 = v[a + 1] + b1\n if (o0 >= 0x100000000) {\n o1++\n }\n v[a] = o0\n v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n return (arr[i] ^\n (arr[i + 1] << 8) ^\n (arr[i + 2] << 16) ^\n (arr[i + 3] << 24))\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n var x0 = m[ix]\n var x1 = m[ix + 1]\n var y0 = m[iy]\n var y1 = m[iy + 1]\n\n ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n var xor0 = v[d] ^ v[a]\n var xor1 = v[d + 1] ^ v[a + 1]\n v[d] = xor1\n v[d + 1] = xor0\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n ADD64AA(v, a, b)\n ADD64AC(v, a, y0, y1)\n\n // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n xor0 = v[d] ^ v[a]\n xor1 = v[d + 1] ^ v[a + 1]\n v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n ADD64AA(v, c, d)\n\n // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n xor0 = v[b] ^ v[c]\n xor1 = v[b + 1] ^ v[c + 1]\n v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nvar BLAKE2B_IV32 = new Uint32Array([\n 0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,\n 0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,\n 0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,\n 0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19\n])\n\nvar SIGMA8 = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nvar SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 }))\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nvar v = new Uint32Array(32)\nvar m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n var i = 0\n\n // init work variables\n for (i = 0; i < 16; i++) {\n v[i] = ctx.h[i]\n v[i + 16] = BLAKE2B_IV32[i]\n }\n\n // low 64 bits of offset\n v[24] = v[24] ^ ctx.t\n v[25] = v[25] ^ (ctx.t / 0x100000000)\n // high 64 bits not supported, offset may not be higher than 2**53-1\n\n // last block flag set ?\n if (last) {\n v[28] = ~v[28]\n v[29] = ~v[29]\n }\n\n // get little-endian words\n for (i = 0; i < 32; i++) {\n m[i] = B2B_GET32(ctx.b, 4 * i)\n }\n\n // twelve rounds of mixing\n for (i = 0; i < 12; i++) {\n B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n }\n\n for (i = 0; i < 16; i++) {\n ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n }\n}\n\n// reusable parameter_block\nvar parameter_block = new Uint8Array([\n 0, 0, 0, 0, // 0: outlen, keylen, fanout, depth\n 0, 0, 0, 0, // 4: leaf length, sequential mode\n 0, 0, 0, 0, // 8: node offset\n 0, 0, 0, 0, // 12: node offset\n 0, 0, 0, 0, // 16: node depth, inner length, rfu\n 0, 0, 0, 0, // 20: rfu\n 0, 0, 0, 0, // 24: rfu\n 0, 0, 0, 0, // 28: rfu\n 0, 0, 0, 0, // 32: salt\n 0, 0, 0, 0, // 36: salt\n 0, 0, 0, 0, // 40: salt\n 0, 0, 0, 0, // 44: salt\n 0, 0, 0, 0, // 48: personal\n 0, 0, 0, 0, // 52: personal\n 0, 0, 0, 0, // 56: personal\n 0, 0, 0, 0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\nfunction Blake2b (outlen, key, salt, personal) {\n // zero out parameter_block before usage\n parameter_block.fill(0)\n // state, 'param block'\n\n this.b = new Uint8Array(128)\n this.h = new Uint32Array(16)\n this.t = 0 // input count\n this.c = 0 // pointer within buffer\n this.outlen = outlen // output length in bytes\n\n parameter_block[0] = outlen\n if (key) parameter_block[1] = key.length\n parameter_block[2] = 1 // fanout\n parameter_block[3] = 1 // depth\n\n if (salt) parameter_block.set(salt, 32)\n if (personal) parameter_block.set(personal, 48)\n\n // initialize hash state\n for (var i = 0; i < 16; i++) {\n this.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameter_block, i * 4)\n }\n\n // key the hash, if applicable\n if (key) {\n blake2bUpdate(this, key)\n // at the end\n this.c = 128\n }\n}\n\nBlake2b.prototype.update = function (input) {\n blake2bUpdate(this, input)\n return this\n}\n\nBlake2b.prototype.digest = function (out) {\n var buf = (!out || out === 'binary' || out === 'hex') ? new Uint8Array(this.outlen) : out\n blake2bFinal(this, buf)\n if (out === 'hex') return hexSlice(buf)\n return buf\n}\n\nBlake2b.prototype.final = Blake2b.prototype.digest\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n for (var i = 0; i < input.length; i++) {\n if (ctx.c === 128) { // buffer full ?\n ctx.t += ctx.c // add counters\n blake2bCompress(ctx, false) // compress (not last)\n ctx.c = 0 // counter to zero\n }\n ctx.b[ctx.c++] = input[i]\n }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx, out) {\n ctx.t += ctx.c // mark last block offset\n\n while (ctx.c < 128) { // fill up with zeros\n ctx.b[ctx.c++] = 0\n }\n blake2bCompress(ctx, true) // final block flag = 1\n\n for (var i = 0; i < ctx.outlen; i++) {\n out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n }\n return out\n}\n\nfunction hexSlice (buf) {\n var str = ''\n for (var i = 0; i < buf.length; i++) str += toHex(buf[i])\n return str\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nmodule.exports = Blake2b;\n","var JSBigInt = require('./biginteger')['JSBigInt'];\n\n/**\nCopyright (c) 2017, moneroexamples\n\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\nlist of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\nthis list of conditions and the following disclaimer in the documentation\nand/or other materials provided with the distribution.\n\n3. Neither the name of the copyright holder nor the names of its contributors\nmay be used to endorse or promote products derived from this software without\nspecific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\nANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\nParts of the project are originally copyright (c) 2014-2017, MyMonero.com\n*/\n\nvar cnBase58 = (function () {\n var b58 = {};\n\n var alphabet_str = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\";\n var alphabet = [];\n for (var i = 0; i < alphabet_str.length; i++) {\n alphabet.push(alphabet_str.charCodeAt(i));\n }\n var encoded_block_sizes = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n\n var alphabet_size = alphabet.length;\n var full_block_size = 8;\n var full_encoded_block_size = 11;\n\n var UINT64_MAX = new JSBigInt(2).pow(64);\n\n function hextobin(hex) {\n if (hex.length % 2 !== 0) throw \"Hex string has invalid length!\";\n var res = new Uint8Array(hex.length / 2);\n for (var i = 0; i < hex.length / 2; ++i) {\n res[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);\n }\n return res;\n }\n\n function bintohex(bin) {\n var out = [];\n for (var i = 0; i < bin.length; ++i) {\n out.push((\"0\" + bin[i].toString(16)).slice(-2));\n }\n return out.join(\"\");\n }\n\n function strtobin(str) {\n var res = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n res[i] = str.charCodeAt(i);\n }\n return res;\n }\n\n function bintostr(bin) {\n var out = [];\n for (var i = 0; i < bin.length; i++) {\n out.push(String.fromCharCode(bin[i]));\n }\n return out.join(\"\");\n }\n\n function uint8_be_to_64(data) {\n if (data.length < 1 || data.length > 8) {\n throw \"Invalid input length\";\n }\n var res = JSBigInt.ZERO;\n var twopow8 = new JSBigInt(2).pow(8);\n var i = 0;\n switch (9 - data.length) {\n case 1:\n res = res.add(data[i++]);\n case 2:\n res = res.multiply(twopow8).add(data[i++]);\n case 3:\n res = res.multiply(twopow8).add(data[i++]);\n case 4:\n res = res.multiply(twopow8).add(data[i++]);\n case 5:\n res = res.multiply(twopow8).add(data[i++]);\n case 6:\n res = res.multiply(twopow8).add(data[i++]);\n case 7:\n res = res.multiply(twopow8).add(data[i++]);\n case 8:\n res = res.multiply(twopow8).add(data[i++]);\n break;\n default:\n throw \"Impossible condition\";\n }\n return res;\n }\n\n function uint64_to_8be(num, size) {\n var res = new Uint8Array(size);\n if (size < 1 || size > 8) {\n throw \"Invalid input length\";\n }\n var twopow8 = new JSBigInt(2).pow(8);\n for (var i = size - 1; i >= 0; i--) {\n res[i] = num.remainder(twopow8).toJSValue();\n num = num.divide(twopow8);\n }\n return res;\n }\n\n b58.encode_block = function (data, buf, index) {\n if (data.length < 1 || data.length > full_encoded_block_size) {\n throw \"Invalid block length: \" + data.length;\n }\n var num = uint8_be_to_64(data);\n var i = encoded_block_sizes[data.length] - 1;\n // while num > 0\n while (num.compare(0) === 1) {\n var div = num.divRem(alphabet_size);\n // remainder = num % alphabet_size\n var remainder = div[1];\n // num = num / alphabet_size\n num = div[0];\n buf[index + i] = alphabet[remainder.toJSValue()];\n i--;\n }\n return buf;\n };\n\n b58.encode = function (hex) {\n var data = hextobin(hex);\n if (data.length === 0) {\n return \"\";\n }\n var full_block_count = Math.floor(data.length / full_block_size);\n var last_block_size = data.length % full_block_size;\n var res_size = full_block_count * full_encoded_block_size + encoded_block_sizes[last_block_size];\n\n var res = new Uint8Array(res_size);\n var i;\n for (i = 0; i < res_size; ++i) {\n res[i] = alphabet[0];\n }\n for (i = 0; i < full_block_count; i++) {\n res = b58.encode_block(data.subarray(i * full_block_size, i * full_block_size + full_block_size), res, i * full_encoded_block_size);\n }\n if (last_block_size > 0) {\n res = b58.encode_block(data.subarray(full_block_count * full_block_size, full_block_count * full_block_size + last_block_size), res, full_block_count * full_encoded_block_size)\n }\n return bintostr(res);\n };\n\n b58.decode_block = function (data, buf, index) {\n if (data.length < 1 || data.length > full_encoded_block_size) {\n throw \"Invalid block length: \" + data.length;\n }\n\n var res_size = encoded_block_sizes.indexOf(data.length);\n if (res_size <= 0) {\n throw \"Invalid block size\";\n }\n var res_num = new JSBigInt(0);\n var order = new JSBigInt(1);\n for (var i = data.length - 1; i >= 0; i--) {\n var digit = alphabet.indexOf(data[i]);\n if (digit < 0) {\n throw \"Invalid symbol\";\n }\n var product = order.multiply(digit).add(res_num);\n // if product > UINT64_MAX\n if (product.compare(UINT64_MAX) === 1) {\n throw \"Overflow\";\n }\n res_num = product;\n order = order.multiply(alphabet_size);\n }\n if (res_size < full_block_size && (new JSBigInt(2).pow(8 * res_size).compare(res_num) <= 0)) {\n throw \"Overflow 2\";\n }\n buf.set(uint64_to_8be(res_num, res_size), index);\n return buf;\n };\n\n b58.decode = function (enc) {\n enc = strtobin(enc);\n if (enc.length === 0) {\n return \"\";\n }\n var full_block_count = Math.floor(enc.length / full_encoded_block_size);\n var last_block_size = enc.length % full_encoded_block_size;\n var last_block_decoded_size = encoded_block_sizes.indexOf(last_block_size);\n if (last_block_decoded_size < 0) {\n throw \"Invalid encoded length\";\n }\n var data_size = full_block_count * full_block_size + last_block_decoded_size;\n var data = new Uint8Array(data_size);\n for (var i = 0; i < full_block_count; i++) {\n data = b58.decode_block(enc.subarray(i * full_encoded_block_size, i * full_encoded_block_size + full_encoded_block_size), data, i * full_block_size);\n }\n if (last_block_size > 0) {\n data = b58.decode_block(enc.subarray(full_block_count * full_encoded_block_size, full_block_count * full_encoded_block_size + last_block_size), data, full_block_count * full_block_size);\n }\n return bintohex(data);\n };\n\n return b58;\n})();\nmodule.exports = cnBase58;","// Copyright (c) 2017 Pieter Wuille\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\nvar bech32 = require('./bech32');\n\nvar DEFAULT_NETWORK_TYPE = 'prod'\n\nfunction convertbits (data, frombits, tobits, pad) {\n var acc = 0;\n var bits = 0;\n var ret = [];\n var maxv = (1 << tobits) - 1;\n for (var p = 0; p < data.length; ++p) {\n var value = data[p];\n if (value < 0 || (value >> frombits) !== 0) {\n return null;\n }\n acc = (acc << frombits) | value;\n bits += frombits;\n while (bits >= tobits) {\n bits -= tobits;\n ret.push((acc >> bits) & maxv);\n }\n }\n if (pad) {\n if (bits > 0) {\n ret.push((acc << (tobits - bits)) & maxv);\n }\n } else if (bits >= frombits || ((acc << (tobits - bits)) & maxv)) {\n return null;\n }\n return ret;\n}\n\nfunction decode (addr) {\n var dec = bech32.decode(addr);\n if (dec === null || dec.data.length < 1 || dec.data[0] > 16) {\n return null;\n }\n var res = convertbits(dec.data.slice(1), 5, 8, false);\n if (res === null || res.length < 2 || res.length > 40) {\n return null;\n }\n if (dec.data[0] === 0 && res.length !== 20 && res.length !== 32) {\n return null;\n }\n return {hrp: dec.hrp, version: dec.data[0], program: res};\n}\n\nfunction encode (hrp, version, program) {\n var ret = bech32.encode(hrp, [version].concat(convertbits(program, 8, 5, true)));\n\n if (decode(ret) === null) {\n return null;\n }\n return ret;\n}\n\nfunction isValidAddress(address, currency, opts = {}) {\n const { networkType = DEFAULT_NETWORK_TYPE} = opts;\n var ret = decode(address);\n\n if(ret === null) {\n return false;\n }\n\n var correctBech32Hrps;\n var bech32Hrp = ret.hrp;\n\n if (bech32Hrp) {\n if (networkType === 'prod' || networkType === 'testnet') {\n correctBech32Hrps = currency.bech32Hrp[networkType];\n } else if(currency.bech32Hrp) {\n correctBech32Hrps = currency.bech32Hrp.prod.concat(currency.bech32Hrp.testnet)\n } else {\n return false;\n }\n\n if (correctBech32Hrps.indexOf(bech32Hrp) === -1) {\n return false;\n }\n\n return encode(ret.hrp, ret.version, ret.program) === address.toLowerCase();\n }\n\n}\n\nmodule.exports = {\n encode: encode,\n decode: decode,\n isValidAddress: isValidAddress,\n};\n","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.7.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2017\n * @license MIT\n */\n/*jslint bitwise: true */\n'use strict';\n\nvar ERROR = 'input is invalid type';\nvar WINDOW = typeof window === 'object';\nvar root = WINDOW ? window : {};\nif (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n}\nvar WEB_WORKER = !WINDOW && typeof self === 'object';\nvar NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\nif (NODE_JS) {\n root = global;\n} else if (WEB_WORKER) {\n root = self;\n}\nvar ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\nvar HEX_CHARS = '0123456789abcdef'.split('');\nvar SHAKE_PADDING = [31, 7936, 2031616, 520093696];\nvar CSHAKE_PADDING = [4, 1024, 262144, 67108864];\nvar KECCAK_PADDING = [1, 256, 65536, 16777216];\nvar PADDING = [6, 1536, 393216, 100663296];\nvar SHIFT = [0, 8, 16, 24];\nvar RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\nvar BITS = [224, 256, 384, 512];\nvar SHAKE_BITS = [128, 256];\nvar OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\nvar CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n};\n\nif (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n}\n\nif (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n}\n\nvar createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n};\n\nvar createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n};\n\nvar createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n};\n\nvar createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n};\n\nvar createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n};\n\nvar createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n};\n\nvar createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n};\n\nvar createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n};\n\nvar createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n};\n\nvar algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n];\n\nvar methods = {}, methodNames = [];\n\nfor (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n}\n\nfunction Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n}\n\nKeccak.prototype.update = function (message) {\n if (this.finalized) {\n return;\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw ERROR;\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw ERROR;\n }\n }\n } else {\n throw ERROR;\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n};\n\nKeccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n};\n\nKeccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw ERROR;\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw ERROR;\n }\n }\n } else {\n throw ERROR;\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n};\n\nKeccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n};\n\nKeccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n};\n\nKeccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n};\n\nKeccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n};\n\nKeccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\nKeccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n};\n\nfunction Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n}\n\nKmac.prototype = new Keccak();\n\nKmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n};\n\nvar f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n};\n\nmodule.exports = methods;\n","var jsSHA = require('jssha');\nvar sha512256 = require('js-sha512').sha512_256\nvar Blake256 = require('./blake256');\nvar keccak256 = require('./sha3')['keccak256'];\nvar Blake2B = require('./blake2b');\nvar base58 = require('./base58');\nvar base32 = require('./base32');\nvar BigNum = require('browserify-bignum');\n\nfunction numberToHex(number) {\n var hex = Math.round(number).toString(16)\n if (hex.length === 1) {\n hex = '0' + hex\n }\n return hex\n}\n\nfunction isHexChar(c) {\n if ((c >= 'A' && c <= 'F') ||\n (c >= 'a' && c <= 'f') ||\n (c >= '0' && c <= '9')) {\n return 1;\n }\n return 0;\n}\n\n/* Convert a hex char to value */\nfunction hexChar2byte(c) {\n var d = 0;\n if (c >= 'A' && c <= 'F') {\n d = c.charCodeAt(0) - 'A'.charCodeAt(0) + 10;\n }\n else if (c >= 'a' && c <= 'f') {\n d = c.charCodeAt(0) - 'a'.charCodeAt(0) + 10;\n }\n else if (c >= '0' && c <= '9') {\n d = c.charCodeAt(0) - '0'.charCodeAt(0);\n }\n return d;\n}\n\n/* Convert a byte to string */\nfunction byte2hexStr(byte) {\n var hexByteMap = \"0123456789ABCDEF\";\n var str = \"\";\n str += hexByteMap.charAt(byte >> 4);\n str += hexByteMap.charAt(byte & 0x0f);\n return str;\n}\n\nfunction byteArray2hexStr(byteArray) {\n var str = \"\";\n for (var i = 0; i < (byteArray.length - 1); i++) {\n str += byte2hexStr(byteArray[i]);\n }\n str += byte2hexStr(byteArray[i]);\n return str;\n}\n\nfunction hexStr2byteArray(str) {\n var byteArray = Array();\n var d = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n\n for (i = 0; i < str.length; i++) {\n var c = str.charAt(i);\n if (isHexChar(c)) {\n d <<= 4;\n d += hexChar2byte(c);\n j++;\n if (0 === (j % 2)) {\n byteArray[k++] = d;\n d = 0;\n }\n }\n }\n return byteArray;\n}\n\nmodule.exports = {\n toHex: function (arrayOfBytes) {\n var hex = '';\n for (var i = 0; i < arrayOfBytes.length; i++) {\n hex += numberToHex(arrayOfBytes[i]);\n }\n return hex;\n },\n sha256: function (payload, format = 'HEX') {\n var sha = new jsSHA('SHA-256', format);\n sha.update(payload);\n return sha.getHash(format);\n },\n sha256x2: function (buffer, format = 'HEX') {\n return this.sha256(this.sha256(buffer, format), format);\n },\n sha256Checksum: function (payload) {\n return this.sha256(this.sha256(payload)).substr(0, 8);\n },\n sha512_256: function (payload, format = 'HEX') {\n const hash = sha512256.create()\n hash.update(Buffer.from(payload, format))\n return hash.hex().toUpperCase();\n },\n blake256: function (hexString) {\n return new Blake256().update(hexString, 'hex').digest('hex');\n },\n blake256Checksum: function (payload) {\n return this.blake256(this.blake256(payload)).substr(0, 8);\n },\n blake2b: function (hexString, outlen) {\n return new Blake2B(outlen).update(Buffer.from(hexString, 'hex')).digest('hex');\n },\n keccak256: function (hexString) {\n return keccak256(hexString);\n },\n keccak256Checksum: function (payload) {\n return keccak256(payload).toString().substr(0, 8);\n },\n blake2b256: function (hexString) {\n return new Blake2B(32).update(Buffer.from(hexString, 'hex'), 32).digest('hex');\n },\n base58: base58.decode,\n byteArray2hexStr: byteArray2hexStr,\n hexStr2byteArray: hexStr2byteArray,\n bigNumberToBuffer: function(bignumber, size){\n return new BigNum(bignumber).toBuffer({ size, endian: 'big' });\n },\n base32: base32\n}\n","var XRPValidator = require('./ripple_validator');\nvar ETHValidator = require('./ethereum_validator');\nvar BTCValidator = require('./bitcoin_validator');\nvar ADAValidator = require('./ada_validator');\nvar XMRValidator = require('./monero_validator');\nvar NANOValidator = require('./nano_validator');\nvar SCValidator = require('./siacoin_validator');\nvar TRXValidator = require('./tron_validator');\nvar NEMValidator = require('./nem_validator');\nvar LSKValidator = require('./lisk_validator');\nvar BCHValidator = require('./bch_validator');\nvar XLMValidator = require('./stellar_validator');\nvar EOSValidator = require('./eos_validator');\nvar XTZValidator = require('./tezos_validator');\nvar USDTValidator = require('./usdt_validator');\nvar AlgoValidator = require('./algo_validator');\nvar DotValidator = require('./dot_validator');\n\n// defines P2PKH and P2SH address types for standard (prod) and testnet networks\nvar CURRENCIES = [{\n name: 'Bitcoin',\n symbol: 'btc',\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4', '3c', '26'] },\n bech32Hrp: { prod: ['bc'], testnet: ['tb'] },\n validator: BTCValidator\n }, {\n name: 'BitcoinCash',\n symbol: 'bch',\n regexp: '^[qQpP]{1}[0-9a-zA-Z]{41}$',\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\n validator: BCHValidator\n }, {\n name: 'Bitcoin SV',\n symbol: 'bsv',\n regexp: '^[qQ]{1}[0-9a-zA-Z]{41}$',\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\n validator: BCHValidator\n }, {\n name: 'LiteCoin',\n symbol: 'ltc',\n addressTypes: { prod: ['30', '05', '32'], testnet: ['6f', 'c4', '3a'] },\n bech32Hrp: { prod: ['ltc'], testnet: ['tltc'] },\n validator: BTCValidator\n }, {\n name: 'PeerCoin',\n symbol: 'ppc',\n addressTypes: { prod: ['37', '75'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'DogeCoin',\n symbol: 'doge',\n addressTypes: { prod: ['1e', '16'], testnet: ['71', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'BeaverCoin',\n symbol: 'bvc',\n addressTypes: { prod: ['19', '05'], testnet: ['6f', 'c4'] },\n validator: BTCValidator,\n }, {\n name: 'FreiCoin',\n symbol: 'frc',\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'ProtoShares',\n symbol: 'pts',\n addressTypes: { prod: ['38', '05'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'MegaCoin',\n symbol: 'mec',\n addressTypes: { prod: ['32', '05'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'PrimeCoin',\n symbol: 'xpm',\n addressTypes: { prod: ['17', '53'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'AuroraCoin',\n symbol: 'aur',\n addressTypes: { prod: ['17', '05'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'NameCoin',\n symbol: 'nmc',\n addressTypes: { prod: ['34'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'BioCoin',\n symbol: 'bio',\n addressTypes: { prod: ['19', '14'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'GarliCoin',\n symbol: 'grlc',\n addressTypes: { prod: ['26', '05'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'VertCoin',\n symbol: 'vtc',\n addressTypes: { prod: ['0x', '47', '71', '05'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n\n }, {\n name: 'BitcoinGold',\n symbol: 'btg',\n addressTypes: { prod: ['26', '17'], testnet: ['6f', 'c4'] },\n validator: BTCValidator\n }, {\n name: 'Komodo',\n symbol: 'kmd',\n addressTypes: { prod: ['3c', '55'], testnet: ['0', '5'] },\n validator: BTCValidator\n }, {\n name: 'BitcoinZ',\n symbol: 'btcz',\n expectedLength: 26,\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\n validator: BTCValidator\n }, {\n name: 'BitcoinPrivate',\n symbol: 'btcp',\n expectedLength: 26,\n addressTypes: { prod: ['1325', '13af'], testnet: ['1957', '19e0'] },\n validator: BTCValidator\n }, {\n name: 'Hush',\n symbol: 'hush',\n expectedLength: 26,\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\n validator: BTCValidator\n }, {\n name: 'SnowGem',\n symbol: 'sng',\n expectedLength: 26,\n addressTypes: { prod: ['1c28', '1c2d'], testnet: ['1d25', '1cba'] },\n validator: BTCValidator\n }, {\n name: 'ZCash',\n symbol: 'zec',\n expectedLength: 26,\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\n validator: BTCValidator\n }, {\n name: 'ZClassic',\n symbol: 'zcl',\n expectedLength: 26,\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\n validator: BTCValidator\n }, {\n name: 'ZenCash',\n symbol: 'zen',\n expectedLength: 26,\n addressTypes: { prod: ['2089', '2096'], testnet: ['2092', '2098'] },\n validator: BTCValidator\n }, {\n name: 'VoteCoin',\n symbol: 'vot',\n expectedLength: 26,\n addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },\n validator: BTCValidator\n }, {\n name: 'Decred',\n symbol: 'dcr',\n addressTypes: { prod: ['073f', '071a'], testnet: ['0f21', '0efc'] },\n hashFunction: 'blake256',\n expectedLength: 26,\n validator: BTCValidator\n }, {\n name: 'GameCredits',\n symbol: 'game',\n addressTypes: { prod: ['26', '05'], testnet: [] },\n validator: ETHValidator\n }, {\n name: 'PIVX',\n symbol: 'pivx',\n addressTypes: { prod: ['1e', '0d'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'SolarCoin',\n symbol: 'slr',\n addressTypes: { prod: ['12', '05'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'MonaCoin',\n symbol: 'mona',\n addressTypes: { prod: ['32', '37'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'DigiByte',\n symbol: 'dgb',\n addressTypes: { prod: ['1e', '3f'], testnet: [] },\n bech32Hrp: { prod: ['dgb', 'S'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'Tether',\n symbol: 'usdt',\n addressTypes: { prod: ['00', '05'], testnet: ['6f', 'c4'] },\n validator: USDTValidator\n }, {\n name: 'Ripple',\n symbol: 'xrp',\n validator: XRPValidator,\n }, {\n name: 'Dash',\n symbol: 'dash',\n addressTypes: { prod: ['4c', '10'], testnet: ['8c', '13'] },\n validator: BTCValidator\n }, {\n name: 'Neo',\n symbol: 'neo',\n addressTypes: { prod: ['17'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'NeoGas',\n symbol: 'gas',\n addressTypes: { prod: ['17'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'Qtum',\n symbol: 'qtum',\n addressTypes: { prod: ['3a', '32'], testnet: ['78', '6e'] },\n validator: BTCValidator\n }, {\n name: 'Waves',\n symbol: 'waves',\n addressTypes: { prod: ['0157'], testnet: ['0154'] },\n expectedLength: 26,\n hashFunction: 'blake256keccak256',\n regex: /^[a-zA-Z0-9]{35}$/,\n validator: BTCValidator\n }, {\n name: 'Ethereum',\n symbol: 'eth',\n validator: ETHValidator,\n }, {\n name: 'EtherZero',\n symbol: 'etz',\n validator: ETHValidator,\n }, {\n name: 'EthereumClassic',\n symbol: 'etc',\n validator: ETHValidator,\n }, {\n name: 'Callisto',\n symbol: 'clo',\n validator: ETHValidator,\n }, {\n name: 'Bankex',\n symbol: 'bkx',\n validator: ETHValidator\n }, {\n name: 'Cardano',\n symbol: 'ada',\n bech32Hrp: { prod: ['addr'], testnet: ['addr']},\n validator: ADAValidator\n }, {\n name: 'Monero',\n symbol: 'xmr',\n addressTypes: { prod: ['18', '42'], testnet: ['53', '63'], stagenet: ['24'] },\n iAddressTypes: { prod: ['19'], testnet: ['54'], stagenet: ['25'] },\n validator: XMRValidator\n }, {\n name: 'Aragon',\n symbol: 'ant',\n validator: ETHValidator\n }, {\n name: 'Basic Attention Token',\n symbol: 'bat',\n validator: ETHValidator\n }, {\n name: 'Bancor',\n symbol: 'bnt',\n validator: ETHValidator\n }, {\n name: 'Civic',\n symbol: 'cvc',\n validator: ETHValidator\n }, {\n name: 'District0x',\n symbol: 'dnt',\n validator: ETHValidator\n }, {\n name: 'Gnosis',\n symbol: 'gno',\n validator: ETHValidator\n }, {\n name: 'Golem (GNT)',\n symbol: 'gnt',\n validator: ETHValidator\n }, {\n name: 'Golem',\n symbol: 'glm',\n validator: ETHValidator\n }, {\n name: 'Matchpool',\n symbol: 'gup',\n validator: ETHValidator\n }, {\n name: 'Melon',\n symbol: 'mln',\n validator: ETHValidator\n }, {\n name: 'Numeraire',\n symbol: 'nmr',\n validator: ETHValidator\n }, {\n name: 'OmiseGO',\n symbol: 'omg',\n validator: ETHValidator\n }, {\n name: 'TenX',\n symbol: 'pay',\n validator: ETHValidator\n }, {\n name: 'Ripio Credit Network',\n symbol: 'rcn',\n validator: ETHValidator\n }, {\n name: 'Augur',\n symbol: 'rep',\n validator: ETHValidator\n }, {\n name: 'iExec RLC',\n symbol: 'rlc',\n validator: ETHValidator\n }, {\n name: 'Salt',\n symbol: 'salt',\n validator: ETHValidator\n }, {\n name: 'Status',\n symbol: 'snt',\n validator: ETHValidator\n }, {\n name: 'Storj',\n symbol: 'storj',\n validator: ETHValidator\n }, {\n name: 'Swarm City',\n symbol: 'swt',\n validator: ETHValidator\n }, {\n name: 'TrueUSD',\n symbol: 'tusd',\n validator: ETHValidator\n }, {\n name: 'Wings',\n symbol: 'wings',\n validator: ETHValidator\n }, {\n name: '0x',\n symbol: 'zrx',\n validator: ETHValidator\n }, {\n name: 'Expanse',\n symbol: 'exp',\n validator: ETHValidator\n }, {\n name: 'Viberate',\n symbol: 'vib',\n validator: ETHValidator\n }, {\n name: 'Odyssey',\n symbol: 'ocn',\n validator: ETHValidator\n }, {\n name: 'Polymath',\n symbol: 'poly',\n validator: ETHValidator\n }, {\n name: 'Storm',\n symbol: 'storm',\n validator: ETHValidator\n }, {\n name: 'Nano',\n symbol: 'nano',\n validator: NANOValidator,\n }, {\n name: 'RaiBlocks',\n symbol: 'xrb',\n validator: NANOValidator,\n }, {\n name: 'Siacoin',\n symbol: 'sc',\n validator: SCValidator\n }, {\n name: 'HyperSpace',\n symbol: 'xsc',\n validator: SCValidator\n }, {\n name: 'loki',\n symbol: 'loki',\n addressTypes: { prod: ['114', '115', '116'], testnet: [] },\n iAddressTypes: { prod: ['115'], testnet: [] },\n validator: XMRValidator\n }, {\n name: 'LBRY Credits',\n symbol: 'lbc',\n addressTypes: { prod: ['55'], testnet: [] },\n validator: BTCValidator\n }, {\n name: 'Tron',\n symbol: 'trx',\n addressTypes: { prod: [0x41], testnet: [0xa0] },\n validator: TRXValidator\n }, {\n name: 'Nem',\n symbol: 'xem',\n validator: NEMValidator\n }, {\n name: 'Lisk',\n symbol: 'lsk',\n validator: LSKValidator\n }, {\n name: 'Stellar',\n symbol: 'xlm',\n validator: XLMValidator,\n }, {\n name: 'BTU Protocol',\n symbol: 'btu',\n validator: ETHValidator,\n }, {\n name: 'Crypto.com Coin',\n symbol: 'cro',\n validator: ETHValidator,\n }, {\n name: 'Multi-collateral DAI',\n symbol: 'dai',\n validator: ETHValidator,\n }, {\n name: 'Enjin Coin',\n symbol: 'enj',\n validator: ETHValidator,\n }, {\n name: 'HedgeTrade',\n symbol: 'hedg',\n validator: ETHValidator,\n }, {\n name: 'Cred',\n symbol: 'lba',\n validator: ETHValidator,\n }, {\n name: 'Chainlink',\n symbol: 'link',\n validator: ETHValidator,\n }, {\n name: 'Loom Network',\n symbol: 'loom',\n validator: ETHValidator,\n }, {\n name: 'Maker',\n symbol: 'mkr',\n validator: ETHValidator,\n }, {\n name: 'Metal',\n symbol: 'mtl',\n validator: ETHValidator,\n }, {\n name: 'Ocean Protocol',\n symbol: 'ocean',\n validator: ETHValidator,\n }, {\n name: 'Quant',\n symbol: 'qnt',\n validator: ETHValidator,\n }, {\n name: 'Synthetix Network',\n symbol: 'snx',\n validator: ETHValidator,\n }, {\n name: 'SOLVE',\n symbol: 'solve',\n validator: ETHValidator,\n }, {\n name: 'Spendcoin',\n symbol: 'spnd',\n validator: ETHValidator,\n }, {\n name: 'TEMCO',\n symbol: 'temco',\n validator: ETHValidator,\n }, {\n name: 'EOS',\n symbol: 'eos',\n validator: EOSValidator\n }, {\n name: 'Tezos',\n symbol: 'xtz',\n validator: XTZValidator\n }, {\n name: 'VeChain',\n symbol: 'vet',\n validator: ETHValidator\n },\n {\n name: 'StormX',\n symbol: 'stmx',\n validator: ETHValidator\n },\n {\n name: 'AugurV2',\n symbol: 'repv2',\n validator: ETHValidator\n },\n {\n name: 'FirmaChain',\n symbol: 'fct',\n validator: ETHValidator\n },\n {\n name: 'BlockTrade',\n symbol: 'btt',\n validator: ETHValidator\n },\n {\n name: 'Quantum Resistant Ledger',\n symbol: 'qrl',\n validator: ETHValidator\n },\n {\n name: 'Serve',\n symbol: 'serv',\n validator: ETHValidator\n },\n {\n name: 'Tap',\n symbol: 'xtp',\n validator: ETHValidator\n },\n {\n name: 'Compound',\n symbol: 'comp',\n validator: ETHValidator\n },\n {\n name: 'Paxos',\n symbol: 'pax',\n validator: ETHValidator\n },\n {\n name: 'USD Coin',\n symbol: 'usdc',\n validator: ETHValidator\n },\n {\n name: 'CUSD',\n symbol: 'cusd',\n validator: ETHValidator\n },\n {\n name: 'Algorand',\n symbol: 'algo',\n validator: AlgoValidator\n },\n {\n name: 'Polkadot',\n symbol: 'dot',\n validator: DotValidator\n }\n];\n\n\n module.exports = {\n getByNameOrSymbol: function (currencyNameOrSymbol) {\n var nameOrSymbol = currencyNameOrSymbol.toLowerCase();\n return CURRENCIES.find(function (currency) {\n return currency.name.toLowerCase() === nameOrSymbol || currency.symbol.toLowerCase() === nameOrSymbol\n });\n },\n getAll: function () {\n return CURRENCIES;\n }\n};\n\n////spit out details for readme.md\n// CURRENCIES\n// .sort((a, b) => a.name.toUpperCase() > b.name.toUpperCase() ? 1 : -1)\n// .forEach(c => console.log(`* ${c.name}/${c.symbol} \\`'${c.name}'\\` or \\`'${c.symbol}'\\` `));\n\n////spit out keywords for package.json\n// CURRENCIES\n// .sort((a, b) => a.name.toUpperCase() > b.name.toUpperCase() ? 1 : -1)\n// .forEach(c => console.log(`\"${c.name}\",\"${c.symbol}\",`));\n//\n\n","const cryptoUtils = require('./crypto/utils');\n\n// from https://github.com/paritytech/substrate/wiki/External-Address-Format-(SS58)\nconst addressFormats = [\n { addressLength: 3, accountIndexLength: 1, checkSumLength: 1 },\n { addressLength: 4, accountIndexLength: 2, checkSumLength: 1 },\n { addressLength: 5, accountIndexLength: 2, checkSumLength: 2 },\n { addressLength: 6, accountIndexLength: 4, checkSumLength: 1 },\n { addressLength: 7, accountIndexLength: 4, checkSumLength: 2 },\n { addressLength: 8, accountIndexLength: 4, checkSumLength: 3 },\n { addressLength: 9, accountIndexLength: 4, checkSumLength: 4 },\n { addressLength: 10, accountIndexLength: 8, checkSumLength: 1 },\n { addressLength: 11, accountIndexLength: 8, checkSumLength: 2 },\n { addressLength: 12, accountIndexLength: 8, checkSumLength: 3 },\n { addressLength: 13, accountIndexLength: 8, checkSumLength: 4 },\n { addressLength: 14, accountIndexLength: 8, checkSumLength: 5 },\n { addressLength: 15, accountIndexLength: 8, checkSumLength: 6 },\n { addressLength: 16, accountIndexLength: 8, checkSumLength: 7 },\n { addressLength: 17, accountIndexLength: 8, checkSumLength: 8 },\n { addressLength: 34, accountIndexLength: 32, checkSumLength: 2 },\n];\n\nmodule.exports = {\n isValidAddress: function (address, currency, opts = {}) {\n const { networkType = 'prod' } = opts;\n\n return this.verifyChecksum(address)\n },\n\n verifyChecksum: function (address) {\n\n try {\n const preImage = '53533538505245'\n\n const decoded = cryptoUtils.base58(address);\n const addressType = cryptoUtils.byteArray2hexStr(decoded.slice(0, 1));\n const addressAndChecksum = decoded.slice(1)\n\n // get the address format\n const addressFormat = addressFormats.find(af => af.addressLength === addressAndChecksum.length);\n\n if (!addressFormat) {\n throw new Erorr('Invalid address length');\n }\n\n const decodedAddress = cryptoUtils.byteArray2hexStr(addressAndChecksum.slice(0, addressFormat.accountIndexLength));\n const checksum = cryptoUtils.byteArray2hexStr(addressAndChecksum.slice(-addressFormat.checkSumLength));\n\n const calculatedHash = cryptoUtils\n .blake2b(preImage + addressType + decodedAddress, 64)\n .substr(0, addressFormat.checkSumLength * 2)\n .toUpperCase();\n\n return calculatedHash == checksum;\n } catch(err) {\n return false;\n }\n }\n}\n","function isValidEOSAddress (address, currency, networkType) {\n var regex = /^[a-z0-9.]+$/g // Must be numbers, lowercase letters and decimal points only\n if (address.search(regex) !== -1 && address.length === 12) {\n return true\n } else {\n return false\n }\n}\n\nmodule.exports = {\n isValidAddress: function (address, currency, networkType) {\n return isValidEOSAddress(address, currency, networkType)\n }\n}\n","var cryptoUtils = require('./crypto/utils');\n\nmodule.exports = {\n isValidAddress: function (address) {\n if (!/^0x[0-9a-fA-F]{40}$/.test(address)) {\n // Check if it has the basic requirements of an address\n return false;\n }\n\n if (/^0x[0-9a-f]{40}$/.test(address) || /^0x?[0-9A-F]{40}$/.test(address)) {\n // If it's all small caps or all all caps, return true\n return true;\n }\n\n // Otherwise check each case\n return this.verifyChecksum(address);\n },\n verifyChecksum: function (address) {\n // Check each case\n address = address.replace('0x','');\n\n var addressHash = cryptoUtils.keccak256(address.toLowerCase());\n\n for (var i = 0; i < 40; i++ ) {\n // The nth letter should be uppercase if the nth digit of casemap is 1\n if ((parseInt(addressHash[i], 16) > 7 && address[i].toUpperCase() !== address[i]) ||\n (parseInt(addressHash[i], 16) <= 7 && address[i].toLowerCase() !== address[i])) {\n return false;\n }\n }\n\n return true;\n }\n};\n","var cryptoUtils = require('./crypto/utils');\n\nvar regexp = new RegExp('^[0-9]{1,20}L$');\n\nmodule.exports = {\n isValidAddress: function(address) {\n if (!regexp.test(address)) {\n return false;\n }\n return this.verifyAddress(address)\n },\n\n verifyAddress: function(address) {\n var BUFFER_SIZE = 8;\n var bigNumber = address.substring(0, address.length - 1);\n var addressBuffer = cryptoUtils.bigNumberToBuffer(bigNumber);\n return Buffer.from(addressBuffer).slice(0, BUFFER_SIZE).equals(addressBuffer);\n }\n};","var cryptoUtils = require('./crypto/utils')\nvar cnBase58 = require('./crypto/cnBase58')\n\nvar DEFAULT_NETWORK_TYPE = 'prod'\nvar addressRegTest = new RegExp(\n '^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{95}$'\n)\nvar integratedAddressRegTest = new RegExp(\n '^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]{106}$'\n)\n\nfunction validateNetwork(decoded, currency, networkType, addressType) {\n var network = currency.addressTypes\n if (addressType == 'integrated') {\n network = currency.iAddressTypes\n }\n var at = parseInt(decoded.substr(0, 2), 16).toString()\n\n switch (networkType) {\n case 'prod':\n return network.prod.indexOf(at) >= 0\n case 'testnet':\n return network.testnet.indexOf(at) >= 0\n case 'stagenet':\n return network.stagenet.indexOf(at) >= 0\n case 'both':\n return network.prod.indexOf(at) >= 0 || network.testnet.indexOf(at) >= 0 || network.stagenet.indexOf(at) >= 0\n default:\n return false\n }\n}\n\nfunction hextobin(hex) {\n if (hex.length % 2 !== 0) return null\n var res = new Uint8Array(hex.length / 2)\n for (var i = 0; i < hex.length / 2; ++i) {\n res[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16)\n }\n return res\n}\n\nmodule.exports = {\n isValidAddress: function(address, currency, opts = {}) {\n const { networkType = DEFAULT_NETWORK_TYPE} = opts;\n var addressType = 'standard'\n if (!addressRegTest.test(address)) {\n if (integratedAddressRegTest.test(address)) {\n addressType = 'integrated'\n } else {\n return false\n }\n }\n\n var decodedAddrStr = cnBase58.decode(address)\n if (!decodedAddrStr) return false\n\n if (!validateNetwork(decodedAddrStr, currency, networkType, addressType)) return false\n\n var addrChecksum = decodedAddrStr.slice(-8)\n var hashChecksum = cryptoUtils.keccak256Checksum(hextobin(decodedAddrStr.slice(0, -8)))\n\n return addrChecksum === hashChecksum\n }\n}\n","var cryptoUtils = require('./crypto/utils');\nvar baseX = require('base-x');\n\nvar ALLOWED_CHARS = '13456789abcdefghijkmnopqrstuwxyz';\n\nvar codec = baseX(ALLOWED_CHARS);\n// https://github.com/nanocurrency/raiblocks/wiki/Accounts,-Keys,-Seeds,-and-Wallet-Identifiers\nvar regexp = new RegExp('^(xrb|nano)_([' + ALLOWED_CHARS + ']{60})$');\n\nmodule.exports = {\n isValidAddress: function (address) {\n if (regexp.test(address)) {\n return this.verifyChecksum(address);\n }\n\n return false;\n },\n\n verifyChecksum: function (address) {\n var bytes = codec.decode(regexp.exec(address)[2]).slice(-37);\n // https://github.com/nanocurrency/raiblocks/blob/master/rai/lib/numbers.cpp#L73\n var computedChecksum = cryptoUtils.blake2b(cryptoUtils.toHex(bytes.slice(0, -5)), 5);\n var checksum = cryptoUtils.toHex(bytes.slice(-5).reverse());\n\n return computedChecksum === checksum\n }\n};\n","var cryptoUtils = require('./crypto/utils');\n\n /**\n* Check if an address is valid\n*\n* @param {string} _address - An address\n*\n* @return {boolean} - True if address is valid, false otherwise\n*/\nvar isValidAddress = function(_address) {\n var address = _address.toString().toUpperCase().replace(/-/g, '');\n if (!address || address.length !== 40) {\n return false;\n }\n var decoded = cryptoUtils.toHex(cryptoUtils.base32.b32decode(address));\n var stepThreeChecksum = cryptoUtils.keccak256Checksum(Buffer.from(decoded.slice(0, 42), 'hex'));\n\n return stepThreeChecksum === decoded.slice(42);\n};\n\nmodule.exports = {\n isValidAddress: isValidAddress,\n}\n","var cryptoUtils = require('./crypto/utils');\nvar baseX = require('base-x');\n\nvar ALLOWED_CHARS = 'rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz';\n\nvar codec = baseX(ALLOWED_CHARS);\nvar regexp = new RegExp('^r[' + ALLOWED_CHARS + ']{27,35}$');\n\nmodule.exports = {\n /**\n * ripple address validation\n */\n isValidAddress: function (address) {\n if (regexp.test(address)) {\n return this.verifyChecksum(address);\n }\n\n return false;\n },\n\n verifyChecksum: function (address) {\n var bytes = codec.decode(address);\n var computedChecksum = cryptoUtils.sha256Checksum(cryptoUtils.toHex(bytes.slice(0, -4)));\n var checksum = cryptoUtils.toHex(bytes.slice(-4));\n\n return computedChecksum === checksum\n }\n};\n","var cryptoUtils = require('./crypto/utils')\nvar isEqual = require('lodash.isequal')\n\nfunction hexToBytes(hex) {\n var bytes = []\n for (var c = 0; c < hex.length; c += 2) {\n bytes.push(parseInt(hex.substr(c, 2), 16))\n }\n return bytes\n}\n\nmodule.exports = {\n isValidAddress: function(address) {\n if (address.length !== 76) {\n // Check if it has the basic requirements of an address\n return false\n }\n\n // Otherwise check each case\n return this.verifyChecksum(address)\n },\n verifyChecksum: function(address) {\n var checksumBytes = address.slice(0, 32*2)\n var check = address.slice(32*2, 38*2)\n var blakeHash = cryptoUtils.blake2b(checksumBytes, 32).slice(0, 6*2)\n return !!isEqual(blakeHash, check)\n }\n}\n","var baseX = require('base-x');\nvar crc = require('crc');\nvar cryptoUtils = require('./crypto/utils');\n\n var ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567';\n\n var base32 = baseX(ALPHABET);\nvar regexp = new RegExp('^[' + ALPHABET + ']{56}$');\nvar ed25519PublicKeyVersionByte = (6 << 3);\n\n function swap16(number) {\n var lower = number & 0xFF;\n var upper = (number >> 8) & 0xFF;\n return (lower << 8) | upper;\n}\n\n function numberToHex(number) {\n var hex = number.toString(16);\n if(hex.length % 2 === 1) {\n hex = '0' + hex;\n }\n return hex;\n}\n\n module.exports = {\n isValidAddress: function (address) {\n if (regexp.test(address)) {\n return this.verifyChecksum(address);\n }\n\n return false;\n },\n\n verifyChecksum: function (address) {\n // based on https://github.com/stellar/js-stellar-base/blob/master/src/strkey.js#L126\n var bytes = base32.decode(address);\n if (bytes[0] !== ed25519PublicKeyVersionByte) {\n return false;\n }\n\n var computedChecksum = numberToHex(swap16(crc.crc16xmodem(bytes.slice(0, -2))));\n var checksum = cryptoUtils.toHex(bytes.slice(-2));\n\n return computedChecksum === checksum\n }\n};","const base58 = require('./crypto/base58');\nconst cryptoUtils = require('./crypto/utils');\n\nconst prefix = new Uint8Array([6, 161, 159]);\n\nfunction decodeRaw(buffer) {\n let payload = buffer.slice(0, -4);\n let checksum = buffer.slice(-4);\n let newChecksum = cryptoUtils.hexStr2byteArray(\n cryptoUtils.sha256x2(cryptoUtils.byteArray2hexStr(payload))\n );\n\n if (checksum[0] ^ newChecksum[0] |\n checksum[1] ^ newChecksum[1] |\n checksum[2] ^ newChecksum[2] |\n checksum[3] ^ newChecksum[3])\n return;\n return payload;\n}\n\nconst isValidAddress = function(address) {\n try {\n let buffer = base58.decode(address);\n let payload = decodeRaw(buffer);\n if (!payload)\n return false;\n payload.slice(prefix.length);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nmodule.exports = {\n isValidAddress\n};\n","var cryptoUtils = require('./crypto/utils');\n\nfunction decodeBase58Address(base58Sting) {\n if (typeof (base58Sting) !== 'string') {\n return false;\n }\n if (base58Sting.length <= 4) {\n return false;\n }\n\n try {\n var address = cryptoUtils.base58(base58Sting);\n } catch (e) {\n return false\n }\n\n /*if (base58Sting.length <= 4) {\n return false;\n }*/\n var len = address.length;\n var offset = len - 4;\n var checkSum = address.slice(offset);\n address = address.slice(0, offset);\n var hash0 = cryptoUtils.sha256(cryptoUtils.byteArray2hexStr(address));\n var hash1 = cryptoUtils.hexStr2byteArray(cryptoUtils.sha256(hash0));\n var checkSum1 = hash1.slice(0, 4);\n if (checkSum[0] === checkSum1[0] && checkSum[1] === checkSum1[1] && checkSum[2]\n === checkSum1[2] && checkSum[3] === checkSum1[3]\n ) {\n return address;\n }\n\n return false;\n}\n\nfunction getEnv(currency, networkType) {\n var evn = networkType || 'prod';\n\n if (evn !== 'prod' && evn !== 'testnet') evn = 'prod';\n\n return currency.addressTypes[evn][0]\n}\n\nmodule.exports = {\n /**\n * tron address validation\n */\n isValidAddress: function (mainAddress, currency, opts) {\n var networkType = opts ? opts.networkType : '';\n var address = decodeBase58Address(mainAddress);\n\n if (!address) {\n return false;\n }\n\n if (address.length !== 21) {\n return false;\n }\n\n return getEnv(currency, networkType) === address[0];\n }\n};\n","var BTCValidator = require('./bitcoin_validator');\nvar ETHValidator = require('./ethereum_validator');\n\nfunction checkBothValidators(address, currency, networkType) {\n var result = BTCValidator.isValidAddress(address, currency, networkType);\n return result ? result :\n ETHValidator.isValidAddress(address, currency, networkType);\n}\n\nmodule.exports = {\n isValidAddress: function (address, currency, opts) {\n if (opts) {\n if (opts.chainType === 'erc20') {\n return ETHValidator.isValidAddress(address, currency, opts.networkType);\n } else if (opts.chainType === 'omni') {\n return BTCValidator.isValidAddress(address, currency, opts.networkType);\n }\n }\n return checkBothValidators(address, currency, opts);\n }\n};\n","var currencies = require('./currencies');\n\nvar DEFAULT_CURRENCY_NAME = 'bitcoin';\n\nmodule.exports = {\n //validate: function (address, currencyNameOrSymbol, networkType) {\n validate: function (address, currencyNameOrSymbol, opts) {\n var currency = currencies.getByNameOrSymbol(currencyNameOrSymbol || DEFAULT_CURRENCY_NAME);\n\n if (currency && currency.validator) {\n if (opts && typeof opts === 'string') {\n return currency.validator.isValidAddress(address, currency, { networkType: opts });\n }\n return currency.validator.isValidAddress(address, currency, opts);\n }\n\n throw new Error('Missing validator for currency: ' + currencyNameOrSymbol);\n },\n getCurrencies: function () {\n return currencies.getAll();\n },\n findCurrency: function(symbol) {\n return currencies.getByNameOrSymbol(symbol) || null ;\n }\n};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","// full library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index\");\n","\"use strict\";\nmodule.exports = common;\n\nvar commonRe = /\\/|\\./;\n\n/**\n * Provides common type definitions.\n * Can also be used to provide additional google types or your own custom types.\n * @param {string} name Short name as in `google/protobuf/[name].proto` or full file name\n * @param {Object.} json JSON definition within `google.protobuf` if a short name, otherwise the file's root definition\n * @returns {undefined}\n * @property {INamespace} google/protobuf/any.proto Any\n * @property {INamespace} google/protobuf/duration.proto Duration\n * @property {INamespace} google/protobuf/empty.proto Empty\n * @property {INamespace} google/protobuf/field_mask.proto FieldMask\n * @property {INamespace} google/protobuf/struct.proto Struct, Value, NullValue and ListValue\n * @property {INamespace} google/protobuf/timestamp.proto Timestamp\n * @property {INamespace} google/protobuf/wrappers.proto Wrappers\n * @example\n * // manually provides descriptor.proto (assumes google/protobuf/ namespace and .proto extension)\n * protobuf.common(\"descriptor\", descriptorJson);\n *\n * // manually provides a custom definition (uses my.foo namespace)\n * protobuf.common(\"my/foo/bar.proto\", myFooBarJson);\n */\nfunction common(name, json) {\n if (!commonRe.test(name)) {\n name = \"google/protobuf/\" + name + \".proto\";\n json = { nested: { google: { nested: { protobuf: { nested: json } } } } };\n }\n common[name] = json;\n}\n\n// Not provided because of limited use (feel free to discuss or to provide yourself):\n//\n// google/protobuf/descriptor.proto\n// google/protobuf/source_context.proto\n// google/protobuf/type.proto\n//\n// Stripped and pre-parsed versions of these non-bundled files are instead available as part of\n// the repository or package within the google/protobuf directory.\n\ncommon(\"any\", {\n\n /**\n * Properties of a google.protobuf.Any message.\n * @interface IAny\n * @type {Object}\n * @property {string} [typeUrl]\n * @property {Uint8Array} [bytes]\n * @memberof common\n */\n Any: {\n fields: {\n type_url: {\n type: \"string\",\n id: 1\n },\n value: {\n type: \"bytes\",\n id: 2\n }\n }\n }\n});\n\nvar timeType;\n\ncommon(\"duration\", {\n\n /**\n * Properties of a google.protobuf.Duration message.\n * @interface IDuration\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Duration: timeType = {\n fields: {\n seconds: {\n type: \"int64\",\n id: 1\n },\n nanos: {\n type: \"int32\",\n id: 2\n }\n }\n }\n});\n\ncommon(\"timestamp\", {\n\n /**\n * Properties of a google.protobuf.Timestamp message.\n * @interface ITimestamp\n * @type {Object}\n * @property {number|Long} [seconds]\n * @property {number} [nanos]\n * @memberof common\n */\n Timestamp: timeType\n});\n\ncommon(\"empty\", {\n\n /**\n * Properties of a google.protobuf.Empty message.\n * @interface IEmpty\n * @memberof common\n */\n Empty: {\n fields: {}\n }\n});\n\ncommon(\"struct\", {\n\n /**\n * Properties of a google.protobuf.Struct message.\n * @interface IStruct\n * @type {Object}\n * @property {Object.} [fields]\n * @memberof common\n */\n Struct: {\n fields: {\n fields: {\n keyType: \"string\",\n type: \"Value\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Value message.\n * @interface IValue\n * @type {Object}\n * @property {string} [kind]\n * @property {0} [nullValue]\n * @property {number} [numberValue]\n * @property {string} [stringValue]\n * @property {boolean} [boolValue]\n * @property {IStruct} [structValue]\n * @property {IListValue} [listValue]\n * @memberof common\n */\n Value: {\n oneofs: {\n kind: {\n oneof: [\n \"nullValue\",\n \"numberValue\",\n \"stringValue\",\n \"boolValue\",\n \"structValue\",\n \"listValue\"\n ]\n }\n },\n fields: {\n nullValue: {\n type: \"NullValue\",\n id: 1\n },\n numberValue: {\n type: \"double\",\n id: 2\n },\n stringValue: {\n type: \"string\",\n id: 3\n },\n boolValue: {\n type: \"bool\",\n id: 4\n },\n structValue: {\n type: \"Struct\",\n id: 5\n },\n listValue: {\n type: \"ListValue\",\n id: 6\n }\n }\n },\n\n NullValue: {\n values: {\n NULL_VALUE: 0\n }\n },\n\n /**\n * Properties of a google.protobuf.ListValue message.\n * @interface IListValue\n * @type {Object}\n * @property {Array.} [values]\n * @memberof common\n */\n ListValue: {\n fields: {\n values: {\n rule: \"repeated\",\n type: \"Value\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"wrappers\", {\n\n /**\n * Properties of a google.protobuf.DoubleValue message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n DoubleValue: {\n fields: {\n value: {\n type: \"double\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.FloatValue message.\n * @interface IFloatValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FloatValue: {\n fields: {\n value: {\n type: \"float\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int64Value message.\n * @interface IInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n Int64Value: {\n fields: {\n value: {\n type: \"int64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt64Value message.\n * @interface IUInt64Value\n * @type {Object}\n * @property {number|Long} [value]\n * @memberof common\n */\n UInt64Value: {\n fields: {\n value: {\n type: \"uint64\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.Int32Value message.\n * @interface IInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n Int32Value: {\n fields: {\n value: {\n type: \"int32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.UInt32Value message.\n * @interface IUInt32Value\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n UInt32Value: {\n fields: {\n value: {\n type: \"uint32\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BoolValue message.\n * @interface IBoolValue\n * @type {Object}\n * @property {boolean} [value]\n * @memberof common\n */\n BoolValue: {\n fields: {\n value: {\n type: \"bool\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.StringValue message.\n * @interface IStringValue\n * @type {Object}\n * @property {string} [value]\n * @memberof common\n */\n StringValue: {\n fields: {\n value: {\n type: \"string\",\n id: 1\n }\n }\n },\n\n /**\n * Properties of a google.protobuf.BytesValue message.\n * @interface IBytesValue\n * @type {Object}\n * @property {Uint8Array} [value]\n * @memberof common\n */\n BytesValue: {\n fields: {\n value: {\n type: \"bytes\",\n id: 1\n }\n }\n }\n});\n\ncommon(\"field_mask\", {\n\n /**\n * Properties of a google.protobuf.FieldMask message.\n * @interface IDoubleValue\n * @type {Object}\n * @property {number} [value]\n * @memberof common\n */\n FieldMask: {\n fields: {\n paths: {\n rule: \"repeated\",\n type: \"string\",\n id: 1\n }\n }\n }\n});\n\n/**\n * Gets the root definition of the specified common proto file.\n *\n * Bundled definitions are:\n * - google/protobuf/any.proto\n * - google/protobuf/duration.proto\n * - google/protobuf/empty.proto\n * - google/protobuf/field_mask.proto\n * - google/protobuf/struct.proto\n * - google/protobuf/timestamp.proto\n * - google/protobuf/wrappers.proto\n *\n * @param {string} file Proto file name\n * @returns {INamespace|null} Root definition or `null` if not defined\n */\ncommon.get = function get(file) {\n return common[file] || null;\n};\n","\"use strict\";\n/**\n * Runtime message from/to plain object converters.\n * @namespace\n */\nvar converter = exports;\n\nvar Enum = require(\"./enum\"),\n util = require(\"./util\");\n\n/**\n * Generates a partial value fromObject conveter.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} prop Property reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genValuePartial_fromObject(gen, field, fieldIndex, prop) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(d%s){\", prop);\n for (var values = field.resolvedType.values, keys = Object.keys(values), i = 0; i < keys.length; ++i) {\n if (field.repeated && values[keys[i]] === field.typeDefault) gen\n (\"default:\");\n gen\n (\"case%j:\", keys[i])\n (\"case %i:\", values[keys[i]])\n (\"m%s=%j\", prop, values[keys[i]])\n (\"break\");\n } gen\n (\"}\");\n } else gen\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s=types[%i].fromObject(d%s)\", prop, fieldIndex, prop);\n } else {\n var isUnsigned = false;\n switch (field.type) {\n case \"double\":\n case \"float\": gen\n (\"m%s=Number(d%s)\", prop, prop); // also catches \"NaN\", \"Infinity\"\n break;\n case \"uint32\":\n case \"fixed32\": gen\n (\"m%s=d%s>>>0\", prop, prop);\n break;\n case \"int32\":\n case \"sint32\":\n case \"sfixed32\": gen\n (\"m%s=d%s|0\", prop, prop);\n break;\n case \"uint64\":\n isUnsigned = true;\n // eslint-disable-line no-fallthrough\n case \"int64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(util.Long)\")\n (\"(m%s=util.Long.fromValue(d%s)).unsigned=%j\", prop, prop, isUnsigned)\n (\"else if(typeof d%s===\\\"string\\\")\", prop)\n (\"m%s=parseInt(d%s,10)\", prop, prop)\n (\"else if(typeof d%s===\\\"number\\\")\", prop)\n (\"m%s=d%s\", prop, prop)\n (\"else if(typeof d%s===\\\"object\\\")\", prop)\n (\"m%s=new util.LongBits(d%s.low>>>0,d%s.high>>>0).toNumber(%s)\", prop, prop, prop, isUnsigned ? \"true\" : \"\");\n break;\n case \"bytes\": gen\n (\"if(typeof d%s===\\\"string\\\")\", prop)\n (\"util.base64.decode(d%s,m%s=util.newBuffer(util.base64.length(d%s)),0)\", prop, prop, prop)\n (\"else if(d%s.length)\", prop)\n (\"m%s=d%s\", prop, prop);\n break;\n case \"string\": gen\n (\"m%s=String(d%s)\", prop, prop);\n break;\n case \"bool\": gen\n (\"m%s=Boolean(d%s)\", prop, prop);\n break;\n /* default: gen\n (\"m%s=d%s\", prop, prop);\n break; */\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a plain object to runtime message converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.fromObject = function fromObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray;\n var gen = util.codegen([\"d\"], mtype.name + \"$fromObject\")\n (\"if(d instanceof this.ctor)\")\n (\"return d\");\n if (!fields.length) return gen\n (\"return new this.ctor\");\n gen\n (\"var m=new this.ctor\");\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n prop = util.safeProp(field.name);\n\n // Map fields\n if (field.map) { gen\n (\"if(d%s){\", prop)\n (\"if(typeof d%s!==\\\"object\\\")\", prop)\n (\"throw TypeError(%j)\", field.fullName + \": object expected\")\n (\"m%s={}\", prop)\n (\"for(var ks=Object.keys(d%s),i=0;i>>0,m%s.high>>>0).toNumber(%s):m%s\", prop, prop, prop, prop, isUnsigned ? \"true\": \"\", prop);\n break;\n case \"bytes\": gen\n (\"d%s=o.bytes===String?util.base64.encode(m%s,0,m%s.length):o.bytes===Array?Array.prototype.slice.call(m%s):m%s\", prop, prop, prop, prop, prop);\n break;\n default: gen\n (\"d%s=m%s\", prop, prop);\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n\n/**\n * Generates a runtime message to plain object converter specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nconverter.toObject = function toObject(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var fields = mtype.fieldsArray.slice().sort(util.compareFieldsById);\n if (!fields.length)\n return util.codegen()(\"return {}\");\n var gen = util.codegen([\"m\", \"o\"], mtype.name + \"$toObject\")\n (\"if(!o)\")\n (\"o={}\")\n (\"var d={}\");\n\n var repeatedFields = [],\n mapFields = [],\n normalFields = [],\n i = 0;\n for (; i < fields.length; ++i)\n if (!fields[i].partOf)\n ( fields[i].resolve().repeated ? repeatedFields\n : fields[i].map ? mapFields\n : normalFields).push(fields[i]);\n\n if (repeatedFields.length) { gen\n (\"if(o.arrays||o.defaults){\");\n for (i = 0; i < repeatedFields.length; ++i) gen\n (\"d%s=[]\", util.safeProp(repeatedFields[i].name));\n gen\n (\"}\");\n }\n\n if (mapFields.length) { gen\n (\"if(o.objects||o.defaults){\");\n for (i = 0; i < mapFields.length; ++i) gen\n (\"d%s={}\", util.safeProp(mapFields[i].name));\n gen\n (\"}\");\n }\n\n if (normalFields.length) { gen\n (\"if(o.defaults){\");\n for (i = 0; i < normalFields.length; ++i) {\n var field = normalFields[i],\n prop = util.safeProp(field.name);\n if (field.resolvedType instanceof Enum) gen\n (\"d%s=o.enums===String?%j:%j\", prop, field.resolvedType.valuesById[field.typeDefault], field.typeDefault);\n else if (field.long) gen\n (\"if(util.Long){\")\n (\"var n=new util.Long(%i,%i,%j)\", field.typeDefault.low, field.typeDefault.high, field.typeDefault.unsigned)\n (\"d%s=o.longs===String?n.toString():o.longs===Number?n.toNumber():n\", prop)\n (\"}else\")\n (\"d%s=o.longs===String?%j:%i\", prop, field.typeDefault.toString(), field.typeDefault.toNumber());\n else if (field.bytes) {\n var arrayDefault = \"[\" + Array.prototype.slice.call(field.typeDefault).join(\",\") + \"]\";\n gen\n (\"if(o.bytes===String)d%s=%j\", prop, String.fromCharCode.apply(String, field.typeDefault))\n (\"else{\")\n (\"d%s=%s\", prop, arrayDefault)\n (\"if(o.bytes!==Array)d%s=util.newBuffer(d%s)\", prop, prop)\n (\"}\");\n } else gen\n (\"d%s=%j\", prop, field.typeDefault); // also messages (=null)\n } gen\n (\"}\");\n }\n var hasKs2 = false;\n for (i = 0; i < fields.length; ++i) {\n var field = fields[i],\n index = mtype._fieldsArray.indexOf(field),\n prop = util.safeProp(field.name);\n if (field.map) {\n if (!hasKs2) { hasKs2 = true; gen\n (\"var ks2\");\n } gen\n (\"if(m%s&&(ks2=Object.keys(m%s)).length){\", prop, prop)\n (\"d%s={}\", prop)\n (\"for(var j=0;j>>3){\");\n\n var i = 0;\n for (; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n ref = \"m\" + util.safeProp(field.name); gen\n (\"case %i:\", field.id);\n\n // Map fields\n if (field.map) { gen\n (\"if(%s===util.emptyObject)\", ref)\n (\"%s={}\", ref)\n (\"var c2 = r.uint32()+r.pos\");\n\n if (types.defaults[field.keyType] !== undefined) gen\n (\"k=%j\", types.defaults[field.keyType]);\n else gen\n (\"k=null\");\n\n if (types.defaults[type] !== undefined) gen\n (\"value=%j\", types.defaults[type]);\n else gen\n (\"value=null\");\n\n gen\n (\"while(r.pos>>3){\")\n (\"case 1: k=r.%s(); break\", field.keyType)\n (\"case 2:\");\n\n if (types.basic[type] === undefined) gen\n (\"value=types[%i].decode(r,r.uint32())\", i); // can't be groups\n else gen\n (\"value=r.%s()\", type);\n\n gen\n (\"break\")\n (\"default:\")\n (\"r.skipType(tag2&7)\")\n (\"break\")\n (\"}\")\n (\"}\");\n\n if (types.long[field.keyType] !== undefined) gen\n (\"%s[typeof k===\\\"object\\\"?util.longToHash(k):k]=value\", ref);\n else gen\n (\"%s[k]=value\", ref);\n\n // Repeated fields\n } else if (field.repeated) { gen\n\n (\"if(!(%s&&%s.length))\", ref, ref)\n (\"%s=[]\", ref);\n\n // Packable (always check for forward and backward compatiblity)\n if (types.packed[type] !== undefined) gen\n (\"if((t&7)===2){\")\n (\"var c2=r.uint32()+r.pos\")\n (\"while(r.pos>> 0, (field.id << 3 | 4) >>> 0)\n : gen(\"types[%i].encode(%s,w.uint32(%i).fork()).ldelim()\", fieldIndex, ref, (field.id << 3 | 2) >>> 0);\n}\n\n/**\n * Generates an encoder specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction encoder(mtype) {\n /* eslint-disable no-unexpected-multiline, block-scoped-var, no-redeclare */\n var gen = util.codegen([\"m\", \"w\"], mtype.name + \"$encode\")\n (\"if(!w)\")\n (\"w=Writer.create()\");\n\n var i, ref;\n\n // \"when a message is serialized its known fields should be written sequentially by field number\"\n var fields = /* initializes */ mtype.fieldsArray.slice().sort(util.compareFieldsById);\n\n for (var i = 0; i < fields.length; ++i) {\n var field = fields[i].resolve(),\n index = mtype._fieldsArray.indexOf(field),\n type = field.resolvedType instanceof Enum ? \"int32\" : field.type,\n wireType = types.basic[type];\n ref = \"m\" + util.safeProp(field.name);\n\n // Map fields\n if (field.map) {\n gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j)){\", ref, field.name) // !== undefined && !== null\n (\"for(var ks=Object.keys(%s),i=0;i>> 0, 8 | types.mapKey[field.keyType], field.keyType);\n if (wireType === undefined) gen\n (\"types[%i].encode(%s[ks[i]],w.uint32(18).fork()).ldelim().ldelim()\", index, ref); // can't be groups\n else gen\n (\".uint32(%i).%s(%s[ks[i]]).ldelim()\", 16 | wireType, type, ref);\n gen\n (\"}\")\n (\"}\");\n\n // Repeated fields\n } else if (field.repeated) { gen\n (\"if(%s!=null&&%s.length){\", ref, ref); // !== undefined && !== null\n\n // Packed repeated\n if (field.packed && types.packed[type] !== undefined) { gen\n\n (\"w.uint32(%i).fork()\", (field.id << 3 | 2) >>> 0)\n (\"for(var i=0;i<%s.length;++i)\", ref)\n (\"w.%s(%s[i])\", type, ref)\n (\"w.ldelim()\");\n\n // Non-packed\n } else { gen\n\n (\"for(var i=0;i<%s.length;++i)\", ref);\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref + \"[i]\");\n else gen\n (\"w.uint32(%i).%s(%s[i])\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n } gen\n (\"}\");\n\n // Non-repeated\n } else {\n if (field.optional) gen\n (\"if(%s!=null&&Object.hasOwnProperty.call(m,%j))\", ref, field.name); // !== undefined && !== null\n\n if (wireType === undefined)\n genTypePartial(gen, field, index, ref);\n else gen\n (\"w.uint32(%i).%s(%s)\", (field.id << 3 | wireType) >>> 0, type, ref);\n\n }\n }\n\n return gen\n (\"return w\");\n /* eslint-enable no-unexpected-multiline, block-scoped-var, no-redeclare */\n}\n","\"use strict\";\nmodule.exports = Enum;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Enum.prototype = Object.create(ReflectionObject.prototype)).constructor = Enum).className = \"Enum\";\n\nvar Namespace = require(\"./namespace\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new enum instance.\n * @classdesc Reflected enum.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {Object.} [values] Enum values as an object, by name\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this enum\n * @param {Object.} [comments] The value comments for this enum\n */\nfunction Enum(name, values, options, comment, comments) {\n ReflectionObject.call(this, name, options);\n\n if (values && typeof values !== \"object\")\n throw TypeError(\"values must be an object\");\n\n /**\n * Enum values by id.\n * @type {Object.}\n */\n this.valuesById = {};\n\n /**\n * Enum values by name.\n * @type {Object.}\n */\n this.values = Object.create(this.valuesById); // toJSON, marker\n\n /**\n * Enum comment text.\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Value comment texts, if any.\n * @type {Object.}\n */\n this.comments = comments || {};\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n // Note that values inherit valuesById on their prototype which makes them a TypeScript-\n // compatible enum. This is used by pbts to write actual enum definitions that work for\n // static and reflection code alike instead of emitting generic object definitions.\n\n if (values)\n for (var keys = Object.keys(values), i = 0; i < keys.length; ++i)\n if (typeof values[keys[i]] === \"number\") // use forward entries only\n this.valuesById[ this.values[keys[i]] = values[keys[i]] ] = keys[i];\n}\n\n/**\n * Enum descriptor.\n * @interface IEnum\n * @property {Object.} values Enum values\n * @property {Object.} [options] Enum options\n */\n\n/**\n * Constructs an enum from an enum descriptor.\n * @param {string} name Enum name\n * @param {IEnum} json Enum descriptor\n * @returns {Enum} Created enum\n * @throws {TypeError} If arguments are invalid\n */\nEnum.fromJSON = function fromJSON(name, json) {\n var enm = new Enum(name, json.values, json.options, json.comment, json.comments);\n enm.reserved = json.reserved;\n return enm;\n};\n\n/**\n * Converts this enum to an enum descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IEnum} Enum descriptor\n */\nEnum.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"values\" , this.values,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"comment\" , keepComments ? this.comment : undefined,\n \"comments\" , keepComments ? this.comments : undefined\n ]);\n};\n\n/**\n * Adds a value to this enum.\n * @param {string} name Value name\n * @param {number} id Value id\n * @param {string} [comment] Comment, if any\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a value with this name or id\n */\nEnum.prototype.add = function add(name, id, comment) {\n // utilized by the parser but not by .fromJSON\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (!util.isInteger(id))\n throw TypeError(\"id must be an integer\");\n\n if (this.values[name] !== undefined)\n throw Error(\"duplicate name '\" + name + \"' in \" + this);\n\n if (this.isReservedId(id))\n throw Error(\"id \" + id + \" is reserved in \" + this);\n\n if (this.isReservedName(name))\n throw Error(\"name '\" + name + \"' is reserved in \" + this);\n\n if (this.valuesById[id] !== undefined) {\n if (!(this.options && this.options.allow_alias))\n throw Error(\"duplicate id \" + id + \" in \" + this);\n this.values[name] = id;\n } else\n this.valuesById[this.values[name] = id] = name;\n\n this.comments[name] = comment || null;\n return this;\n};\n\n/**\n * Removes a value from this enum\n * @param {string} name Value name\n * @returns {Enum} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `name` is not a name of this enum\n */\nEnum.prototype.remove = function remove(name) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n var val = this.values[name];\n if (val == null)\n throw Error(\"name '\" + name + \"' does not exist in \" + this);\n\n delete this.valuesById[val];\n delete this.values[name];\n delete this.comments[name];\n\n return this;\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nEnum.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n","\"use strict\";\nmodule.exports = Field;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Field.prototype = Object.create(ReflectionObject.prototype)).constructor = Field).className = \"Field\";\n\nvar Enum = require(\"./enum\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\nvar Type; // cyclic\n\nvar ruleRe = /^required|optional|repeated$/;\n\n/**\n * Constructs a new message field instance. Note that {@link MapField|map fields} have their own class.\n * @name Field\n * @classdesc Reflected message field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a field from a field descriptor.\n * @param {string} name Field name\n * @param {IField} json Field descriptor\n * @returns {Field} Created field\n * @throws {TypeError} If arguments are invalid\n */\nField.fromJSON = function fromJSON(name, json) {\n return new Field(name, json.id, json.type, json.rule, json.extend, json.options, json.comment);\n};\n\n/**\n * Not an actual constructor. Use {@link Field} instead.\n * @classdesc Base class of all reflected message fields. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports FieldBase\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} type Value type\n * @param {string|Object.} [rule=\"optional\"] Field rule\n * @param {string|Object.} [extend] Extended type if different from parent\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction Field(name, id, type, rule, extend, options, comment) {\n\n if (util.isObject(rule)) {\n comment = extend;\n options = rule;\n rule = extend = undefined;\n } else if (util.isObject(extend)) {\n comment = options;\n options = extend;\n extend = undefined;\n }\n\n ReflectionObject.call(this, name, options);\n\n if (!util.isInteger(id) || id < 0)\n throw TypeError(\"id must be a non-negative integer\");\n\n if (!util.isString(type))\n throw TypeError(\"type must be a string\");\n\n if (rule !== undefined && !ruleRe.test(rule = rule.toString().toLowerCase()))\n throw TypeError(\"rule must be a string rule\");\n\n if (extend !== undefined && !util.isString(extend))\n throw TypeError(\"extend must be a string\");\n\n if (rule === \"proto3_optional\") {\n rule = \"optional\";\n }\n /**\n * Field rule, if any.\n * @type {string|undefined}\n */\n this.rule = rule && rule !== \"optional\" ? rule : undefined; // toJSON\n\n /**\n * Field type.\n * @type {string}\n */\n this.type = type; // toJSON\n\n /**\n * Unique field id.\n * @type {number}\n */\n this.id = id; // toJSON, marker\n\n /**\n * Extended type if different from parent.\n * @type {string|undefined}\n */\n this.extend = extend || undefined; // toJSON\n\n /**\n * Whether this field is required.\n * @type {boolean}\n */\n this.required = rule === \"required\";\n\n /**\n * Whether this field is optional.\n * @type {boolean}\n */\n this.optional = !this.required;\n\n /**\n * Whether this field is repeated.\n * @type {boolean}\n */\n this.repeated = rule === \"repeated\";\n\n /**\n * Whether this field is a map or not.\n * @type {boolean}\n */\n this.map = false;\n\n /**\n * Message this field belongs to.\n * @type {Type|null}\n */\n this.message = null;\n\n /**\n * OneOf this field belongs to, if any,\n * @type {OneOf|null}\n */\n this.partOf = null;\n\n /**\n * The field type's default value.\n * @type {*}\n */\n this.typeDefault = null;\n\n /**\n * The field's default value on prototypes.\n * @type {*}\n */\n this.defaultValue = null;\n\n /**\n * Whether this field's value should be treated as a long.\n * @type {boolean}\n */\n this.long = util.Long ? types.long[type] !== undefined : /* istanbul ignore next */ false;\n\n /**\n * Whether this field's value is a buffer.\n * @type {boolean}\n */\n this.bytes = type === \"bytes\";\n\n /**\n * Resolved type if not a basic type.\n * @type {Type|Enum|null}\n */\n this.resolvedType = null;\n\n /**\n * Sister-field within the extended type if a declaring extension field.\n * @type {Field|null}\n */\n this.extensionField = null;\n\n /**\n * Sister-field within the declaring namespace if an extended field.\n * @type {Field|null}\n */\n this.declaringField = null;\n\n /**\n * Internally remembers whether this field is packed.\n * @type {boolean|null}\n * @private\n */\n this._packed = null;\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Determines whether this field is packed. Only relevant when repeated and working with proto2.\n * @name Field#packed\n * @type {boolean}\n * @readonly\n */\nObject.defineProperty(Field.prototype, \"packed\", {\n get: function() {\n // defaults to packed=true if not explicity set to false\n if (this._packed === null)\n this._packed = this.getOption(\"packed\") !== false;\n return this._packed;\n }\n});\n\n/**\n * @override\n */\nField.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (name === \"packed\") // clear cached before setting\n this._packed = null;\n return ReflectionObject.prototype.setOption.call(this, name, value, ifNotSet);\n};\n\n/**\n * Field descriptor.\n * @interface IField\n * @property {string} [rule=\"optional\"] Field rule\n * @property {string} type Field type\n * @property {number} id Field id\n * @property {Object.} [options] Field options\n */\n\n/**\n * Extension field descriptor.\n * @interface IExtensionField\n * @extends IField\n * @property {string} extend Extended type\n */\n\n/**\n * Converts this field to a field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IField} Field descriptor\n */\nField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"rule\" , this.rule !== \"optional\" && this.rule || undefined,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Resolves this field's type references.\n * @returns {Field} `this`\n * @throws {Error} If any reference cannot be resolved\n */\nField.prototype.resolve = function resolve() {\n\n if (this.resolved)\n return this;\n\n if ((this.typeDefault = types.defaults[this.type]) === undefined) { // if not a basic type, resolve it\n this.resolvedType = (this.declaringField ? this.declaringField.parent : this.parent).lookupTypeOrEnum(this.type);\n if (this.resolvedType instanceof Type)\n this.typeDefault = null;\n else // instanceof Enum\n this.typeDefault = this.resolvedType.values[Object.keys(this.resolvedType.values)[0]]; // first defined\n }\n\n // use explicitly set default value if present\n if (this.options && this.options[\"default\"] != null) {\n this.typeDefault = this.options[\"default\"];\n if (this.resolvedType instanceof Enum && typeof this.typeDefault === \"string\")\n this.typeDefault = this.resolvedType.values[this.typeDefault];\n }\n\n // remove unnecessary options\n if (this.options) {\n if (this.options.packed === true || this.options.packed !== undefined && this.resolvedType && !(this.resolvedType instanceof Enum))\n delete this.options.packed;\n if (!Object.keys(this.options).length)\n this.options = undefined;\n }\n\n // convert to internal data type if necesssary\n if (this.long) {\n this.typeDefault = util.Long.fromNumber(this.typeDefault, this.type.charAt(0) === \"u\");\n\n /* istanbul ignore else */\n if (Object.freeze)\n Object.freeze(this.typeDefault); // long instances are meant to be immutable anyway (i.e. use small int cache that even requires it)\n\n } else if (this.bytes && typeof this.typeDefault === \"string\") {\n var buf;\n if (util.base64.test(this.typeDefault))\n util.base64.decode(this.typeDefault, buf = util.newBuffer(util.base64.length(this.typeDefault)), 0);\n else\n util.utf8.write(this.typeDefault, buf = util.newBuffer(util.utf8.length(this.typeDefault)), 0);\n this.typeDefault = buf;\n }\n\n // take special care of maps and repeated fields\n if (this.map)\n this.defaultValue = util.emptyObject;\n else if (this.repeated)\n this.defaultValue = util.emptyArray;\n else\n this.defaultValue = this.typeDefault;\n\n // ensure proper value on prototype\n if (this.parent instanceof Type)\n this.parent.ctor.prototype[this.name] = this.defaultValue;\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n\n/**\n * Decorator function as returned by {@link Field.d} and {@link MapField.d} (TypeScript).\n * @typedef FieldDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} fieldName Field name\n * @returns {undefined}\n */\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"string\"|\"bool\"|\"bytes\"|Object} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @param {T} [defaultValue] Default value\n * @returns {FieldDecorator} Decorator function\n * @template T extends number | number[] | Long | Long[] | string | string[] | boolean | boolean[] | Uint8Array | Uint8Array[] | Buffer | Buffer[]\n */\nField.d = function decorateField(fieldId, fieldType, fieldRule, defaultValue) {\n\n // submessage: decorate the submessage and use its name as the type\n if (typeof fieldType === \"function\")\n fieldType = util.decorateType(fieldType).name;\n\n // enum reference: create a reflected copy of the enum and keep reuseing it\n else if (fieldType && typeof fieldType === \"object\")\n fieldType = util.decorateEnum(fieldType).name;\n\n return function fieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new Field(fieldName, fieldId, fieldType, fieldRule, { \"default\": defaultValue }));\n };\n};\n\n/**\n * Field decorator (TypeScript).\n * @name Field.d\n * @function\n * @param {number} fieldId Field id\n * @param {Constructor|string} fieldType Field type\n * @param {\"optional\"|\"required\"|\"repeated\"} [fieldRule=\"optional\"] Field rule\n * @returns {FieldDecorator} Decorator function\n * @template T extends Message\n * @variation 2\n */\n// like Field.d but without a default value\n\n// Sets up cyclic dependencies (called in index-light)\nField._configure = function configure(Type_) {\n Type = Type_;\n};\n","\"use strict\";\nvar protobuf = module.exports = require(\"./index-minimal\");\n\nprotobuf.build = \"light\";\n\n/**\n * A node-style callback as used by {@link load} and {@link Root#load}.\n * @typedef LoadCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Root} [root] Root, if there hasn't been an error\n * @returns {undefined}\n */\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} root Root namespace, defaults to create a new one if omitted.\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n */\nfunction load(filename, root, callback) {\n if (typeof root === \"function\") {\n callback = root;\n root = new protobuf.Root();\n } else if (!root)\n root = new protobuf.Root();\n return root.load(filename, callback);\n}\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and calls the callback.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @see {@link Root#load}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into a common root namespace and returns a promise.\n * @name load\n * @function\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Promise} Promise\n * @see {@link Root#load}\n * @variation 3\n */\n// function load(filename:string, [root:Root]):Promise\n\nprotobuf.load = load;\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into a common root namespace (node only).\n * @param {string|string[]} filename One or multiple files to load\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n * @see {@link Root#loadSync}\n */\nfunction loadSync(filename, root) {\n if (!root)\n root = new protobuf.Root();\n return root.loadSync(filename);\n}\n\nprotobuf.loadSync = loadSync;\n\n// Serialization\nprotobuf.encoder = require(\"./encoder\");\nprotobuf.decoder = require(\"./decoder\");\nprotobuf.verifier = require(\"./verifier\");\nprotobuf.converter = require(\"./converter\");\n\n// Reflection\nprotobuf.ReflectionObject = require(\"./object\");\nprotobuf.Namespace = require(\"./namespace\");\nprotobuf.Root = require(\"./root\");\nprotobuf.Enum = require(\"./enum\");\nprotobuf.Type = require(\"./type\");\nprotobuf.Field = require(\"./field\");\nprotobuf.OneOf = require(\"./oneof\");\nprotobuf.MapField = require(\"./mapfield\");\nprotobuf.Service = require(\"./service\");\nprotobuf.Method = require(\"./method\");\n\n// Runtime\nprotobuf.Message = require(\"./message\");\nprotobuf.wrappers = require(\"./wrappers\");\n\n// Utility\nprotobuf.types = require(\"./types\");\nprotobuf.util = require(\"./util\");\n\n// Set up possibly cyclic reflection dependencies\nprotobuf.ReflectionObject._configure(protobuf.Root);\nprotobuf.Namespace._configure(protobuf.Type, protobuf.Service, protobuf.Enum);\nprotobuf.Root._configure(protobuf.Type);\nprotobuf.Field._configure(protobuf.Type);\n","\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n","\"use strict\";\nvar protobuf = module.exports = require(\"./index-light\");\n\nprotobuf.build = \"full\";\n\n// Parser\nprotobuf.tokenize = require(\"./tokenize\");\nprotobuf.parse = require(\"./parse\");\nprotobuf.common = require(\"./common\");\n\n// Configure parser\nprotobuf.Root._configure(protobuf.Type, protobuf.parse, protobuf.common);\n","\"use strict\";\nmodule.exports = MapField;\n\n// extends Field\nvar Field = require(\"./field\");\n((MapField.prototype = Object.create(Field.prototype)).constructor = MapField).className = \"MapField\";\n\nvar types = require(\"./types\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new map field instance.\n * @classdesc Reflected map field.\n * @extends FieldBase\n * @constructor\n * @param {string} name Unique name within its namespace\n * @param {number} id Unique id within its namespace\n * @param {string} keyType Key type\n * @param {string} type Value type\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction MapField(name, id, keyType, type, options, comment) {\n Field.call(this, name, id, type, undefined, undefined, options, comment);\n\n /* istanbul ignore if */\n if (!util.isString(keyType))\n throw TypeError(\"keyType must be a string\");\n\n /**\n * Key type.\n * @type {string}\n */\n this.keyType = keyType; // toJSON, marker\n\n /**\n * Resolved key type if not a basic type.\n * @type {ReflectionObject|null}\n */\n this.resolvedKeyType = null;\n\n // Overrides Field#map\n this.map = true;\n}\n\n/**\n * Map field descriptor.\n * @interface IMapField\n * @extends {IField}\n * @property {string} keyType Key type\n */\n\n/**\n * Extension map field descriptor.\n * @interface IExtensionMapField\n * @extends IMapField\n * @property {string} extend Extended type\n */\n\n/**\n * Constructs a map field from a map field descriptor.\n * @param {string} name Field name\n * @param {IMapField} json Map field descriptor\n * @returns {MapField} Created map field\n * @throws {TypeError} If arguments are invalid\n */\nMapField.fromJSON = function fromJSON(name, json) {\n return new MapField(name, json.id, json.keyType, json.type, json.options, json.comment);\n};\n\n/**\n * Converts this map field to a map field descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMapField} Map field descriptor\n */\nMapField.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"keyType\" , this.keyType,\n \"type\" , this.type,\n \"id\" , this.id,\n \"extend\" , this.extend,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nMapField.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n\n // Besides a value type, map fields have a key type that may be \"any scalar type except for floating point types and bytes\"\n if (types.mapKey[this.keyType] === undefined)\n throw Error(\"invalid key type: \" + this.keyType);\n\n return Field.prototype.resolve.call(this);\n};\n\n/**\n * Map field decorator (TypeScript).\n * @name MapField.d\n * @function\n * @param {number} fieldId Field id\n * @param {\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"} fieldKeyType Field key type\n * @param {\"double\"|\"float\"|\"int32\"|\"uint32\"|\"sint32\"|\"fixed32\"|\"sfixed32\"|\"int64\"|\"uint64\"|\"sint64\"|\"fixed64\"|\"sfixed64\"|\"bool\"|\"string\"|\"bytes\"|Object|Constructor<{}>} fieldValueType Field value type\n * @returns {FieldDecorator} Decorator function\n * @template T extends { [key: string]: number | Long | string | boolean | Uint8Array | Buffer | number[] | Message<{}> }\n */\nMapField.d = function decorateMapField(fieldId, fieldKeyType, fieldValueType) {\n\n // submessage value: decorate the submessage and use its name as the type\n if (typeof fieldValueType === \"function\")\n fieldValueType = util.decorateType(fieldValueType).name;\n\n // enum reference value: create a reflected copy of the enum and keep reuseing it\n else if (fieldValueType && typeof fieldValueType === \"object\")\n fieldValueType = util.decorateEnum(fieldValueType).name;\n\n return function mapFieldDecorator(prototype, fieldName) {\n util.decorateType(prototype.constructor)\n .add(new MapField(fieldName, fieldId, fieldKeyType, fieldValueType));\n };\n};\n","\"use strict\";\nmodule.exports = Message;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new message instance.\n * @classdesc Abstract runtime message.\n * @constructor\n * @param {Properties} [properties] Properties to set\n * @template T extends object = object\n */\nfunction Message(properties) {\n // not used internally\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n this[keys[i]] = properties[keys[i]];\n}\n\n/**\n * Reference to the reflected type.\n * @name Message.$type\n * @type {Type}\n * @readonly\n */\n\n/**\n * Reference to the reflected type.\n * @name Message#$type\n * @type {Type}\n * @readonly\n */\n\n/*eslint-disable valid-jsdoc*/\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.create = function create(properties) {\n return this.$type.create(properties);\n};\n\n/**\n * Encodes a message of this type.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encode = function encode(message, writer) {\n return this.$type.encode(message, writer);\n};\n\n/**\n * Encodes a message of this type preceeded by its length as a varint.\n * @param {T|Object.} message Message to encode\n * @param {Writer} [writer] Writer to use\n * @returns {Writer} Writer\n * @template T extends Message\n * @this Constructor\n */\nMessage.encodeDelimited = function encodeDelimited(message, writer) {\n return this.$type.encodeDelimited(message, writer);\n};\n\n/**\n * Decodes a message of this type.\n * @name Message.decode\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decode = function decode(reader) {\n return this.$type.decode(reader);\n};\n\n/**\n * Decodes a message of this type preceeded by its length as a varint.\n * @name Message.decodeDelimited\n * @function\n * @param {Reader|Uint8Array} reader Reader or buffer to decode\n * @returns {T} Decoded message\n * @template T extends Message\n * @this Constructor\n */\nMessage.decodeDelimited = function decodeDelimited(reader) {\n return this.$type.decodeDelimited(reader);\n};\n\n/**\n * Verifies a message of this type.\n * @name Message.verify\n * @function\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\nMessage.verify = function verify(message) {\n return this.$type.verify(message);\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object\n * @returns {T} Message instance\n * @template T extends Message\n * @this Constructor\n */\nMessage.fromObject = function fromObject(object) {\n return this.$type.fromObject(object);\n};\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {T} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @template T extends Message\n * @this Constructor\n */\nMessage.toObject = function toObject(message, options) {\n return this.$type.toObject(message, options);\n};\n\n/**\n * Converts this message to JSON.\n * @returns {Object.} JSON object\n */\nMessage.prototype.toJSON = function toJSON() {\n return this.$type.toObject(this, util.toJSONOptions);\n};\n\n/*eslint-enable valid-jsdoc*/","\"use strict\";\nmodule.exports = Method;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Method.prototype = Object.create(ReflectionObject.prototype)).constructor = Method).className = \"Method\";\n\nvar util = require(\"./util\");\n\n/**\n * Constructs a new service method instance.\n * @classdesc Reflected service method.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Method name\n * @param {string|undefined} type Method type, usually `\"rpc\"`\n * @param {string} requestType Request message type\n * @param {string} responseType Response message type\n * @param {boolean|Object.} [requestStream] Whether the request is streamed\n * @param {boolean|Object.} [responseStream] Whether the response is streamed\n * @param {Object.} [options] Declared options\n * @param {string} [comment] The comment for this method\n * @param {Object.} [parsedOptions] Declared options, properly parsed into an object\n */\nfunction Method(name, type, requestType, responseType, requestStream, responseStream, options, comment, parsedOptions) {\n\n /* istanbul ignore next */\n if (util.isObject(requestStream)) {\n options = requestStream;\n requestStream = responseStream = undefined;\n } else if (util.isObject(responseStream)) {\n options = responseStream;\n responseStream = undefined;\n }\n\n /* istanbul ignore if */\n if (!(type === undefined || util.isString(type)))\n throw TypeError(\"type must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(requestType))\n throw TypeError(\"requestType must be a string\");\n\n /* istanbul ignore if */\n if (!util.isString(responseType))\n throw TypeError(\"responseType must be a string\");\n\n ReflectionObject.call(this, name, options);\n\n /**\n * Method type.\n * @type {string}\n */\n this.type = type || \"rpc\"; // toJSON\n\n /**\n * Request type.\n * @type {string}\n */\n this.requestType = requestType; // toJSON, marker\n\n /**\n * Whether requests are streamed or not.\n * @type {boolean|undefined}\n */\n this.requestStream = requestStream ? true : undefined; // toJSON\n\n /**\n * Response type.\n * @type {string}\n */\n this.responseType = responseType; // toJSON\n\n /**\n * Whether responses are streamed or not.\n * @type {boolean|undefined}\n */\n this.responseStream = responseStream ? true : undefined; // toJSON\n\n /**\n * Resolved request type.\n * @type {Type|null}\n */\n this.resolvedRequestType = null;\n\n /**\n * Resolved response type.\n * @type {Type|null}\n */\n this.resolvedResponseType = null;\n\n /**\n * Comment for this method\n * @type {string|null}\n */\n this.comment = comment;\n\n /**\n * Options properly parsed into an object\n */\n this.parsedOptions = parsedOptions;\n}\n\n/**\n * Method descriptor.\n * @interface IMethod\n * @property {string} [type=\"rpc\"] Method type\n * @property {string} requestType Request type\n * @property {string} responseType Response type\n * @property {boolean} [requestStream=false] Whether requests are streamed\n * @property {boolean} [responseStream=false] Whether responses are streamed\n * @property {Object.} [options] Method options\n * @property {string} comment Method comments\n * @property {Object.} [parsedOptions] Method options properly parsed into an object\n */\n\n/**\n * Constructs a method from a method descriptor.\n * @param {string} name Method name\n * @param {IMethod} json Method descriptor\n * @returns {Method} Created method\n * @throws {TypeError} If arguments are invalid\n */\nMethod.fromJSON = function fromJSON(name, json) {\n return new Method(name, json.type, json.requestType, json.responseType, json.requestStream, json.responseStream, json.options, json.comment, json.parsedOptions);\n};\n\n/**\n * Converts this method to a method descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IMethod} Method descriptor\n */\nMethod.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"type\" , this.type !== \"rpc\" && /* istanbul ignore next */ this.type || undefined,\n \"requestType\" , this.requestType,\n \"requestStream\" , this.requestStream,\n \"responseType\" , this.responseType,\n \"responseStream\" , this.responseStream,\n \"options\" , this.options,\n \"comment\" , keepComments ? this.comment : undefined,\n \"parsedOptions\" , this.parsedOptions,\n ]);\n};\n\n/**\n * @override\n */\nMethod.prototype.resolve = function resolve() {\n\n /* istanbul ignore if */\n if (this.resolved)\n return this;\n\n this.resolvedRequestType = this.parent.lookupType(this.requestType);\n this.resolvedResponseType = this.parent.lookupType(this.responseType);\n\n return ReflectionObject.prototype.resolve.call(this);\n};\n","\"use strict\";\nmodule.exports = Namespace;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((Namespace.prototype = Object.create(ReflectionObject.prototype)).constructor = Namespace).className = \"Namespace\";\n\nvar Field = require(\"./field\"),\n OneOf = require(\"./oneof\"),\n util = require(\"./util\");\n\nvar Type, // cyclic\n Service,\n Enum;\n\n/**\n * Constructs a new namespace instance.\n * @name Namespace\n * @classdesc Reflected namespace.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n */\n\n/**\n * Constructs a namespace from JSON.\n * @memberof Namespace\n * @function\n * @param {string} name Namespace name\n * @param {Object.} json JSON object\n * @returns {Namespace} Created namespace\n * @throws {TypeError} If arguments are invalid\n */\nNamespace.fromJSON = function fromJSON(name, json) {\n return new Namespace(name, json.options).addJSON(json.nested);\n};\n\n/**\n * Converts an array of reflection objects to JSON.\n * @memberof Namespace\n * @param {ReflectionObject[]} array Object array\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {Object.|undefined} JSON object or `undefined` when array is empty\n */\nfunction arrayToJSON(array, toJSONOptions) {\n if (!(array && array.length))\n return undefined;\n var obj = {};\n for (var i = 0; i < array.length; ++i)\n obj[array[i].name] = array[i].toJSON(toJSONOptions);\n return obj;\n}\n\nNamespace.arrayToJSON = arrayToJSON;\n\n/**\n * Tests if the specified id is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedId = function isReservedId(reserved, id) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (typeof reserved[i] !== \"string\" && reserved[i][0] <= id && reserved[i][1] > id)\n return true;\n return false;\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {Array.|undefined} reserved Array of reserved ranges and names\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nNamespace.isReservedName = function isReservedName(reserved, name) {\n if (reserved)\n for (var i = 0; i < reserved.length; ++i)\n if (reserved[i] === name)\n return true;\n return false;\n};\n\n/**\n * Not an actual constructor. Use {@link Namespace} instead.\n * @classdesc Base class of all reflection objects containing nested objects. This is not an actual class but here for the sake of having consistent type definitions.\n * @exports NamespaceBase\n * @extends ReflectionObject\n * @abstract\n * @constructor\n * @param {string} name Namespace name\n * @param {Object.} [options] Declared options\n * @see {@link Namespace}\n */\nfunction Namespace(name, options) {\n ReflectionObject.call(this, name, options);\n\n /**\n * Nested objects by name.\n * @type {Object.|undefined}\n */\n this.nested = undefined; // toJSON\n\n /**\n * Cached nested objects as an array.\n * @type {ReflectionObject[]|null}\n * @private\n */\n this._nestedArray = null;\n}\n\nfunction clearCache(namespace) {\n namespace._nestedArray = null;\n return namespace;\n}\n\n/**\n * Nested objects of this namespace as an array for iteration.\n * @name NamespaceBase#nestedArray\n * @type {ReflectionObject[]}\n * @readonly\n */\nObject.defineProperty(Namespace.prototype, \"nestedArray\", {\n get: function() {\n return this._nestedArray || (this._nestedArray = util.toArray(this.nested));\n }\n});\n\n/**\n * Namespace descriptor.\n * @interface INamespace\n * @property {Object.} [options] Namespace options\n * @property {Object.} [nested] Nested object descriptors\n */\n\n/**\n * Any extension field descriptor.\n * @typedef AnyExtensionField\n * @type {IExtensionField|IExtensionMapField}\n */\n\n/**\n * Any nested object descriptor.\n * @typedef AnyNestedObject\n * @type {IEnum|IType|IService|AnyExtensionField|INamespace}\n */\n// ^ BEWARE: VSCode hangs forever when using more than 5 types (that's why AnyExtensionField exists in the first place)\n\n/**\n * Converts this namespace to a namespace descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {INamespace} Namespace descriptor\n */\nNamespace.prototype.toJSON = function toJSON(toJSONOptions) {\n return util.toObject([\n \"options\" , this.options,\n \"nested\" , arrayToJSON(this.nestedArray, toJSONOptions)\n ]);\n};\n\n/**\n * Adds nested objects to this namespace from nested object descriptors.\n * @param {Object.} nestedJson Any nested object descriptors\n * @returns {Namespace} `this`\n */\nNamespace.prototype.addJSON = function addJSON(nestedJson) {\n var ns = this;\n /* istanbul ignore else */\n if (nestedJson) {\n for (var names = Object.keys(nestedJson), i = 0, nested; i < names.length; ++i) {\n nested = nestedJson[names[i]];\n ns.add( // most to least likely\n ( nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : nested.id !== undefined\n ? Field.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n }\n return this;\n};\n\n/**\n * Gets the nested object of the specified name.\n * @param {string} name Nested object name\n * @returns {ReflectionObject|null} The reflection object or `null` if it doesn't exist\n */\nNamespace.prototype.get = function get(name) {\n return this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Gets the values of the nested {@link Enum|enum} of the specified name.\n * This methods differs from {@link Namespace#get|get} in that it returns an enum's values directly and throws instead of returning `null`.\n * @param {string} name Nested enum name\n * @returns {Object.} Enum values\n * @throws {Error} If there is no such enum\n */\nNamespace.prototype.getEnum = function getEnum(name) {\n if (this.nested && this.nested[name] instanceof Enum)\n return this.nested[name].values;\n throw Error(\"no such enum: \" + name);\n};\n\n/**\n * Adds a nested object to this namespace.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name\n */\nNamespace.prototype.add = function add(object) {\n\n if (!(object instanceof Field && object.extend !== undefined || object instanceof Type || object instanceof Enum || object instanceof Service || object instanceof Namespace || object instanceof OneOf))\n throw TypeError(\"object must be a valid nested object\");\n\n if (!this.nested)\n this.nested = {};\n else {\n var prev = this.get(object.name);\n if (prev) {\n if (prev instanceof Namespace && object instanceof Namespace && !(prev instanceof Type || prev instanceof Service)) {\n // replace plain namespace but keep existing nested elements and options\n var nested = prev.nestedArray;\n for (var i = 0; i < nested.length; ++i)\n object.add(nested[i]);\n this.remove(prev);\n if (!this.nested)\n this.nested = {};\n object.setOptions(prev.options, true);\n\n } else\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n }\n }\n this.nested[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n};\n\n/**\n * Removes a nested object from this namespace.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Namespace} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this namespace\n */\nNamespace.prototype.remove = function remove(object) {\n\n if (!(object instanceof ReflectionObject))\n throw TypeError(\"object must be a ReflectionObject\");\n if (object.parent !== this)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.nested[object.name];\n if (!Object.keys(this.nested).length)\n this.nested = undefined;\n\n object.onRemove(this);\n return clearCache(this);\n};\n\n/**\n * Defines additial namespaces within this one if not yet existing.\n * @param {string|string[]} path Path to create\n * @param {*} [json] Nested types to create from JSON\n * @returns {Namespace} Pointer to the last namespace created or `this` if path is empty\n */\nNamespace.prototype.define = function define(path, json) {\n\n if (util.isString(path))\n path = path.split(\".\");\n else if (!Array.isArray(path))\n throw TypeError(\"illegal path\");\n if (path && path.length && path[0] === \"\")\n throw Error(\"path must be relative\");\n\n var ptr = this;\n while (path.length > 0) {\n var part = path.shift();\n if (ptr.nested && ptr.nested[part]) {\n ptr = ptr.nested[part];\n if (!(ptr instanceof Namespace))\n throw Error(\"path conflicts with non-namespace objects\");\n } else\n ptr.add(ptr = new Namespace(part));\n }\n if (json)\n ptr.addJSON(json);\n return ptr;\n};\n\n/**\n * Resolves this namespace's and all its nested objects' type references. Useful to validate a reflection tree, but comes at a cost.\n * @returns {Namespace} `this`\n */\nNamespace.prototype.resolveAll = function resolveAll() {\n var nested = this.nestedArray, i = 0;\n while (i < nested.length)\n if (nested[i] instanceof Namespace)\n nested[i++].resolveAll();\n else\n nested[i++].resolve();\n return this.resolve();\n};\n\n/**\n * Recursively looks up the reflection object matching the specified path in the scope of this namespace.\n * @param {string|string[]} path Path to look up\n * @param {*|Array.<*>} filterTypes Filter types, any combination of the constructors of `protobuf.Type`, `protobuf.Enum`, `protobuf.Service` etc.\n * @param {boolean} [parentAlreadyChecked=false] If known, whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n */\nNamespace.prototype.lookup = function lookup(path, filterTypes, parentAlreadyChecked) {\n\n /* istanbul ignore next */\n if (typeof filterTypes === \"boolean\") {\n parentAlreadyChecked = filterTypes;\n filterTypes = undefined;\n } else if (filterTypes && !Array.isArray(filterTypes))\n filterTypes = [ filterTypes ];\n\n if (util.isString(path) && path.length) {\n if (path === \".\")\n return this.root;\n path = path.split(\".\");\n } else if (!path.length)\n return this;\n\n // Start at root if path is absolute\n if (path[0] === \"\")\n return this.root.lookup(path.slice(1), filterTypes);\n\n // Test if the first part matches any nested object, and if so, traverse if path contains more\n var found = this.get(path[0]);\n if (found) {\n if (path.length === 1) {\n if (!filterTypes || filterTypes.indexOf(found.constructor) > -1)\n return found;\n } else if (found instanceof Namespace && (found = found.lookup(path.slice(1), filterTypes, true)))\n return found;\n\n // Otherwise try each nested namespace\n } else\n for (var i = 0; i < this.nestedArray.length; ++i)\n if (this._nestedArray[i] instanceof Namespace && (found = this._nestedArray[i].lookup(path, filterTypes, true)))\n return found;\n\n // If there hasn't been a match, try again at the parent\n if (this.parent === null || parentAlreadyChecked)\n return null;\n return this.parent.lookup(path, filterTypes);\n};\n\n/**\n * Looks up the reflection object at the specified path, relative to this namespace.\n * @name NamespaceBase#lookup\n * @function\n * @param {string|string[]} path Path to look up\n * @param {boolean} [parentAlreadyChecked=false] Whether the parent has already been checked\n * @returns {ReflectionObject|null} Looked up object or `null` if none could be found\n * @variation 2\n */\n// lookup(path: string, [parentAlreadyChecked: boolean])\n\n/**\n * Looks up the {@link Type|type} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type\n * @throws {Error} If `path` does not point to a type\n */\nNamespace.prototype.lookupType = function lookupType(path) {\n var found = this.lookup(path, [ Type ]);\n if (!found)\n throw Error(\"no such type: \" + path);\n return found;\n};\n\n/**\n * Looks up the values of the {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Enum} Looked up enum\n * @throws {Error} If `path` does not point to an enum\n */\nNamespace.prototype.lookupEnum = function lookupEnum(path) {\n var found = this.lookup(path, [ Enum ]);\n if (!found)\n throw Error(\"no such Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Type|type} or {@link Enum|enum} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Type} Looked up type or enum\n * @throws {Error} If `path` does not point to a type or enum\n */\nNamespace.prototype.lookupTypeOrEnum = function lookupTypeOrEnum(path) {\n var found = this.lookup(path, [ Type, Enum ]);\n if (!found)\n throw Error(\"no such Type or Enum '\" + path + \"' in \" + this);\n return found;\n};\n\n/**\n * Looks up the {@link Service|service} at the specified path, relative to this namespace.\n * Besides its signature, this methods differs from {@link Namespace#lookup|lookup} in that it throws instead of returning `null`.\n * @param {string|string[]} path Path to look up\n * @returns {Service} Looked up service\n * @throws {Error} If `path` does not point to a service\n */\nNamespace.prototype.lookupService = function lookupService(path) {\n var found = this.lookup(path, [ Service ]);\n if (!found)\n throw Error(\"no such Service '\" + path + \"' in \" + this);\n return found;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nNamespace._configure = function(Type_, Service_, Enum_) {\n Type = Type_;\n Service = Service_;\n Enum = Enum_;\n};\n","\"use strict\";\nmodule.exports = ReflectionObject;\n\nReflectionObject.className = \"ReflectionObject\";\n\nvar util = require(\"./util\");\n\nvar Root; // cyclic\n\n/**\n * Constructs a new reflection object instance.\n * @classdesc Base class of all reflection objects.\n * @constructor\n * @param {string} name Object name\n * @param {Object.} [options] Declared options\n * @abstract\n */\nfunction ReflectionObject(name, options) {\n\n if (!util.isString(name))\n throw TypeError(\"name must be a string\");\n\n if (options && !util.isObject(options))\n throw TypeError(\"options must be an object\");\n\n /**\n * Options.\n * @type {Object.|undefined}\n */\n this.options = options; // toJSON\n\n /**\n * Parsed Options.\n * @type {Array.>|undefined}\n */\n this.parsedOptions = null;\n\n /**\n * Unique name within its namespace.\n * @type {string}\n */\n this.name = name;\n\n /**\n * Parent namespace.\n * @type {Namespace|null}\n */\n this.parent = null;\n\n /**\n * Whether already resolved or not.\n * @type {boolean}\n */\n this.resolved = false;\n\n /**\n * Comment text, if any.\n * @type {string|null}\n */\n this.comment = null;\n\n /**\n * Defining file name.\n * @type {string|null}\n */\n this.filename = null;\n}\n\nObject.defineProperties(ReflectionObject.prototype, {\n\n /**\n * Reference to the root namespace.\n * @name ReflectionObject#root\n * @type {Root}\n * @readonly\n */\n root: {\n get: function() {\n var ptr = this;\n while (ptr.parent !== null)\n ptr = ptr.parent;\n return ptr;\n }\n },\n\n /**\n * Full name including leading dot.\n * @name ReflectionObject#fullName\n * @type {string}\n * @readonly\n */\n fullName: {\n get: function() {\n var path = [ this.name ],\n ptr = this.parent;\n while (ptr) {\n path.unshift(ptr.name);\n ptr = ptr.parent;\n }\n return path.join(\".\");\n }\n }\n});\n\n/**\n * Converts this reflection object to its descriptor representation.\n * @returns {Object.} Descriptor\n * @abstract\n */\nReflectionObject.prototype.toJSON = /* istanbul ignore next */ function toJSON() {\n throw Error(); // not implemented, shouldn't happen\n};\n\n/**\n * Called when this object is added to a parent.\n * @param {ReflectionObject} parent Parent added to\n * @returns {undefined}\n */\nReflectionObject.prototype.onAdd = function onAdd(parent) {\n if (this.parent && this.parent !== parent)\n this.parent.remove(this);\n this.parent = parent;\n this.resolved = false;\n var root = parent.root;\n if (root instanceof Root)\n root._handleAdd(this);\n};\n\n/**\n * Called when this object is removed from a parent.\n * @param {ReflectionObject} parent Parent removed from\n * @returns {undefined}\n */\nReflectionObject.prototype.onRemove = function onRemove(parent) {\n var root = parent.root;\n if (root instanceof Root)\n root._handleRemove(this);\n this.parent = null;\n this.resolved = false;\n};\n\n/**\n * Resolves this objects type references.\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.resolve = function resolve() {\n if (this.resolved)\n return this;\n if (this.root instanceof Root)\n this.resolved = true; // only if part of a root\n return this;\n};\n\n/**\n * Gets an option value.\n * @param {string} name Option name\n * @returns {*} Option value or `undefined` if not set\n */\nReflectionObject.prototype.getOption = function getOption(name) {\n if (this.options)\n return this.options[name];\n return undefined;\n};\n\n/**\n * Sets an option.\n * @param {string} name Option name\n * @param {*} value Option value\n * @param {boolean} [ifNotSet] Sets the option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOption = function setOption(name, value, ifNotSet) {\n if (!ifNotSet || !this.options || this.options[name] === undefined)\n (this.options || (this.options = {}))[name] = value;\n return this;\n};\n\n/**\n * Sets a parsed option.\n * @param {string} name parsed Option name\n * @param {*} value Option value\n * @param {string} propName dot '.' delimited full path of property within the option to set. if undefined\\empty, will add a new option with that value\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setParsedOption = function setParsedOption(name, value, propName) {\n if (!this.parsedOptions) {\n this.parsedOptions = [];\n }\n var parsedOptions = this.parsedOptions;\n if (propName) {\n // If setting a sub property of an option then try to merge it\n // with an existing option\n var opt = parsedOptions.find(function (opt) {\n return Object.prototype.hasOwnProperty.call(opt, name);\n });\n if (opt) {\n // If we found an existing option - just merge the property value\n var newValue = opt[name];\n util.setProperty(newValue, propName, value);\n } else {\n // otherwise, create a new option, set it's property and add it to the list\n opt = {};\n opt[name] = util.setProperty({}, propName, value);\n parsedOptions.push(opt);\n }\n } else {\n // Always create a new option when setting the value of the option itself\n var newOpt = {};\n newOpt[name] = value;\n parsedOptions.push(newOpt);\n }\n return this;\n};\n\n/**\n * Sets multiple options.\n * @param {Object.} options Options to set\n * @param {boolean} [ifNotSet] Sets an option only if it isn't currently set\n * @returns {ReflectionObject} `this`\n */\nReflectionObject.prototype.setOptions = function setOptions(options, ifNotSet) {\n if (options)\n for (var keys = Object.keys(options), i = 0; i < keys.length; ++i)\n this.setOption(keys[i], options[keys[i]], ifNotSet);\n return this;\n};\n\n/**\n * Converts this instance to its string representation.\n * @returns {string} Class name[, space, full name]\n */\nReflectionObject.prototype.toString = function toString() {\n var className = this.constructor.className,\n fullName = this.fullName;\n if (fullName.length)\n return className + \" \" + fullName;\n return className;\n};\n\n// Sets up cyclic dependencies (called in index-light)\nReflectionObject._configure = function(Root_) {\n Root = Root_;\n};\n","\"use strict\";\nmodule.exports = OneOf;\n\n// extends ReflectionObject\nvar ReflectionObject = require(\"./object\");\n((OneOf.prototype = Object.create(ReflectionObject.prototype)).constructor = OneOf).className = \"OneOf\";\n\nvar Field = require(\"./field\"),\n util = require(\"./util\");\n\n/**\n * Constructs a new oneof instance.\n * @classdesc Reflected oneof.\n * @extends ReflectionObject\n * @constructor\n * @param {string} name Oneof name\n * @param {string[]|Object.} [fieldNames] Field names\n * @param {Object.} [options] Declared options\n * @param {string} [comment] Comment associated with this field\n */\nfunction OneOf(name, fieldNames, options, comment) {\n if (!Array.isArray(fieldNames)) {\n options = fieldNames;\n fieldNames = undefined;\n }\n ReflectionObject.call(this, name, options);\n\n /* istanbul ignore if */\n if (!(fieldNames === undefined || Array.isArray(fieldNames)))\n throw TypeError(\"fieldNames must be an Array\");\n\n /**\n * Field names that belong to this oneof.\n * @type {string[]}\n */\n this.oneof = fieldNames || []; // toJSON, marker\n\n /**\n * Fields that belong to this oneof as an array for iteration.\n * @type {Field[]}\n * @readonly\n */\n this.fieldsArray = []; // declared readonly for conformance, possibly not yet added to parent\n\n /**\n * Comment for this field.\n * @type {string|null}\n */\n this.comment = comment;\n}\n\n/**\n * Oneof descriptor.\n * @interface IOneOf\n * @property {Array.} oneof Oneof field names\n * @property {Object.} [options] Oneof options\n */\n\n/**\n * Constructs a oneof from a oneof descriptor.\n * @param {string} name Oneof name\n * @param {IOneOf} json Oneof descriptor\n * @returns {OneOf} Created oneof\n * @throws {TypeError} If arguments are invalid\n */\nOneOf.fromJSON = function fromJSON(name, json) {\n return new OneOf(name, json.oneof, json.options, json.comment);\n};\n\n/**\n * Converts this oneof to a oneof descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IOneOf} Oneof descriptor\n */\nOneOf.prototype.toJSON = function toJSON(toJSONOptions) {\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , this.options,\n \"oneof\" , this.oneof,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Adds the fields of the specified oneof to the parent if not already done so.\n * @param {OneOf} oneof The oneof\n * @returns {undefined}\n * @inner\n * @ignore\n */\nfunction addFieldsToParent(oneof) {\n if (oneof.parent)\n for (var i = 0; i < oneof.fieldsArray.length; ++i)\n if (!oneof.fieldsArray[i].parent)\n oneof.parent.add(oneof.fieldsArray[i]);\n}\n\n/**\n * Adds a field to this oneof and removes it from its current parent, if any.\n * @param {Field} field Field to add\n * @returns {OneOf} `this`\n */\nOneOf.prototype.add = function add(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n if (field.parent && field.parent !== this.parent)\n field.parent.remove(field);\n this.oneof.push(field.name);\n this.fieldsArray.push(field);\n field.partOf = this; // field.parent remains null\n addFieldsToParent(this);\n return this;\n};\n\n/**\n * Removes a field from this oneof and puts it back to the oneof's parent.\n * @param {Field} field Field to remove\n * @returns {OneOf} `this`\n */\nOneOf.prototype.remove = function remove(field) {\n\n /* istanbul ignore if */\n if (!(field instanceof Field))\n throw TypeError(\"field must be a Field\");\n\n var index = this.fieldsArray.indexOf(field);\n\n /* istanbul ignore if */\n if (index < 0)\n throw Error(field + \" is not a member of \" + this);\n\n this.fieldsArray.splice(index, 1);\n index = this.oneof.indexOf(field.name);\n\n /* istanbul ignore else */\n if (index > -1) // theoretical\n this.oneof.splice(index, 1);\n\n field.partOf = null;\n return this;\n};\n\n/**\n * @override\n */\nOneOf.prototype.onAdd = function onAdd(parent) {\n ReflectionObject.prototype.onAdd.call(this, parent);\n var self = this;\n // Collect present fields\n for (var i = 0; i < this.oneof.length; ++i) {\n var field = parent.get(this.oneof[i]);\n if (field && !field.partOf) {\n field.partOf = self;\n self.fieldsArray.push(field);\n }\n }\n // Add not yet present fields\n addFieldsToParent(this);\n};\n\n/**\n * @override\n */\nOneOf.prototype.onRemove = function onRemove(parent) {\n for (var i = 0, field; i < this.fieldsArray.length; ++i)\n if ((field = this.fieldsArray[i]).parent)\n field.parent.remove(field);\n ReflectionObject.prototype.onRemove.call(this, parent);\n};\n\n/**\n * Decorator function as returned by {@link OneOf.d} (TypeScript).\n * @typedef OneOfDecorator\n * @type {function}\n * @param {Object} prototype Target prototype\n * @param {string} oneofName OneOf name\n * @returns {undefined}\n */\n\n/**\n * OneOf decorator (TypeScript).\n * @function\n * @param {...string} fieldNames Field names\n * @returns {OneOfDecorator} Decorator function\n * @template T extends string\n */\nOneOf.d = function decorateOneOf() {\n var fieldNames = new Array(arguments.length),\n index = 0;\n while (index < arguments.length)\n fieldNames[index] = arguments[index++];\n return function oneOfDecorator(prototype, oneofName) {\n util.decorateType(prototype.constructor)\n .add(new OneOf(oneofName, fieldNames));\n Object.defineProperty(prototype, oneofName, {\n get: util.oneOfGetter(fieldNames),\n set: util.oneOfSetter(fieldNames)\n });\n };\n};\n","\"use strict\";\nmodule.exports = parse;\n\nparse.filename = null;\nparse.defaults = { keepCase: false };\n\nvar tokenize = require(\"./tokenize\"),\n Root = require(\"./root\"),\n Type = require(\"./type\"),\n Field = require(\"./field\"),\n MapField = require(\"./mapfield\"),\n OneOf = require(\"./oneof\"),\n Enum = require(\"./enum\"),\n Service = require(\"./service\"),\n Method = require(\"./method\"),\n types = require(\"./types\"),\n util = require(\"./util\");\n\nvar base10Re = /^[1-9][0-9]*$/,\n base10NegRe = /^-?[1-9][0-9]*$/,\n base16Re = /^0[x][0-9a-fA-F]+$/,\n base16NegRe = /^-?0[x][0-9a-fA-F]+$/,\n base8Re = /^0[0-7]+$/,\n base8NegRe = /^-?0[0-7]+$/,\n numberRe = /^(?![eE])[0-9]*(?:\\.[0-9]*)?(?:[eE][+-]?[0-9]+)?$/,\n nameRe = /^[a-zA-Z_][a-zA-Z_0-9]*$/,\n typeRefRe = /^(?:\\.?[a-zA-Z_][a-zA-Z_0-9]*)(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)*$/,\n fqTypeRefRe = /^(?:\\.[a-zA-Z_][a-zA-Z_0-9]*)+$/;\n\n/**\n * Result object returned from {@link parse}.\n * @interface IParserResult\n * @property {string|undefined} package Package name, if declared\n * @property {string[]|undefined} imports Imports, if any\n * @property {string[]|undefined} weakImports Weak imports, if any\n * @property {string|undefined} syntax Syntax, if specified (either `\"proto2\"` or `\"proto3\"`)\n * @property {Root} root Populated root instance\n */\n\n/**\n * Options modifying the behavior of {@link parse}.\n * @interface IParseOptions\n * @property {boolean} [keepCase=false] Keeps field casing instead of converting to camel case\n * @property {boolean} [alternateCommentMode=false] Recognize double-slash comments in addition to doc-block comments.\n * @property {boolean} [preferTrailingComment=false] Use trailing comment when both leading comment and trailing comment exist.\n */\n\n/**\n * Options modifying the behavior of JSON serialization.\n * @interface IToJSONOptions\n * @property {boolean} [keepComments=false] Serializes comments.\n */\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @param {string} source Source contents\n * @param {Root} root Root to populate\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n */\nfunction parse(source, root, options) {\n /* eslint-disable callback-return */\n if (!(root instanceof Root)) {\n options = root;\n root = new Root();\n }\n if (!options)\n options = parse.defaults;\n\n var preferTrailingComment = options.preferTrailingComment || false;\n var tn = tokenize(source, options.alternateCommentMode || false),\n next = tn.next,\n push = tn.push,\n peek = tn.peek,\n skip = tn.skip,\n cmnt = tn.cmnt;\n\n var head = true,\n pkg,\n imports,\n weakImports,\n syntax,\n isProto3 = false;\n\n var ptr = root;\n\n var applyCase = options.keepCase ? function(name) { return name; } : util.camelCase;\n\n /* istanbul ignore next */\n function illegal(token, name, insideTryCatch) {\n var filename = parse.filename;\n if (!insideTryCatch)\n parse.filename = null;\n return Error(\"illegal \" + (name || \"token\") + \" '\" + token + \"' (\" + (filename ? filename + \", \" : \"\") + \"line \" + tn.line + \")\");\n }\n\n function readString() {\n var values = [],\n token;\n do {\n /* istanbul ignore if */\n if ((token = next()) !== \"\\\"\" && token !== \"'\")\n throw illegal(token);\n\n values.push(next());\n skip(token);\n token = peek();\n } while (token === \"\\\"\" || token === \"'\");\n return values.join(\"\");\n }\n\n function readValue(acceptTypeRef) {\n var token = next();\n switch (token) {\n case \"'\":\n case \"\\\"\":\n push(token);\n return readString();\n case \"true\": case \"TRUE\":\n return true;\n case \"false\": case \"FALSE\":\n return false;\n }\n try {\n return parseNumber(token, /* insideTryCatch */ true);\n } catch (e) {\n\n /* istanbul ignore else */\n if (acceptTypeRef && typeRefRe.test(token))\n return token;\n\n /* istanbul ignore next */\n throw illegal(token, \"value\");\n }\n }\n\n function readRanges(target, acceptStrings) {\n var token, start;\n do {\n if (acceptStrings && ((token = peek()) === \"\\\"\" || token === \"'\"))\n target.push(readString());\n else\n target.push([ start = parseId(next()), skip(\"to\", true) ? parseId(next()) : start ]);\n } while (skip(\",\", true));\n skip(\";\");\n }\n\n function parseNumber(token, insideTryCatch) {\n var sign = 1;\n if (token.charAt(0) === \"-\") {\n sign = -1;\n token = token.substring(1);\n }\n switch (token) {\n case \"inf\": case \"INF\": case \"Inf\":\n return sign * Infinity;\n case \"nan\": case \"NAN\": case \"Nan\": case \"NaN\":\n return NaN;\n case \"0\":\n return 0;\n }\n if (base10Re.test(token))\n return sign * parseInt(token, 10);\n if (base16Re.test(token))\n return sign * parseInt(token, 16);\n if (base8Re.test(token))\n return sign * parseInt(token, 8);\n\n /* istanbul ignore else */\n if (numberRe.test(token))\n return sign * parseFloat(token);\n\n /* istanbul ignore next */\n throw illegal(token, \"number\", insideTryCatch);\n }\n\n function parseId(token, acceptNegative) {\n switch (token) {\n case \"max\": case \"MAX\": case \"Max\":\n return 536870911;\n case \"0\":\n return 0;\n }\n\n /* istanbul ignore if */\n if (!acceptNegative && token.charAt(0) === \"-\")\n throw illegal(token, \"id\");\n\n if (base10NegRe.test(token))\n return parseInt(token, 10);\n if (base16NegRe.test(token))\n return parseInt(token, 16);\n\n /* istanbul ignore else */\n if (base8NegRe.test(token))\n return parseInt(token, 8);\n\n /* istanbul ignore next */\n throw illegal(token, \"id\");\n }\n\n function parsePackage() {\n\n /* istanbul ignore if */\n if (pkg !== undefined)\n throw illegal(\"package\");\n\n pkg = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(pkg))\n throw illegal(pkg, \"name\");\n\n ptr = ptr.define(pkg);\n skip(\";\");\n }\n\n function parseImport() {\n var token = peek();\n var whichImports;\n switch (token) {\n case \"weak\":\n whichImports = weakImports || (weakImports = []);\n next();\n break;\n case \"public\":\n next();\n // eslint-disable-line no-fallthrough\n default:\n whichImports = imports || (imports = []);\n break;\n }\n token = readString();\n skip(\";\");\n whichImports.push(token);\n }\n\n function parseSyntax() {\n skip(\"=\");\n syntax = readString();\n isProto3 = syntax === \"proto3\";\n\n /* istanbul ignore if */\n if (!isProto3 && syntax !== \"proto2\")\n throw illegal(syntax, \"syntax\");\n\n skip(\";\");\n }\n\n function parseCommon(parent, token) {\n switch (token) {\n\n case \"option\":\n parseOption(parent, token);\n skip(\";\");\n return true;\n\n case \"message\":\n parseType(parent, token);\n return true;\n\n case \"enum\":\n parseEnum(parent, token);\n return true;\n\n case \"service\":\n parseService(parent, token);\n return true;\n\n case \"extend\":\n parseExtension(parent, token);\n return true;\n }\n return false;\n }\n\n function ifBlock(obj, fnIf, fnElse) {\n var trailingLine = tn.line;\n if (obj) {\n if(typeof obj.comment !== \"string\") {\n obj.comment = cmnt(); // try block-type comment\n }\n obj.filename = parse.filename;\n }\n if (skip(\"{\", true)) {\n var token;\n while ((token = next()) !== \"}\")\n fnIf(token);\n skip(\";\", true);\n } else {\n if (fnElse)\n fnElse();\n skip(\";\");\n if (obj && (typeof obj.comment !== \"string\" || preferTrailingComment))\n obj.comment = cmnt(trailingLine) || obj.comment; // try line-type comment\n }\n }\n\n function parseType(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"type name\");\n\n var type = new Type(token);\n ifBlock(type, function parseType_block(token) {\n if (parseCommon(type, token))\n return;\n\n switch (token) {\n\n case \"map\":\n parseMapField(type, token);\n break;\n\n case \"required\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n case \"optional\":\n /* istanbul ignore if */\n if (isProto3) {\n parseField(type, \"proto3_optional\");\n } else {\n parseField(type, \"optional\");\n }\n break;\n\n case \"oneof\":\n parseOneOf(type, token);\n break;\n\n case \"extensions\":\n readRanges(type.extensions || (type.extensions = []));\n break;\n\n case \"reserved\":\n readRanges(type.reserved || (type.reserved = []), true);\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n\n push(token);\n parseField(type, \"optional\");\n break;\n }\n });\n parent.add(type);\n }\n\n function parseField(parent, rule, extend) {\n var type = next();\n if (type === \"group\") {\n parseGroup(parent, rule);\n return;\n }\n\n /* istanbul ignore if */\n if (!typeRefRe.test(type))\n throw illegal(type, \"type\");\n\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n name = applyCase(name);\n skip(\"=\");\n\n var field = new Field(name, parseId(next()), type, rule, extend);\n ifBlock(field, function parseField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseField_line() {\n parseInlineOptions(field);\n });\n\n if (rule === \"proto3_optional\") {\n // for proto3 optional fields, we create a single-member Oneof to mimic \"optional\" behavior\n var oneof = new OneOf(\"_\" + name);\n field.setOption(\"proto3_optional\", true);\n oneof.add(field);\n parent.add(oneof);\n } else {\n parent.add(field);\n }\n\n // JSON defaults to packed=true if not set so we have to set packed=false explicity when\n // parsing proto2 descriptors without the option, where applicable. This must be done for\n // all known packable types and anything that could be an enum (= is not a basic type).\n if (!isProto3 && field.repeated && (types.packed[type] !== undefined || types.basic[type] === undefined))\n field.setOption(\"packed\", false, /* ifNotSet */ true);\n }\n\n function parseGroup(parent, rule) {\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n var fieldName = util.lcFirst(name);\n if (name === fieldName)\n name = util.ucFirst(name);\n skip(\"=\");\n var id = parseId(next());\n var type = new Type(name);\n type.group = true;\n var field = new Field(fieldName, id, name, rule);\n field.filename = parse.filename;\n ifBlock(type, function parseGroup_block(token) {\n switch (token) {\n\n case \"option\":\n parseOption(type, token);\n skip(\";\");\n break;\n\n case \"required\":\n case \"repeated\":\n parseField(type, token);\n break;\n\n case \"optional\":\n /* istanbul ignore if */\n if (isProto3) {\n parseField(type, \"proto3_optional\");\n } else {\n parseField(type, \"optional\");\n }\n break;\n\n /* istanbul ignore next */\n default:\n throw illegal(token); // there are no groups with proto3 semantics\n }\n });\n parent.add(type)\n .add(field);\n }\n\n function parseMapField(parent) {\n skip(\"<\");\n var keyType = next();\n\n /* istanbul ignore if */\n if (types.mapKey[keyType] === undefined)\n throw illegal(keyType, \"type\");\n\n skip(\",\");\n var valueType = next();\n\n /* istanbul ignore if */\n if (!typeRefRe.test(valueType))\n throw illegal(valueType, \"type\");\n\n skip(\">\");\n var name = next();\n\n /* istanbul ignore if */\n if (!nameRe.test(name))\n throw illegal(name, \"name\");\n\n skip(\"=\");\n var field = new MapField(applyCase(name), parseId(next()), keyType, valueType);\n ifBlock(field, function parseMapField_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(field, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseMapField_line() {\n parseInlineOptions(field);\n });\n parent.add(field);\n }\n\n function parseOneOf(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var oneof = new OneOf(applyCase(token));\n ifBlock(oneof, function parseOneOf_block(token) {\n if (token === \"option\") {\n parseOption(oneof, token);\n skip(\";\");\n } else {\n push(token);\n parseField(oneof, \"optional\");\n }\n });\n parent.add(oneof);\n }\n\n function parseEnum(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var enm = new Enum(token);\n ifBlock(enm, function parseEnum_block(token) {\n switch(token) {\n case \"option\":\n parseOption(enm, token);\n skip(\";\");\n break;\n\n case \"reserved\":\n readRanges(enm.reserved || (enm.reserved = []), true);\n break;\n\n default:\n parseEnumValue(enm, token);\n }\n });\n parent.add(enm);\n }\n\n function parseEnumValue(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token))\n throw illegal(token, \"name\");\n\n skip(\"=\");\n var value = parseId(next(), true),\n dummy = {};\n ifBlock(dummy, function parseEnumValue_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(dummy, token); // skip\n skip(\";\");\n } else\n throw illegal(token);\n\n }, function parseEnumValue_line() {\n parseInlineOptions(dummy); // skip\n });\n parent.add(token, value, dummy.comment);\n }\n\n function parseOption(parent, token) {\n var isCustom = skip(\"(\", true);\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token;\n var option = name;\n var propName;\n\n if (isCustom) {\n skip(\")\");\n name = \"(\" + name + \")\";\n option = name;\n token = peek();\n if (fqTypeRefRe.test(token)) {\n propName = token.substr(1); //remove '.' before property name\n name += token;\n next();\n }\n }\n skip(\"=\");\n var optionValue = parseOptionValue(parent, name);\n setParsedOption(parent, option, optionValue, propName);\n }\n\n function parseOptionValue(parent, name) {\n if (skip(\"{\", true)) { // { a: \"foo\" b { c: \"bar\" } }\n var result = {};\n while (!skip(\"}\", true)) {\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var value;\n var propName = token;\n if (peek() === \"{\")\n value = parseOptionValue(parent, name + \".\" + token);\n else {\n skip(\":\");\n if (peek() === \"{\")\n value = parseOptionValue(parent, name + \".\" + token);\n else {\n value = readValue(true);\n setOption(parent, name + \".\" + token, value);\n }\n }\n var prevValue = result[propName];\n if (prevValue)\n value = [].concat(prevValue).concat(value);\n result[propName] = value;\n skip(\",\", true);\n }\n return result;\n }\n\n var simpleValue = readValue(true);\n setOption(parent, name, simpleValue);\n return simpleValue;\n // Does not enforce a delimiter to be universal\n }\n\n function setOption(parent, name, value) {\n if (parent.setOption)\n parent.setOption(name, value);\n }\n\n function setParsedOption(parent, name, value, propName) {\n if (parent.setParsedOption)\n parent.setParsedOption(name, value, propName);\n }\n\n function parseInlineOptions(parent) {\n if (skip(\"[\", true)) {\n do {\n parseOption(parent, \"option\");\n } while (skip(\",\", true));\n skip(\"]\");\n }\n return parent;\n }\n\n function parseService(parent, token) {\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"service name\");\n\n var service = new Service(token);\n ifBlock(service, function parseService_block(token) {\n if (parseCommon(service, token))\n return;\n\n /* istanbul ignore else */\n if (token === \"rpc\")\n parseMethod(service, token);\n else\n throw illegal(token);\n });\n parent.add(service);\n }\n\n function parseMethod(parent, token) {\n // Get the comment of the preceding line now (if one exists) in case the\n // method is defined across multiple lines.\n var commentText = cmnt();\n\n var type = token;\n\n /* istanbul ignore if */\n if (!nameRe.test(token = next()))\n throw illegal(token, \"name\");\n\n var name = token,\n requestType, requestStream,\n responseType, responseStream;\n\n skip(\"(\");\n if (skip(\"stream\", true))\n requestStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n requestType = token;\n skip(\")\"); skip(\"returns\"); skip(\"(\");\n if (skip(\"stream\", true))\n responseStream = true;\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token);\n\n responseType = token;\n skip(\")\");\n\n var method = new Method(name, type, requestType, responseType, requestStream, responseStream);\n method.comment = commentText;\n ifBlock(method, function parseMethod_block(token) {\n\n /* istanbul ignore else */\n if (token === \"option\") {\n parseOption(method, token);\n skip(\";\");\n } else\n throw illegal(token);\n\n });\n parent.add(method);\n }\n\n function parseExtension(parent, token) {\n\n /* istanbul ignore if */\n if (!typeRefRe.test(token = next()))\n throw illegal(token, \"reference\");\n\n var reference = token;\n ifBlock(null, function parseExtension_block(token) {\n switch (token) {\n\n case \"required\":\n case \"repeated\":\n parseField(parent, token, reference);\n break;\n\n case \"optional\":\n /* istanbul ignore if */\n if (isProto3) {\n parseField(parent, \"proto3_optional\", reference);\n } else {\n parseField(parent, \"optional\", reference);\n }\n break;\n\n default:\n /* istanbul ignore if */\n if (!isProto3 || !typeRefRe.test(token))\n throw illegal(token);\n push(token);\n parseField(parent, \"optional\", reference);\n break;\n }\n });\n }\n\n var token;\n while ((token = next()) !== null) {\n switch (token) {\n\n case \"package\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parsePackage();\n break;\n\n case \"import\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseImport();\n break;\n\n case \"syntax\":\n\n /* istanbul ignore if */\n if (!head)\n throw illegal(token);\n\n parseSyntax();\n break;\n\n case \"option\":\n\n parseOption(ptr, token);\n skip(\";\");\n break;\n\n default:\n\n /* istanbul ignore else */\n if (parseCommon(ptr, token)) {\n head = false;\n continue;\n }\n\n /* istanbul ignore next */\n throw illegal(token);\n }\n }\n\n parse.filename = null;\n return {\n \"package\" : pkg,\n \"imports\" : imports,\n weakImports : weakImports,\n syntax : syntax,\n root : root\n };\n}\n\n/**\n * Parses the given .proto source and returns an object with the parsed contents.\n * @name parse\n * @function\n * @param {string} source Source contents\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {IParserResult} Parser result\n * @property {string} filename=null Currently processing file name for error reporting, if known\n * @property {IParseOptions} defaults Default {@link IParseOptions}\n * @variation 2\n */\n","\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n","\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n","\"use strict\";\nmodule.exports = Root;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Root.prototype = Object.create(Namespace.prototype)).constructor = Root).className = \"Root\";\n\nvar Field = require(\"./field\"),\n Enum = require(\"./enum\"),\n OneOf = require(\"./oneof\"),\n util = require(\"./util\");\n\nvar Type, // cyclic\n parse, // might be excluded\n common; // \"\n\n/**\n * Constructs a new root namespace instance.\n * @classdesc Root namespace wrapping all types, enums, services, sub-namespaces etc. that belong together.\n * @extends NamespaceBase\n * @constructor\n * @param {Object.} [options] Top level options\n */\nfunction Root(options) {\n Namespace.call(this, \"\", options);\n\n /**\n * Deferred extension fields.\n * @type {Field[]}\n */\n this.deferred = [];\n\n /**\n * Resolved file names of loaded files.\n * @type {string[]}\n */\n this.files = [];\n}\n\n/**\n * Loads a namespace descriptor into a root namespace.\n * @param {INamespace} json Nameespace descriptor\n * @param {Root} [root] Root namespace, defaults to create a new one if omitted\n * @returns {Root} Root namespace\n */\nRoot.fromJSON = function fromJSON(json, root) {\n if (!root)\n root = new Root();\n if (json.options)\n root.setOptions(json.options);\n return root.addJSON(json.nested);\n};\n\n/**\n * Resolves the path of an imported file, relative to the importing origin.\n * This method exists so you can override it with your own logic in case your imports are scattered over multiple directories.\n * @function\n * @param {string} origin The file name of the importing file\n * @param {string} target The file name being imported\n * @returns {string|null} Resolved path to `target` or `null` to skip the file\n */\nRoot.prototype.resolvePath = util.path.resolve;\n\n/**\n * Fetch content from file path or url\n * This method exists so you can override it with your own logic.\n * @function\n * @param {string} path File path or url\n * @param {FetchCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.fetch = util.fetch;\n\n// A symbol-like function to safely signal synchronous loading\n/* istanbul ignore next */\nfunction SYNC() {} // eslint-disable-line no-empty-function\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} options Parse options\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n */\nRoot.prototype.load = function load(filename, options, callback) {\n if (typeof options === \"function\") {\n callback = options;\n options = undefined;\n }\n var self = this;\n if (!callback)\n return util.asPromise(load, self, filename, options);\n\n var sync = callback === SYNC; // undocumented\n\n // Finishes loading by calling the callback (exactly once)\n function finish(err, root) {\n /* istanbul ignore if */\n if (!callback)\n return;\n var cb = callback;\n callback = null;\n if (sync)\n throw err;\n cb(err, root);\n }\n\n // Bundled definition existence checking\n function getBundledFileName(filename) {\n var idx = filename.lastIndexOf(\"google/protobuf/\");\n if (idx > -1) {\n var altname = filename.substring(idx);\n if (altname in common) return altname;\n }\n return null;\n }\n\n // Processes a single file\n function process(filename, source) {\n try {\n if (util.isString(source) && source.charAt(0) === \"{\")\n source = JSON.parse(source);\n if (!util.isString(source))\n self.setOptions(source.options).addJSON(source.nested);\n else {\n parse.filename = filename;\n var parsed = parse(source, self, options),\n resolved,\n i = 0;\n if (parsed.imports)\n for (; i < parsed.imports.length; ++i)\n if (resolved = getBundledFileName(parsed.imports[i]) || self.resolvePath(filename, parsed.imports[i]))\n fetch(resolved);\n if (parsed.weakImports)\n for (i = 0; i < parsed.weakImports.length; ++i)\n if (resolved = getBundledFileName(parsed.weakImports[i]) || self.resolvePath(filename, parsed.weakImports[i]))\n fetch(resolved, true);\n }\n } catch (err) {\n finish(err);\n }\n if (!sync && !queued)\n finish(null, self); // only once anyway\n }\n\n // Fetches a single file\n function fetch(filename, weak) {\n\n // Skip if already loaded / attempted\n if (self.files.indexOf(filename) > -1)\n return;\n self.files.push(filename);\n\n // Shortcut bundled definitions\n if (filename in common) {\n if (sync)\n process(filename, common[filename]);\n else {\n ++queued;\n setTimeout(function() {\n --queued;\n process(filename, common[filename]);\n });\n }\n return;\n }\n\n // Otherwise fetch from disk or network\n if (sync) {\n var source;\n try {\n source = util.fs.readFileSync(filename).toString(\"utf8\");\n } catch (err) {\n if (!weak)\n finish(err);\n return;\n }\n process(filename, source);\n } else {\n ++queued;\n self.fetch(filename, function(err, source) {\n --queued;\n /* istanbul ignore if */\n if (!callback)\n return; // terminated meanwhile\n if (err) {\n /* istanbul ignore else */\n if (!weak)\n finish(err);\n else if (!queued) // can't be covered reliably\n finish(null, self);\n return;\n }\n process(filename, source);\n });\n }\n }\n var queued = 0;\n\n // Assembling the root namespace doesn't require working type\n // references anymore, so we can load everything in parallel\n if (util.isString(filename))\n filename = [ filename ];\n for (var i = 0, resolved; i < filename.length; ++i)\n if (resolved = self.resolvePath(\"\", filename[i]))\n fetch(resolved);\n\n if (sync)\n return self;\n if (!queued)\n finish(null, self);\n return undefined;\n};\n// function load(filename:string, options:IParseOptions, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and calls the callback.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {LoadCallback} callback Callback function\n * @returns {undefined}\n * @variation 2\n */\n// function load(filename:string, callback:LoadCallback):undefined\n\n/**\n * Loads one or multiple .proto or preprocessed .json files into this root namespace and returns a promise.\n * @function Root#load\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Promise} Promise\n * @variation 3\n */\n// function load(filename:string, [options:IParseOptions]):Promise\n\n/**\n * Synchronously loads one or multiple .proto or preprocessed .json files into this root namespace (node only).\n * @function Root#loadSync\n * @param {string|string[]} filename Names of one or multiple files to load\n * @param {IParseOptions} [options] Parse options. Defaults to {@link parse.defaults} when omitted.\n * @returns {Root} Root namespace\n * @throws {Error} If synchronous fetching is not supported (i.e. in browsers) or if a file's syntax is invalid\n */\nRoot.prototype.loadSync = function loadSync(filename, options) {\n if (!util.isNode)\n throw Error(\"not supported\");\n return this.load(filename, options, SYNC);\n};\n\n/**\n * @override\n */\nRoot.prototype.resolveAll = function resolveAll() {\n if (this.deferred.length)\n throw Error(\"unresolvable extensions: \" + this.deferred.map(function(field) {\n return \"'extend \" + field.extend + \"' in \" + field.parent.fullName;\n }).join(\", \"));\n return Namespace.prototype.resolveAll.call(this);\n};\n\n// only uppercased (and thus conflict-free) children are exposed, see below\nvar exposeRe = /^[A-Z]/;\n\n/**\n * Handles a deferred declaring extension field by creating a sister field to represent it within its extended type.\n * @param {Root} root Root instance\n * @param {Field} field Declaring extension field witin the declaring type\n * @returns {boolean} `true` if successfully added to the extended type, `false` otherwise\n * @inner\n * @ignore\n */\nfunction tryHandleExtension(root, field) {\n var extendedType = field.parent.lookup(field.extend);\n if (extendedType) {\n var sisterField = new Field(field.fullName, field.id, field.type, field.rule, undefined, field.options);\n sisterField.declaringField = field;\n field.extensionField = sisterField;\n extendedType.add(sisterField);\n return true;\n }\n return false;\n}\n\n/**\n * Called when any object is added to this root or its sub-namespaces.\n * @param {ReflectionObject} object Object added\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleAdd = function _handleAdd(object) {\n if (object instanceof Field) {\n\n if (/* an extension field (implies not part of a oneof) */ object.extend !== undefined && /* not already handled */ !object.extensionField)\n if (!tryHandleExtension(this, object))\n this.deferred.push(object);\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n object.parent[object.name] = object.values; // expose enum values as property of its parent\n\n } else if (!(object instanceof OneOf)) /* everything else is a namespace */ {\n\n if (object instanceof Type) // Try to handle any deferred extensions\n for (var i = 0; i < this.deferred.length;)\n if (tryHandleExtension(this, this.deferred[i]))\n this.deferred.splice(i, 1);\n else\n ++i;\n for (var j = 0; j < /* initializes */ object.nestedArray.length; ++j) // recurse into the namespace\n this._handleAdd(object._nestedArray[j]);\n if (exposeRe.test(object.name))\n object.parent[object.name] = object; // expose namespace as property of its parent\n }\n\n // The above also adds uppercased (and thus conflict-free) nested types, services and enums as\n // properties of namespaces just like static code does. This allows using a .d.ts generated for\n // a static module with reflection-based solutions where the condition is met.\n};\n\n/**\n * Called when any object is removed from this root or its sub-namespaces.\n * @param {ReflectionObject} object Object removed\n * @returns {undefined}\n * @private\n */\nRoot.prototype._handleRemove = function _handleRemove(object) {\n if (object instanceof Field) {\n\n if (/* an extension field */ object.extend !== undefined) {\n if (/* already handled */ object.extensionField) { // remove its sister field\n object.extensionField.parent.remove(object.extensionField);\n object.extensionField = null;\n } else { // cancel the extension\n var index = this.deferred.indexOf(object);\n /* istanbul ignore else */\n if (index > -1)\n this.deferred.splice(index, 1);\n }\n }\n\n } else if (object instanceof Enum) {\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose enum values\n\n } else if (object instanceof Namespace) {\n\n for (var i = 0; i < /* initializes */ object.nestedArray.length; ++i) // recurse into the namespace\n this._handleRemove(object._nestedArray[i]);\n\n if (exposeRe.test(object.name))\n delete object.parent[object.name]; // unexpose namespaces\n\n }\n};\n\n// Sets up cyclic dependencies (called in index-light)\nRoot._configure = function(Type_, parse_, common_) {\n Type = Type_;\n parse = parse_;\n common = common_;\n};\n","\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n","\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n","\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n","\"use strict\";\nmodule.exports = Service;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Service.prototype = Object.create(Namespace.prototype)).constructor = Service).className = \"Service\";\n\nvar Method = require(\"./method\"),\n util = require(\"./util\"),\n rpc = require(\"./rpc\");\n\n/**\n * Constructs a new service instance.\n * @classdesc Reflected service.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Service name\n * @param {Object.} [options] Service options\n * @throws {TypeError} If arguments are invalid\n */\nfunction Service(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Service methods.\n * @type {Object.}\n */\n this.methods = {}; // toJSON, marker\n\n /**\n * Cached methods as an array.\n * @type {Method[]|null}\n * @private\n */\n this._methodsArray = null;\n}\n\n/**\n * Service descriptor.\n * @interface IService\n * @extends INamespace\n * @property {Object.} methods Method descriptors\n */\n\n/**\n * Constructs a service from a service descriptor.\n * @param {string} name Service name\n * @param {IService} json Service descriptor\n * @returns {Service} Created service\n * @throws {TypeError} If arguments are invalid\n */\nService.fromJSON = function fromJSON(name, json) {\n var service = new Service(name, json.options);\n /* istanbul ignore else */\n if (json.methods)\n for (var names = Object.keys(json.methods), i = 0; i < names.length; ++i)\n service.add(Method.fromJSON(names[i], json.methods[names[i]]));\n if (json.nested)\n service.addJSON(json.nested);\n service.comment = json.comment;\n return service;\n};\n\n/**\n * Converts this service to a service descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IService} Service descriptor\n */\nService.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"methods\" , Namespace.arrayToJSON(this.methodsArray, toJSONOptions) || /* istanbul ignore next */ {},\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * Methods of this service as an array for iteration.\n * @name Service#methodsArray\n * @type {Method[]}\n * @readonly\n */\nObject.defineProperty(Service.prototype, \"methodsArray\", {\n get: function() {\n return this._methodsArray || (this._methodsArray = util.toArray(this.methods));\n }\n});\n\nfunction clearCache(service) {\n service._methodsArray = null;\n return service;\n}\n\n/**\n * @override\n */\nService.prototype.get = function get(name) {\n return this.methods[name]\n || Namespace.prototype.get.call(this, name);\n};\n\n/**\n * @override\n */\nService.prototype.resolveAll = function resolveAll() {\n var methods = this.methodsArray;\n for (var i = 0; i < methods.length; ++i)\n methods[i].resolve();\n return Namespace.prototype.resolve.call(this);\n};\n\n/**\n * @override\n */\nService.prototype.add = function add(object) {\n\n /* istanbul ignore if */\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Method) {\n this.methods[object.name] = object;\n object.parent = this;\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * @override\n */\nService.prototype.remove = function remove(object) {\n if (object instanceof Method) {\n\n /* istanbul ignore if */\n if (this.methods[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.methods[object.name];\n object.parent = null;\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Creates a runtime service using the specified rpc implementation.\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n * @returns {rpc.Service} RPC service. Useful where requests and/or responses are streamed.\n */\nService.prototype.create = function create(rpcImpl, requestDelimited, responseDelimited) {\n var rpcService = new rpc.Service(rpcImpl, requestDelimited, responseDelimited);\n for (var i = 0, method; i < /* initializes */ this.methodsArray.length; ++i) {\n var methodName = util.lcFirst((method = this._methodsArray[i]).resolve().name).replace(/[^$\\w_]/g, \"\");\n rpcService[methodName] = util.codegen([\"r\",\"c\"], util.isReserved(methodName) ? methodName + \"_\" : methodName)(\"return this.rpcCall(m,q,s,r,c)\")({\n m: method,\n q: method.resolvedRequestType.ctor,\n s: method.resolvedResponseType.ctor\n });\n }\n return rpcService;\n};\n","\"use strict\";\nmodule.exports = tokenize;\n\nvar delimRe = /[\\s{}=;:[\\],'\"()<>]/g,\n stringDoubleRe = /(?:\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\")/g,\n stringSingleRe = /(?:'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)')/g;\n\nvar setCommentRe = /^ *[*/]+ */,\n setCommentAltRe = /^\\s*\\*?\\/*/,\n setCommentSplitRe = /\\n/g,\n whitespaceRe = /\\s/,\n unescapeRe = /\\\\(.?)/g;\n\nvar unescapeMap = {\n \"0\": \"\\0\",\n \"r\": \"\\r\",\n \"n\": \"\\n\",\n \"t\": \"\\t\"\n};\n\n/**\n * Unescapes a string.\n * @param {string} str String to unescape\n * @returns {string} Unescaped string\n * @property {Object.} map Special characters map\n * @memberof tokenize\n */\nfunction unescape(str) {\n return str.replace(unescapeRe, function($0, $1) {\n switch ($1) {\n case \"\\\\\":\n case \"\":\n return $1;\n default:\n return unescapeMap[$1] || \"\";\n }\n });\n}\n\ntokenize.unescape = unescape;\n\n/**\n * Gets the next token and advances.\n * @typedef TokenizerHandleNext\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Peeks for the next token.\n * @typedef TokenizerHandlePeek\n * @type {function}\n * @returns {string|null} Next token or `null` on eof\n */\n\n/**\n * Pushes a token back to the stack.\n * @typedef TokenizerHandlePush\n * @type {function}\n * @param {string} token Token\n * @returns {undefined}\n */\n\n/**\n * Skips the next token.\n * @typedef TokenizerHandleSkip\n * @type {function}\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] If optional\n * @returns {boolean} Whether the token matched\n * @throws {Error} If the token didn't match and is not optional\n */\n\n/**\n * Gets the comment on the previous line or, alternatively, the line comment on the specified line.\n * @typedef TokenizerHandleCmnt\n * @type {function}\n * @param {number} [line] Line number\n * @returns {string|null} Comment text or `null` if none\n */\n\n/**\n * Handle object returned from {@link tokenize}.\n * @interface ITokenizerHandle\n * @property {TokenizerHandleNext} next Gets the next token and advances (`null` on eof)\n * @property {TokenizerHandlePeek} peek Peeks for the next token (`null` on eof)\n * @property {TokenizerHandlePush} push Pushes a token back to the stack\n * @property {TokenizerHandleSkip} skip Skips a token, returns its presence and advances or, if non-optional and not present, throws\n * @property {TokenizerHandleCmnt} cmnt Gets the comment on the previous line or the line comment on the specified line, if any\n * @property {number} line Current line number\n */\n\n/**\n * Tokenizes the given .proto source and returns an object with useful utility functions.\n * @param {string} source Source contents\n * @param {boolean} alternateCommentMode Whether we should activate alternate comment parsing mode.\n * @returns {ITokenizerHandle} Tokenizer handle\n */\nfunction tokenize(source, alternateCommentMode) {\n /* eslint-disable callback-return */\n source = source.toString();\n\n var offset = 0,\n length = source.length,\n line = 1,\n commentType = null,\n commentText = null,\n commentLine = 0,\n commentLineEmpty = false,\n commentIsLeading = false;\n\n var stack = [];\n\n var stringDelim = null;\n\n /* istanbul ignore next */\n /**\n * Creates an error for illegal syntax.\n * @param {string} subject Subject\n * @returns {Error} Error created\n * @inner\n */\n function illegal(subject) {\n return Error(\"illegal \" + subject + \" (line \" + line + \")\");\n }\n\n /**\n * Reads a string till its end.\n * @returns {string} String read\n * @inner\n */\n function readString() {\n var re = stringDelim === \"'\" ? stringSingleRe : stringDoubleRe;\n re.lastIndex = offset - 1;\n var match = re.exec(source);\n if (!match)\n throw illegal(\"string\");\n offset = re.lastIndex;\n push(stringDelim);\n stringDelim = null;\n return unescape(match[1]);\n }\n\n /**\n * Gets the character at `pos` within the source.\n * @param {number} pos Position\n * @returns {string} Character\n * @inner\n */\n function charAt(pos) {\n return source.charAt(pos);\n }\n\n /**\n * Sets the current comment text.\n * @param {number} start Start offset\n * @param {number} end End offset\n * @param {boolean} isLeading set if a leading comment\n * @returns {undefined}\n * @inner\n */\n function setComment(start, end, isLeading) {\n commentType = source.charAt(start++);\n commentLine = line;\n commentLineEmpty = false;\n commentIsLeading = isLeading;\n var lookback;\n if (alternateCommentMode) {\n lookback = 2; // alternate comment parsing: \"//\" or \"/*\"\n } else {\n lookback = 3; // \"///\" or \"/**\"\n }\n var commentOffset = start - lookback,\n c;\n do {\n if (--commentOffset < 0 ||\n (c = source.charAt(commentOffset)) === \"\\n\") {\n commentLineEmpty = true;\n break;\n }\n } while (c === \" \" || c === \"\\t\");\n var lines = source\n .substring(start, end)\n .split(setCommentSplitRe);\n for (var i = 0; i < lines.length; ++i)\n lines[i] = lines[i]\n .replace(alternateCommentMode ? setCommentAltRe : setCommentRe, \"\")\n .trim();\n commentText = lines\n .join(\"\\n\")\n .trim();\n }\n\n function isDoubleSlashCommentLine(startOffset) {\n var endOffset = findEndOfLine(startOffset);\n\n // see if remaining line matches comment pattern\n var lineText = source.substring(startOffset, endOffset);\n // look for 1 or 2 slashes since startOffset would already point past\n // the first slash that started the comment.\n var isComment = /^\\s*\\/{1,2}/.test(lineText);\n return isComment;\n }\n\n function findEndOfLine(cursor) {\n // find end of cursor's line\n var endOffset = cursor;\n while (endOffset < length && charAt(endOffset) !== \"\\n\") {\n endOffset++;\n }\n return endOffset;\n }\n\n /**\n * Obtains the next token.\n * @returns {string|null} Next token or `null` on eof\n * @inner\n */\n function next() {\n if (stack.length > 0)\n return stack.shift();\n if (stringDelim)\n return readString();\n var repeat,\n prev,\n curr,\n start,\n isDoc,\n isLeadingComment = offset === 0;\n do {\n if (offset === length)\n return null;\n repeat = false;\n while (whitespaceRe.test(curr = charAt(offset))) {\n if (curr === \"\\n\") {\n isLeadingComment = true;\n ++line;\n }\n if (++offset === length)\n return null;\n }\n\n if (charAt(offset) === \"/\") {\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n if (charAt(offset) === \"/\") { // Line\n if (!alternateCommentMode) {\n // check for triple-slash comment\n isDoc = charAt(start = offset + 1) === \"/\";\n\n while (charAt(++offset) !== \"\\n\") {\n if (offset === length) {\n return null;\n }\n }\n ++offset;\n if (isDoc) {\n setComment(start, offset - 1, isLeadingComment);\n }\n ++line;\n repeat = true;\n } else {\n // check for double-slash comments, consolidating consecutive lines\n start = offset;\n isDoc = false;\n if (isDoubleSlashCommentLine(offset)) {\n isDoc = true;\n do {\n offset = findEndOfLine(offset);\n if (offset === length) {\n break;\n }\n offset++;\n } while (isDoubleSlashCommentLine(offset));\n } else {\n offset = Math.min(length, findEndOfLine(offset) + 1);\n }\n if (isDoc) {\n setComment(start, offset, isLeadingComment);\n }\n line++;\n repeat = true;\n }\n } else if ((curr = charAt(offset)) === \"*\") { /* Block */\n // check for /** (regular comment mode) or /* (alternate comment mode)\n start = offset + 1;\n isDoc = alternateCommentMode || charAt(start) === \"*\";\n do {\n if (curr === \"\\n\") {\n ++line;\n }\n if (++offset === length) {\n throw illegal(\"comment\");\n }\n prev = curr;\n curr = charAt(offset);\n } while (prev !== \"*\" || curr !== \"/\");\n ++offset;\n if (isDoc) {\n setComment(start, offset - 2, isLeadingComment);\n }\n repeat = true;\n } else {\n return \"/\";\n }\n }\n } while (repeat);\n\n // offset !== length if we got here\n\n var end = offset;\n delimRe.lastIndex = 0;\n var delim = delimRe.test(charAt(end++));\n if (!delim)\n while (end < length && !delimRe.test(charAt(end)))\n ++end;\n var token = source.substring(offset, offset = end);\n if (token === \"\\\"\" || token === \"'\")\n stringDelim = token;\n return token;\n }\n\n /**\n * Pushes a token back to the stack.\n * @param {string} token Token\n * @returns {undefined}\n * @inner\n */\n function push(token) {\n stack.push(token);\n }\n\n /**\n * Peeks for the next token.\n * @returns {string|null} Token or `null` on eof\n * @inner\n */\n function peek() {\n if (!stack.length) {\n var token = next();\n if (token === null)\n return null;\n push(token);\n }\n return stack[0];\n }\n\n /**\n * Skips a token.\n * @param {string} expected Expected token\n * @param {boolean} [optional=false] Whether the token is optional\n * @returns {boolean} `true` when skipped, `false` if not\n * @throws {Error} When a required token is not present\n * @inner\n */\n function skip(expected, optional) {\n var actual = peek(),\n equals = actual === expected;\n if (equals) {\n next();\n return true;\n }\n if (!optional)\n throw illegal(\"token '\" + actual + \"', '\" + expected + \"' expected\");\n return false;\n }\n\n /**\n * Gets a comment.\n * @param {number} [trailingLine] Line number if looking for a trailing comment\n * @returns {string|null} Comment text\n * @inner\n */\n function cmnt(trailingLine) {\n var ret = null;\n if (trailingLine === undefined) {\n if (commentLine === line - 1 && (alternateCommentMode || commentType === \"*\" || commentLineEmpty)) {\n ret = commentIsLeading ? commentText : null;\n }\n } else {\n /* istanbul ignore else */\n if (commentLine < trailingLine) {\n peek();\n }\n if (commentLine === trailingLine && !commentLineEmpty && (alternateCommentMode || commentType === \"/\")) {\n ret = commentIsLeading ? null : commentText;\n }\n }\n return ret;\n }\n\n return Object.defineProperty({\n next: next,\n peek: peek,\n push: push,\n skip: skip,\n cmnt: cmnt\n }, \"line\", {\n get: function() { return line; }\n });\n /* eslint-enable callback-return */\n}\n","\"use strict\";\nmodule.exports = Type;\n\n// extends Namespace\nvar Namespace = require(\"./namespace\");\n((Type.prototype = Object.create(Namespace.prototype)).constructor = Type).className = \"Type\";\n\nvar Enum = require(\"./enum\"),\n OneOf = require(\"./oneof\"),\n Field = require(\"./field\"),\n MapField = require(\"./mapfield\"),\n Service = require(\"./service\"),\n Message = require(\"./message\"),\n Reader = require(\"./reader\"),\n Writer = require(\"./writer\"),\n util = require(\"./util\"),\n encoder = require(\"./encoder\"),\n decoder = require(\"./decoder\"),\n verifier = require(\"./verifier\"),\n converter = require(\"./converter\"),\n wrappers = require(\"./wrappers\");\n\n/**\n * Constructs a new reflected message type instance.\n * @classdesc Reflected message type.\n * @extends NamespaceBase\n * @constructor\n * @param {string} name Message name\n * @param {Object.} [options] Declared options\n */\nfunction Type(name, options) {\n Namespace.call(this, name, options);\n\n /**\n * Message fields.\n * @type {Object.}\n */\n this.fields = {}; // toJSON, marker\n\n /**\n * Oneofs declared within this namespace, if any.\n * @type {Object.}\n */\n this.oneofs = undefined; // toJSON\n\n /**\n * Extension ranges, if any.\n * @type {number[][]}\n */\n this.extensions = undefined; // toJSON\n\n /**\n * Reserved ranges, if any.\n * @type {Array.}\n */\n this.reserved = undefined; // toJSON\n\n /*?\n * Whether this type is a legacy group.\n * @type {boolean|undefined}\n */\n this.group = undefined; // toJSON\n\n /**\n * Cached fields by id.\n * @type {Object.|null}\n * @private\n */\n this._fieldsById = null;\n\n /**\n * Cached fields as an array.\n * @type {Field[]|null}\n * @private\n */\n this._fieldsArray = null;\n\n /**\n * Cached oneofs as an array.\n * @type {OneOf[]|null}\n * @private\n */\n this._oneofsArray = null;\n\n /**\n * Cached constructor.\n * @type {Constructor<{}>}\n * @private\n */\n this._ctor = null;\n}\n\nObject.defineProperties(Type.prototype, {\n\n /**\n * Message fields by id.\n * @name Type#fieldsById\n * @type {Object.}\n * @readonly\n */\n fieldsById: {\n get: function() {\n\n /* istanbul ignore if */\n if (this._fieldsById)\n return this._fieldsById;\n\n this._fieldsById = {};\n for (var names = Object.keys(this.fields), i = 0; i < names.length; ++i) {\n var field = this.fields[names[i]],\n id = field.id;\n\n /* istanbul ignore if */\n if (this._fieldsById[id])\n throw Error(\"duplicate id \" + id + \" in \" + this);\n\n this._fieldsById[id] = field;\n }\n return this._fieldsById;\n }\n },\n\n /**\n * Fields of this message as an array for iteration.\n * @name Type#fieldsArray\n * @type {Field[]}\n * @readonly\n */\n fieldsArray: {\n get: function() {\n return this._fieldsArray || (this._fieldsArray = util.toArray(this.fields));\n }\n },\n\n /**\n * Oneofs of this message as an array for iteration.\n * @name Type#oneofsArray\n * @type {OneOf[]}\n * @readonly\n */\n oneofsArray: {\n get: function() {\n return this._oneofsArray || (this._oneofsArray = util.toArray(this.oneofs));\n }\n },\n\n /**\n * The registered constructor, if any registered, otherwise a generic constructor.\n * Assigning a function replaces the internal constructor. If the function does not extend {@link Message} yet, its prototype will be setup accordingly and static methods will be populated. If it already extends {@link Message}, it will just replace the internal constructor.\n * @name Type#ctor\n * @type {Constructor<{}>}\n */\n ctor: {\n get: function() {\n return this._ctor || (this.ctor = Type.generateConstructor(this)());\n },\n set: function(ctor) {\n\n // Ensure proper prototype\n var prototype = ctor.prototype;\n if (!(prototype instanceof Message)) {\n (ctor.prototype = new Message()).constructor = ctor;\n util.merge(ctor.prototype, prototype);\n }\n\n // Classes and messages reference their reflected type\n ctor.$type = ctor.prototype.$type = this;\n\n // Mix in static methods\n util.merge(ctor, Message, true);\n\n this._ctor = ctor;\n\n // Messages have non-enumerable default values on their prototype\n var i = 0;\n for (; i < /* initializes */ this.fieldsArray.length; ++i)\n this._fieldsArray[i].resolve(); // ensures a proper value\n\n // Messages have non-enumerable getters and setters for each virtual oneof field\n var ctorProperties = {};\n for (i = 0; i < /* initializes */ this.oneofsArray.length; ++i)\n ctorProperties[this._oneofsArray[i].resolve().name] = {\n get: util.oneOfGetter(this._oneofsArray[i].oneof),\n set: util.oneOfSetter(this._oneofsArray[i].oneof)\n };\n if (i)\n Object.defineProperties(ctor.prototype, ctorProperties);\n }\n }\n});\n\n/**\n * Generates a constructor function for the specified type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nType.generateConstructor = function generateConstructor(mtype) {\n /* eslint-disable no-unexpected-multiline */\n var gen = util.codegen([\"p\"], mtype.name);\n // explicitly initialize mutable object/array fields so that these aren't just inherited from the prototype\n for (var i = 0, field; i < mtype.fieldsArray.length; ++i)\n if ((field = mtype._fieldsArray[i]).map) gen\n (\"this%s={}\", util.safeProp(field.name));\n else if (field.repeated) gen\n (\"this%s=[]\", util.safeProp(field.name));\n return gen\n (\"if(p)for(var ks=Object.keys(p),i=0;i} [oneofs] Oneof descriptors\n * @property {Object.} fields Field descriptors\n * @property {number[][]} [extensions] Extension ranges\n * @property {number[][]} [reserved] Reserved ranges\n * @property {boolean} [group=false] Whether a legacy group or not\n */\n\n/**\n * Creates a message type from a message type descriptor.\n * @param {string} name Message name\n * @param {IType} json Message type descriptor\n * @returns {Type} Created message type\n */\nType.fromJSON = function fromJSON(name, json) {\n var type = new Type(name, json.options);\n type.extensions = json.extensions;\n type.reserved = json.reserved;\n var names = Object.keys(json.fields),\n i = 0;\n for (; i < names.length; ++i)\n type.add(\n ( typeof json.fields[names[i]].keyType !== \"undefined\"\n ? MapField.fromJSON\n : Field.fromJSON )(names[i], json.fields[names[i]])\n );\n if (json.oneofs)\n for (names = Object.keys(json.oneofs), i = 0; i < names.length; ++i)\n type.add(OneOf.fromJSON(names[i], json.oneofs[names[i]]));\n if (json.nested)\n for (names = Object.keys(json.nested), i = 0; i < names.length; ++i) {\n var nested = json.nested[names[i]];\n type.add( // most to least likely\n ( nested.id !== undefined\n ? Field.fromJSON\n : nested.fields !== undefined\n ? Type.fromJSON\n : nested.values !== undefined\n ? Enum.fromJSON\n : nested.methods !== undefined\n ? Service.fromJSON\n : Namespace.fromJSON )(names[i], nested)\n );\n }\n if (json.extensions && json.extensions.length)\n type.extensions = json.extensions;\n if (json.reserved && json.reserved.length)\n type.reserved = json.reserved;\n if (json.group)\n type.group = true;\n if (json.comment)\n type.comment = json.comment;\n return type;\n};\n\n/**\n * Converts this message type to a message type descriptor.\n * @param {IToJSONOptions} [toJSONOptions] JSON conversion options\n * @returns {IType} Message type descriptor\n */\nType.prototype.toJSON = function toJSON(toJSONOptions) {\n var inherited = Namespace.prototype.toJSON.call(this, toJSONOptions);\n var keepComments = toJSONOptions ? Boolean(toJSONOptions.keepComments) : false;\n return util.toObject([\n \"options\" , inherited && inherited.options || undefined,\n \"oneofs\" , Namespace.arrayToJSON(this.oneofsArray, toJSONOptions),\n \"fields\" , Namespace.arrayToJSON(this.fieldsArray.filter(function(obj) { return !obj.declaringField; }), toJSONOptions) || {},\n \"extensions\" , this.extensions && this.extensions.length ? this.extensions : undefined,\n \"reserved\" , this.reserved && this.reserved.length ? this.reserved : undefined,\n \"group\" , this.group || undefined,\n \"nested\" , inherited && inherited.nested || undefined,\n \"comment\" , keepComments ? this.comment : undefined\n ]);\n};\n\n/**\n * @override\n */\nType.prototype.resolveAll = function resolveAll() {\n var fields = this.fieldsArray, i = 0;\n while (i < fields.length)\n fields[i++].resolve();\n var oneofs = this.oneofsArray; i = 0;\n while (i < oneofs.length)\n oneofs[i++].resolve();\n return Namespace.prototype.resolveAll.call(this);\n};\n\n/**\n * @override\n */\nType.prototype.get = function get(name) {\n return this.fields[name]\n || this.oneofs && this.oneofs[name]\n || this.nested && this.nested[name]\n || null;\n};\n\n/**\n * Adds a nested object to this type.\n * @param {ReflectionObject} object Nested object to add\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If there is already a nested object with this name or, if a field, when there is already a field with this id\n */\nType.prototype.add = function add(object) {\n\n if (this.get(object.name))\n throw Error(\"duplicate name '\" + object.name + \"' in \" + this);\n\n if (object instanceof Field && object.extend === undefined) {\n // NOTE: Extension fields aren't actual fields on the declaring type, but nested objects.\n // The root object takes care of adding distinct sister-fields to the respective extended\n // type instead.\n\n // avoids calling the getter if not absolutely necessary because it's called quite frequently\n if (this._fieldsById ? /* istanbul ignore next */ this._fieldsById[object.id] : this.fieldsById[object.id])\n throw Error(\"duplicate id \" + object.id + \" in \" + this);\n if (this.isReservedId(object.id))\n throw Error(\"id \" + object.id + \" is reserved in \" + this);\n if (this.isReservedName(object.name))\n throw Error(\"name '\" + object.name + \"' is reserved in \" + this);\n\n if (object.parent)\n object.parent.remove(object);\n this.fields[object.name] = object;\n object.message = this;\n object.onAdd(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n if (!this.oneofs)\n this.oneofs = {};\n this.oneofs[object.name] = object;\n object.onAdd(this);\n return clearCache(this);\n }\n return Namespace.prototype.add.call(this, object);\n};\n\n/**\n * Removes a nested object from this type.\n * @param {ReflectionObject} object Nested object to remove\n * @returns {Type} `this`\n * @throws {TypeError} If arguments are invalid\n * @throws {Error} If `object` is not a member of this type\n */\nType.prototype.remove = function remove(object) {\n if (object instanceof Field && object.extend === undefined) {\n // See Type#add for the reason why extension fields are excluded here.\n\n /* istanbul ignore if */\n if (!this.fields || this.fields[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.fields[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n if (object instanceof OneOf) {\n\n /* istanbul ignore if */\n if (!this.oneofs || this.oneofs[object.name] !== object)\n throw Error(object + \" is not a member of \" + this);\n\n delete this.oneofs[object.name];\n object.parent = null;\n object.onRemove(this);\n return clearCache(this);\n }\n return Namespace.prototype.remove.call(this, object);\n};\n\n/**\n * Tests if the specified id is reserved.\n * @param {number} id Id to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedId = function isReservedId(id) {\n return Namespace.isReservedId(this.reserved, id);\n};\n\n/**\n * Tests if the specified name is reserved.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nType.prototype.isReservedName = function isReservedName(name) {\n return Namespace.isReservedName(this.reserved, name);\n};\n\n/**\n * Creates a new message of this type using the specified properties.\n * @param {Object.} [properties] Properties to set\n * @returns {Message<{}>} Message instance\n */\nType.prototype.create = function create(properties) {\n return new this.ctor(properties);\n};\n\n/**\n * Sets up {@link Type#encode|encode}, {@link Type#decode|decode} and {@link Type#verify|verify}.\n * @returns {Type} `this`\n */\nType.prototype.setup = function setup() {\n // Sets up everything at once so that the prototype chain does not have to be re-evaluated\n // multiple times (V8, soft-deopt prototype-check).\n\n var fullName = this.fullName,\n types = [];\n for (var i = 0; i < /* initializes */ this.fieldsArray.length; ++i)\n types.push(this._fieldsArray[i].resolve().resolvedType);\n\n // Replace setup methods with type-specific generated functions\n this.encode = encoder(this)({\n Writer : Writer,\n types : types,\n util : util\n });\n this.decode = decoder(this)({\n Reader : Reader,\n types : types,\n util : util\n });\n this.verify = verifier(this)({\n types : types,\n util : util\n });\n this.fromObject = converter.fromObject(this)({\n types : types,\n util : util\n });\n this.toObject = converter.toObject(this)({\n types : types,\n util : util\n });\n\n // Inject custom wrappers for common types\n var wrapper = wrappers[fullName];\n if (wrapper) {\n var originalThis = Object.create(this);\n // if (wrapper.fromObject) {\n originalThis.fromObject = this.fromObject;\n this.fromObject = wrapper.fromObject.bind(originalThis);\n // }\n // if (wrapper.toObject) {\n originalThis.toObject = this.toObject;\n this.toObject = wrapper.toObject.bind(originalThis);\n // }\n }\n\n return this;\n};\n\n/**\n * Encodes a message of this type. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encode = function encode_setup(message, writer) {\n return this.setup().encode(message, writer); // overrides this method\n};\n\n/**\n * Encodes a message of this type preceeded by its byte length as a varint. Does not implicitly {@link Type#verify|verify} messages.\n * @param {Message<{}>|Object.} message Message instance or plain object\n * @param {Writer} [writer] Writer to encode to\n * @returns {Writer} writer\n */\nType.prototype.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer && writer.len ? writer.fork() : writer).ldelim();\n};\n\n/**\n * Decodes a message of this type.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Length of the message, if known beforehand\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError<{}>} If required fields are missing\n */\nType.prototype.decode = function decode_setup(reader, length) {\n return this.setup().decode(reader, length); // overrides this method\n};\n\n/**\n * Decodes a message of this type preceeded by its byte length as a varint.\n * @param {Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {Message<{}>} Decoded message\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {util.ProtocolError} If required fields are missing\n */\nType.prototype.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof Reader))\n reader = Reader.create(reader);\n return this.decode(reader, reader.uint32());\n};\n\n/**\n * Verifies that field values are valid and that required fields are present.\n * @param {Object.} message Plain object to verify\n * @returns {null|string} `null` if valid, otherwise the reason why it is not\n */\nType.prototype.verify = function verify_setup(message) {\n return this.setup().verify(message); // overrides this method\n};\n\n/**\n * Creates a new message of this type from a plain object. Also converts values to their respective internal types.\n * @param {Object.} object Plain object to convert\n * @returns {Message<{}>} Message instance\n */\nType.prototype.fromObject = function fromObject(object) {\n return this.setup().fromObject(object);\n};\n\n/**\n * Conversion options as used by {@link Type#toObject} and {@link Message.toObject}.\n * @interface IConversionOptions\n * @property {Function} [longs] Long conversion type.\n * Valid values are `String` and `Number` (the global types).\n * Defaults to copy the present value, which is a possibly unsafe number without and a {@link Long} with a long library.\n * @property {Function} [enums] Enum value conversion type.\n * Only valid value is `String` (the global type).\n * Defaults to copy the present value, which is the numeric id.\n * @property {Function} [bytes] Bytes value conversion type.\n * Valid values are `Array` and (a base64 encoded) `String` (the global types).\n * Defaults to copy the present value, which usually is a Buffer under node and an Uint8Array in the browser.\n * @property {boolean} [defaults=false] Also sets default values on the resulting object\n * @property {boolean} [arrays=false] Sets empty arrays for missing repeated fields even if `defaults=false`\n * @property {boolean} [objects=false] Sets empty objects for missing map fields even if `defaults=false`\n * @property {boolean} [oneofs=false] Includes virtual oneof properties set to the present field's name, if any\n * @property {boolean} [json=false] Performs additional JSON compatibility conversions, i.e. NaN and Infinity to strings\n */\n\n/**\n * Creates a plain object from a message of this type. Also converts values to other types if specified.\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\nType.prototype.toObject = function toObject(message, options) {\n return this.setup().toObject(message, options);\n};\n\n/**\n * Decorator function as returned by {@link Type.d} (TypeScript).\n * @typedef TypeDecorator\n * @type {function}\n * @param {Constructor} target Target constructor\n * @returns {undefined}\n * @template T extends Message\n */\n\n/**\n * Type decorator (TypeScript).\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {TypeDecorator} Decorator function\n * @template T extends Message\n */\nType.d = function decorateType(typeName) {\n return function typeDecorator(target) {\n util.decorateType(target, typeName);\n };\n};\n","\"use strict\";\n\n/**\n * Common type constants.\n * @namespace\n */\nvar types = exports;\n\nvar util = require(\"./util\");\n\nvar s = [\n \"double\", // 0\n \"float\", // 1\n \"int32\", // 2\n \"uint32\", // 3\n \"sint32\", // 4\n \"fixed32\", // 5\n \"sfixed32\", // 6\n \"int64\", // 7\n \"uint64\", // 8\n \"sint64\", // 9\n \"fixed64\", // 10\n \"sfixed64\", // 11\n \"bool\", // 12\n \"string\", // 13\n \"bytes\" // 14\n];\n\nfunction bake(values, offset) {\n var i = 0, o = {};\n offset |= 0;\n while (i < values.length) o[s[i + offset]] = values[i++];\n return o;\n}\n\n/**\n * Basic type wire types.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n * @property {number} bytes=2 Ldelim wire type\n */\ntypes.basic = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2,\n /* bytes */ 2\n]);\n\n/**\n * Basic type defaults.\n * @type {Object.}\n * @const\n * @property {number} double=0 Double default\n * @property {number} float=0 Float default\n * @property {number} int32=0 Int32 default\n * @property {number} uint32=0 Uint32 default\n * @property {number} sint32=0 Sint32 default\n * @property {number} fixed32=0 Fixed32 default\n * @property {number} sfixed32=0 Sfixed32 default\n * @property {number} int64=0 Int64 default\n * @property {number} uint64=0 Uint64 default\n * @property {number} sint64=0 Sint32 default\n * @property {number} fixed64=0 Fixed64 default\n * @property {number} sfixed64=0 Sfixed64 default\n * @property {boolean} bool=false Bool default\n * @property {string} string=\"\" String default\n * @property {Array.} bytes=Array(0) Bytes default\n * @property {null} message=null Message default\n */\ntypes.defaults = bake([\n /* double */ 0,\n /* float */ 0,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 0,\n /* sfixed32 */ 0,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 0,\n /* sfixed64 */ 0,\n /* bool */ false,\n /* string */ \"\",\n /* bytes */ util.emptyArray,\n /* message */ null\n]);\n\n/**\n * Basic long type wire types.\n * @type {Object.}\n * @const\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n */\ntypes.long = bake([\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1\n], 7);\n\n/**\n * Allowed types for map keys with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n * @property {number} string=2 Ldelim wire type\n */\ntypes.mapKey = bake([\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0,\n /* string */ 2\n], 2);\n\n/**\n * Allowed types for packed repeated fields with their associated wire type.\n * @type {Object.}\n * @const\n * @property {number} double=1 Fixed64 wire type\n * @property {number} float=5 Fixed32 wire type\n * @property {number} int32=0 Varint wire type\n * @property {number} uint32=0 Varint wire type\n * @property {number} sint32=0 Varint wire type\n * @property {number} fixed32=5 Fixed32 wire type\n * @property {number} sfixed32=5 Fixed32 wire type\n * @property {number} int64=0 Varint wire type\n * @property {number} uint64=0 Varint wire type\n * @property {number} sint64=0 Varint wire type\n * @property {number} fixed64=1 Fixed64 wire type\n * @property {number} sfixed64=1 Fixed64 wire type\n * @property {number} bool=0 Varint wire type\n */\ntypes.packed = bake([\n /* double */ 1,\n /* float */ 5,\n /* int32 */ 0,\n /* uint32 */ 0,\n /* sint32 */ 0,\n /* fixed32 */ 5,\n /* sfixed32 */ 5,\n /* int64 */ 0,\n /* uint64 */ 0,\n /* sint64 */ 0,\n /* fixed64 */ 1,\n /* sfixed64 */ 1,\n /* bool */ 0\n]);\n","\"use strict\";\n\n/**\n * Various utility functions.\n * @namespace\n */\nvar util = module.exports = require(\"./util/minimal\");\n\nvar roots = require(\"./roots\");\n\nvar Type, // cyclic\n Enum;\n\nutil.codegen = require(\"@protobufjs/codegen\");\nutil.fetch = require(\"@protobufjs/fetch\");\nutil.path = require(\"@protobufjs/path\");\n\n/**\n * Node's fs module if available.\n * @type {Object.}\n */\nutil.fs = util.inquire(\"fs\");\n\n/**\n * Converts an object's values to an array.\n * @param {Object.} object Object to convert\n * @returns {Array.<*>} Converted array\n */\nutil.toArray = function toArray(object) {\n if (object) {\n var keys = Object.keys(object),\n array = new Array(keys.length),\n index = 0;\n while (index < keys.length)\n array[index] = object[keys[index++]];\n return array;\n }\n return [];\n};\n\n/**\n * Converts an array of keys immediately followed by their respective value to an object, omitting undefined values.\n * @param {Array.<*>} array Array to convert\n * @returns {Object.} Converted object\n */\nutil.toObject = function toObject(array) {\n var object = {},\n index = 0;\n while (index < array.length) {\n var key = array[index++],\n val = array[index++];\n if (val !== undefined)\n object[key] = val;\n }\n return object;\n};\n\nvar safePropBackslashRe = /\\\\/g,\n safePropQuoteRe = /\"/g;\n\n/**\n * Tests whether the specified name is a reserved word in JS.\n * @param {string} name Name to test\n * @returns {boolean} `true` if reserved, otherwise `false`\n */\nutil.isReserved = function isReserved(name) {\n return /^(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)$/.test(name);\n};\n\n/**\n * Returns a safe property accessor for the specified property name.\n * @param {string} prop Property name\n * @returns {string} Safe accessor\n */\nutil.safeProp = function safeProp(prop) {\n if (!/^[$\\w_]+$/.test(prop) || util.isReserved(prop))\n return \"[\\\"\" + prop.replace(safePropBackslashRe, \"\\\\\\\\\").replace(safePropQuoteRe, \"\\\\\\\"\") + \"\\\"]\";\n return \".\" + prop;\n};\n\n/**\n * Converts the first character of a string to upper case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.ucFirst = function ucFirst(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n};\n\nvar camelCaseRe = /_([a-z])/g;\n\n/**\n * Converts a string to camel case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.camelCase = function camelCase(str) {\n return str.substring(0, 1)\n + str.substring(1)\n .replace(camelCaseRe, function($0, $1) { return $1.toUpperCase(); });\n};\n\n/**\n * Compares reflected fields by id.\n * @param {Field} a First field\n * @param {Field} b Second field\n * @returns {number} Comparison value\n */\nutil.compareFieldsById = function compareFieldsById(a, b) {\n return a.id - b.id;\n};\n\n/**\n * Decorator helper for types (TypeScript).\n * @param {Constructor} ctor Constructor function\n * @param {string} [typeName] Type name, defaults to the constructor's name\n * @returns {Type} Reflected type\n * @template T extends Message\n * @property {Root} root Decorators root\n */\nutil.decorateType = function decorateType(ctor, typeName) {\n\n /* istanbul ignore if */\n if (ctor.$type) {\n if (typeName && ctor.$type.name !== typeName) {\n util.decorateRoot.remove(ctor.$type);\n ctor.$type.name = typeName;\n util.decorateRoot.add(ctor.$type);\n }\n return ctor.$type;\n }\n\n /* istanbul ignore next */\n if (!Type)\n Type = require(\"./type\");\n\n var type = new Type(typeName || ctor.name);\n util.decorateRoot.add(type);\n type.ctor = ctor; // sets up .encode, .decode etc.\n Object.defineProperty(ctor, \"$type\", { value: type, enumerable: false });\n Object.defineProperty(ctor.prototype, \"$type\", { value: type, enumerable: false });\n return type;\n};\n\nvar decorateEnumIndex = 0;\n\n/**\n * Decorator helper for enums (TypeScript).\n * @param {Object} object Enum object\n * @returns {Enum} Reflected enum\n */\nutil.decorateEnum = function decorateEnum(object) {\n\n /* istanbul ignore if */\n if (object.$type)\n return object.$type;\n\n /* istanbul ignore next */\n if (!Enum)\n Enum = require(\"./enum\");\n\n var enm = new Enum(\"Enum\" + decorateEnumIndex++, object);\n util.decorateRoot.add(enm);\n Object.defineProperty(object, \"$type\", { value: enm, enumerable: false });\n return enm;\n};\n\n\n/**\n * Sets the value of a property by property path. If a value already exists, it is turned to an array\n * @param {Object.} dst Destination object\n * @param {string} path dot '.' delimited path of the property to set\n * @param {Object} value the value to set\n * @returns {Object.} Destination object\n */\nutil.setProperty = function setProperty(dst, path, value) {\n function setProp(dst, path, value) {\n var part = path.shift();\n if (part === \"__proto__\") {\n return dst;\n }\n if (path.length > 0) {\n dst[part] = setProp(dst[part] || {}, path, value);\n } else {\n var prevValue = dst[part];\n if (prevValue)\n value = [].concat(prevValue).concat(value);\n dst[part] = value;\n }\n return dst;\n }\n\n if (typeof dst !== \"object\")\n throw TypeError(\"dst must be an object\");\n if (!path)\n throw TypeError(\"path must be specified\");\n\n path = path.split(\".\");\n return setProp(dst, path, value);\n};\n\n/**\n * Decorator root (TypeScript).\n * @name util.decorateRoot\n * @type {Root}\n * @readonly\n */\nObject.defineProperty(util, \"decorateRoot\", {\n get: function() {\n return roots[\"decorated\"] || (roots[\"decorated\"] = new (require(\"./root\"))());\n }\n});\n","\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n","\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n","\"use strict\";\nmodule.exports = verifier;\n\nvar Enum = require(\"./enum\"),\n util = require(\"./util\");\n\nfunction invalid(field, expected) {\n return field.name + \": \" + expected + (field.repeated && expected !== \"array\" ? \"[]\" : field.map && expected !== \"object\" ? \"{k:\"+field.keyType+\"}\" : \"\") + \" expected\";\n}\n\n/**\n * Generates a partial value verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {number} fieldIndex Field index\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyValue(gen, field, fieldIndex, ref) {\n /* eslint-disable no-unexpected-multiline */\n if (field.resolvedType) {\n if (field.resolvedType instanceof Enum) { gen\n (\"switch(%s){\", ref)\n (\"default:\")\n (\"return%j\", invalid(field, \"enum value\"));\n for (var keys = Object.keys(field.resolvedType.values), j = 0; j < keys.length; ++j) gen\n (\"case %i:\", field.resolvedType.values[keys[j]]);\n gen\n (\"break\")\n (\"}\");\n } else {\n gen\n (\"{\")\n (\"var e=types[%i].verify(%s);\", fieldIndex, ref)\n (\"if(e)\")\n (\"return%j+e\", field.name + \".\")\n (\"}\");\n }\n } else {\n switch (field.type) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.isInteger(%s))\", ref)\n (\"return%j\", invalid(field, \"integer\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.isInteger(%s)&&!(%s&&util.isInteger(%s.low)&&util.isInteger(%s.high)))\", ref, ref, ref, ref)\n (\"return%j\", invalid(field, \"integer|Long\"));\n break;\n case \"float\":\n case \"double\": gen\n (\"if(typeof %s!==\\\"number\\\")\", ref)\n (\"return%j\", invalid(field, \"number\"));\n break;\n case \"bool\": gen\n (\"if(typeof %s!==\\\"boolean\\\")\", ref)\n (\"return%j\", invalid(field, \"boolean\"));\n break;\n case \"string\": gen\n (\"if(!util.isString(%s))\", ref)\n (\"return%j\", invalid(field, \"string\"));\n break;\n case \"bytes\": gen\n (\"if(!(%s&&typeof %s.length===\\\"number\\\"||util.isString(%s)))\", ref, ref, ref)\n (\"return%j\", invalid(field, \"buffer\"));\n break;\n }\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a partial key verifier.\n * @param {Codegen} gen Codegen instance\n * @param {Field} field Reflected field\n * @param {string} ref Variable reference\n * @returns {Codegen} Codegen instance\n * @ignore\n */\nfunction genVerifyKey(gen, field, ref) {\n /* eslint-disable no-unexpected-multiline */\n switch (field.keyType) {\n case \"int32\":\n case \"uint32\":\n case \"sint32\":\n case \"fixed32\":\n case \"sfixed32\": gen\n (\"if(!util.key32Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"integer key\"));\n break;\n case \"int64\":\n case \"uint64\":\n case \"sint64\":\n case \"fixed64\":\n case \"sfixed64\": gen\n (\"if(!util.key64Re.test(%s))\", ref) // see comment above: x is ok, d is not\n (\"return%j\", invalid(field, \"integer|Long key\"));\n break;\n case \"bool\": gen\n (\"if(!util.key2Re.test(%s))\", ref)\n (\"return%j\", invalid(field, \"boolean key\"));\n break;\n }\n return gen;\n /* eslint-enable no-unexpected-multiline */\n}\n\n/**\n * Generates a verifier specific to the specified message type.\n * @param {Type} mtype Message type\n * @returns {Codegen} Codegen instance\n */\nfunction verifier(mtype) {\n /* eslint-disable no-unexpected-multiline */\n\n var gen = util.codegen([\"m\"], mtype.name + \"$verify\")\n (\"if(typeof m!==\\\"object\\\"||m===null)\")\n (\"return%j\", \"object expected\");\n var oneofs = mtype.oneofsArray,\n seenFirstField = {};\n if (oneofs.length) gen\n (\"var p={}\");\n\n for (var i = 0; i < /* initializes */ mtype.fieldsArray.length; ++i) {\n var field = mtype._fieldsArray[i].resolve(),\n ref = \"m\" + util.safeProp(field.name);\n\n if (field.optional) gen\n (\"if(%s!=null&&m.hasOwnProperty(%j)){\", ref, field.name); // !== undefined && !== null\n\n // map fields\n if (field.map) { gen\n (\"if(!util.isObject(%s))\", ref)\n (\"return%j\", invalid(field, \"object\"))\n (\"var k=Object.keys(%s)\", ref)\n (\"for(var i=0;i}\n * @const\n */\nvar wrappers = exports;\n\nvar Message = require(\"./message\");\n\n/**\n * From object converter part of an {@link IWrapper}.\n * @typedef WrapperFromObjectConverter\n * @type {function}\n * @param {Object.} object Plain object\n * @returns {Message<{}>} Message instance\n * @this Type\n */\n\n/**\n * To object converter part of an {@link IWrapper}.\n * @typedef WrapperToObjectConverter\n * @type {function}\n * @param {Message<{}>} message Message instance\n * @param {IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n * @this Type\n */\n\n/**\n * Common type wrapper part of {@link wrappers}.\n * @interface IWrapper\n * @property {WrapperFromObjectConverter} [fromObject] From object converter\n * @property {WrapperToObjectConverter} [toObject] To object converter\n */\n\n// Custom wrapper for Any\nwrappers[\".google.protobuf.Any\"] = {\n\n fromObject: function(object) {\n\n // unwrap value type if mapped\n if (object && object[\"@type\"]) {\n // Only use fully qualified type name after the last '/'\n var name = object[\"@type\"].substring(object[\"@type\"].lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type) {\n // type_url does not accept leading \".\"\n var type_url = object[\"@type\"].charAt(0) === \".\" ?\n object[\"@type\"].substr(1) : object[\"@type\"];\n // type_url prefix is optional, but path seperator is required\n if (type_url.indexOf(\"/\") === -1) {\n type_url = \"/\" + type_url;\n }\n return this.create({\n type_url: type_url,\n value: type.encode(type.fromObject(object)).finish()\n });\n }\n }\n\n return this.fromObject(object);\n },\n\n toObject: function(message, options) {\n\n // Default prefix\n var googleApi = \"type.googleapis.com/\";\n var prefix = \"\";\n var name = \"\";\n\n // decode value if requested and unmapped\n if (options && options.json && message.type_url && message.value) {\n // Only use fully qualified type name after the last '/'\n name = message.type_url.substring(message.type_url.lastIndexOf(\"/\") + 1);\n // Separate the prefix used\n prefix = message.type_url.substring(0, message.type_url.lastIndexOf(\"/\") + 1);\n var type = this.lookup(name);\n /* istanbul ignore else */\n if (type)\n message = type.decode(message.value);\n }\n\n // wrap value if unmapped\n if (!(message instanceof this.ctor) && message instanceof Message) {\n var object = message.$type.toObject(message, options);\n var messageName = message.$type.fullName[0] === \".\" ?\n message.$type.fullName.substr(1) : message.$type.fullName;\n // Default to type.googleapis.com prefix if no prefix is used\n if (prefix === \"\") {\n prefix = googleApi;\n }\n name = prefix + messageName;\n object[\"@type\"] = name;\n return object;\n }\n\n return this.toObject(message, options);\n }\n};\n","\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n","\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLength = exports.decode = exports.encode = void 0;\nvar bn_js_1 = __importDefault(require(\"bn.js\"));\n/**\n * RLP Encoding based on: https://github.com/ethereum/wiki/wiki/%5BEnglish%5D-RLP\n * This function takes in a data, convert it to buffer if not, and a length for recursion\n * @param input - will be converted to buffer\n * @returns returns buffer of encoded data\n **/\nfunction encode(input) {\n if (Array.isArray(input)) {\n var output = [];\n for (var i = 0; i < input.length; i++) {\n output.push(encode(input[i]));\n }\n var buf = Buffer.concat(output);\n return Buffer.concat([encodeLength(buf.length, 192), buf]);\n }\n else {\n var inputBuf = toBuffer(input);\n return inputBuf.length === 1 && inputBuf[0] < 128\n ? inputBuf\n : Buffer.concat([encodeLength(inputBuf.length, 128), inputBuf]);\n }\n}\nexports.encode = encode;\n/**\n * Parse integers. Check if there is no leading zeros\n * @param v The value to parse\n * @param base The base to parse the integer into\n */\nfunction safeParseInt(v, base) {\n if (v[0] === '0' && v[1] === '0') {\n throw new Error('invalid RLP: extra zeros');\n }\n return parseInt(v, base);\n}\nfunction encodeLength(len, offset) {\n if (len < 56) {\n return Buffer.from([len + offset]);\n }\n else {\n var hexLength = intToHex(len);\n var lLength = hexLength.length / 2;\n var firstByte = intToHex(offset + 55 + lLength);\n return Buffer.from(firstByte + hexLength, 'hex');\n }\n}\nfunction decode(input, stream) {\n if (stream === void 0) { stream = false; }\n if (!input || input.length === 0) {\n return Buffer.from([]);\n }\n var inputBuffer = toBuffer(input);\n var decoded = _decode(inputBuffer);\n if (stream) {\n return decoded;\n }\n if (decoded.remainder.length !== 0) {\n throw new Error('invalid remainder');\n }\n return decoded.data;\n}\nexports.decode = decode;\n/**\n * Get the length of the RLP input\n * @param input\n * @returns The length of the input or an empty Buffer if no input\n */\nfunction getLength(input) {\n if (!input || input.length === 0) {\n return Buffer.from([]);\n }\n var inputBuffer = toBuffer(input);\n var firstByte = inputBuffer[0];\n if (firstByte <= 0x7f) {\n return inputBuffer.length;\n }\n else if (firstByte <= 0xb7) {\n return firstByte - 0x7f;\n }\n else if (firstByte <= 0xbf) {\n return firstByte - 0xb6;\n }\n else if (firstByte <= 0xf7) {\n // a list between 0-55 bytes long\n return firstByte - 0xbf;\n }\n else {\n // a list over 55 bytes long\n var llength = firstByte - 0xf6;\n var length_1 = safeParseInt(inputBuffer.slice(1, llength).toString('hex'), 16);\n return llength + length_1;\n }\n}\nexports.getLength = getLength;\n/** Decode an input with RLP */\nfunction _decode(input) {\n var length, llength, data, innerRemainder, d;\n var decoded = [];\n var firstByte = input[0];\n if (firstByte <= 0x7f) {\n // a single byte whose value is in the [0x00, 0x7f] range, that byte is its own RLP encoding.\n return {\n data: input.slice(0, 1),\n remainder: input.slice(1),\n };\n }\n else if (firstByte <= 0xb7) {\n // string is 0-55 bytes long. A single byte with value 0x80 plus the length of the string followed by the string\n // The range of the first byte is [0x80, 0xb7]\n length = firstByte - 0x7f;\n // set 0x80 null to 0\n if (firstByte === 0x80) {\n data = Buffer.from([]);\n }\n else {\n data = input.slice(1, length);\n }\n if (length === 2 && data[0] < 0x80) {\n throw new Error('invalid rlp encoding: byte must be less 0x80');\n }\n return {\n data: data,\n remainder: input.slice(length),\n };\n }\n else if (firstByte <= 0xbf) {\n // string is greater than 55 bytes long. A single byte with the value (0xb7 plus the length of the length),\n // followed by the length, followed by the string\n llength = firstByte - 0xb6;\n if (input.length - 1 < llength) {\n throw new Error('invalid RLP: not enough bytes for string length');\n }\n length = safeParseInt(input.slice(1, llength).toString('hex'), 16);\n if (length <= 55) {\n throw new Error('invalid RLP: expected string length to be greater than 55');\n }\n data = input.slice(llength, length + llength);\n if (data.length < length) {\n throw new Error('invalid RLP: not enough bytes for string');\n }\n return {\n data: data,\n remainder: input.slice(length + llength),\n };\n }\n else if (firstByte <= 0xf7) {\n // a list between 0-55 bytes long\n length = firstByte - 0xbf;\n innerRemainder = input.slice(1, length);\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(length),\n };\n }\n else {\n // a list over 55 bytes long\n llength = firstByte - 0xf6;\n length = safeParseInt(input.slice(1, llength).toString('hex'), 16);\n var totalLength = llength + length;\n if (totalLength > input.length) {\n throw new Error('invalid rlp: total length is larger than the data');\n }\n innerRemainder = input.slice(llength, totalLength);\n if (innerRemainder.length === 0) {\n throw new Error('invalid rlp, List has a invalid length');\n }\n while (innerRemainder.length) {\n d = _decode(innerRemainder);\n decoded.push(d.data);\n innerRemainder = d.remainder;\n }\n return {\n data: decoded,\n remainder: input.slice(totalLength),\n };\n }\n}\n/** Check if a string is prefixed by 0x */\nfunction isHexPrefixed(str) {\n return str.slice(0, 2) === '0x';\n}\n/** Removes 0x from a given String */\nfunction stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n/** Transform an integer into its hexadecimal value */\nfunction intToHex(integer) {\n if (integer < 0) {\n throw new Error('Invalid integer as argument, must be unsigned!');\n }\n var hex = integer.toString(16);\n return hex.length % 2 ? \"0\" + hex : hex;\n}\n/** Pad a string to be even */\nfunction padToEven(a) {\n return a.length % 2 ? \"0\" + a : a;\n}\n/** Transform an integer into a Buffer */\nfunction intToBuffer(integer) {\n var hex = intToHex(integer);\n return Buffer.from(hex, 'hex');\n}\n/** Transform anything into a Buffer */\nfunction toBuffer(v) {\n if (!Buffer.isBuffer(v)) {\n if (typeof v === 'string') {\n if (isHexPrefixed(v)) {\n return Buffer.from(padToEven(stripHexPrefix(v)), 'hex');\n }\n else {\n return Buffer.from(v);\n }\n }\n else if (typeof v === 'number' || typeof v === 'bigint') {\n if (!v) {\n return Buffer.from([]);\n }\n else {\n return intToBuffer(v);\n }\n }\n else if (v === null || v === undefined) {\n return Buffer.from([]);\n }\n else if (v instanceof Uint8Array) {\n return Buffer.from(v);\n }\n else if (bn_js_1.default.isBN(v)) {\n // converts a BN to a Buffer\n return Buffer.from(v.toArray());\n }\n else {\n throw new Error('invalid type');\n }\n }\n return v;\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","module.exports = require('./lib')(require('./lib/elliptic'))\n","const EC = require('elliptic').ec\n\nconst ec = new EC('secp256k1')\nconst ecparams = ec.curve\n\n// Hack, we can not use bn.js@5, while elliptic uses bn.js@4\n// See https://github.com/indutny/elliptic/issues/191#issuecomment-569888758\nconst BN = ecparams.n.constructor\n\nfunction loadCompressedPublicKey (first, xbuf) {\n let x = new BN(xbuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0) return null\n x = x.toRed(ecparams.red)\n\n // compute corresponding Y\n let y = x.redSqr().redIMul(x).redIAdd(ecparams.b).redSqrt()\n if ((first === 0x03) !== y.isOdd()) y = y.redNeg()\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadUncompressedPublicKey (first, xbuf, ybuf) {\n let x = new BN(xbuf)\n let y = new BN(ybuf)\n\n // overflow\n if (x.cmp(ecparams.p) >= 0 || y.cmp(ecparams.p) >= 0) return null\n\n x = x.toRed(ecparams.red)\n y = y.toRed(ecparams.red)\n\n // is odd flag\n if ((first === 0x06 || first === 0x07) && y.isOdd() !== (first === 0x07)) return null\n\n // x*x*x + b = y*y\n const x3 = x.redSqr().redIMul(x)\n if (!y.redSqr().redISub(x3.redIAdd(ecparams.b)).isZero()) return null\n\n return ec.keyPair({ pub: { x: x, y: y } })\n}\n\nfunction loadPublicKey (pubkey) {\n // length should be validated in interface\n const first = pubkey[0]\n switch (first) {\n case 0x02:\n case 0x03:\n if (pubkey.length !== 33) return null\n return loadCompressedPublicKey(first, pubkey.subarray(1, 33))\n case 0x04:\n case 0x06:\n case 0x07:\n if (pubkey.length !== 65) return null\n return loadUncompressedPublicKey(first, pubkey.subarray(1, 33), pubkey.subarray(33, 65))\n default:\n return null\n }\n}\n\nfunction savePublicKey (output, point) {\n const pubkey = point.encode(null, output.length === 33)\n // Loop should be faster because we do not need create extra Uint8Array\n // output.set(new Uint8Array(pubkey))\n for (let i = 0; i < output.length; ++i) output[i] = pubkey[i]\n}\n\nmodule.exports = {\n contextRandomize () {\n return 0\n },\n\n privateKeyVerify (seckey) {\n const bn = new BN(seckey)\n return bn.cmp(ecparams.n) < 0 && !bn.isZero() ? 0 : 1\n },\n\n privateKeyNegate (seckey) {\n const bn = new BN(seckey)\n const negate = ecparams.n.sub(bn).umod(ecparams.n).toArrayLike(Uint8Array, 'be', 32)\n seckey.set(negate)\n return 0\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n const bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0) return 1\n\n bn.iadd(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn.isub(ecparams.n)\n if (bn.isZero()) return 1\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n privateKeyTweakMul (seckey, tweak) {\n let bn = new BN(tweak)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n bn.imul(new BN(seckey))\n if (bn.cmp(ecparams.n) >= 0) bn = bn.umod(ecparams.n)\n\n const tweaked = bn.toArrayLike(Uint8Array, 'be', 32)\n seckey.set(tweaked)\n\n return 0\n },\n\n publicKeyVerify (pubkey) {\n const pair = loadPublicKey(pubkey)\n return pair === null ? 1 : 0\n },\n\n publicKeyCreate (output, seckey) {\n const bn = new BN(seckey)\n if (bn.cmp(ecparams.n) >= 0 || bn.isZero()) return 1\n\n const point = ec.keyFromPrivate(seckey).getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyConvert (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyNegate (output, pubkey) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const point = pair.getPublic()\n point.y = point.y.redNeg()\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyCombine (output, pubkeys) {\n const pairs = new Array(pubkeys.length)\n for (let i = 0; i < pubkeys.length; ++i) {\n pairs[i] = loadPublicKey(pubkeys[i])\n if (pairs[i] === null) return 1\n }\n\n let point = pairs[0].getPublic()\n for (let i = 1; i < pairs.length; ++i) point = point.add(pairs[i].pub)\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakAdd (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0) return 2\n\n const point = pair.getPublic().add(ecparams.g.mul(tweak))\n if (point.isInfinity()) return 2\n\n savePublicKey(output, point)\n\n return 0\n },\n\n publicKeyTweakMul (output, pubkey, tweak) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n tweak = new BN(tweak)\n if (tweak.cmp(ecparams.n) >= 0 || tweak.isZero()) return 2\n\n const point = pair.getPublic().mul(tweak)\n savePublicKey(output, point)\n\n return 0\n },\n\n signatureNormalize (sig) {\n const r = new BN(sig.subarray(0, 32))\n const s = new BN(sig.subarray(32, 64))\n if (r.cmp(ecparams.n) >= 0 || s.cmp(ecparams.n) >= 0) return 1\n\n if (s.cmp(ec.nh) === 1) {\n sig.set(ecparams.n.sub(s).toArrayLike(Uint8Array, 'be', 32), 32)\n }\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureExport (obj, sig) {\n const sigR = sig.subarray(0, 32)\n const sigS = sig.subarray(32, 64)\n if (new BN(sigR).cmp(ecparams.n) >= 0) return 1\n if (new BN(sigS).cmp(ecparams.n) >= 0) return 1\n\n const { output } = obj\n\n // Prepare R\n let r = output.subarray(4, 4 + 33)\n r[0] = 0x00\n r.set(sigR, 1)\n\n let lenR = 33\n let posR = 0\n for (; lenR > 1 && r[posR] === 0x00 && !(r[posR + 1] & 0x80); --lenR, ++posR);\n\n r = r.subarray(posR)\n if (r[0] & 0x80) return 1\n if (lenR > 1 && (r[0] === 0x00) && !(r[1] & 0x80)) return 1\n\n // Prepare S\n let s = output.subarray(6 + 33, 6 + 33 + 33)\n s[0] = 0x00\n s.set(sigS, 1)\n\n let lenS = 33\n let posS = 0\n for (; lenS > 1 && s[posS] === 0x00 && !(s[posS + 1] & 0x80); --lenS, ++posS);\n\n s = s.subarray(posS)\n if (s[0] & 0x80) return 1\n if (lenS > 1 && (s[0] === 0x00) && !(s[1] & 0x80)) return 1\n\n // Set output length for return\n obj.outputlen = 6 + lenR + lenS\n\n // Output in specified format\n // 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S]\n output[0] = 0x30\n output[1] = obj.outputlen - 2\n output[2] = 0x02\n output[3] = r.length\n output.set(r, 4)\n output[4 + lenR] = 0x02\n output[5 + lenR] = s.length\n output.set(s, 6 + lenR)\n\n return 0\n },\n\n // Copied 1-to-1 from https://github.com/bitcoinjs/bip66/blob/master/index.js\n // Adapted for Uint8Array instead Buffer\n signatureImport (output, sig) {\n if (sig.length < 8) return 1\n if (sig.length > 72) return 1\n if (sig[0] !== 0x30) return 1\n if (sig[1] !== sig.length - 2) return 1\n if (sig[2] !== 0x02) return 1\n\n const lenR = sig[3]\n if (lenR === 0) return 1\n if (5 + lenR >= sig.length) return 1\n if (sig[4 + lenR] !== 0x02) return 1\n\n const lenS = sig[5 + lenR]\n if (lenS === 0) return 1\n if ((6 + lenR + lenS) !== sig.length) return 1\n\n if (sig[4] & 0x80) return 1\n if (lenR > 1 && (sig[4] === 0x00) && !(sig[5] & 0x80)) return 1\n\n if (sig[lenR + 6] & 0x80) return 1\n if (lenS > 1 && (sig[lenR + 6] === 0x00) && !(sig[lenR + 7] & 0x80)) return 1\n\n let sigR = sig.subarray(4, 4 + lenR)\n if (sigR.length === 33 && sigR[0] === 0x00) sigR = sigR.subarray(1)\n if (sigR.length > 32) return 1\n\n let sigS = sig.subarray(6 + lenR)\n if (sigS.length === 33 && sigS[0] === 0x00) sigS = sigS.slice(1)\n if (sigS.length > 32) throw new Error('S length is too long')\n\n let r = new BN(sigR)\n if (r.cmp(ecparams.n) >= 0) r = new BN(0)\n\n let s = new BN(sig.subarray(6 + lenR))\n if (s.cmp(ecparams.n) >= 0) s = new BN(0)\n\n output.set(r.toArrayLike(Uint8Array, 'be', 32), 0)\n output.set(s.toArrayLike(Uint8Array, 'be', 32), 32)\n\n return 0\n },\n\n ecdsaSign (obj, message, seckey, data, noncefn) {\n if (noncefn) {\n const _noncefn = noncefn\n noncefn = (counter) => {\n const nonce = _noncefn(message, seckey, null, data, counter)\n\n const isValid = nonce instanceof Uint8Array && nonce.length === 32\n if (!isValid) throw new Error('This is the way')\n\n return new BN(nonce)\n }\n }\n\n const d = new BN(seckey)\n if (d.cmp(ecparams.n) >= 0 || d.isZero()) return 1\n\n let sig\n try {\n sig = ec.sign(message, seckey, { canonical: true, k: noncefn, pers: data })\n } catch (err) {\n return 1\n }\n\n obj.signature.set(sig.r.toArrayLike(Uint8Array, 'be', 32), 0)\n obj.signature.set(sig.s.toArrayLike(Uint8Array, 'be', 32), 32)\n obj.recid = sig.recoveryParam\n\n return 0\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n const sigObj = { r: sig.subarray(0, 32), s: sig.subarray(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n if (sigs.cmp(ec.nh) === 1 || sigr.isZero() || sigs.isZero()) return 3\n\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 2\n\n const point = pair.getPublic()\n const isValid = ec.verify(msg32, sigObj, point)\n return isValid ? 0 : 3\n },\n\n ecdsaRecover (output, sig, recid, msg32) {\n const sigObj = { r: sig.slice(0, 32), s: sig.slice(32, 64) }\n\n const sigr = new BN(sigObj.r)\n const sigs = new BN(sigObj.s)\n if (sigr.cmp(ecparams.n) >= 0 || sigs.cmp(ecparams.n) >= 0) return 1\n\n if (sigr.isZero() || sigs.isZero()) return 2\n\n // Can throw `throw new Error('Unable to find sencond key candinate');`\n let point\n try {\n point = ec.recoverPubKey(msg32, sigObj, recid)\n } catch (err) {\n return 2\n }\n\n savePublicKey(output, point)\n\n return 0\n },\n\n ecdh (output, pubkey, seckey, data, hashfn, xbuf, ybuf) {\n const pair = loadPublicKey(pubkey)\n if (pair === null) return 1\n\n const scalar = new BN(seckey)\n if (scalar.cmp(ecparams.n) >= 0 || scalar.isZero()) return 2\n\n const point = pair.getPublic().mul(scalar)\n\n if (hashfn === undefined) {\n const data = point.encode(null, true)\n const sha256 = ec.hash().update(data).digest()\n for (let i = 0; i < 32; ++i) output[i] = sha256[i]\n } else {\n if (!xbuf) xbuf = new Uint8Array(32)\n const x = point.getX().toArray('be', 32)\n for (let i = 0; i < 32; ++i) xbuf[i] = x[i]\n\n if (!ybuf) ybuf = new Uint8Array(32)\n const y = point.getY().toArray('be', 32)\n for (let i = 0; i < 32; ++i) ybuf[i] = y[i]\n\n const hash = hashfn(xbuf, ybuf, data)\n\n const isValid = hash instanceof Uint8Array && hash.length === output.length\n if (!isValid) return 2\n\n output.set(hash)\n }\n\n return 0\n }\n}\n","const errors = {\n IMPOSSIBLE_CASE: 'Impossible case. Please create issue.',\n TWEAK_ADD:\n 'The tweak was out of range or the resulted private key is invalid',\n TWEAK_MUL: 'The tweak was out of range or equal to zero',\n CONTEXT_RANDOMIZE_UNKNOW: 'Unknow error on context randomization',\n SECKEY_INVALID: 'Private Key is invalid',\n PUBKEY_PARSE: 'Public Key could not be parsed',\n PUBKEY_SERIALIZE: 'Public Key serialization error',\n PUBKEY_COMBINE: 'The sum of the public keys is not valid',\n SIG_PARSE: 'Signature could not be parsed',\n SIGN: 'The nonce generation function failed, or the private key was invalid',\n RECOVER: 'Public key could not be recover',\n ECDH: 'Scalar was invalid (zero or overflow)'\n}\n\nfunction assert (cond, msg) {\n if (!cond) throw new Error(msg)\n}\n\nfunction isUint8Array (name, value, length) {\n assert(value instanceof Uint8Array, `Expected ${name} to be an Uint8Array`)\n\n if (length !== undefined) {\n if (Array.isArray(length)) {\n const numbers = length.join(', ')\n const msg = `Expected ${name} to be an Uint8Array with length [${numbers}]`\n assert(length.includes(value.length), msg)\n } else {\n const msg = `Expected ${name} to be an Uint8Array with length ${length}`\n assert(value.length === length, msg)\n }\n }\n}\n\nfunction isCompressed (value) {\n assert(toTypeString(value) === 'Boolean', 'Expected compressed to be a Boolean')\n}\n\nfunction getAssertedOutput (output = (len) => new Uint8Array(len), length) {\n if (typeof output === 'function') output = output(length)\n isUint8Array('output', output, length)\n return output\n}\n\nfunction toTypeString (value) {\n return Object.prototype.toString.call(value).slice(8, -1)\n}\n\nmodule.exports = (secp256k1) => {\n return {\n contextRandomize (seed) {\n assert(\n seed === null || seed instanceof Uint8Array,\n 'Expected seed to be an Uint8Array or null'\n )\n if (seed !== null) isUint8Array('seed', seed, 32)\n\n switch (secp256k1.contextRandomize(seed)) {\n case 1:\n throw new Error(errors.CONTEXT_RANDOMIZE_UNKNOW)\n }\n },\n\n privateKeyVerify (seckey) {\n isUint8Array('private key', seckey, 32)\n\n return secp256k1.privateKeyVerify(seckey) === 0\n },\n\n privateKeyNegate (seckey) {\n isUint8Array('private key', seckey, 32)\n\n switch (secp256k1.privateKeyNegate(seckey)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n privateKeyTweakAdd (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakAdd(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n privateKeyTweakMul (seckey, tweak) {\n isUint8Array('private key', seckey, 32)\n isUint8Array('tweak', tweak, 32)\n\n switch (secp256k1.privateKeyTweakMul(seckey, tweak)) {\n case 0:\n return seckey\n case 1:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n publicKeyVerify (pubkey) {\n isUint8Array('public key', pubkey, [33, 65])\n\n return secp256k1.publicKeyVerify(pubkey) === 0\n },\n\n publicKeyCreate (seckey, compressed = true, output) {\n isUint8Array('private key', seckey, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCreate(output, seckey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SECKEY_INVALID)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyConvert (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyConvert(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyNegate (pubkey, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyNegate(output, pubkey)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyCombine (pubkeys, compressed = true, output) {\n assert(Array.isArray(pubkeys), 'Expected public keys to be an Array')\n assert(pubkeys.length > 0, 'Expected public keys array will have more than zero items')\n for (const pubkey of pubkeys) {\n isUint8Array('public key', pubkey, [33, 65])\n }\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyCombine(output, pubkeys)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_COMBINE)\n case 3:\n throw new Error(errors.PUBKEY_SERIALIZE)\n }\n },\n\n publicKeyTweakAdd (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakAdd(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_ADD)\n }\n },\n\n publicKeyTweakMul (pubkey, tweak, compressed = true, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('tweak', tweak, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.publicKeyTweakMul(output, pubkey, tweak)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.TWEAK_MUL)\n }\n },\n\n signatureNormalize (sig) {\n isUint8Array('signature', sig, 64)\n\n switch (secp256k1.signatureNormalize(sig)) {\n case 0:\n return sig\n case 1:\n throw new Error(errors.SIG_PARSE)\n }\n },\n\n signatureExport (sig, output) {\n isUint8Array('signature', sig, 64)\n output = getAssertedOutput(output, 72)\n\n const obj = { output, outputlen: 72 }\n switch (secp256k1.signatureExport(obj, sig)) {\n case 0:\n return output.slice(0, obj.outputlen)\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n signatureImport (sig, output) {\n isUint8Array('signature', sig)\n output = getAssertedOutput(output, 64)\n\n switch (secp256k1.signatureImport(output, sig)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaSign (msg32, seckey, options = {}, output) {\n isUint8Array('message', msg32, 32)\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.noncefn !== undefined) assert(toTypeString(options.noncefn) === 'Function', 'Expected options.noncefn to be a Function')\n output = getAssertedOutput(output, 64)\n\n const obj = { signature: output, recid: null }\n switch (secp256k1.ecdsaSign(obj, msg32, seckey, options.data, options.noncefn)) {\n case 0:\n return obj\n case 1:\n throw new Error(errors.SIGN)\n case 2:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdsaVerify (sig, msg32, pubkey) {\n isUint8Array('signature', sig, 64)\n isUint8Array('message', msg32, 32)\n isUint8Array('public key', pubkey, [33, 65])\n\n switch (secp256k1.ecdsaVerify(sig, msg32, pubkey)) {\n case 0:\n return true\n case 3:\n return false\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.PUBKEY_PARSE)\n }\n },\n\n ecdsaRecover (sig, recid, msg32, compressed = true, output) {\n isUint8Array('signature', sig, 64)\n assert(\n toTypeString(recid) === 'Number' &&\n recid >= 0 &&\n recid <= 3,\n 'Expected recovery id to be a Number within interval [0, 3]'\n )\n isUint8Array('message', msg32, 32)\n isCompressed(compressed)\n output = getAssertedOutput(output, compressed ? 33 : 65)\n\n switch (secp256k1.ecdsaRecover(output, sig, recid, msg32)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.SIG_PARSE)\n case 2:\n throw new Error(errors.RECOVER)\n case 3:\n throw new Error(errors.IMPOSSIBLE_CASE)\n }\n },\n\n ecdh (pubkey, seckey, options = {}, output) {\n isUint8Array('public key', pubkey, [33, 65])\n isUint8Array('private key', seckey, 32)\n assert(toTypeString(options) === 'Object', 'Expected options to be an Object')\n if (options.data !== undefined) isUint8Array('options.data', options.data)\n if (options.hashfn !== undefined) {\n assert(toTypeString(options.hashfn) === 'Function', 'Expected options.hashfn to be a Function')\n if (options.xbuf !== undefined) isUint8Array('options.xbuf', options.xbuf, 32)\n if (options.ybuf !== undefined) isUint8Array('options.ybuf', options.ybuf, 32)\n isUint8Array('output', output)\n } else {\n output = getAssertedOutput(output, 32)\n }\n\n switch (secp256k1.ecdh(output, pubkey, seckey, options.data, options.hashfn, options.xbuf, options.ybuf)) {\n case 0:\n return output\n case 1:\n throw new Error(errors.PUBKEY_PARSE)\n case 2:\n throw new Error(errors.ECDH)\n }\n }\n }\n}\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar Emitter = require('emitter');\n\nfunction Stream() {\n Emitter.call(this);\n}\nStream.prototype = new Emitter();\nmodule.exports = Stream;\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (!this.hasListeners('error')) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.off('data', ondata);\n dest.off('drain', ondrain);\n\n source.off('end', onend);\n source.off('close', onclose);\n\n source.off('error', onerror);\n dest.off('error', onerror);\n\n source.off('end', cleanup);\n source.off('close', cleanup);\n\n dest.off('end', cleanup);\n dest.off('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('end', cleanup);\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar Buffer = require('buffer').Buffer;\n\nvar isBufferEncoding = Buffer.isEncoding\n || function(encoding) {\n switch (encoding && encoding.toLowerCase()) {\n case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n default: return false;\n }\n }\n\n\nfunction assertEncoding(encoding) {\n if (encoding && !isBufferEncoding(encoding)) {\n throw new Error('Unknown encoding: ' + encoding);\n }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nvar StringDecoder = exports.StringDecoder = function(encoding) {\n this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n assertEncoding(encoding);\n switch (this.encoding) {\n case 'utf8':\n // CESU-8 represents each of Surrogate Pair by 3-bytes\n this.surrogateSize = 3;\n break;\n case 'ucs2':\n case 'utf16le':\n // UTF-16 represents each of Surrogate Pair by 2-bytes\n this.surrogateSize = 2;\n this.detectIncompleteChar = utf16DetectIncompleteChar;\n break;\n case 'base64':\n // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n this.surrogateSize = 3;\n this.detectIncompleteChar = base64DetectIncompleteChar;\n break;\n default:\n this.write = passThroughWrite;\n return;\n }\n\n // Enough space to store all bytes of a single character. UTF-8 needs 4\n // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n this.charBuffer = new Buffer(6);\n // Number of bytes received for the current incomplete multi-byte character.\n this.charReceived = 0;\n // Number of bytes expected for the current incomplete multi-byte character.\n this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n var charStr = '';\n // if our last write ended with an incomplete multibyte character\n while (this.charLength) {\n // determine how many remaining bytes this buffer has to offer for this char\n var available = (buffer.length >= this.charLength - this.charReceived) ?\n this.charLength - this.charReceived :\n buffer.length;\n\n // add the new bytes to the char buffer\n buffer.copy(this.charBuffer, this.charReceived, 0, available);\n this.charReceived += available;\n\n if (this.charReceived < this.charLength) {\n // still not enough chars in this buffer? wait for more ...\n return '';\n }\n\n // remove bytes belonging to the current character from the buffer\n buffer = buffer.slice(available, buffer.length);\n\n // get the character that was split\n charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n var charCode = charStr.charCodeAt(charStr.length - 1);\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n this.charLength += this.surrogateSize;\n charStr = '';\n continue;\n }\n this.charReceived = this.charLength = 0;\n\n // if there are no more bytes in this buffer, just emit our char\n if (buffer.length === 0) {\n return charStr;\n }\n break;\n }\n\n // determine and set charLength / charReceived\n this.detectIncompleteChar(buffer);\n\n var end = buffer.length;\n if (this.charLength) {\n // buffer the incomplete character bytes we got\n buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n end -= this.charReceived;\n }\n\n charStr += buffer.toString(this.encoding, 0, end);\n\n var end = charStr.length - 1;\n var charCode = charStr.charCodeAt(end);\n // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n var size = this.surrogateSize;\n this.charLength += size;\n this.charReceived += size;\n this.charBuffer.copy(this.charBuffer, size, 0, size);\n buffer.copy(this.charBuffer, 0, 0, size);\n return charStr.substring(0, end);\n }\n\n // or just emit the charStr\n return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n // determine how many bytes we have to check at the end of this buffer\n var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n // Figure out if one of the last i bytes of our buffer announces an\n // incomplete char.\n for (; i > 0; i--) {\n var c = buffer[buffer.length - i];\n\n // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n // 110XXXXX\n if (i == 1 && c >> 5 == 0x06) {\n this.charLength = 2;\n break;\n }\n\n // 1110XXXX\n if (i <= 2 && c >> 4 == 0x0E) {\n this.charLength = 3;\n break;\n }\n\n // 11110XXX\n if (i <= 3 && c >> 3 == 0x1E) {\n this.charLength = 4;\n break;\n }\n }\n this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n var res = '';\n if (buffer && buffer.length)\n res = this.write(buffer);\n\n if (this.charReceived) {\n var cr = this.charReceived;\n var buf = this.charBuffer;\n var enc = this.encoding;\n res += buf.slice(0, cr).toString(enc);\n }\n\n return res;\n};\n\nfunction passThroughWrite(buffer) {\n return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 2;\n this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n this.charReceived = buffer.length % 3;\n this.charLength = this.charReceived ? 3 : 0;\n}\n","var isHexPrefixed = require('is-hex-prefixed');\n\n/**\n * Removes '0x' from a given `String` is present\n * @param {String} str the string value\n * @return {String|Optional} a string by pass if necessary\n */\nmodule.exports = function stripHexPrefix(str) {\n if (typeof str !== 'string') {\n return str;\n }\n\n return isHexPrefixed(str) ? str.slice(2) : str;\n}\n","// Written in 2014-2016 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n(function(root, f) {\n 'use strict';\n if (typeof module !== 'undefined' && module.exports) module.exports = f();\n else if (root.nacl) root.nacl.util = f();\n else {\n root.nacl = {};\n root.nacl.util = f();\n }\n}(this, function() {\n 'use strict';\n\n var util = {};\n\n function validateBase64(s) {\n if (!(/^(?:[A-Za-z0-9+\\/]{2}[A-Za-z0-9+\\/]{2})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/.test(s))) {\n throw new TypeError('invalid encoding');\n }\n }\n\n util.decodeUTF8 = function(s) {\n if (typeof s !== 'string') throw new TypeError('expected string');\n var i, d = unescape(encodeURIComponent(s)), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n util.encodeUTF8 = function(arr) {\n var i, s = [];\n for (i = 0; i < arr.length; i++) s.push(String.fromCharCode(arr[i]));\n return decodeURIComponent(escape(s.join('')));\n };\n\n if (typeof atob === 'undefined') {\n // Node.js\n\n if (typeof Buffer.from !== 'undefined') {\n // Node v6 and later\n util.encodeBase64 = function (arr) { // v6 and later\n return Buffer.from(arr).toString('base64');\n };\n\n util.decodeBase64 = function (s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(Buffer.from(s, 'base64'), 0));\n };\n\n } else {\n // Node earlier than v6\n util.encodeBase64 = function (arr) { // v6 and later\n return (new Buffer(arr)).toString('base64');\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n return new Uint8Array(Array.prototype.slice.call(new Buffer(s, 'base64'), 0));\n };\n }\n\n } else {\n // Browsers\n\n util.encodeBase64 = function(arr) {\n var i, s = [], len = arr.length;\n for (i = 0; i < len; i++) s.push(String.fromCharCode(arr[i]));\n return btoa(s.join(''));\n };\n\n util.decodeBase64 = function(s) {\n validateBase64(s);\n var i, d = atob(s), b = new Uint8Array(d.length);\n for (i = 0; i < d.length; i++) b[i] = d.charCodeAt(i);\n return b;\n };\n\n }\n\n return util;\n\n}));\n","(function(nacl) {\n'use strict';\n\n// Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\n// Public domain.\n//\n// Implementation derived from TweetNaCl version 20140427.\n// See for details: http://tweetnacl.cr.yp.to/\n\nvar gf = function(init) {\n var i, r = new Float64Array(16);\n if (init) for (i = 0; i < init.length; i++) r[i] = init[i];\n return r;\n};\n\n// Pluggable, initialized in high-level API below.\nvar randombytes = function(/* x, n */) { throw new Error('no PRNG'); };\n\nvar _0 = new Uint8Array(16);\nvar _9 = new Uint8Array(32); _9[0] = 9;\n\nvar gf0 = gf(),\n gf1 = gf([1]),\n _121665 = gf([0xdb41, 1]),\n D = gf([0x78a3, 0x1359, 0x4dca, 0x75eb, 0xd8ab, 0x4141, 0x0a4d, 0x0070, 0xe898, 0x7779, 0x4079, 0x8cc7, 0xfe73, 0x2b6f, 0x6cee, 0x5203]),\n D2 = gf([0xf159, 0x26b2, 0x9b94, 0xebd6, 0xb156, 0x8283, 0x149a, 0x00e0, 0xd130, 0xeef3, 0x80f2, 0x198e, 0xfce7, 0x56df, 0xd9dc, 0x2406]),\n X = gf([0xd51a, 0x8f25, 0x2d60, 0xc956, 0xa7b2, 0x9525, 0xc760, 0x692c, 0xdc5c, 0xfdd6, 0xe231, 0xc0a4, 0x53fe, 0xcd6e, 0x36d3, 0x2169]),\n Y = gf([0x6658, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666, 0x6666]),\n I = gf([0xa0b0, 0x4a0e, 0x1b27, 0xc4ee, 0xe478, 0xad2f, 0x1806, 0x2f43, 0xd7a7, 0x3dfb, 0x0099, 0x2b4d, 0xdf0b, 0x4fc1, 0x2480, 0x2b83]);\n\nfunction ts64(x, i, h, l) {\n x[i] = (h >> 24) & 0xff;\n x[i+1] = (h >> 16) & 0xff;\n x[i+2] = (h >> 8) & 0xff;\n x[i+3] = h & 0xff;\n x[i+4] = (l >> 24) & 0xff;\n x[i+5] = (l >> 16) & 0xff;\n x[i+6] = (l >> 8) & 0xff;\n x[i+7] = l & 0xff;\n}\n\nfunction vn(x, xi, y, yi, n) {\n var i,d = 0;\n for (i = 0; i < n; i++) d |= x[xi+i]^y[yi+i];\n return (1 & ((d - 1) >>> 8)) - 1;\n}\n\nfunction crypto_verify_16(x, xi, y, yi) {\n return vn(x,xi,y,yi,16);\n}\n\nfunction crypto_verify_32(x, xi, y, yi) {\n return vn(x,xi,y,yi,32);\n}\n\nfunction core_salsa20(o, p, k, c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n x0 = x0 + j0 | 0;\n x1 = x1 + j1 | 0;\n x2 = x2 + j2 | 0;\n x3 = x3 + j3 | 0;\n x4 = x4 + j4 | 0;\n x5 = x5 + j5 | 0;\n x6 = x6 + j6 | 0;\n x7 = x7 + j7 | 0;\n x8 = x8 + j8 | 0;\n x9 = x9 + j9 | 0;\n x10 = x10 + j10 | 0;\n x11 = x11 + j11 | 0;\n x12 = x12 + j12 | 0;\n x13 = x13 + j13 | 0;\n x14 = x14 + j14 | 0;\n x15 = x15 + j15 | 0;\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x1 >>> 0 & 0xff;\n o[ 5] = x1 >>> 8 & 0xff;\n o[ 6] = x1 >>> 16 & 0xff;\n o[ 7] = x1 >>> 24 & 0xff;\n\n o[ 8] = x2 >>> 0 & 0xff;\n o[ 9] = x2 >>> 8 & 0xff;\n o[10] = x2 >>> 16 & 0xff;\n o[11] = x2 >>> 24 & 0xff;\n\n o[12] = x3 >>> 0 & 0xff;\n o[13] = x3 >>> 8 & 0xff;\n o[14] = x3 >>> 16 & 0xff;\n o[15] = x3 >>> 24 & 0xff;\n\n o[16] = x4 >>> 0 & 0xff;\n o[17] = x4 >>> 8 & 0xff;\n o[18] = x4 >>> 16 & 0xff;\n o[19] = x4 >>> 24 & 0xff;\n\n o[20] = x5 >>> 0 & 0xff;\n o[21] = x5 >>> 8 & 0xff;\n o[22] = x5 >>> 16 & 0xff;\n o[23] = x5 >>> 24 & 0xff;\n\n o[24] = x6 >>> 0 & 0xff;\n o[25] = x6 >>> 8 & 0xff;\n o[26] = x6 >>> 16 & 0xff;\n o[27] = x6 >>> 24 & 0xff;\n\n o[28] = x7 >>> 0 & 0xff;\n o[29] = x7 >>> 8 & 0xff;\n o[30] = x7 >>> 16 & 0xff;\n o[31] = x7 >>> 24 & 0xff;\n\n o[32] = x8 >>> 0 & 0xff;\n o[33] = x8 >>> 8 & 0xff;\n o[34] = x8 >>> 16 & 0xff;\n o[35] = x8 >>> 24 & 0xff;\n\n o[36] = x9 >>> 0 & 0xff;\n o[37] = x9 >>> 8 & 0xff;\n o[38] = x9 >>> 16 & 0xff;\n o[39] = x9 >>> 24 & 0xff;\n\n o[40] = x10 >>> 0 & 0xff;\n o[41] = x10 >>> 8 & 0xff;\n o[42] = x10 >>> 16 & 0xff;\n o[43] = x10 >>> 24 & 0xff;\n\n o[44] = x11 >>> 0 & 0xff;\n o[45] = x11 >>> 8 & 0xff;\n o[46] = x11 >>> 16 & 0xff;\n o[47] = x11 >>> 24 & 0xff;\n\n o[48] = x12 >>> 0 & 0xff;\n o[49] = x12 >>> 8 & 0xff;\n o[50] = x12 >>> 16 & 0xff;\n o[51] = x12 >>> 24 & 0xff;\n\n o[52] = x13 >>> 0 & 0xff;\n o[53] = x13 >>> 8 & 0xff;\n o[54] = x13 >>> 16 & 0xff;\n o[55] = x13 >>> 24 & 0xff;\n\n o[56] = x14 >>> 0 & 0xff;\n o[57] = x14 >>> 8 & 0xff;\n o[58] = x14 >>> 16 & 0xff;\n o[59] = x14 >>> 24 & 0xff;\n\n o[60] = x15 >>> 0 & 0xff;\n o[61] = x15 >>> 8 & 0xff;\n o[62] = x15 >>> 16 & 0xff;\n o[63] = x15 >>> 24 & 0xff;\n}\n\nfunction core_hsalsa20(o,p,k,c) {\n var j0 = c[ 0] & 0xff | (c[ 1] & 0xff)<<8 | (c[ 2] & 0xff)<<16 | (c[ 3] & 0xff)<<24,\n j1 = k[ 0] & 0xff | (k[ 1] & 0xff)<<8 | (k[ 2] & 0xff)<<16 | (k[ 3] & 0xff)<<24,\n j2 = k[ 4] & 0xff | (k[ 5] & 0xff)<<8 | (k[ 6] & 0xff)<<16 | (k[ 7] & 0xff)<<24,\n j3 = k[ 8] & 0xff | (k[ 9] & 0xff)<<8 | (k[10] & 0xff)<<16 | (k[11] & 0xff)<<24,\n j4 = k[12] & 0xff | (k[13] & 0xff)<<8 | (k[14] & 0xff)<<16 | (k[15] & 0xff)<<24,\n j5 = c[ 4] & 0xff | (c[ 5] & 0xff)<<8 | (c[ 6] & 0xff)<<16 | (c[ 7] & 0xff)<<24,\n j6 = p[ 0] & 0xff | (p[ 1] & 0xff)<<8 | (p[ 2] & 0xff)<<16 | (p[ 3] & 0xff)<<24,\n j7 = p[ 4] & 0xff | (p[ 5] & 0xff)<<8 | (p[ 6] & 0xff)<<16 | (p[ 7] & 0xff)<<24,\n j8 = p[ 8] & 0xff | (p[ 9] & 0xff)<<8 | (p[10] & 0xff)<<16 | (p[11] & 0xff)<<24,\n j9 = p[12] & 0xff | (p[13] & 0xff)<<8 | (p[14] & 0xff)<<16 | (p[15] & 0xff)<<24,\n j10 = c[ 8] & 0xff | (c[ 9] & 0xff)<<8 | (c[10] & 0xff)<<16 | (c[11] & 0xff)<<24,\n j11 = k[16] & 0xff | (k[17] & 0xff)<<8 | (k[18] & 0xff)<<16 | (k[19] & 0xff)<<24,\n j12 = k[20] & 0xff | (k[21] & 0xff)<<8 | (k[22] & 0xff)<<16 | (k[23] & 0xff)<<24,\n j13 = k[24] & 0xff | (k[25] & 0xff)<<8 | (k[26] & 0xff)<<16 | (k[27] & 0xff)<<24,\n j14 = k[28] & 0xff | (k[29] & 0xff)<<8 | (k[30] & 0xff)<<16 | (k[31] & 0xff)<<24,\n j15 = c[12] & 0xff | (c[13] & 0xff)<<8 | (c[14] & 0xff)<<16 | (c[15] & 0xff)<<24;\n\n var x0 = j0, x1 = j1, x2 = j2, x3 = j3, x4 = j4, x5 = j5, x6 = j6, x7 = j7,\n x8 = j8, x9 = j9, x10 = j10, x11 = j11, x12 = j12, x13 = j13, x14 = j14,\n x15 = j15, u;\n\n for (var i = 0; i < 20; i += 2) {\n u = x0 + x12 | 0;\n x4 ^= u<<7 | u>>>(32-7);\n u = x4 + x0 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x4 | 0;\n x12 ^= u<<13 | u>>>(32-13);\n u = x12 + x8 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x1 | 0;\n x9 ^= u<<7 | u>>>(32-7);\n u = x9 + x5 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x9 | 0;\n x1 ^= u<<13 | u>>>(32-13);\n u = x1 + x13 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x6 | 0;\n x14 ^= u<<7 | u>>>(32-7);\n u = x14 + x10 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x14 | 0;\n x6 ^= u<<13 | u>>>(32-13);\n u = x6 + x2 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x11 | 0;\n x3 ^= u<<7 | u>>>(32-7);\n u = x3 + x15 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x3 | 0;\n x11 ^= u<<13 | u>>>(32-13);\n u = x11 + x7 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n\n u = x0 + x3 | 0;\n x1 ^= u<<7 | u>>>(32-7);\n u = x1 + x0 | 0;\n x2 ^= u<<9 | u>>>(32-9);\n u = x2 + x1 | 0;\n x3 ^= u<<13 | u>>>(32-13);\n u = x3 + x2 | 0;\n x0 ^= u<<18 | u>>>(32-18);\n\n u = x5 + x4 | 0;\n x6 ^= u<<7 | u>>>(32-7);\n u = x6 + x5 | 0;\n x7 ^= u<<9 | u>>>(32-9);\n u = x7 + x6 | 0;\n x4 ^= u<<13 | u>>>(32-13);\n u = x4 + x7 | 0;\n x5 ^= u<<18 | u>>>(32-18);\n\n u = x10 + x9 | 0;\n x11 ^= u<<7 | u>>>(32-7);\n u = x11 + x10 | 0;\n x8 ^= u<<9 | u>>>(32-9);\n u = x8 + x11 | 0;\n x9 ^= u<<13 | u>>>(32-13);\n u = x9 + x8 | 0;\n x10 ^= u<<18 | u>>>(32-18);\n\n u = x15 + x14 | 0;\n x12 ^= u<<7 | u>>>(32-7);\n u = x12 + x15 | 0;\n x13 ^= u<<9 | u>>>(32-9);\n u = x13 + x12 | 0;\n x14 ^= u<<13 | u>>>(32-13);\n u = x14 + x13 | 0;\n x15 ^= u<<18 | u>>>(32-18);\n }\n\n o[ 0] = x0 >>> 0 & 0xff;\n o[ 1] = x0 >>> 8 & 0xff;\n o[ 2] = x0 >>> 16 & 0xff;\n o[ 3] = x0 >>> 24 & 0xff;\n\n o[ 4] = x5 >>> 0 & 0xff;\n o[ 5] = x5 >>> 8 & 0xff;\n o[ 6] = x5 >>> 16 & 0xff;\n o[ 7] = x5 >>> 24 & 0xff;\n\n o[ 8] = x10 >>> 0 & 0xff;\n o[ 9] = x10 >>> 8 & 0xff;\n o[10] = x10 >>> 16 & 0xff;\n o[11] = x10 >>> 24 & 0xff;\n\n o[12] = x15 >>> 0 & 0xff;\n o[13] = x15 >>> 8 & 0xff;\n o[14] = x15 >>> 16 & 0xff;\n o[15] = x15 >>> 24 & 0xff;\n\n o[16] = x6 >>> 0 & 0xff;\n o[17] = x6 >>> 8 & 0xff;\n o[18] = x6 >>> 16 & 0xff;\n o[19] = x6 >>> 24 & 0xff;\n\n o[20] = x7 >>> 0 & 0xff;\n o[21] = x7 >>> 8 & 0xff;\n o[22] = x7 >>> 16 & 0xff;\n o[23] = x7 >>> 24 & 0xff;\n\n o[24] = x8 >>> 0 & 0xff;\n o[25] = x8 >>> 8 & 0xff;\n o[26] = x8 >>> 16 & 0xff;\n o[27] = x8 >>> 24 & 0xff;\n\n o[28] = x9 >>> 0 & 0xff;\n o[29] = x9 >>> 8 & 0xff;\n o[30] = x9 >>> 16 & 0xff;\n o[31] = x9 >>> 24 & 0xff;\n}\n\nfunction crypto_core_salsa20(out,inp,k,c) {\n core_salsa20(out,inp,k,c);\n}\n\nfunction crypto_core_hsalsa20(out,inp,k,c) {\n core_hsalsa20(out,inp,k,c);\n}\n\nvar sigma = new Uint8Array([101, 120, 112, 97, 110, 100, 32, 51, 50, 45, 98, 121, 116, 101, 32, 107]);\n // \"expand 32-byte k\"\n\nfunction crypto_stream_salsa20_xor(c,cpos,m,mpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n mpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = m[mpos+i] ^ x[i];\n }\n return 0;\n}\n\nfunction crypto_stream_salsa20(c,cpos,b,n,k) {\n var z = new Uint8Array(16), x = new Uint8Array(64);\n var u, i;\n for (i = 0; i < 16; i++) z[i] = 0;\n for (i = 0; i < 8; i++) z[i] = n[i];\n while (b >= 64) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < 64; i++) c[cpos+i] = x[i];\n u = 1;\n for (i = 8; i < 16; i++) {\n u = u + (z[i] & 0xff) | 0;\n z[i] = u & 0xff;\n u >>>= 8;\n }\n b -= 64;\n cpos += 64;\n }\n if (b > 0) {\n crypto_core_salsa20(x,z,k,sigma);\n for (i = 0; i < b; i++) c[cpos+i] = x[i];\n }\n return 0;\n}\n\nfunction crypto_stream(c,cpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20(c,cpos,d,sn,s);\n}\n\nfunction crypto_stream_xor(c,cpos,m,mpos,d,n,k) {\n var s = new Uint8Array(32);\n crypto_core_hsalsa20(s,n,k,sigma);\n var sn = new Uint8Array(8);\n for (var i = 0; i < 8; i++) sn[i] = n[i+16];\n return crypto_stream_salsa20_xor(c,cpos,m,mpos,d,sn,s);\n}\n\n/*\n* Port of Andrew Moon's Poly1305-donna-16. Public domain.\n* https://github.com/floodyberry/poly1305-donna\n*/\n\nvar poly1305 = function(key) {\n this.buffer = new Uint8Array(16);\n this.r = new Uint16Array(10);\n this.h = new Uint16Array(10);\n this.pad = new Uint16Array(8);\n this.leftover = 0;\n this.fin = 0;\n\n var t0, t1, t2, t3, t4, t5, t6, t7;\n\n t0 = key[ 0] & 0xff | (key[ 1] & 0xff) << 8; this.r[0] = ( t0 ) & 0x1fff;\n t1 = key[ 2] & 0xff | (key[ 3] & 0xff) << 8; this.r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = key[ 4] & 0xff | (key[ 5] & 0xff) << 8; this.r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n t3 = key[ 6] & 0xff | (key[ 7] & 0xff) << 8; this.r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = key[ 8] & 0xff | (key[ 9] & 0xff) << 8; this.r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this.r[5] = ((t4 >>> 1)) & 0x1ffe;\n t5 = key[10] & 0xff | (key[11] & 0xff) << 8; this.r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = key[12] & 0xff | (key[13] & 0xff) << 8; this.r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n t7 = key[14] & 0xff | (key[15] & 0xff) << 8; this.r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this.r[9] = ((t7 >>> 5)) & 0x007f;\n\n this.pad[0] = key[16] & 0xff | (key[17] & 0xff) << 8;\n this.pad[1] = key[18] & 0xff | (key[19] & 0xff) << 8;\n this.pad[2] = key[20] & 0xff | (key[21] & 0xff) << 8;\n this.pad[3] = key[22] & 0xff | (key[23] & 0xff) << 8;\n this.pad[4] = key[24] & 0xff | (key[25] & 0xff) << 8;\n this.pad[5] = key[26] & 0xff | (key[27] & 0xff) << 8;\n this.pad[6] = key[28] & 0xff | (key[29] & 0xff) << 8;\n this.pad[7] = key[30] & 0xff | (key[31] & 0xff) << 8;\n};\n\npoly1305.prototype.blocks = function(m, mpos, bytes) {\n var hibit = this.fin ? 0 : (1 << 11);\n var t0, t1, t2, t3, t4, t5, t6, t7, c;\n var d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;\n\n var h0 = this.h[0],\n h1 = this.h[1],\n h2 = this.h[2],\n h3 = this.h[3],\n h4 = this.h[4],\n h5 = this.h[5],\n h6 = this.h[6],\n h7 = this.h[7],\n h8 = this.h[8],\n h9 = this.h[9];\n\n var r0 = this.r[0],\n r1 = this.r[1],\n r2 = this.r[2],\n r3 = this.r[3],\n r4 = this.r[4],\n r5 = this.r[5],\n r6 = this.r[6],\n r7 = this.r[7],\n r8 = this.r[8],\n r9 = this.r[9];\n\n while (bytes >= 16) {\n t0 = m[mpos+ 0] & 0xff | (m[mpos+ 1] & 0xff) << 8; h0 += ( t0 ) & 0x1fff;\n t1 = m[mpos+ 2] & 0xff | (m[mpos+ 3] & 0xff) << 8; h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n t2 = m[mpos+ 4] & 0xff | (m[mpos+ 5] & 0xff) << 8; h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n t3 = m[mpos+ 6] & 0xff | (m[mpos+ 7] & 0xff) << 8; h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n t4 = m[mpos+ 8] & 0xff | (m[mpos+ 9] & 0xff) << 8; h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n t5 = m[mpos+10] & 0xff | (m[mpos+11] & 0xff) << 8; h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n t6 = m[mpos+12] & 0xff | (m[mpos+13] & 0xff) << 8; h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n t7 = m[mpos+14] & 0xff | (m[mpos+15] & 0xff) << 8; h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n\n c = 0;\n\n d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13); d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13); d0 &= 0x1fff;\n\n d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13); d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13); d1 &= 0x1fff;\n\n d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13); d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13); d2 &= 0x1fff;\n\n d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13); d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13); d3 &= 0x1fff;\n\n d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13); d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13); d4 &= 0x1fff;\n\n d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13); d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13); d5 &= 0x1fff;\n\n d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13); d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13); d6 &= 0x1fff;\n\n d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13); d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13); d7 &= 0x1fff;\n\n d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13); d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13); d8 &= 0x1fff;\n\n d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13); d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13); d9 &= 0x1fff;\n\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n\n mpos += 16;\n bytes -= 16;\n }\n this.h[0] = h0;\n this.h[1] = h1;\n this.h[2] = h2;\n this.h[3] = h3;\n this.h[4] = h4;\n this.h[5] = h5;\n this.h[6] = h6;\n this.h[7] = h7;\n this.h[8] = h8;\n this.h[9] = h9;\n};\n\npoly1305.prototype.finish = function(mac, macpos) {\n var g = new Uint16Array(10);\n var c, mask, f, i;\n\n if (this.leftover) {\n i = this.leftover;\n this.buffer[i++] = 1;\n for (; i < 16; i++) this.buffer[i] = 0;\n this.fin = 1;\n this.blocks(this.buffer, 0, 16);\n }\n\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this.h[i] += c;\n c = this.h[i] >>> 13;\n this.h[i] &= 0x1fff;\n }\n this.h[0] += (c * 5);\n c = this.h[0] >>> 13;\n this.h[0] &= 0x1fff;\n this.h[1] += c;\n c = this.h[1] >>> 13;\n this.h[1] &= 0x1fff;\n this.h[2] += c;\n\n g[0] = this.h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this.h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) g[i] &= mask;\n mask = ~mask;\n for (i = 0; i < 10; i++) this.h[i] = (this.h[i] & mask) | g[i];\n\n this.h[0] = ((this.h[0] ) | (this.h[1] << 13) ) & 0xffff;\n this.h[1] = ((this.h[1] >>> 3) | (this.h[2] << 10) ) & 0xffff;\n this.h[2] = ((this.h[2] >>> 6) | (this.h[3] << 7) ) & 0xffff;\n this.h[3] = ((this.h[3] >>> 9) | (this.h[4] << 4) ) & 0xffff;\n this.h[4] = ((this.h[4] >>> 12) | (this.h[5] << 1) | (this.h[6] << 14)) & 0xffff;\n this.h[5] = ((this.h[6] >>> 2) | (this.h[7] << 11) ) & 0xffff;\n this.h[6] = ((this.h[7] >>> 5) | (this.h[8] << 8) ) & 0xffff;\n this.h[7] = ((this.h[8] >>> 8) | (this.h[9] << 5) ) & 0xffff;\n\n f = this.h[0] + this.pad[0];\n this.h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this.h[i] + this.pad[i]) | 0) + (f >>> 16)) | 0;\n this.h[i] = f & 0xffff;\n }\n\n mac[macpos+ 0] = (this.h[0] >>> 0) & 0xff;\n mac[macpos+ 1] = (this.h[0] >>> 8) & 0xff;\n mac[macpos+ 2] = (this.h[1] >>> 0) & 0xff;\n mac[macpos+ 3] = (this.h[1] >>> 8) & 0xff;\n mac[macpos+ 4] = (this.h[2] >>> 0) & 0xff;\n mac[macpos+ 5] = (this.h[2] >>> 8) & 0xff;\n mac[macpos+ 6] = (this.h[3] >>> 0) & 0xff;\n mac[macpos+ 7] = (this.h[3] >>> 8) & 0xff;\n mac[macpos+ 8] = (this.h[4] >>> 0) & 0xff;\n mac[macpos+ 9] = (this.h[4] >>> 8) & 0xff;\n mac[macpos+10] = (this.h[5] >>> 0) & 0xff;\n mac[macpos+11] = (this.h[5] >>> 8) & 0xff;\n mac[macpos+12] = (this.h[6] >>> 0) & 0xff;\n mac[macpos+13] = (this.h[6] >>> 8) & 0xff;\n mac[macpos+14] = (this.h[7] >>> 0) & 0xff;\n mac[macpos+15] = (this.h[7] >>> 8) & 0xff;\n};\n\npoly1305.prototype.update = function(m, mpos, bytes) {\n var i, want;\n\n if (this.leftover) {\n want = (16 - this.leftover);\n if (want > bytes)\n want = bytes;\n for (i = 0; i < want; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n bytes -= want;\n mpos += want;\n this.leftover += want;\n if (this.leftover < 16)\n return;\n this.blocks(this.buffer, 0, 16);\n this.leftover = 0;\n }\n\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this.blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n\n if (bytes) {\n for (i = 0; i < bytes; i++)\n this.buffer[this.leftover + i] = m[mpos+i];\n this.leftover += bytes;\n }\n};\n\nfunction crypto_onetimeauth(out, outpos, m, mpos, n, k) {\n var s = new poly1305(k);\n s.update(m, mpos, n);\n s.finish(out, outpos);\n return 0;\n}\n\nfunction crypto_onetimeauth_verify(h, hpos, m, mpos, n, k) {\n var x = new Uint8Array(16);\n crypto_onetimeauth(x,0,m,mpos,n,k);\n return crypto_verify_16(h,hpos,x,0);\n}\n\nfunction crypto_secretbox(c,m,d,n,k) {\n var i;\n if (d < 32) return -1;\n crypto_stream_xor(c,0,m,0,d,n,k);\n crypto_onetimeauth(c, 16, c, 32, d - 32, c);\n for (i = 0; i < 16; i++) c[i] = 0;\n return 0;\n}\n\nfunction crypto_secretbox_open(m,c,d,n,k) {\n var i;\n var x = new Uint8Array(32);\n if (d < 32) return -1;\n crypto_stream(x,0,32,n,k);\n if (crypto_onetimeauth_verify(c, 16,c, 32,d - 32,x) !== 0) return -1;\n crypto_stream_xor(m,0,c,0,d,n,k);\n for (i = 0; i < 32; i++) m[i] = 0;\n return 0;\n}\n\nfunction set25519(r, a) {\n var i;\n for (i = 0; i < 16; i++) r[i] = a[i]|0;\n}\n\nfunction car25519(o) {\n var i, v, c = 1;\n for (i = 0; i < 16; i++) {\n v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c-1 + 37 * (c-1);\n}\n\nfunction sel25519(p, q, b) {\n var t, c = ~(b-1);\n for (var i = 0; i < 16; i++) {\n t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\n\nfunction pack25519(o, n) {\n var i, j, b;\n var m = gf(), t = gf();\n for (i = 0; i < 16; i++) t[i] = n[i];\n car25519(t);\n car25519(t);\n car25519(t);\n for (j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i-1]>>16) & 1);\n m[i-1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14]>>16) & 1);\n b = (m[15]>>16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1-b);\n }\n for (i = 0; i < 16; i++) {\n o[2*i] = t[i] & 0xff;\n o[2*i+1] = t[i]>>8;\n }\n}\n\nfunction neq25519(a, b) {\n var c = new Uint8Array(32), d = new Uint8Array(32);\n pack25519(c, a);\n pack25519(d, b);\n return crypto_verify_32(c, 0, d, 0);\n}\n\nfunction par25519(a) {\n var d = new Uint8Array(32);\n pack25519(d, a);\n return d[0] & 1;\n}\n\nfunction unpack25519(o, n) {\n var i;\n for (i = 0; i < 16; i++) o[i] = n[2*i] + (n[2*i+1] << 8);\n o[15] &= 0x7fff;\n}\n\nfunction A(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] + b[i];\n}\n\nfunction Z(o, a, b) {\n for (var i = 0; i < 16; i++) o[i] = a[i] - b[i];\n}\n\nfunction M(o, a, b) {\n var v, c,\n t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0,\n t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0,\n t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0,\n t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0,\n b0 = b[0],\n b1 = b[1],\n b2 = b[2],\n b3 = b[3],\n b4 = b[4],\n b5 = b[5],\n b6 = b[6],\n b7 = b[7],\n b8 = b[8],\n b9 = b[9],\n b10 = b[10],\n b11 = b[11],\n b12 = b[12],\n b13 = b[13],\n b14 = b[14],\n b15 = b[15];\n\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n\n // first car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n // second car\n c = 1;\n v = t0 + c + 65535; c = Math.floor(v / 65536); t0 = v - c * 65536;\n v = t1 + c + 65535; c = Math.floor(v / 65536); t1 = v - c * 65536;\n v = t2 + c + 65535; c = Math.floor(v / 65536); t2 = v - c * 65536;\n v = t3 + c + 65535; c = Math.floor(v / 65536); t3 = v - c * 65536;\n v = t4 + c + 65535; c = Math.floor(v / 65536); t4 = v - c * 65536;\n v = t5 + c + 65535; c = Math.floor(v / 65536); t5 = v - c * 65536;\n v = t6 + c + 65535; c = Math.floor(v / 65536); t6 = v - c * 65536;\n v = t7 + c + 65535; c = Math.floor(v / 65536); t7 = v - c * 65536;\n v = t8 + c + 65535; c = Math.floor(v / 65536); t8 = v - c * 65536;\n v = t9 + c + 65535; c = Math.floor(v / 65536); t9 = v - c * 65536;\n v = t10 + c + 65535; c = Math.floor(v / 65536); t10 = v - c * 65536;\n v = t11 + c + 65535; c = Math.floor(v / 65536); t11 = v - c * 65536;\n v = t12 + c + 65535; c = Math.floor(v / 65536); t12 = v - c * 65536;\n v = t13 + c + 65535; c = Math.floor(v / 65536); t13 = v - c * 65536;\n v = t14 + c + 65535; c = Math.floor(v / 65536); t14 = v - c * 65536;\n v = t15 + c + 65535; c = Math.floor(v / 65536); t15 = v - c * 65536;\n t0 += c-1 + 37 * (c-1);\n\n o[ 0] = t0;\n o[ 1] = t1;\n o[ 2] = t2;\n o[ 3] = t3;\n o[ 4] = t4;\n o[ 5] = t5;\n o[ 6] = t6;\n o[ 7] = t7;\n o[ 8] = t8;\n o[ 9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\n\nfunction S(o, a) {\n M(o, a, a);\n}\n\nfunction inv25519(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 253; a >= 0; a--) {\n S(c, c);\n if(a !== 2 && a !== 4) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction pow2523(o, i) {\n var c = gf();\n var a;\n for (a = 0; a < 16; a++) c[a] = i[a];\n for (a = 250; a >= 0; a--) {\n S(c, c);\n if(a !== 1) M(c, c, i);\n }\n for (a = 0; a < 16; a++) o[a] = c[a];\n}\n\nfunction crypto_scalarmult(q, n, p) {\n var z = new Uint8Array(32);\n var x = new Float64Array(80), r, i;\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf();\n for (i = 0; i < 31; i++) z[i] = n[i];\n z[31]=(n[31]&127)|64;\n z[0]&=248;\n unpack25519(x,p);\n for (i = 0; i < 16; i++) {\n b[i]=x[i];\n d[i]=a[i]=c[i]=0;\n }\n a[0]=d[0]=1;\n for (i=254; i>=0; --i) {\n r=(z[i>>>3]>>>(i&7))&1;\n sel25519(a,b,r);\n sel25519(c,d,r);\n A(e,a,c);\n Z(a,a,c);\n A(c,b,d);\n Z(b,b,d);\n S(d,e);\n S(f,a);\n M(a,c,a);\n M(c,b,e);\n A(e,a,c);\n Z(a,a,c);\n S(b,a);\n Z(c,d,f);\n M(a,c,_121665);\n A(a,a,d);\n M(c,c,a);\n M(a,d,f);\n M(d,b,x);\n S(b,e);\n sel25519(a,b,r);\n sel25519(c,d,r);\n }\n for (i = 0; i < 16; i++) {\n x[i+16]=a[i];\n x[i+32]=c[i];\n x[i+48]=b[i];\n x[i+64]=d[i];\n }\n var x32 = x.subarray(32);\n var x16 = x.subarray(16);\n inv25519(x32,x32);\n M(x16,x16,x32);\n pack25519(q,x16);\n return 0;\n}\n\nfunction crypto_scalarmult_base(q, n) {\n return crypto_scalarmult(q, n, _9);\n}\n\nfunction crypto_box_keypair(y, x) {\n randombytes(x, 32);\n return crypto_scalarmult_base(y, x);\n}\n\nfunction crypto_box_beforenm(k, y, x) {\n var s = new Uint8Array(32);\n crypto_scalarmult(s, x, y);\n return crypto_core_hsalsa20(k, _0, s, sigma);\n}\n\nvar crypto_box_afternm = crypto_secretbox;\nvar crypto_box_open_afternm = crypto_secretbox_open;\n\nfunction crypto_box(c, m, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_afternm(c, m, d, n, k);\n}\n\nfunction crypto_box_open(m, c, d, n, y, x) {\n var k = new Uint8Array(32);\n crypto_box_beforenm(k, y, x);\n return crypto_box_open_afternm(m, c, d, n, k);\n}\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction crypto_hashblocks_hl(hh, hl, m, n) {\n var wh = new Int32Array(16), wl = new Int32Array(16),\n bh0, bh1, bh2, bh3, bh4, bh5, bh6, bh7,\n bl0, bl1, bl2, bl3, bl4, bl5, bl6, bl7,\n th, tl, i, j, h, l, a, b, c, d;\n\n var ah0 = hh[0],\n ah1 = hh[1],\n ah2 = hh[2],\n ah3 = hh[3],\n ah4 = hh[4],\n ah5 = hh[5],\n ah6 = hh[6],\n ah7 = hh[7],\n\n al0 = hl[0],\n al1 = hl[1],\n al2 = hl[2],\n al3 = hl[3],\n al4 = hl[4],\n al5 = hl[5],\n al6 = hl[6],\n al7 = hl[7];\n\n var pos = 0;\n while (n >= 128) {\n for (i = 0; i < 16; i++) {\n j = 8 * i + pos;\n wh[i] = (m[j+0] << 24) | (m[j+1] << 16) | (m[j+2] << 8) | m[j+3];\n wl[i] = (m[j+4] << 24) | (m[j+5] << 16) | (m[j+6] << 8) | m[j+7];\n }\n for (i = 0; i < 80; i++) {\n bh0 = ah0;\n bh1 = ah1;\n bh2 = ah2;\n bh3 = ah3;\n bh4 = ah4;\n bh5 = ah5;\n bh6 = ah6;\n bh7 = ah7;\n\n bl0 = al0;\n bl1 = al1;\n bl2 = al2;\n bl3 = al3;\n bl4 = al4;\n bl5 = al5;\n bl6 = al6;\n bl7 = al7;\n\n // add\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma1\n h = ((ah4 >>> 14) | (al4 << (32-14))) ^ ((ah4 >>> 18) | (al4 << (32-18))) ^ ((al4 >>> (41-32)) | (ah4 << (32-(41-32))));\n l = ((al4 >>> 14) | (ah4 << (32-14))) ^ ((al4 >>> 18) | (ah4 << (32-18))) ^ ((ah4 >>> (41-32)) | (al4 << (32-(41-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Ch\n h = (ah4 & ah5) ^ (~ah4 & ah6);\n l = (al4 & al5) ^ (~al4 & al6);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // K\n h = K[i*2];\n l = K[i*2+1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // w\n h = wh[i%16];\n l = wl[i%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n th = c & 0xffff | d << 16;\n tl = a & 0xffff | b << 16;\n\n // add\n h = th;\n l = tl;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n // Sigma0\n h = ((ah0 >>> 28) | (al0 << (32-28))) ^ ((al0 >>> (34-32)) | (ah0 << (32-(34-32)))) ^ ((al0 >>> (39-32)) | (ah0 << (32-(39-32))));\n l = ((al0 >>> 28) | (ah0 << (32-28))) ^ ((ah0 >>> (34-32)) | (al0 << (32-(34-32)))) ^ ((ah0 >>> (39-32)) | (al0 << (32-(39-32))));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // Maj\n h = (ah0 & ah1) ^ (ah0 & ah2) ^ (ah1 & ah2);\n l = (al0 & al1) ^ (al0 & al2) ^ (al1 & al2);\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh7 = (c & 0xffff) | (d << 16);\n bl7 = (a & 0xffff) | (b << 16);\n\n // add\n h = bh3;\n l = bl3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = th;\n l = tl;\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n bh3 = (c & 0xffff) | (d << 16);\n bl3 = (a & 0xffff) | (b << 16);\n\n ah1 = bh0;\n ah2 = bh1;\n ah3 = bh2;\n ah4 = bh3;\n ah5 = bh4;\n ah6 = bh5;\n ah7 = bh6;\n ah0 = bh7;\n\n al1 = bl0;\n al2 = bl1;\n al3 = bl2;\n al4 = bl3;\n al5 = bl4;\n al6 = bl5;\n al7 = bl6;\n al0 = bl7;\n\n if (i%16 === 15) {\n for (j = 0; j < 16; j++) {\n // add\n h = wh[j];\n l = wl[j];\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = wh[(j+9)%16];\n l = wl[(j+9)%16];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma0\n th = wh[(j+1)%16];\n tl = wl[(j+1)%16];\n h = ((th >>> 1) | (tl << (32-1))) ^ ((th >>> 8) | (tl << (32-8))) ^ (th >>> 7);\n l = ((tl >>> 1) | (th << (32-1))) ^ ((tl >>> 8) | (th << (32-8))) ^ ((tl >>> 7) | (th << (32-7)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n // sigma1\n th = wh[(j+14)%16];\n tl = wl[(j+14)%16];\n h = ((th >>> 19) | (tl << (32-19))) ^ ((tl >>> (61-32)) | (th << (32-(61-32)))) ^ (th >>> 6);\n l = ((tl >>> 19) | (th << (32-19))) ^ ((th >>> (61-32)) | (tl << (32-(61-32)))) ^ ((tl >>> 6) | (th << (32-6)));\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n wh[j] = (c & 0xffff) | (d << 16);\n wl[j] = (a & 0xffff) | (b << 16);\n }\n }\n }\n\n // add\n h = ah0;\n l = al0;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[0];\n l = hl[0];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[0] = ah0 = (c & 0xffff) | (d << 16);\n hl[0] = al0 = (a & 0xffff) | (b << 16);\n\n h = ah1;\n l = al1;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[1];\n l = hl[1];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[1] = ah1 = (c & 0xffff) | (d << 16);\n hl[1] = al1 = (a & 0xffff) | (b << 16);\n\n h = ah2;\n l = al2;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[2];\n l = hl[2];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[2] = ah2 = (c & 0xffff) | (d << 16);\n hl[2] = al2 = (a & 0xffff) | (b << 16);\n\n h = ah3;\n l = al3;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[3];\n l = hl[3];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[3] = ah3 = (c & 0xffff) | (d << 16);\n hl[3] = al3 = (a & 0xffff) | (b << 16);\n\n h = ah4;\n l = al4;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[4];\n l = hl[4];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[4] = ah4 = (c & 0xffff) | (d << 16);\n hl[4] = al4 = (a & 0xffff) | (b << 16);\n\n h = ah5;\n l = al5;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[5];\n l = hl[5];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[5] = ah5 = (c & 0xffff) | (d << 16);\n hl[5] = al5 = (a & 0xffff) | (b << 16);\n\n h = ah6;\n l = al6;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[6];\n l = hl[6];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[6] = ah6 = (c & 0xffff) | (d << 16);\n hl[6] = al6 = (a & 0xffff) | (b << 16);\n\n h = ah7;\n l = al7;\n\n a = l & 0xffff; b = l >>> 16;\n c = h & 0xffff; d = h >>> 16;\n\n h = hh[7];\n l = hl[7];\n\n a += l & 0xffff; b += l >>> 16;\n c += h & 0xffff; d += h >>> 16;\n\n b += a >>> 16;\n c += b >>> 16;\n d += c >>> 16;\n\n hh[7] = ah7 = (c & 0xffff) | (d << 16);\n hl[7] = al7 = (a & 0xffff) | (b << 16);\n\n pos += 128;\n n -= 128;\n }\n\n return n;\n}\n\nfunction crypto_hash(out, m, n) {\n var hh = new Int32Array(8),\n hl = new Int32Array(8),\n x = new Uint8Array(256),\n i, b = n;\n\n hh[0] = 0x6a09e667;\n hh[1] = 0xbb67ae85;\n hh[2] = 0x3c6ef372;\n hh[3] = 0xa54ff53a;\n hh[4] = 0x510e527f;\n hh[5] = 0x9b05688c;\n hh[6] = 0x1f83d9ab;\n hh[7] = 0x5be0cd19;\n\n hl[0] = 0xf3bcc908;\n hl[1] = 0x84caa73b;\n hl[2] = 0xfe94f82b;\n hl[3] = 0x5f1d36f1;\n hl[4] = 0xade682d1;\n hl[5] = 0x2b3e6c1f;\n hl[6] = 0xfb41bd6b;\n hl[7] = 0x137e2179;\n\n crypto_hashblocks_hl(hh, hl, m, n);\n n %= 128;\n\n for (i = 0; i < n; i++) x[i] = m[b-n+i];\n x[n] = 128;\n\n n = 256-128*(n<112?1:0);\n x[n-9] = 0;\n ts64(x, n-8, (b / 0x20000000) | 0, b << 3);\n crypto_hashblocks_hl(hh, hl, x, n);\n\n for (i = 0; i < 8; i++) ts64(out, 8*i, hh[i], hl[i]);\n\n return 0;\n}\n\nfunction add(p, q) {\n var a = gf(), b = gf(), c = gf(),\n d = gf(), e = gf(), f = gf(),\n g = gf(), h = gf(), t = gf();\n\n Z(a, p[1], p[0]);\n Z(t, q[1], q[0]);\n M(a, a, t);\n A(b, p[0], p[1]);\n A(t, q[0], q[1]);\n M(b, b, t);\n M(c, p[3], q[3]);\n M(c, c, D2);\n M(d, p[2], q[2]);\n A(d, d, d);\n Z(e, b, a);\n Z(f, d, c);\n A(g, d, c);\n A(h, b, a);\n\n M(p[0], e, f);\n M(p[1], h, g);\n M(p[2], g, f);\n M(p[3], e, h);\n}\n\nfunction cswap(p, q, b) {\n var i;\n for (i = 0; i < 4; i++) {\n sel25519(p[i], q[i], b);\n }\n}\n\nfunction pack(r, p) {\n var tx = gf(), ty = gf(), zi = gf();\n inv25519(zi, p[2]);\n M(tx, p[0], zi);\n M(ty, p[1], zi);\n pack25519(r, ty);\n r[31] ^= par25519(tx) << 7;\n}\n\nfunction scalarmult(p, q, s) {\n var b, i;\n set25519(p[0], gf0);\n set25519(p[1], gf1);\n set25519(p[2], gf1);\n set25519(p[3], gf0);\n for (i = 255; i >= 0; --i) {\n b = (s[(i/8)|0] >> (i&7)) & 1;\n cswap(p, q, b);\n add(q, p);\n add(p, p);\n cswap(p, q, b);\n }\n}\n\nfunction scalarbase(p, s) {\n var q = [gf(), gf(), gf(), gf()];\n set25519(q[0], X);\n set25519(q[1], Y);\n set25519(q[2], gf1);\n M(q[3], X, Y);\n scalarmult(p, q, s);\n}\n\nfunction crypto_sign_keypair(pk, sk, seeded) {\n var d = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()];\n var i;\n\n if (!seeded) randombytes(sk, 32);\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n scalarbase(p, d);\n pack(pk, p);\n\n for (i = 0; i < 32; i++) sk[i+32] = pk[i];\n return 0;\n}\n\nvar L = new Float64Array([0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x10]);\n\nfunction modL(r, x) {\n var carry, i, j, k;\n for (i = 63; i >= 32; --i) {\n carry = 0;\n for (j = i - 32, k = i - 12; j < k; ++j) {\n x[j] += carry - 16 * x[i] * L[j - (i - 32)];\n carry = Math.floor((x[j] + 128) / 256);\n x[j] -= carry * 256;\n }\n x[j] += carry;\n x[i] = 0;\n }\n carry = 0;\n for (j = 0; j < 32; j++) {\n x[j] += carry - (x[31] >> 4) * L[j];\n carry = x[j] >> 8;\n x[j] &= 255;\n }\n for (j = 0; j < 32; j++) x[j] -= carry * L[j];\n for (i = 0; i < 32; i++) {\n x[i+1] += x[i] >> 8;\n r[i] = x[i] & 255;\n }\n}\n\nfunction reduce(r) {\n var x = new Float64Array(64), i;\n for (i = 0; i < 64; i++) x[i] = r[i];\n for (i = 0; i < 64; i++) r[i] = 0;\n modL(r, x);\n}\n\n// Note: difference from C - smlen returned, not passed as argument.\nfunction crypto_sign(sm, m, n, sk) {\n var d = new Uint8Array(64), h = new Uint8Array(64), r = new Uint8Array(64);\n var i, j, x = new Float64Array(64);\n var p = [gf(), gf(), gf(), gf()];\n\n crypto_hash(d, sk, 32);\n d[0] &= 248;\n d[31] &= 127;\n d[31] |= 64;\n\n var smlen = n + 64;\n for (i = 0; i < n; i++) sm[64 + i] = m[i];\n for (i = 0; i < 32; i++) sm[32 + i] = d[32 + i];\n\n crypto_hash(r, sm.subarray(32), n+32);\n reduce(r);\n scalarbase(p, r);\n pack(sm, p);\n\n for (i = 32; i < 64; i++) sm[i] = sk[i];\n crypto_hash(h, sm, n + 64);\n reduce(h);\n\n for (i = 0; i < 64; i++) x[i] = 0;\n for (i = 0; i < 32; i++) x[i] = r[i];\n for (i = 0; i < 32; i++) {\n for (j = 0; j < 32; j++) {\n x[i+j] += h[i] * d[j];\n }\n }\n\n modL(sm.subarray(32), x);\n return smlen;\n}\n\nfunction unpackneg(r, p) {\n var t = gf(), chk = gf(), num = gf(),\n den = gf(), den2 = gf(), den4 = gf(),\n den6 = gf();\n\n set25519(r[2], gf1);\n unpack25519(r[1], p);\n S(num, r[1]);\n M(den, num, D);\n Z(num, num, r[2]);\n A(den, r[2], den);\n\n S(den2, den);\n S(den4, den2);\n M(den6, den4, den2);\n M(t, den6, num);\n M(t, t, den);\n\n pow2523(t, t);\n M(t, t, num);\n M(t, t, den);\n M(t, t, den);\n M(r[0], t, den);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) M(r[0], r[0], I);\n\n S(chk, r[0]);\n M(chk, chk, den);\n if (neq25519(chk, num)) return -1;\n\n if (par25519(r[0]) === (p[31]>>7)) Z(r[0], gf0, r[0]);\n\n M(r[3], r[0], r[1]);\n return 0;\n}\n\nfunction crypto_sign_open(m, sm, n, pk) {\n var i;\n var t = new Uint8Array(32), h = new Uint8Array(64);\n var p = [gf(), gf(), gf(), gf()],\n q = [gf(), gf(), gf(), gf()];\n\n if (n < 64) return -1;\n\n if (unpackneg(q, pk)) return -1;\n\n for (i = 0; i < n; i++) m[i] = sm[i];\n for (i = 0; i < 32; i++) m[i+32] = pk[i];\n crypto_hash(h, m, n);\n reduce(h);\n scalarmult(p, q, h);\n\n scalarbase(q, sm.subarray(32));\n add(p, q);\n pack(t, p);\n\n n -= 64;\n if (crypto_verify_32(sm, 0, t, 0)) {\n for (i = 0; i < n; i++) m[i] = 0;\n return -1;\n }\n\n for (i = 0; i < n; i++) m[i] = sm[i + 64];\n return n;\n}\n\nvar crypto_secretbox_KEYBYTES = 32,\n crypto_secretbox_NONCEBYTES = 24,\n crypto_secretbox_ZEROBYTES = 32,\n crypto_secretbox_BOXZEROBYTES = 16,\n crypto_scalarmult_BYTES = 32,\n crypto_scalarmult_SCALARBYTES = 32,\n crypto_box_PUBLICKEYBYTES = 32,\n crypto_box_SECRETKEYBYTES = 32,\n crypto_box_BEFORENMBYTES = 32,\n crypto_box_NONCEBYTES = crypto_secretbox_NONCEBYTES,\n crypto_box_ZEROBYTES = crypto_secretbox_ZEROBYTES,\n crypto_box_BOXZEROBYTES = crypto_secretbox_BOXZEROBYTES,\n crypto_sign_BYTES = 64,\n crypto_sign_PUBLICKEYBYTES = 32,\n crypto_sign_SECRETKEYBYTES = 64,\n crypto_sign_SEEDBYTES = 32,\n crypto_hash_BYTES = 64;\n\nnacl.lowlevel = {\n crypto_core_hsalsa20: crypto_core_hsalsa20,\n crypto_stream_xor: crypto_stream_xor,\n crypto_stream: crypto_stream,\n crypto_stream_salsa20_xor: crypto_stream_salsa20_xor,\n crypto_stream_salsa20: crypto_stream_salsa20,\n crypto_onetimeauth: crypto_onetimeauth,\n crypto_onetimeauth_verify: crypto_onetimeauth_verify,\n crypto_verify_16: crypto_verify_16,\n crypto_verify_32: crypto_verify_32,\n crypto_secretbox: crypto_secretbox,\n crypto_secretbox_open: crypto_secretbox_open,\n crypto_scalarmult: crypto_scalarmult,\n crypto_scalarmult_base: crypto_scalarmult_base,\n crypto_box_beforenm: crypto_box_beforenm,\n crypto_box_afternm: crypto_box_afternm,\n crypto_box: crypto_box,\n crypto_box_open: crypto_box_open,\n crypto_box_keypair: crypto_box_keypair,\n crypto_hash: crypto_hash,\n crypto_sign: crypto_sign,\n crypto_sign_keypair: crypto_sign_keypair,\n crypto_sign_open: crypto_sign_open,\n\n crypto_secretbox_KEYBYTES: crypto_secretbox_KEYBYTES,\n crypto_secretbox_NONCEBYTES: crypto_secretbox_NONCEBYTES,\n crypto_secretbox_ZEROBYTES: crypto_secretbox_ZEROBYTES,\n crypto_secretbox_BOXZEROBYTES: crypto_secretbox_BOXZEROBYTES,\n crypto_scalarmult_BYTES: crypto_scalarmult_BYTES,\n crypto_scalarmult_SCALARBYTES: crypto_scalarmult_SCALARBYTES,\n crypto_box_PUBLICKEYBYTES: crypto_box_PUBLICKEYBYTES,\n crypto_box_SECRETKEYBYTES: crypto_box_SECRETKEYBYTES,\n crypto_box_BEFORENMBYTES: crypto_box_BEFORENMBYTES,\n crypto_box_NONCEBYTES: crypto_box_NONCEBYTES,\n crypto_box_ZEROBYTES: crypto_box_ZEROBYTES,\n crypto_box_BOXZEROBYTES: crypto_box_BOXZEROBYTES,\n crypto_sign_BYTES: crypto_sign_BYTES,\n crypto_sign_PUBLICKEYBYTES: crypto_sign_PUBLICKEYBYTES,\n crypto_sign_SECRETKEYBYTES: crypto_sign_SECRETKEYBYTES,\n crypto_sign_SEEDBYTES: crypto_sign_SEEDBYTES,\n crypto_hash_BYTES: crypto_hash_BYTES,\n\n gf: gf,\n D: D,\n L: L,\n pack25519: pack25519,\n unpack25519: unpack25519,\n M: M,\n A: A,\n S: S,\n Z: Z,\n pow2523: pow2523,\n add: add,\n set25519: set25519,\n modL: modL,\n scalarmult: scalarmult,\n scalarbase: scalarbase,\n};\n\n/* High-level API */\n\nfunction checkLengths(k, n) {\n if (k.length !== crypto_secretbox_KEYBYTES) throw new Error('bad key size');\n if (n.length !== crypto_secretbox_NONCEBYTES) throw new Error('bad nonce size');\n}\n\nfunction checkBoxLengths(pk, sk) {\n if (pk.length !== crypto_box_PUBLICKEYBYTES) throw new Error('bad public key size');\n if (sk.length !== crypto_box_SECRETKEYBYTES) throw new Error('bad secret key size');\n}\n\nfunction checkArrayTypes() {\n for (var i = 0; i < arguments.length; i++) {\n if (!(arguments[i] instanceof Uint8Array))\n throw new TypeError('unexpected type, use Uint8Array');\n }\n}\n\nfunction cleanup(arr) {\n for (var i = 0; i < arr.length; i++) arr[i] = 0;\n}\n\nnacl.randomBytes = function(n) {\n var b = new Uint8Array(n);\n randombytes(b, n);\n return b;\n};\n\nnacl.secretbox = function(msg, nonce, key) {\n checkArrayTypes(msg, nonce, key);\n checkLengths(key, nonce);\n var m = new Uint8Array(crypto_secretbox_ZEROBYTES + msg.length);\n var c = new Uint8Array(m.length);\n for (var i = 0; i < msg.length; i++) m[i+crypto_secretbox_ZEROBYTES] = msg[i];\n crypto_secretbox(c, m, m.length, nonce, key);\n return c.subarray(crypto_secretbox_BOXZEROBYTES);\n};\n\nnacl.secretbox.open = function(box, nonce, key) {\n checkArrayTypes(box, nonce, key);\n checkLengths(key, nonce);\n var c = new Uint8Array(crypto_secretbox_BOXZEROBYTES + box.length);\n var m = new Uint8Array(c.length);\n for (var i = 0; i < box.length; i++) c[i+crypto_secretbox_BOXZEROBYTES] = box[i];\n if (c.length < 32) return null;\n if (crypto_secretbox_open(m, c, c.length, nonce, key) !== 0) return null;\n return m.subarray(crypto_secretbox_ZEROBYTES);\n};\n\nnacl.secretbox.keyLength = crypto_secretbox_KEYBYTES;\nnacl.secretbox.nonceLength = crypto_secretbox_NONCEBYTES;\nnacl.secretbox.overheadLength = crypto_secretbox_BOXZEROBYTES;\n\nnacl.scalarMult = function(n, p) {\n checkArrayTypes(n, p);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n if (p.length !== crypto_scalarmult_BYTES) throw new Error('bad p size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult(q, n, p);\n return q;\n};\n\nnacl.scalarMult.base = function(n) {\n checkArrayTypes(n);\n if (n.length !== crypto_scalarmult_SCALARBYTES) throw new Error('bad n size');\n var q = new Uint8Array(crypto_scalarmult_BYTES);\n crypto_scalarmult_base(q, n);\n return q;\n};\n\nnacl.scalarMult.scalarLength = crypto_scalarmult_SCALARBYTES;\nnacl.scalarMult.groupElementLength = crypto_scalarmult_BYTES;\n\nnacl.box = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox(msg, nonce, k);\n};\n\nnacl.box.before = function(publicKey, secretKey) {\n checkArrayTypes(publicKey, secretKey);\n checkBoxLengths(publicKey, secretKey);\n var k = new Uint8Array(crypto_box_BEFORENMBYTES);\n crypto_box_beforenm(k, publicKey, secretKey);\n return k;\n};\n\nnacl.box.after = nacl.secretbox;\n\nnacl.box.open = function(msg, nonce, publicKey, secretKey) {\n var k = nacl.box.before(publicKey, secretKey);\n return nacl.secretbox.open(msg, nonce, k);\n};\n\nnacl.box.open.after = nacl.secretbox.open;\n\nnacl.box.keyPair = function() {\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_box_SECRETKEYBYTES);\n crypto_box_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.box.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_box_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_box_PUBLICKEYBYTES);\n crypto_scalarmult_base(pk, secretKey);\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.box.publicKeyLength = crypto_box_PUBLICKEYBYTES;\nnacl.box.secretKeyLength = crypto_box_SECRETKEYBYTES;\nnacl.box.sharedKeyLength = crypto_box_BEFORENMBYTES;\nnacl.box.nonceLength = crypto_box_NONCEBYTES;\nnacl.box.overheadLength = nacl.secretbox.overheadLength;\n\nnacl.sign = function(msg, secretKey) {\n checkArrayTypes(msg, secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var signedMsg = new Uint8Array(crypto_sign_BYTES+msg.length);\n crypto_sign(signedMsg, msg, msg.length, secretKey);\n return signedMsg;\n};\n\nnacl.sign.open = function(signedMsg, publicKey) {\n checkArrayTypes(signedMsg, publicKey);\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var tmp = new Uint8Array(signedMsg.length);\n var mlen = crypto_sign_open(tmp, signedMsg, signedMsg.length, publicKey);\n if (mlen < 0) return null;\n var m = new Uint8Array(mlen);\n for (var i = 0; i < m.length; i++) m[i] = tmp[i];\n return m;\n};\n\nnacl.sign.detached = function(msg, secretKey) {\n var signedMsg = nacl.sign(msg, secretKey);\n var sig = new Uint8Array(crypto_sign_BYTES);\n for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\n return sig;\n};\n\nnacl.sign.detached.verify = function(msg, sig, publicKey) {\n checkArrayTypes(msg, sig, publicKey);\n if (sig.length !== crypto_sign_BYTES)\n throw new Error('bad signature size');\n if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\n throw new Error('bad public key size');\n var sm = new Uint8Array(crypto_sign_BYTES + msg.length);\n var m = new Uint8Array(crypto_sign_BYTES + msg.length);\n var i;\n for (i = 0; i < crypto_sign_BYTES; i++) sm[i] = sig[i];\n for (i = 0; i < msg.length; i++) sm[i+crypto_sign_BYTES] = msg[i];\n return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\n};\n\nnacl.sign.keyPair = function() {\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n crypto_sign_keypair(pk, sk);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.keyPair.fromSecretKey = function(secretKey) {\n checkArrayTypes(secretKey);\n if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\n throw new Error('bad secret key size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n for (var i = 0; i < pk.length; i++) pk[i] = secretKey[32+i];\n return {publicKey: pk, secretKey: new Uint8Array(secretKey)};\n};\n\nnacl.sign.keyPair.fromSeed = function(seed) {\n checkArrayTypes(seed);\n if (seed.length !== crypto_sign_SEEDBYTES)\n throw new Error('bad seed size');\n var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\n var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\n for (var i = 0; i < 32; i++) sk[i] = seed[i];\n crypto_sign_keypair(pk, sk, true);\n return {publicKey: pk, secretKey: sk};\n};\n\nnacl.sign.publicKeyLength = crypto_sign_PUBLICKEYBYTES;\nnacl.sign.secretKeyLength = crypto_sign_SECRETKEYBYTES;\nnacl.sign.seedLength = crypto_sign_SEEDBYTES;\nnacl.sign.signatureLength = crypto_sign_BYTES;\n\nnacl.hash = function(msg) {\n checkArrayTypes(msg);\n var h = new Uint8Array(crypto_hash_BYTES);\n crypto_hash(h, msg, msg.length);\n return h;\n};\n\nnacl.hash.hashLength = crypto_hash_BYTES;\n\nnacl.verify = function(x, y) {\n checkArrayTypes(x, y);\n // Zero length arguments are considered not equal.\n if (x.length === 0 || y.length === 0) return false;\n if (x.length !== y.length) return false;\n return (vn(x, 0, y, 0, x.length) === 0) ? true : false;\n};\n\nnacl.setPRNG = function(fn) {\n randombytes = fn;\n};\n\n(function() {\n // Initialize PRNG if environment provides CSPRNG.\n // If not, methods calling randombytes will throw.\n var crypto = typeof self !== 'undefined' ? (self.crypto || self.msCrypto) : null;\n if (crypto && crypto.getRandomValues) {\n // Browsers.\n var QUOTA = 65536;\n nacl.setPRNG(function(x, n) {\n var i, v = new Uint8Array(n);\n for (i = 0; i < n; i += QUOTA) {\n crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));\n }\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n } else if (typeof require !== 'undefined') {\n // Node.js.\n crypto = require('crypto');\n if (crypto && crypto.randomBytes) {\n nacl.setPRNG(function(x, n) {\n var i, v = crypto.randomBytes(n);\n for (i = 0; i < n; i++) x[i] = v[i];\n cleanup(v);\n });\n }\n }\n})();\n\n})(typeof module !== 'undefined' && module.exports ? module.exports : (self.nacl = self.nacl || {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar generic_logger_typings_1 = require(\"generic-logger-typings\");\nvar index_1 = require(\"./index\");\n// Global function that takes a request (after being filtered), send it to the API and gives us its response\nfunction execute(request) {\n var log = (0, index_1.getLogger)();\n // Returns a new Promise\n return new Promise(function (resolve, reject) {\n var traceMessage = '';\n if (log === null || log === void 0 ? void 0 : log.isLevelEnabled(generic_logger_typings_1.LogLevel.TRACE)) {\n // Takes care of the logs\n traceMessage = request.method + \" \" + request.url;\n if (request.body) {\n if (typeof request.body === 'string') {\n traceMessage += \" --> \" + request.body;\n }\n else if (!(request.body instanceof Blob ||\n request.body instanceof ArrayBuffer\n || request.body instanceof ReadableStream\n || request.body instanceof Document)) {\n traceMessage += \" --> \" + JSON.stringify(request.body);\n }\n }\n }\n // Creating a new XMLHttpRequest and giving it two properties from the request this method received\n // This will be the request we will send to the server\n if (request.isAborted) {\n request.readyState = 4;\n reject(new index_1.Response(request, 0, 'OK', {}, null));\n }\n else {\n var xhr_1 = new XMLHttpRequest();\n request.xhr = xhr_1;\n xhr_1.withCredentials = request.withCredentials;\n xhr_1.timeout = request.timeout;\n try {\n xhr_1.upload.onloadstart = request.upload.onloadstart;\n xhr_1.upload.onprogress = request.upload.onprogress;\n }\n catch (e) { /* ignore error NodeJs only */ }\n // This internal method takes the xml request and retrieves headers from it\n var parseResponseHeaders_1 = function (request) {\n // Creates a map of header names to values\n var headerMap = {};\n // Gets the raw header string\n var headers = request.getAllResponseHeaders();\n if (headers) {\n // Converts the header string into an array\n // of individual headers\n var arr = headers.trim().split(/[\\r\\n]+/);\n // Splits every header in multiple key-value pairs\n arr.forEach(function (line) {\n line = line.trim();\n if (line.length > 0) {\n var parts = line.split(': ');\n if (parts.length >= 2) {\n var header = parts.shift();\n headerMap[header] = parts.join(': ');\n }\n }\n });\n }\n return headerMap;\n };\n // This internal method takes an XMLHttpRequest and will return a Response\n // The request of the returned Response will stay as it was, only its readystate will be updated\n // The rest of the returned Repsponse will be update accordingly to the XMLHttpRequest this method receives\n var buildResponseAndUpdateRequest_1 = function (req) {\n // Puting the newly received ready state in the request the global method received\n // because we will return it contained in the Response\n request.readyState = req.readyState;\n // Getting the response of the XMLHttpRequest we receive\n var responseBody = req.response;\n // Some implementations of XMLHttpRequest ignore the \"json\" responseType\n // Checking if the form of the request the parent method received is correct\n if (request.responseType === 'json'\n && typeof responseBody === 'string'\n && (req.responseType === '' || req.responseType === 'text')\n && responseBody.length === req.responseText.length\n && req.responseText.length > 0) {\n // TODO: if error here around, it isn't bubble up ! Please AB fix it\n log === null || log === void 0 ? void 0 : log.trace(\"Parsing JSON\");\n try {\n responseBody = JSON.parse(responseBody);\n }\n catch (e) {\n responseBody = undefined;\n }\n }\n // We return a response with the request of the parent method (only the readystate has changed)\n // We add to it a couple of properties from the request this method received\n // And wrap it up into our Response class\n return new index_1.Response(request, req.status, req.statusText, parseResponseHeaders_1(req), responseBody);\n };\n // When the promise is returned, we call the buildResponseAndUpdateRequestMethod\n // And this is what will give us our final Response\n var rejectRequest_1 = function (req) {\n reject(buildResponseAndUpdateRequest_1(req));\n };\n var resolveRequest_1 = function (req) {\n resolve(buildResponseAndUpdateRequest_1(req));\n };\n // Defining the main xmlHttpRequest properties (methods)\n xhr_1.onerror = function () {\n if (log === null || log === void 0 ? void 0 : log.isLevelEnabled(generic_logger_typings_1.LogLevel.TRACE)) {\n log.trace(xhr_1.status + \" \" + traceMessage);\n }\n rejectRequest_1(xhr_1);\n };\n xhr_1.onabort = xhr_1.onerror;\n xhr_1.ontimeout = xhr_1.onerror;\n xhr_1.onload = function () {\n if (log === null || log === void 0 ? void 0 : log.isLevelEnabled(generic_logger_typings_1.LogLevel.TRACE)) {\n log.trace(xhr_1.status + \" \" + traceMessage);\n }\n if (xhr_1.status >= 200 && xhr_1.status < 400) {\n // Success!\n resolveRequest_1(xhr_1);\n }\n else {\n rejectRequest_1(xhr_1);\n }\n };\n // Initializes the request\n xhr_1.open(request.method, request.url);\n // Copying the response type from the Request we received\n xhr_1.responseType = request.responseType;\n // Adapting the main XMLHttpRequest according to the passed Request\n if (request.responseType === 'json') {\n xhr_1.setRequestHeader('Accept', 'application/json');\n }\n for (var headerName in request.headers) {\n xhr_1.setRequestHeader(headerName, request.headers[headerName]);\n }\n xhr_1.setRequestHeader('Content-Type', request.contentType);\n var body = request.body;\n // Auto-stringify json objects\n if (typeof body === 'object' && request.contentType.toLowerCase().includes('application/json')) {\n body = JSON.stringify(body);\n }\n // Sending request to the server\n xhr_1.send(body);\n }\n });\n}\nexports.default = execute;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar index_1 = require(\"./index\");\nvar execute_1 = require(\"./execute\");\nvar FilterChainImpl = /** @class */ (function () {\n function FilterChainImpl(filters, fromIndex, callBack) {\n if (fromIndex === void 0) { fromIndex = 0; }\n if (callBack === void 0) { callBack = execute_1.default; }\n this.filters = filters;\n this.fromIndex = fromIndex;\n this.callBack = callBack;\n }\n FilterChainImpl.prototype.doFilter = function (request) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n var index, filter, installedFilter;\n return __generator(this, function (_b) {\n index = this.fromIndex;\n // Find next filter to apply\n // Looping throught all its filters\n while (index < this.filters.length) {\n filter = this.filters[index];\n // If an InstalledFilter has no config, it should be applied to all requests\n if (!filter.config || filter.config.enabled(request)) {\n // We have found a filter to apply\n break;\n }\n else {\n // Go to next filter\n index++;\n }\n }\n if (index < this.filters.length) {\n installedFilter = this.filters[index];\n // We found a filter to apply\n (_a = (0, index_1.getLogger)()) === null || _a === void 0 ? void 0 : _a.trace('Applying filter ' + installedFilter.name);\n // We return the filter of the installedFilter we found and applied to it its own .doFilter method which is not the same method\n // passing to it the same request and a new FilterChainImpl with the list of filters, a counter incremented by 1, and the callback method\n return [2 /*return*/, installedFilter.filter.doFilter(request, new FilterChainImpl(this.filters, index + 1, this.callBack))];\n }\n else {\n // We are at the end of the filter chain,\n // we can execute the call\n return [2 /*return*/, this.callBack(request)];\n }\n return [2 /*return*/];\n });\n });\n };\n return FilterChainImpl;\n}());\nexports.default = FilterChainImpl;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setLogger = exports.getLogger = exports.newHttpClient = exports.InstalledFilter = exports.FilterCollection = exports.Response = exports.Request = void 0;\nvar filterChainImpl_1 = require(\"./filterChainImpl\");\n// Main class to make calls to the API\n// method call will call method doFilter and it will call method execute\nvar HttpClientImpl = /** @class */ (function () {\n function HttpClientImpl() {\n this._filters = [];\n }\n // Takes parameters and creates an InstalledFilter with them\n // Add the InstalledFilter to the filter array\n // The InstalledFilter is made of two parts: The Filter and the FilterConfig\n HttpClientImpl.prototype.addFilter = function (filter, name, config) {\n var installedFilter = new InstalledFilter(filter, name, config);\n var filters = this._filters;\n // Returns an object with a method to remove the added filter\n filters.push(installedFilter);\n return {\n remove: function () {\n remove(installedFilter, filters);\n }\n };\n };\n // Takes a Request and returns the body of the promise returned by the method callForResponse\n HttpClientImpl.prototype.execute = function (call) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.callForResponse(call)];\n case 1: return [2 /*return*/, (_a.sent()).body\n // body can be null but in such cases, an error will be thrown\n ];\n }\n });\n });\n };\n // Takes a Request, creates the main chain of filters with the current filters of httpclient\n // and then calls the method doFilter with the received Request\n HttpClientImpl.prototype.executeForResponse = function (call) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, new filterChainImpl_1.default(this._filters).doFilter(call)];\n });\n });\n };\n // Same as execute\n HttpClientImpl.prototype.call = function (call) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.execute(call)];\n });\n });\n };\n // Same as executeForResponse\n HttpClientImpl.prototype.callForResponse = function (call) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n return [2 /*return*/, this.executeForResponse(call)];\n });\n });\n };\n return HttpClientImpl;\n}());\n// Contains every parameter needed for a request as properties\nvar Request = /** @class */ (function () {\n // constructor that can take a lot of parameters but only the URL is mandatory\n function Request(url, _a) {\n var _b = _a === void 0 ? {} : _a, contentType = _b.contentType, method = _b.method, responseType = _b.responseType, withCredentials = _b.withCredentials, body = _b.body, headers = _b.headers, timeout = _b.timeout;\n this.aborted = false;\n this.contentType = 'application/json; charset=UTF-8';\n // A way to declare an enumeration (can be anything because of the string but the IDE will suggest the 4 first verbs)\n this.method = 'GET';\n this.responseType = 'json';\n this.withCredentials = false;\n this.headers = {};\n this.timeout = 30000;\n this.readyState = 0;\n this.properties = {};\n this.url = url;\n if (contentType) {\n this.contentType = contentType;\n }\n if (method) {\n this.method = method;\n }\n if (responseType) {\n this.responseType = responseType;\n }\n if (withCredentials) {\n this.withCredentials = withCredentials;\n }\n if (body) {\n this.body = body;\n }\n if (headers) {\n this.headers = headers;\n }\n if (timeout) {\n this.timeout = timeout;\n }\n this.upload = {\n onprogress: function () { return void 0; },\n onloadstart: function () { return void 0; }\n };\n }\n Object.defineProperty(Request.prototype, \"xhr\", {\n get: function () {\n return this._xhr;\n },\n set: function (xhr) {\n if (this.aborted) {\n throw Error('request aborted');\n }\n this._xhr = xhr;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Request.prototype, \"isAborted\", {\n get: function () {\n return this.aborted;\n },\n enumerable: false,\n configurable: true\n });\n Request.prototype.abort = function () {\n if (this.xhr) {\n this.xhr.abort();\n }\n this.aborted = true;\n };\n // sets the properties (like a constructor for changes)\n Request.prototype.set = function (_a) {\n var contentType = _a.contentType, method = _a.method, responseType = _a.responseType, withCredentials = _a.withCredentials, body = _a.body, headers = _a.headers, timeout = _a.timeout;\n if (contentType) {\n this.contentType = contentType;\n }\n if (method) {\n this.method = method;\n }\n if (responseType) {\n this.responseType = responseType;\n }\n if (withCredentials) {\n this.withCredentials = withCredentials;\n }\n if (body) {\n this.body = body;\n }\n if (headers) {\n this.headers = headers;\n }\n if (timeout) {\n this.timeout = timeout;\n }\n return this;\n };\n Request.prototype.setContentType = function (contentType) {\n this.contentType = contentType;\n return this;\n };\n Request.prototype.setMethod = function (method) {\n if (method === void 0) { method = 'GET'; }\n this.method = method;\n return this;\n };\n Request.prototype.setResponseType = function (responseType) {\n this.responseType = responseType;\n return this;\n };\n Request.prototype.setWithCredentials = function (withCredentials) {\n this.withCredentials = withCredentials;\n return this;\n };\n Request.prototype.setBody = function (body) {\n this.body = body;\n return this;\n };\n Request.prototype.setHeaders = function (headers) {\n this.headers = headers;\n return this;\n };\n Request.prototype.addHeader = function (headerName, value) {\n this.headers[headerName] = value;\n };\n Request.prototype.setTimeout = function (timeout) {\n this.timeout = timeout;\n return this;\n };\n Request.prototype.setProperty = function (key, value) {\n this.properties[key] = value;\n return this;\n };\n Request.prototype.getProperty = function (key) {\n return this.properties[key];\n };\n return Request;\n}());\nexports.Request = Request;\n// The class that our calls return\nvar Response = /** @class */ (function () {\n function Response(request, status, statusText, headers, body) {\n this.request = request;\n this.status = status;\n this.statusText = statusText;\n this.headers = headers;\n this.body = body;\n this.properties = {};\n }\n Response.prototype.setProperty = function (key, value) {\n this.properties[key] = value;\n return this;\n };\n Response.prototype.getProperty = function (key) {\n return this.properties[key];\n };\n return Response;\n}());\nexports.Response = Response;\n// Third parameter is a function that will call the execute method with a given request\n// Only the first parameter of the constructor is obligatory\n// Has all the filters that could be applied to a request\n// Goes throught them and applies them to the request if the config is matching\nvar FilterCollection = /** @class */ (function () {\n function FilterCollection(filters) {\n this.filters = filters;\n }\n /**\n * @param call Is the request we want to modify\n * @param filterChain is an Interface that is a Filter, but its goal is to simulate\n * nested filters. So it contains an array of filter and its doFilter loops through all its filters\n * before continuing with the main chain of filters\n */\n FilterCollection.prototype.doFilter = function (call, filterChain) {\n return new filterChainImpl_1.default(this.filters, 0, function (request) { return filterChain.doFilter(request); }).doFilter(call);\n };\n return FilterCollection;\n}());\nexports.FilterCollection = FilterCollection;\n/**\n * Is composed of a FilterConfig that checks the request to know if the Filter should be applied\n * and of a Filter that does something to the request/response\n */\nvar InstalledFilter = /** @class */ (function () {\n function InstalledFilter(filter, name, config) {\n this.filter = filter;\n this.name = name;\n this.config = config;\n }\n return InstalledFilter;\n}());\nexports.InstalledFilter = InstalledFilter;\n/*\n Factory method\n*/\nfunction newHttpClient() {\n return new HttpClientImpl();\n}\nexports.newHttpClient = newHttpClient;\nvar log;\nfunction getLogger() {\n return log;\n}\nexports.getLogger = getLogger;\nfunction setLogger(logger) {\n log = logger;\n}\nexports.setLogger = setLogger;\n// Utility methods\nfunction remove(item, array) {\n var index = array.indexOf(item, 0);\n if (index > -1) {\n array.splice(index, 1);\n }\n}\n","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tif (typeof g[typedArray] === 'function') {\n\t\t\tvar arr = new g[typedArray]();\n\t\t\tif (Symbol.toStringTag in arr) {\n\t\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\t\tif (!descriptor) {\n\t\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t\t}\n\t\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t\t}\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar foundName = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!foundName) {\n\t\t\ttry {\n\t\t\t\tvar name = getter.call(value);\n\t\t\t\tif (name === typedArray) {\n\t\t\t\t\tfoundName = name;\n\t\t\t\t}\n\t\t\t} catch (e) {}\n\t\t}\n\t});\n\treturn foundName;\n};\n\nvar isTypedArray = require('is-typed-array');\n\nmodule.exports = function whichTypedArray(value) {\n\tif (!isTypedArray(value)) { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); }\n\treturn tryTypedArrays(value);\n};\n","import { Component, ChangeDetectionStrategy, Renderer2, Input, ViewChild, NgModule } from '@angular/core';\nimport { toDataURL, toCanvas, toString } from 'qrcode';\n\nimport * as ɵngcc0 from '@angular/core';\n\nconst _c0 = [\"qrcElement\"];\nclass QRCodeComponent {\n constructor(renderer) {\n this.renderer = renderer;\n // Deprecated\n this.colordark = '';\n this.colorlight = '';\n this.level = '';\n this.hidetitle = false;\n this.size = 0;\n this.usesvg = false;\n // Valid for 1.x and 2.x\n this.allowEmptyString = false;\n this.qrdata = '';\n // New fields introduced in 2.0.0\n this.colorDark = '#000000ff';\n this.colorLight = '#ffffffff';\n this.cssClass = 'qrcode';\n this.elementType = 'canvas';\n this.errorCorrectionLevel = 'M';\n this.margin = 4;\n this.scale = 4;\n this.width = 10;\n // Deprecation warnings\n if (this.colordark !== '') {\n console.warn('[angularx-qrcode] colordark is deprecated, use colorDark.');\n }\n if (this.colorlight !== '') {\n console.warn('[angularx-qrcode] colorlight is deprecated, use colorLight.');\n }\n if (this.level !== '') {\n console.warn('[angularx-qrcode] level is deprecated, use errorCorrectionLevel.');\n }\n if (this.hidetitle !== false) {\n console.warn('[angularx-qrcode] hidetitle is deprecated.');\n }\n if (this.size !== 0) {\n console.warn('[angularx-qrcode] size is deprecated, use `width`. Defaults to 10.');\n }\n if (this.usesvg !== false) {\n console.warn(`[angularx-qrcode] usesvg is deprecated, use [elementType]=\"'svg'\".`);\n }\n }\n ngOnChanges() {\n this.createQRCode();\n }\n isValidQrCodeText(data) {\n if (this.allowEmptyString === false) {\n return !(typeof data === 'undefined' ||\n data === '' ||\n data === 'null' ||\n data === null);\n }\n return !(typeof data === 'undefined');\n }\n toDataURL() {\n return new Promise((resolve, reject) => {\n toDataURL(this.qrdata, {\n color: {\n dark: this.colorDark,\n light: this.colorLight,\n },\n errorCorrectionLevel: this.errorCorrectionLevel,\n margin: this.margin,\n scale: this.scale,\n version: this.version,\n width: this.width,\n }, (err, url) => {\n if (err) {\n reject(err);\n }\n else {\n resolve(url);\n }\n });\n });\n }\n toCanvas(canvas) {\n return new Promise((resolve, reject) => {\n toCanvas(canvas, this.qrdata, {\n color: {\n dark: this.colorDark,\n light: this.colorLight,\n },\n errorCorrectionLevel: this.errorCorrectionLevel,\n margin: this.margin,\n scale: this.scale,\n version: this.version,\n width: this.width,\n }, (error) => {\n if (error) {\n reject(error);\n }\n else {\n resolve('success');\n }\n });\n });\n }\n toSVG() {\n return new Promise((resolve, reject) => {\n toString(this.qrdata, {\n color: {\n dark: this.colorDark,\n light: this.colorLight,\n },\n errorCorrectionLevel: this.errorCorrectionLevel,\n margin: this.margin,\n scale: this.scale,\n type: 'svg',\n version: this.version,\n width: this.width,\n }, (err, url) => {\n if (err) {\n reject(err);\n }\n else {\n resolve(url);\n }\n });\n });\n }\n renderElement(element) {\n for (const node of this.qrcElement.nativeElement.childNodes) {\n this.renderer.removeChild(this.qrcElement.nativeElement, node);\n }\n this.renderer.appendChild(this.qrcElement.nativeElement, element);\n }\n createQRCode() {\n // Set sensitive defaults\n if (this.version && this.version > 40) {\n console.warn('[angularx-qrcode] max value for `version` is 40');\n this.version = 40;\n }\n else if (this.version && this.version < 1) {\n console.warn('[angularx-qrcode]`min value for `version` is 1');\n this.version = 1;\n }\n else if (this.version !== undefined && isNaN(this.version)) {\n console.warn('[angularx-qrcode] version should be a number, defaulting to auto.');\n this.version = undefined;\n }\n try {\n if (!this.isValidQrCodeText(this.qrdata)) {\n throw new Error('[angularx-qrcode] Field `qrdata` is empty, set`allowEmptyString=\"true\"` to overwrite this behaviour.');\n }\n let element;\n switch (this.elementType) {\n case 'canvas':\n element = this.renderer.createElement('canvas');\n this.toCanvas(element)\n .then(() => {\n this.renderElement(element);\n })\n .catch((e) => {\n console.error('[angularx-qrcode] canvas error: ', e);\n });\n break;\n case 'svg':\n element = this.renderer.createElement('div');\n this.toSVG()\n .then((svgString) => {\n this.renderer.setProperty(element, 'innerHTML', svgString);\n const innerElement = element.firstChild;\n this.renderer.setAttribute(innerElement, 'height', `${this.width}`);\n this.renderer.setAttribute(innerElement, 'width', `${this.width}`);\n this.renderElement(innerElement);\n })\n .catch((e) => {\n console.error('[angularx-qrcode] svg error: ', e);\n });\n break;\n case 'url':\n case 'img':\n default:\n element = this.renderer.createElement('img');\n this.toDataURL()\n .then((dataUrl) => {\n element.setAttribute('src', dataUrl);\n this.renderElement(element);\n })\n .catch((e) => {\n console.error('[angularx-qrcode] img/url error: ', e);\n });\n }\n }\n catch (e) {\n console.error('[angularx-qrcode] Error generating QR Code: ', e.message);\n }\n }\n}\nQRCodeComponent.ɵfac = function QRCodeComponent_Factory(t) { return new (t || QRCodeComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nQRCodeComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: QRCodeComponent, selectors: [[\"qrcode\"]], viewQuery: function QRCodeComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c0, 7);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.qrcElement = _t.first);\n } }, inputs: { colordark: \"colordark\", colorlight: \"colorlight\", level: \"level\", hidetitle: \"hidetitle\", size: \"size\", usesvg: \"usesvg\", allowEmptyString: \"allowEmptyString\", qrdata: \"qrdata\", colorDark: \"colorDark\", colorLight: \"colorLight\", cssClass: \"cssClass\", elementType: \"elementType\", errorCorrectionLevel: \"errorCorrectionLevel\", margin: \"margin\", scale: \"scale\", width: \"width\", version: \"version\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 2, vars: 2, consts: [[\"qrcElement\", \"\"]], template: function QRCodeComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", null, 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.cssClass);\n } }, encapsulation: 2, changeDetection: 0 });\nQRCodeComponent.ctorParameters = () => [\n { type: Renderer2 }\n];\nQRCodeComponent.propDecorators = {\n colordark: [{ type: Input }],\n colorlight: [{ type: Input }],\n level: [{ type: Input }],\n hidetitle: [{ type: Input }],\n size: [{ type: Input }],\n usesvg: [{ type: Input }],\n allowEmptyString: [{ type: Input }],\n qrdata: [{ type: Input }],\n colorDark: [{ type: Input }],\n colorLight: [{ type: Input }],\n cssClass: [{ type: Input }],\n elementType: [{ type: Input }],\n errorCorrectionLevel: [{ type: Input }],\n margin: [{ type: Input }],\n scale: [{ type: Input }],\n version: [{ type: Input }],\n width: [{ type: Input }],\n qrcElement: [{ type: ViewChild, args: ['qrcElement', { static: true },] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(QRCodeComponent, [{\n type: Component,\n args: [{\n selector: 'qrcode',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `
`\n }]\n }], function () { return [{ type: ɵngcc0.Renderer2 }]; }, { colordark: [{\n type: Input\n }], colorlight: [{\n type: Input\n }], level: [{\n type: Input\n }], hidetitle: [{\n type: Input\n }], size: [{\n type: Input\n }], usesvg: [{\n type: Input\n }], allowEmptyString: [{\n type: Input\n }], qrdata: [{\n type: Input\n }], colorDark: [{\n type: Input\n }], colorLight: [{\n type: Input\n }], cssClass: [{\n type: Input\n }], elementType: [{\n type: Input\n }], errorCorrectionLevel: [{\n type: Input\n }], margin: [{\n type: Input\n }], scale: [{\n type: Input\n }], width: [{\n type: Input\n }], version: [{\n type: Input\n }], qrcElement: [{\n type: ViewChild,\n args: ['qrcElement', { static: true }]\n }] }); })();\n\nclass QRCodeModule {\n}\nQRCodeModule.ɵfac = function QRCodeModule_Factory(t) { return new (t || QRCodeModule)(); };\nQRCodeModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: QRCodeModule });\nQRCodeModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(QRCodeModule, [{\n type: NgModule,\n args: [{\n providers: [],\n declarations: [QRCodeComponent],\n exports: [QRCodeComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(QRCodeModule, { declarations: [QRCodeComponent], exports: [QRCodeComponent] }); })();\n\n/*\n * Public API Surface of angularx-qrcode\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { QRCodeComponent, QRCodeModule };\n\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","(function (root, factory) {\n // Hack to make all exports of this module sha256 function object properties.\n var exports = {};\n factory(exports);\n var sha256 = exports[\"default\"];\n for (var k in exports) {\n sha256[k] = exports[k];\n }\n \n if (typeof module === 'object' && typeof module.exports === 'object') {\n module.exports = sha256;\n } else if (typeof define === 'function' && define.amd) {\n define(function() { return sha256; }); \n } else {\n root.sha256 = sha256;\n }\n})(this, function(exports) {\n\"use strict\";\nexports.__esModule = true;\n// SHA-256 (+ HMAC and PBKDF2) for JavaScript.\n//\n// Written in 2014-2016 by Dmitry Chestnykh.\n// Public domain, no warranty.\n//\n// Functions (accept and return Uint8Arrays):\n//\n// sha256(message) -> hash\n// sha256.hmac(key, message) -> mac\n// sha256.pbkdf2(password, salt, rounds, dkLen) -> dk\n//\n// Classes:\n//\n// new sha256.Hash()\n// new sha256.HMAC(key)\n//\nexports.digestLength = 32;\nexports.blockSize = 64;\n// SHA-256 constants\nvar K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n var a, b, c, d, e, f, g, h, u, i, j, t1, t2;\n while (len >= 64) {\n a = v[0];\n b = v[1];\n c = v[2];\n d = v[3];\n e = v[4];\n f = v[5];\n g = v[6];\n h = v[7];\n for (i = 0; i < 16; i++) {\n j = pos + i * 4;\n w[i] = (((p[j] & 0xff) << 24) | ((p[j + 1] & 0xff) << 16) |\n ((p[j + 2] & 0xff) << 8) | (p[j + 3] & 0xff));\n }\n for (i = 16; i < 64; i++) {\n u = w[i - 2];\n t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (i = 0; i < 64; i++) {\n t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\n// Hash implements SHA256 hash algorithm.\nvar Hash = /** @class */ (function () {\n function Hash() {\n this.digestLength = exports.digestLength;\n this.blockSize = exports.blockSize;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this.state = new Int32Array(8); // hash state\n this.temp = new Int32Array(64); // temporary state\n this.buffer = new Uint8Array(128); // buffer for data to hash\n this.bufferLength = 0; // number of bytes in buffer\n this.bytesHashed = 0; // number of total bytes hashed\n this.finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n // Resets hash state making it possible\n // to re-use this instance to hash other data.\n Hash.prototype.reset = function () {\n this.state[0] = 0x6a09e667;\n this.state[1] = 0xbb67ae85;\n this.state[2] = 0x3c6ef372;\n this.state[3] = 0xa54ff53a;\n this.state[4] = 0x510e527f;\n this.state[5] = 0x9b05688c;\n this.state[6] = 0x1f83d9ab;\n this.state[7] = 0x5be0cd19;\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n return this;\n };\n // Cleans internal buffers and re-initializes hash state.\n Hash.prototype.clean = function () {\n for (var i = 0; i < this.buffer.length; i++) {\n this.buffer[i] = 0;\n }\n for (var i = 0; i < this.temp.length; i++) {\n this.temp[i] = 0;\n }\n this.reset();\n };\n // Updates hash state with the given data.\n //\n // Optionally, length of the data can be specified to hash\n // fewer bytes than data.length.\n //\n // Throws error when trying to update already finalized hash:\n // instance must be reset to use it again.\n Hash.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this.finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this.bytesHashed += dataLength;\n if (this.bufferLength > 0) {\n while (this.bufferLength < 64 && dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this.bufferLength === 64) {\n hashBlocks(this.temp, this.state, this.buffer, 0, 64);\n this.bufferLength = 0;\n }\n }\n if (dataLength >= 64) {\n dataPos = hashBlocks(this.temp, this.state, data, dataPos, dataLength);\n dataLength %= 64;\n }\n while (dataLength > 0) {\n this.buffer[this.bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n // Finalizes hash state and puts hash into out.\n //\n // If hash was already finalized, puts the same value.\n Hash.prototype.finish = function (out) {\n if (!this.finished) {\n var bytesHashed = this.bytesHashed;\n var left = this.bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this.buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this.buffer[i] = 0;\n }\n this.buffer[padLength - 8] = (bitLenHi >>> 24) & 0xff;\n this.buffer[padLength - 7] = (bitLenHi >>> 16) & 0xff;\n this.buffer[padLength - 6] = (bitLenHi >>> 8) & 0xff;\n this.buffer[padLength - 5] = (bitLenHi >>> 0) & 0xff;\n this.buffer[padLength - 4] = (bitLenLo >>> 24) & 0xff;\n this.buffer[padLength - 3] = (bitLenLo >>> 16) & 0xff;\n this.buffer[padLength - 2] = (bitLenLo >>> 8) & 0xff;\n this.buffer[padLength - 1] = (bitLenLo >>> 0) & 0xff;\n hashBlocks(this.temp, this.state, this.buffer, 0, padLength);\n this.finished = true;\n }\n for (var i = 0; i < 8; i++) {\n out[i * 4 + 0] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return this;\n };\n // Returns the final hash digest.\n Hash.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._saveState = function (out) {\n for (var i = 0; i < this.state.length; i++) {\n out[i] = this.state[i];\n }\n };\n // Internal function for use in HMAC for optimization.\n Hash.prototype._restoreState = function (from, bytesHashed) {\n for (var i = 0; i < this.state.length; i++) {\n this.state[i] = from[i];\n }\n this.bytesHashed = bytesHashed;\n this.finished = false;\n this.bufferLength = 0;\n };\n return Hash;\n}());\nexports.Hash = Hash;\n// HMAC implements HMAC-SHA256 message authentication algorithm.\nvar HMAC = /** @class */ (function () {\n function HMAC(key) {\n this.inner = new Hash();\n this.outer = new Hash();\n this.blockSize = this.inner.blockSize;\n this.digestLength = this.inner.digestLength;\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n (new Hash()).update(key).finish(pad).clean();\n }\n else {\n for (var i = 0; i < key.length; i++) {\n pad[i] = key[i];\n }\n }\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n this.inner.update(pad);\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n this.outer.update(pad);\n this.istate = new Uint32Array(8);\n this.ostate = new Uint32Array(8);\n this.inner._saveState(this.istate);\n this.outer._saveState(this.ostate);\n for (var i = 0; i < pad.length; i++) {\n pad[i] = 0;\n }\n }\n // Returns HMAC state to the state initialized with key\n // to make it possible to run HMAC over the other data with the same\n // key without creating a new instance.\n HMAC.prototype.reset = function () {\n this.inner._restoreState(this.istate, this.inner.blockSize);\n this.outer._restoreState(this.ostate, this.outer.blockSize);\n return this;\n };\n // Cleans HMAC state.\n HMAC.prototype.clean = function () {\n for (var i = 0; i < this.istate.length; i++) {\n this.ostate[i] = this.istate[i] = 0;\n }\n this.inner.clean();\n this.outer.clean();\n };\n // Updates state with provided data.\n HMAC.prototype.update = function (data) {\n this.inner.update(data);\n return this;\n };\n // Finalizes HMAC and puts the result in out.\n HMAC.prototype.finish = function (out) {\n if (this.outer.finished) {\n this.outer.finish(out);\n }\n else {\n this.inner.finish(out);\n this.outer.update(out, this.digestLength).finish(out);\n }\n return this;\n };\n // Returns message authentication code.\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n// Returns SHA256 hash of data.\nfunction hash(data) {\n var h = (new Hash()).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n// Function hash is both available as module.hash and as default export.\nexports[\"default\"] = hash;\n// Returns HMAC-SHA256 of data under the key.\nfunction hmac(key, data) {\n var h = (new HMAC(key)).update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n// Fills hkdf buffer like this:\n// T(1) = HMAC-Hash(PRK, T(0) | info | 0x01)\nfunction fillBuffer(buffer, hmac, info, counter) {\n // Counter is a byte value: check if it overflowed.\n var num = counter[0];\n if (num === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (num > 1) {\n hmac.update(buffer);\n }\n // Hash in info if it exists.\n if (info) {\n hmac.update(info);\n }\n // Hash in the counter.\n hmac.update(counter);\n // Output result to buffer and clean HMAC instance.\n hmac.finish(buffer);\n // Increment counter inside typed array, this works properly.\n counter[0]++;\n}\nvar hkdfSalt = new Uint8Array(exports.digestLength); // Filled with zeroes.\nfunction hkdf(key, salt, info, length) {\n if (salt === void 0) { salt = hkdfSalt; }\n if (length === void 0) { length = 32; }\n var counter = new Uint8Array([1]);\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac(salt, key);\n // Initialize HMAC for expanding with extracted key.\n // Ensure no collisions with `hmac` function.\n var hmac_ = new HMAC(okm);\n // Allocate buffer.\n var buffer = new Uint8Array(hmac_.digestLength);\n var bufpos = buffer.length;\n var out = new Uint8Array(length);\n for (var i = 0; i < length; i++) {\n if (bufpos === buffer.length) {\n fillBuffer(buffer, hmac_, info, counter);\n bufpos = 0;\n }\n out[i] = buffer[bufpos++];\n }\n hmac_.clean();\n buffer.fill(0);\n counter.fill(0);\n return out;\n}\nexports.hkdf = hkdf;\n// Derives a key from password and salt using PBKDF2-HMAC-SHA256\n// with the given number of iterations.\n//\n// The number of bytes returned is equal to dkLen.\n//\n// (For better security, avoid dkLen greater than hash length - 32 bytes).\nfunction pbkdf2(password, salt, iterations, dkLen) {\n var prf = new HMAC(password);\n var len = prf.digestLength;\n var ctr = new Uint8Array(4);\n var t = new Uint8Array(len);\n var u = new Uint8Array(len);\n var dk = new Uint8Array(dkLen);\n for (var i = 0; i * len < dkLen; i++) {\n var c = i + 1;\n ctr[0] = (c >>> 24) & 0xff;\n ctr[1] = (c >>> 16) & 0xff;\n ctr[2] = (c >>> 8) & 0xff;\n ctr[3] = (c >>> 0) & 0xff;\n prf.reset();\n prf.update(salt);\n prf.update(ctr);\n prf.finish(u);\n for (var j = 0; j < len; j++) {\n t[j] = u[j];\n }\n for (var j = 2; j <= iterations; j++) {\n prf.reset();\n prf.update(u).finish(u);\n for (var k = 0; k < len; k++) {\n t[k] ^= u[k];\n }\n }\n for (var j = 0; j < len && i * len + j < dkLen; j++) {\n dk[i * len + j] = t[j];\n }\n }\n for (var i = 0; i < len; i++) {\n t[i] = u[i] = 0;\n }\n for (var i = 0; i < 4; i++) {\n ctr[i] = 0;\n }\n prf.clean();\n return dk;\n}\nexports.pbkdf2 = pbkdf2;\n});\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * jQuery JavaScript Library v3.6.3\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2022-12-20T21:28Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.6.3\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.9\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://js.foundation/\n *\n * Date: 2022-12-19\n */\n( function( window ) {\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ( {} ).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpushNative = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[ i ] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|\" +\n\t\t\"ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5]\n\t\t// or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" +\n\t\twhitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace +\n\t\t\"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trhtml = /HTML$/i,\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace + \"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\treturn nonHex ?\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\tnonHex :\n\n\t\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t\t// Support: IE <=11+\n\t\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t\t// surrogate pair\n\t\t\thigh < 0 ?\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" +\n\t\t\t\tch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && elem.nodeName.toLowerCase() === \"fieldset\";\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( ( target[ j++ ] = els[ i++ ] ) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) &&\n\n\t\t\t\t// Support: IE 8 only\n\t\t\t\t// Exclude object elements\n\t\t\t\t( nodeType !== 1 || context.nodeName.toLowerCase() !== \"object\" ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rcombinators.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\tif ( newContext !== context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// `qSA` may not throw for unrecognized parts using forgiving parsing:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#forgiving-selector\n\t\t\t\t\t// like the `:has()` pseudo-class:\n\t\t\t\t\t// https://drafts.csswg.org/selectors/#relational\n\t\t\t\t\t// `CSS.supports` is still expected to return `false` then:\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#typedef-supports-selector-fn\n\t\t\t\t\t// https://drafts.csswg.org/css-conditional-4/#dfn-support-selector\n\t\t\t\t\tif ( support.cssSupportsSelector &&\n\n\t\t\t\t\t\t// eslint-disable-next-line no-undef\n\t\t\t\t\t\t!CSS.supports( \"selector(:is(\" + newSelector + \"))\" ) ) {\n\n\t\t\t\t\t\t// Support: IE 11+\n\t\t\t\t\t\t// Throw to get to the same code path as an error directly in qSA.\n\t\t\t\t\t\t// Note: once we only support browser supporting\n\t\t\t\t\t\t// `CSS.supports('selector(...)')`, we can most likely drop\n\t\t\t\t\t\t// the `try-catch`. IE doesn't implement the API.\n\t\t\t\t\t\tthrow new Error();\n\t\t\t\t\t}\n\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split( \"|\" ),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[ i ] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( ( cur = cur.nextSibling ) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn ( name === \"input\" || name === \"button\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\tvar namespace = elem && elem.namespaceURI,\n\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t// Support: IE <=8\n\t// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes\n\t// https://bugs.jquery.com/ticket/4833\n\treturn !rhtml.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( preferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t// Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only,\n\t// Safari 4 - 5 only, Opera <=11.6 - 12.x only\n\t// IE/Edge & older browsers don't support the :scope pseudo-class.\n\t// Support: Safari 6.0 only\n\t// Safari 6.0 supports :scope but it's an alias of :root there.\n\tsupport.scope = assert( function( el ) {\n\t\tdocElem.appendChild( el ).appendChild( document.createElement( \"div\" ) );\n\t\treturn typeof el.querySelectorAll !== \"undefined\" &&\n\t\t\t!el.querySelectorAll( \":scope fieldset div\" ).length;\n\t} );\n\n\t// Support: Chrome 105+, Firefox 104+, Safari 15.4+\n\t// Make sure forgiving mode is not used in `CSS.supports( \"selector(...)\" )`.\n\t//\n\t// `:is()` uses a forgiving selector list as an argument and is widely\n\t// implemented, so it's a good one to test against.\n\tsupport.cssSupportsSelector = assert( function() {\n\t\t/* eslint-disable no-undef */\n\n\t\treturn CSS.supports( \"selector(*)\" ) &&\n\n\t\t\t// Support: Firefox 78-81 only\n\t\t\t// In old Firefox, `:is()` didn't use forgiving parsing. In that case,\n\t\t\t// fail this test as there's no selector to test against that.\n\t\t\t// `CSS.supports` uses unforgiving parsing\n\t\t\tdocument.querySelectorAll( \":is(:jqfake)\" ) &&\n\n\t\t\t// `*` is needed as Safari & newer Chrome implemented something in between\n\t\t\t// for `:has()` - it throws in `qSA` if it only contains an unsupported\n\t\t\t// argument but multiple ones, one of which is supported, are fine.\n\t\t\t// We want to play safe in case `:is()` gets the same treatment.\n\t\t\t!CSS.supports( \"selector(:is(*,:jqfake))\" );\n\n\t\t/* eslint-enable */\n\t} );\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert( function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute( \"className\" );\n\t} );\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert( function( el ) {\n\t\tel.appendChild( document.createComment( \"\" ) );\n\t\treturn !el.getElementsByTagName( \"*\" ).length;\n\t} );\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[ \"ID\" ] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[ \"ID\" ] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[ \"TAG\" ] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[ \"CLASS\" ] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) {\n\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert( function( el ) {\n\n\t\t\tvar input;\n\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll( \"[msallowcapture^='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"~=\" );\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t\t// Adding a temporary attribute to the document before the selection works\n\t\t\t// around the issue.\n\t\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\t\tinput = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"name\", \"\" );\n\t\t\tel.appendChild( input );\n\t\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\t\trbuggyQSA.push( \":checked\" );\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t\t}\n\n\t\t\t// Support: Firefox <=3.6 - 5 only\n\t\t\t// Old Firefox doesn't throw on a badly-escaped identifier.\n\t\t\tel.querySelectorAll( \"\\\\\\f\" );\n\t\t\trbuggyQSA.push( \"[\\\\r\\\\n\\\\f]\" );\n\t\t} );\n\n\t\tassert( function( el ) {\n\t\t\tel.innerHTML = \"\" +\n\t\t\t\t\"\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement( \"input\" );\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll( \"[name=d]\" ).length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll( \":enabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: Opera 10 - 11 only\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll( \"*,:x\" );\n\t\t\trbuggyQSA.push( \",.*:\" );\n\t\t} );\n\t}\n\n\tif ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector ) ) ) ) {\n\n\t\tassert( function( el ) {\n\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t} );\n\t}\n\n\tif ( !support.cssSupportsSelector ) {\n\n\t\t// Support: Chrome 105+, Safari 15.4+\n\t\t// `:has()` uses a forgiving selector list as an argument so our regular\n\t\t// `try-catch` mechanism fails to catch `:has()` with arguments not supported\n\t\t// natively like `:has(:contains(\"Foo\"))`. Where supported & spec-compliant,\n\t\t// we now use `CSS.supports(\"selector(:is(SELECTOR_TO_BE_TESTED))\")`, but\n\t\t// outside that we mark `:has` as buggy.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( \"|\" ) );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\n\t\t\t// Support: IE <9 only\n\t\t\t// IE doesn't have `contains` on `document` so we need to check for\n\t\t\t// `documentElement` presence.\n\t\t\t// We need to fall back to `a` when `documentElement` is missing\n\t\t\t// as `ownerDocument` of elements within `