{"version":3,"sources":["CC3840755.js"],"names":["sessionVars","formVars","document","addEventListener","updateYear","matchUrlString","integrityTest","calculatorMath","buildResults","i","length","sessionStorage","removeItem","buildStatusRadio","autoComma","clearForms","radioHighlight","formNavigation","calculatorPrep","calculatorGo","placeholders","getElementsByClassName","innerHTML","taxYear","getQueryVariable","variable","query","window","location","search","substring","vars","split","pair","string","path","pathname","$","on","e","closest","find","removeClass","addClass","children","attr","question","answer","setItem","hasClass","current","parseInt","data","activatePanel","element","keyup","event","which","val","index","value","replace","elementId","radioStart","radioEnd","output","taxData","status","getElementById","buildBracketRadio","filingStatus","getItem","bracket","target","panelSelector","nextPanel","fadeOut","fadeIn","focus","scrollAnimate","isNull","querySelector","preventDefault","classList","remove","tabindex","itemizedAmount","stripNumericCommas","donationAmount","isNaN","add","a","b","c","d","style","display","Number","stdDeduction","filingText","taxBracket","taxDecimal","itemDeduction","charDonation","taxCalculator","taxSavings","totalDeduction","yearOne","yearTwo","yearThree","yearOneBunTwo","yearTwoBunTwo","twoYearBunTotal","twoYearBunchAddlDeduction","twoYearBunchAddlTaxSaving","yearOneBunThree","yearTwoBunThree","yearThreeBunThree","threeYearBunTotal","threeYearBunchAddlDeduction","threeYearBunchAddlTaxSaving","pageToBuild","headline","subhead","calcbody","calctable","calctableintro","taxPercentage","emptyCell","startRow","taxSavingsOneYear","taxSavingsTwoYears","taxSavingsThreeYears","bunchThreeOnly","toLocaleString","bunchYears","paddingBottom","selector","scrollIntoView","behavior","myForms","getElementsByTagName","reset","isInteger","isFinite","Math","floor"],"mappings":"AAAA;;AAEA,IAAIA,WAAW,GAAG,CAAC,wBAAD,EAA2B,wBAA3B,EAAqD,0BAArD,EAAiF,yBAAjF,EAA4G,yBAA5G,EAAuI,uBAAvI,EAAgK,mBAAhK,EAAqL,2BAArL,EAAkN,2BAAlN,EAA+O,2BAA/O,EAA4Q,2BAA5Q,EAAyS,6BAAzS,EAAwU,yBAAxU,EAAmW,qBAAnW,EAA0X,6BAA1X,EAAyZ,6BAAzZ,EAAwb,mBAAxb,EAA6c,gBAA7c,CAAlB;AACA,IAAIC,QAAQ,GAAG,CAAC,gBAAD,EAAmB,cAAnB,EAAmC,YAAnC,EAAiD,gBAAjD,CAAf;AACAC,QAAQ,CAACC,gBAAT,CAA0B,kBAA1B,EAA8C,YAAY;AACxDC,EAAAA,UAAU;;AAEV,MAAIC,cAAc,CAAC,cAAD,CAAlB,EAAoC;AAClC,QAAIC,aAAa,EAAjB,EAAqB;AACnBC,MAAAA,cAAc;AACdC,MAAAA,YAAY;AACb;AACF,GALD,MAKO;AACL,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGR,QAAQ,CAACS,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;AACxCE,MAAAA,cAAc,CAACC,UAAf,CAA0BX,QAAQ,CAACQ,CAAD,CAAlC;AACD;;AAEDI,IAAAA,gBAAgB,CAAC,cAAD,CAAhB,CALK,CAK6B;;AAElCC,IAAAA,SAAS,CAAC,YAAD,CAAT;AACAC,IAAAA,UAAU;AACX;;AAEDC,EAAAA,cAAc;AACdC,EAAAA,cAAc;AACdC,EAAAA,cAAc;AACdC,EAAAA,YAAY;AACb,CAvBD;;AAyBA,SAASf,UAAT,GAAsB;AACpB,MAAIgB,YAAY,GAAGlB,QAAQ,CAACmB,sBAAT,CAAgC,gBAAhC,CAAnB;;AAEA,OAAK,IAAIZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGW,YAAY,CAACV,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5CW,IAAAA,YAAY,CAACX,CAAD,CAAZ,CAAgBa,SAAhB,GAA4BC,OAA5B;AACD;AACF,C,CAAC;;;AAGF,SAASC,gBAAT,CAA0BC,QAA1B,EAAoC;AAClC,MAAIC,KAAK,GAAGC,MAAM,CAACC,QAAP,CAAgBC,MAAhB,CAAuBC,SAAvB,CAAiC,CAAjC,CAAZ;AACA,MAAIC,IAAI,GAAGL,KAAK,CAACM,KAAN,CAAY,GAAZ,CAAX;;AAEA,OAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsB,IAAI,CAACrB,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpC,QAAIwB,IAAI,GAAGF,IAAI,CAACtB,CAAD,CAAJ,CAAQuB,KAAR,CAAc,GAAd,CAAX;;AAEA,QAAIC,IAAI,CAAC,CAAD,CAAJ,IAAWR,QAAf,EAAyB;AACvB,aAAOQ,IAAI,CAAC,CAAD,CAAX;AACD;AACF;;AAED,SAAO,KAAP;AACD;;AAED,SAAS5B,cAAT,CAAwB6B,MAAxB,EAAgC;AAC9B,MAAIC,IAAI,GAAGR,MAAM,CAACC,QAAP,CAAgBQ,QAA3B;AACA,MAAIL,IAAI,GAAGI,IAAI,CAACH,KAAL,CAAW,GAAX,CAAX;;AAEA,OAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsB,IAAI,CAACrB,MAAzB,EAAiCD,CAAC,EAAlC,EAAsC;AACpC,QAAIsB,IAAI,CAACtB,CAAD,CAAJ,IAAWyB,MAAf,EAAuB;AACrB,aAAO,IAAP;AACD;AACF;;AAED,SAAO,KAAP;AACD;;AAED,SAASlB,cAAT,GAA0B;AACxBqB,EAAAA,CAAC,CAACnC,QAAD,CAAD,CAAYoC,EAAZ,CAAe,cAAf,EAA+B,kCAA/B,EAAmE,UAAUC,CAAV,EAAa;AAC9EF,IAAAA,CAAC,CAAC,IAAD,CAAD,CAAQG,OAAR,CAAgB,cAAhB,EAAgCC,IAAhC,CAAqC,cAArC,EAAqDC,WAArD,CAAiE,UAAjE;AACAL,IAAAA,CAAC,CAAC,IAAD,CAAD,CAAQG,OAAR,CAAgB,cAAhB,EAAgCG,QAAhC,CAAyC,UAAzC;AACAN,IAAAA,CAAC,CAAC,IAAD,CAAD,CAAQG,OAAR,CAAgB,QAAhB,EAA0BC,IAA1B,CAA+B,gBAA/B,EAAiDG,QAAjD,CAA0D,cAA1D,EAA0EF,WAA1E,CAAsF,UAAtF,EAAkGG,IAAlG,CAAuG,UAAvG,EAAmH,CAAnH;AACA,QAAIC,QAAQ,GAAGT,CAAC,CAAC,IAAD,CAAD,CAAQQ,IAAR,CAAa,MAAb,CAAf;AACA,QAAIE,MAAM,GAAGV,CAAC,CAAC,IAAD,CAAD,CAAQQ,IAAR,CAAa,OAAb,CAAb;AACAlC,IAAAA,cAAc,CAACqC,OAAf,CAAuBF,QAAvB,EAAiCC,MAAjC;AACD,GAPD;AAQD;;AAED,SAAS9B,cAAT,GAA0B;AACxBoB,EAAAA,CAAC,CAAC,4BAAD,CAAD,CAAgCC,EAAhC,CAAmC,OAAnC,EAA4C,UAAUC,CAAV,EAAa;AACvD,QAAI,CAACF,CAAC,CAAC,IAAD,CAAD,CAAQY,QAAR,CAAiB,UAAjB,CAAL,EAAmC;AACjC,UAAIC,OAAO,GAAGC,QAAQ,CAACd,CAAC,CAAC,IAAD,CAAD,CAAQG,OAAR,CAAgB,QAAhB,EAA0BY,IAA1B,CAA+B,OAA/B,CAAD,CAAtB;;AAEA,UAAIf,CAAC,CAAC,IAAD,CAAD,CAAQY,QAAR,CAAiB,aAAjB,CAAJ,EAAqC;AACnCI,QAAAA,aAAa,CAACH,OAAO,GAAG,CAAX,CAAb;AACD,OAFD,MAEO;AACL,YAAIA,OAAO,GAAG,CAAd,EAAiB;AACfG,UAAAA,aAAa,CAACH,OAAO,GAAG,CAAX,CAAb;AACD;AACF;AACF;AACF,GAZD;AAaD;;AAED,SAASpC,SAAT,CAAmBwC,OAAnB,EAA4B;AAC1BjB,EAAAA,CAAC,CAAC,WAAWiB,OAAZ,CAAD,CAAsBC,KAAtB,CAA4B,UAAUC,KAAV,EAAiB;AAC3C;AACA,QAAIA,KAAK,CAACC,KAAN,IAAe,EAAf,IAAqBD,KAAK,CAACC,KAAN,IAAe,EAAxC,EAA4C,OAFD,CAES;;AAEpDpB,IAAAA,CAAC,CAAC,IAAD,CAAD,CAAQqB,GAAR,CAAY,UAAUC,KAAV,EAAiBC,KAAjB,EAAwB;AAClC,aAAOA,KAAK,CAACC,OAAN,CAAc,KAAd,EAAqB,EAArB,EAAyBA,OAAzB,CAAiC,uBAAjC,EAA0D,GAA1D,CAAP;AACD,KAFD;AAGD,GAPD;AAQD;;AAED,SAAShD,gBAAT,CAA0BiD,SAA1B,EAAqC;AACnC,MAAIC,UAAU,GAAG,2BAAjB;AACA,MAAIC,QAAQ,GAAG,QAAf;AACA,MAAIC,MAAM,GAAG,EAAb;;AAEA,OAAK,IAAIxD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyD,OAAO,CAACC,MAAR,CAAezD,MAAnC,EAA2CD,CAAC,EAA5C,EAAgD;AAC9CwD,IAAAA,MAAM,IAAIF,UAAV;AAEAE,IAAAA,MAAM,IAAI,gCAAgCxD,CAAhC,GAAoC,IAApC,GAA2C,mCAA3C,GAAiFyD,OAAO,CAACC,MAAR,CAAe1D,CAAf,EAAkB,OAAlB,CAAjF,GAA8G,wBAA9G,GAAyIyD,OAAO,CAACC,MAAR,CAAe1D,CAAf,EAAkB,MAAlB,CAAzI,GAAqK,2BAArK,GAAmMyD,OAAO,CAACC,MAAR,CAAe1D,CAAf,EAAkB,WAAlB,CAAnM,GAAoO,iBAA9O;AACAwD,IAAAA,MAAM,IAAI,mCAAmCxD,CAAnC,GAAuC,+BAAvC,GAAyEA,CAAzE,GAA6E,aAAvF;AACAwD,IAAAA,MAAM,IAAID,QAAV;AACD;;AAED9D,EAAAA,QAAQ,CAACkE,cAAT,CAAwBN,SAAxB,EAAmCxC,SAAnC,GAA+C2C,MAA/C;AACD;;AAED,SAASI,iBAAT,CAA2BP,SAA3B,EAAsC;AACpC,MAAIQ,YAAY,GAAG3D,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAnB;AACA,MAAIR,UAAU,GAAG,2BAAjB;AACA,MAAIC,QAAQ,GAAG,QAAf;AACA,MAAIC,MAAM,GAAG,EAAb;;AAEA,OAAK,IAAIxD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC9D,MAAzD,EAAiED,CAAC,EAAlE,EAAsE;AACpEwD,IAAAA,MAAM,IAAIF,UAAV;;AAEA,QAAIG,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,WAAxC,KAAwD,CAA5D,EAA+D;AAC7DwD,MAAAA,MAAM,IAAI,wCAAwCxD,CAAxC,GAA4C,kCAA5C,GAAiFyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,WAAxC,CAAjF,GAAwI,SAAxI,GAAoJyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,YAAxC,CAApJ,GAA4M,kBAAtN;AACD,KAFD,MAEO,IAAI,CAACyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,WAAxC,CAAL,EAA2D;AAChEwD,MAAAA,MAAM,IAAI,wCAAwCxD,CAAxC,GAA4C,yBAA5C,GAAwE,UAAxE,GAAqFyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,WAAxC,CAArF,GAA4I,IAA5I,GAAmJyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,YAAxC,CAAnJ,GAA2M,kBAArN;AACD,KAFM,MAEA;AACLwD,MAAAA,MAAM,IAAI,wCAAwCxD,CAAxC,GAA4C,yBAA5C,GAAwEyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,WAAxC,CAAxE,GAA+H,MAA/H,GAAwIyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,WAAxC,CAAxI,GAA+L,SAA/L,GAA2MyD,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC/D,CAArC,EAAwC,YAAxC,CAA3M,GAAmQ,kBAA7Q;AACD;;AAEDwD,IAAAA,MAAM,IAAI,oCAAoCxD,CAApC,GAAwC,6BAAxC,GAAwEA,CAAxE,GAA4E,aAAtF;AACAwD,IAAAA,MAAM,IAAID,QAAV;AACD;;AAED9D,EAAAA,QAAQ,CAACkE,cAAT,CAAwBN,SAAxB,EAAmCxC,SAAnC,GAA+C2C,MAA/C;AACD;;AAED,SAASZ,aAAT,CAAuBoB,MAAvB,EAA+B;AAC7B,MAAIC,aAAa,GAAG,kBAAkBD,MAAlB,GAA2B,IAA/C;AACA,MAAIE,SAAS,GAAGtC,CAAC,CAACqC,aAAD,CAAjB;AACArC,EAAAA,CAAC,CAAC,eAAD,CAAD,CAAmBK,WAAnB,CAA+B,QAA/B,EAAyCG,IAAzC,CAA8C,eAA9C,EAA+D,OAA/D,EAAwE+B,OAAxE;AACAD,EAAAA,SAAS,CAAChC,QAAV,CAAmB,QAAnB,EAA6BkC,MAA7B,GAAsChC,IAAtC,CAA2C,eAA3C,EAA4D,MAA5D,EAAoEiC,KAApE;;AAEA,MAAIL,MAAM,IAAI,CAAd,EAAiB;AACfJ,IAAAA,iBAAiB,CAAC,eAAD,CAAjB;AACD;;AAEDU,EAAAA,aAAa,CAACL,aAAD,CAAb;AACD;;AAED,SAASxD,cAAT,GAA0B;AACxB,MAAI,CAAC8D,MAAM,CAAC9E,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,CAAD,CAAP,IAAsD,CAACY,MAAM,CAAC9E,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,CAAD,CAAjE,EAA8G;AAC5GlE,IAAAA,QAAQ,CAAC+E,aAAT,CAAuB,iBAAvB,EAA0C9E,gBAA1C,CAA2D,UAA3D,EAAuE,UAAUoC,CAAV,EAAa;AAClF;AACA,UAAIA,CAAC,CAACkB,KAAF,GAAU,EAAV,IAAgBlB,CAAC,CAACkB,KAAF,GAAU,EAA9B,EAAkC;AAChC,YAAIlB,CAAC,CAACkB,KAAF,IAAW,EAAf,EAAmB;AACjBlB,UAAAA,CAAC,CAAC2C,cAAF;AACD;AACF;AACF,KAPD;AAQAhF,IAAAA,QAAQ,CAAC+E,aAAT,CAAuB,iBAAvB,EAA0C9E,gBAA1C,CAA2D,UAA3D,EAAuE,UAAUoC,CAAV,EAAa;AAClF;AACA,UAAIA,CAAC,CAACkB,KAAF,GAAU,EAAV,IAAgBlB,CAAC,CAACkB,KAAF,GAAU,EAA9B,EAAkC;AAChC,YAAIlB,CAAC,CAACkB,KAAF,IAAW,EAAf,EAAmB;AACjBlB,UAAAA,CAAC,CAAC2C,cAAF;AACD;AACF;AACF,KAPD;AAQAhF,IAAAA,QAAQ,CAAC+E,aAAT,CAAuB,iBAAvB,EAA0C9E,gBAA1C,CAA2D,OAA3D,EAAoE,UAAUoC,CAAV,EAAa;AAC/E,UAAIrC,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,EAA0CR,KAA1C,IAAmD,EAAnD,IAAyD1D,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,EAA0CR,KAA1C,IAAmD,EAAhH,EAAoH;AAClH1D,QAAAA,QAAQ,CAACkE,cAAT,CAAwB,kBAAxB,EAA4Ce,SAA5C,CAAsDC,MAAtD,CAA6D,UAA7D;AACAlF,QAAAA,QAAQ,CAACkE,cAAT,CAAwB,kBAAxB,EAA4CiB,QAA5C,GAAuD,GAAvD;AACD;AACF,KALD;AAMAnF,IAAAA,QAAQ,CAAC+E,aAAT,CAAuB,iBAAvB,EAA0C9E,gBAA1C,CAA2D,OAA3D,EAAoE,UAAUoC,CAAV,EAAa;AAC/E,UAAIrC,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,EAA0CR,KAA1C,IAAmD,EAAnD,IAAyD1D,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,EAA0CR,KAA1C,IAAmD,EAAhH,EAAoH;AAClH1D,QAAAA,QAAQ,CAACkE,cAAT,CAAwB,kBAAxB,EAA4Ce,SAA5C,CAAsDC,MAAtD,CAA6D,UAA7D;AACAlF,QAAAA,QAAQ,CAACkE,cAAT,CAAwB,kBAAxB,EAA4CiB,QAA5C,GAAuD,GAAvD;AACD;AACF,KALD;AAMD;AACF;;AAED,SAASlE,YAAT,GAAwB;AACtB,MAAI,CAAC6D,MAAM,CAAC9E,QAAQ,CAACkE,cAAT,CAAwB,kBAAxB,CAAD,CAAX,EAA0D;AACxDlE,IAAAA,QAAQ,CAACkE,cAAT,CAAwB,kBAAxB,EAA4CjE,gBAA5C,CAA6D,OAA7D,EAAsE,UAAUoC,CAAV,EAAa;AACjF,UAAI+C,cAAc,GAAGC,kBAAkB,CAACrF,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,EAA0CR,KAA3C,CAAvC;AACA,UAAI4B,cAAc,GAAGD,kBAAkB,CAACrF,QAAQ,CAACkE,cAAT,CAAwB,gBAAxB,EAA0CR,KAA3C,CAAvC;;AAEA,UAAI,CAAC6B,KAAK,CAACH,cAAD,CAAN,IAA0B,CAACG,KAAK,CAACD,cAAD,CAApC,EAAsD;AACpD;AACA7E,QAAAA,cAAc,CAACqC,OAAf,CAAuB,gBAAvB,EAAyCsC,cAAzC;AACA3E,QAAAA,cAAc,CAACqC,OAAf,CAAuB,gBAAvB,EAAyCwC,cAAzC;AACA7D,QAAAA,MAAM,CAACC,QAAP,GAAkB,gBAAlB;AACD,OALD,MAKO;AACL,aAAKuD,SAAL,CAAeO,GAAf,CAAmB,UAAnB;AACA,aAAKL,QAAL,GAAgB,IAAhB;AACD;AACF,KAbD;AAcD;AACF;;AAED,SAAS/E,aAAT,GAAyB;AACvB,MAAIqF,CAAC,GAAGhF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAR;AACA,MAAIqB,CAAC,GAAGjF,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAR;AACA,MAAIsB,CAAC,GAAGlF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAR;AACA,MAAIuB,CAAC,GAAGnF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAR;;AAEA,MAAIS,MAAM,CAACW,CAAD,CAAN,IAAaX,MAAM,CAACY,CAAD,CAAnB,IAA0BZ,MAAM,CAACa,CAAD,CAAhC,IAAuCb,MAAM,CAACc,CAAD,CAAjD,EAAsD;AACpD5F,IAAAA,QAAQ,CAACkE,cAAT,CAAwB,eAAxB,EAAyC9C,SAAzC,GAAqD,yGAArD;AACApB,IAAAA,QAAQ,CAACkE,cAAT,CAAwB,eAAxB,EAAyC2B,KAAzC,CAA+CC,OAA/C,GAAyD,OAAzD;AACA9F,IAAAA,QAAQ,CAAC+E,aAAT,CAAuB,yBAAvB,EAAkDc,KAAlD,CAAwDC,OAAxD,GAAkE,MAAlE;AACA,WAAO,KAAP;AACD;;AAED,SAAO,IAAP;AACD;;AAED,SAAShB,MAAT,CAAgBpB,KAAhB,EAAuB;AACrB,MAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,IAAI,MAA/B,EAAuC;AACrC,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD;;AAED,SAASrD,cAAT,GAA0B;AACxB;AACA,MAAI+D,YAAY,GAAG2B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAAzB;AACA,MAAI2B,YAAY,GAAGhC,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6B,cAA7B,CAAnB;AACA,MAAI6B,UAAU,GAAGjC,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6B,MAA7B,CAAjB;AACA3D,EAAAA,cAAc,CAACqC,OAAf,CAAuB,cAAvB,EAAuCkD,YAAvC;AACAvF,EAAAA,cAAc,CAACqC,OAAf,CAAuB,YAAvB,EAAqCmD,UAArC,EANwB,CAM0B;;AAElD,MAAIC,UAAU,GAAGH,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAD,CAAvB;AACA,MAAI8B,UAAU,GAAGnC,OAAO,CAACC,MAAR,CAAeG,YAAf,EAA6BE,OAA7B,CAAqC4B,UAArC,EAAiD,YAAjD,CAAjB;AACAzF,EAAAA,cAAc,CAACqC,OAAf,CAAuB,YAAvB,EAAqCqD,UAArC;AACA,MAAIC,aAAa,GAAGL,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAD,CAA1B;AACA,MAAIgC,YAAY,GAAGN,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAD,CAAzB,CAZwB,CAY6C;;AAErEiC,EAAAA,aAAa,CAACN,YAAD,EAAeG,UAAf,EAA2BC,aAA3B,EAA0CC,YAA1C,CAAb;AACD;;AAED,SAASC,aAAT,CAAuBN,YAAvB,EAAqCE,UAArC,EAAiDE,aAAjD,EAAgEC,YAAhE,EAA8E;AAC5E,OAAK,IAAI9F,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGT,WAAW,CAACU,MAAhC,EAAwCD,CAAC,EAAzC,EAA6C;AAC3CE,IAAAA,cAAc,CAACC,UAAf,CAA0BZ,WAAW,CAACS,CAAD,CAArC;AACD;;AAED,MAAIgG,UAAJ;AACA,MAAIC,cAAJ;AACAA,EAAAA,cAAc,GAAGJ,aAAa,GAAGC,YAAjC;AACA5F,EAAAA,cAAc,CAACqC,OAAf,CAAuB,gBAAvB,EAAyC0D,cAAzC,EAR4E,CAQlB;;AAE1D,MAAIC,OAAO,GAAGL,aAAa,GAAGC,YAAhB,GAA+BL,YAA/B,GAA8CI,aAAa,GAAGC,YAA9D,GAA6EL,YAA3F,CAV4E,CAU6B;;AAEzGvF,EAAAA,cAAc,CAACqC,OAAf,CAAuB,wBAAvB,EAAiD2D,OAAjD;AACA,MAAIC,OAAO,GAAGD,OAAO,GAAG,CAAxB;AACAhG,EAAAA,cAAc,CAACqC,OAAf,CAAuB,wBAAvB,EAAiD4D,OAAjD;AACA,MAAIC,SAAS,GAAGF,OAAO,GAAG,CAA1B;AACAhG,EAAAA,cAAc,CAACqC,OAAf,CAAuB,0BAAvB,EAAmD6D,SAAnD,EAhB4E,CAgBb;;AAE/D,MAAIC,aAAa,GAAGR,aAAa,GAAGC,YAAY,GAAG,CAAnD;AACA5F,EAAAA,cAAc,CAACqC,OAAf,CAAuB,yBAAvB,EAAkD8D,aAAlD;AACA,MAAIC,aAAa,GAAGb,YAAY,GAAGI,aAAf,GAA+BJ,YAA/B,GAA8CI,aAAlE;AACA3F,EAAAA,cAAc,CAACqC,OAAf,CAAuB,yBAAvB,EAAkD+D,aAAlD;AACA,MAAIC,eAAe,GAAGF,aAAa,GAAGC,aAAtC;AACApG,EAAAA,cAAc,CAACqC,OAAf,CAAuB,uBAAvB,EAAgDgE,eAAhD;;AAEA,MAAIA,eAAe,GAAGJ,OAAtB,EAA+B;AAC7B,QAAIK,yBAAyB,GAAGD,eAAe,GAAGJ,OAAlD;AACA,QAAIM,yBAAyB,GAAGD,yBAAyB,GAAGb,UAA5D;AACAzF,IAAAA,cAAc,CAACqC,OAAf,CAAuB,mBAAvB,EAA4C,IAA5C;AACArC,IAAAA,cAAc,CAACqC,OAAf,CAAuB,2BAAvB,EAAoDiE,yBAApD;AACAtG,IAAAA,cAAc,CAACqC,OAAf,CAAuB,2BAAvB,EAAoDkE,yBAApD;AACD,GAND,MAMO;AACLvG,IAAAA,cAAc,CAACqC,OAAf,CAAuB,mBAAvB,EAA4C,KAA5C;AACD,GAjC2E,CAiC1E;;;AAGF,MAAImE,eAAe,GAAGb,aAAa,GAAGC,YAAY,GAAG,CAArD;AACA5F,EAAAA,cAAc,CAACqC,OAAf,CAAuB,2BAAvB,EAAoDmE,eAApD;AACA,MAAIC,eAAe,GAAGlB,YAAY,GAAGI,aAAf,GAA+BJ,YAA/B,GAA8CI,aAApE;AACA3F,EAAAA,cAAc,CAACqC,OAAf,CAAuB,2BAAvB,EAAoDoE,eAApD;AACA,MAAIC,iBAAiB,GAAGnB,YAAY,GAAGI,aAAf,GAA+BJ,YAA/B,GAA8CI,aAAtE;AACA3F,EAAAA,cAAc,CAACqC,OAAf,CAAuB,6BAAvB,EAAsDqE,iBAAtD;AACA,MAAIC,iBAAiB,GAAGH,eAAe,GAAGC,eAAlB,GAAoCC,iBAA5D;AACA1G,EAAAA,cAAc,CAACqC,OAAf,CAAuB,yBAAvB,EAAkDsE,iBAAlD;;AAEA,MAAIA,iBAAiB,GAAGT,SAAxB,EAAmC;AACjC,QAAIU,2BAA2B,GAAGD,iBAAiB,GAAGT,SAAtD;AACA,QAAIW,2BAA2B,GAAGD,2BAA2B,GAAGnB,UAAhE;AACAzF,IAAAA,cAAc,CAACqC,OAAf,CAAuB,qBAAvB,EAA8C,IAA9C;AACArC,IAAAA,cAAc,CAACqC,OAAf,CAAuB,6BAAvB,EAAsDuE,2BAAtD;AACA5G,IAAAA,cAAc,CAACqC,OAAf,CAAuB,6BAAvB,EAAsDwE,2BAAtD;AACD,GAND,MAMO;AACL7G,IAAAA,cAAc,CAACqC,OAAf,CAAuB,qBAAvB,EAA8C,KAA9C;AACD,GArD2E,CAqD1E;;;AAGF,MAAIsD,aAAa,GAAGJ,YAApB,EAAkC;AAChCO,IAAAA,UAAU,GAAGF,YAAY,GAAGH,UAA5B;AACD,GAFD,MAEO;AACLK,IAAAA,UAAU,GAAG,CAACC,cAAc,GAAGR,YAAlB,IAAkCE,UAA/C;AACD;;AAEDzF,EAAAA,cAAc,CAACqC,OAAf,CAAuB,mBAAvB,EAA4CyD,UAA5C;AACA,MAAIgB,WAAJ;;AAEA,MAAIT,eAAe,GAAGJ,OAAlB,IAA6BU,iBAAiB,GAAGT,SAArD,EAAgE;AAC9D,QAAIH,cAAc,GAAGR,YAArB,EAAmC;AACjCuB,MAAAA,WAAW,GAAG,CAAd;AACD,KAFD,MAEO;AACLA,MAAAA,WAAW,GAAG,CAAd;AACD;AACF,GAND,MAMO;AACL,QAAIf,cAAc,GAAGR,YAArB,EAAmC;AACjCuB,MAAAA,WAAW,GAAG,CAAd;AACD,KAFD,MAEO;AACLA,MAAAA,WAAW,GAAG,CAAd;AACD;AACF;;AAED9G,EAAAA,cAAc,CAACqC,OAAf,CAAuB,aAAvB,EAAsCyE,WAAtC;AACD;;AAED,SAASjH,YAAT,GAAwB;AACtB,MAAIiH,WAAW,GAAGxB,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,aAAvB,CAAD,CAAxB;AACA,MAAImD,QAAJ;AACA,MAAIC,OAAJ;AACA,MAAIC,QAAJ;AACA,MAAIC,SAAJ;AACA,MAAIC,cAAJ;AACA,MAAIC,aAAa,GAAG9B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAD,CAAN,GAA+C,GAAnE;AACA,MAAIgC,YAAY,GAAGN,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAD,CAAzB;AACA,MAAIyD,SAAS,GAAG,gGAAhB;AACA,MAAIC,QAAQ,GAAG,sBAAf;AACA,MAAIC,iBAAiB,GAAGjC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,mBAAvB,CAAD,CAAN,GAAsD,CAAtD,GAA0D0B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,mBAAvB,CAAD,CAAhE,GAAgH,CAAxI;AACA,MAAI4D,kBAAJ;AACA,MAAIC,oBAAJ;;AAEA,MAAInC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAD,CAAN,GAAmD0B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAA7D,EAAuG;AACrG4D,IAAAA,kBAAkB,GAAG5B,YAAY,GAAG,CAAf,GAAmBN,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAD,CAA9C;AACA6D,IAAAA,oBAAoB,GAAG7B,YAAY,GAAG,CAAf,GAAmBN,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAD,CAAhD;AACD,GAHD,MAGO;AACL4D,IAAAA,kBAAkB,GAAG,CAAClC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAD,CAAN,GAAmDgC,YAAY,GAAG,CAAlE,GAAsEN,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAA7E,IAAyH0B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAD,CAApJ;AACA6D,IAAAA,oBAAoB,GAAG,CAACnC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,gBAAvB,CAAD,CAAN,GAAmDgC,YAAY,GAAG,CAAlE,GAAsEN,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAA7E,IAAyH0B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAD,CAAtJ;AACD;;AAED4D,EAAAA,kBAAkB,GAAGA,kBAAkB,GAAG,CAArB,GAAyBA,kBAAzB,GAA8C,CAAnE;AACAC,EAAAA,oBAAoB,GAAGA,oBAAoB,GAAG,CAAvB,GAA2BA,oBAA3B,GAAkD,CAAzE;AACA,MAAIC,cAAc,GAAG1H,cAAc,CAAC4D,OAAf,CAAuB,qBAAvB,KAAiD,MAAjD,IAA2D5D,cAAc,CAAC4D,OAAf,CAAuB,mBAAvB,KAA+C,OAA1G,GAAoH,IAApH,GAA2H,KAAhJ;;AAEA,UAAQkD,WAAR;AACE,SAAK,CAAL;AACE;AACAC,MAAAA,QAAQ,GAAG,2EAAX;AACAC,MAAAA,OAAO,GAAG,+EAA+E1B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,mBAAvB,CAAD,CAAN,CAAoD+D,cAApD,EAA/E,GAAsJ,oDAAhK;AACAV,MAAAA,QAAQ,GAAG,0LAA0LjH,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAA1L,GAAiO,6CAAjO,GAAiR0B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAAN,CAA+C+D,cAA/C,EAAjR,GAAmV,oZAA9V;AACAR,MAAAA,cAAc,GAAG,sFAAjB;AACAD,MAAAA,SAAS,GAAG,SAAZ;AACAA,MAAAA,SAAS,IAAI,kLAAb;AACAA,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmD1B,YAAY,CAAC+B,cAAb,EAAnD,GAAmF,YAAnF,GAAkG,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAlG,GAAwI,YAAxI,GAAuJ,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAvJ,GAA6L,YAA1M;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmDhC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,mBAAvB,CAAD,CAAN,CAAoD+D,cAApD,EAAnD,GAA0H,YAA1H,GAAyIH,kBAAkB,CAACG,cAAnB,EAAzI,GAA+K,YAA/K,GAA8LF,oBAAoB,CAACE,cAArB,EAA9L,GAAsO,YAAnP;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,6CAAX,GAA2DD,SAA3D,GAAuE,OAAvE,GAAiF/B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,2BAAvB,CAAD,CAAN,CAA4D+D,cAA5D,EAAjF,GAAgK,YAAhK,GAA+KrC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,6BAAvB,CAAD,CAAN,CAA8D+D,cAA9D,EAA/K,GAAgQ,YAA7Q;AACAT,MAAAA,SAAS,IAAI,UAAb;AACA;;AAEF,SAAK,CAAL;AACE;AACA,UAAIU,UAAU,GAAGF,cAAc,GAAG,OAAH,GAAa,KAA5C;AACAX,MAAAA,QAAQ,GAAG,kGAAX;AACAC,MAAAA,OAAO,GAAG,+DAAV;AACAC,MAAAA,QAAQ,GAAG,wLAAwLjH,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAAxL,GAA+N,6CAA/N,GAA+Q0B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAAN,CAA+C+D,cAA/C,EAA/Q,GAAiV,gHAAjV,GAAocC,UAApc,GAAid,oKAA5d;AACAT,MAAAA,cAAc,GAAG,EAAjB;AACAD,MAAAA,SAAS,GAAG,SAAZ;AACAA,MAAAA,SAAS,IAAI,kLAAb;AACAA,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmD1B,YAAY,CAAC+B,cAAb,EAAnD,GAAmF,YAAnF,GAAkG,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAlG,GAAwI,YAAxI,GAAuJ,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAvJ,GAA6L,YAA1M;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmDC,iBAAiB,CAACI,cAAlB,EAAnD,GAAwF,YAAxF,GAAuGH,kBAAkB,CAACG,cAAnB,EAAvG,GAA6I,YAA7I,GAA4JF,oBAAoB,CAACE,cAArB,EAA5J,GAAoM,YAAjN;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,6CAAX,GAA2DD,SAA3D,GAAuE,OAAvE,GAAiF/B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,2BAAvB,CAAD,CAAN,CAA4D+D,cAA5D,EAAjF,GAAgK,YAAhK,GAA+KrC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,6BAAvB,CAAD,CAAN,CAA8D+D,cAA9D,EAA/K,GAAgQ,YAA7Q;AACAT,MAAAA,SAAS,IAAI,UAAb;AACA;;AAEF,SAAK,CAAL;AACE;AACAO,MAAAA,oBAAoB,GAAGA,oBAAoB,GAAG,CAAvB,GAA2BA,oBAA3B,GAAkD,CAAzE;AACAV,MAAAA,QAAQ,GAAG,mGAAX;AACAC,MAAAA,OAAO,GAAG,EAAV;AACAG,MAAAA,cAAc,GAAG,qKAAqK7B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAAN,CAA+C+D,cAA/C,EAArK,GAAuO,qCAAvO,GAA+Q3H,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAA/Q,GAAsT,gEAAvU;AACAsD,MAAAA,SAAS,GAAG,SAAZ;AACAA,MAAAA,SAAS,IAAI,kLAAb;AACAA,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmD1B,YAAY,CAAC+B,cAAb,EAAnD,GAAmF,YAAnF,GAAkG,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAlG,GAAwI,YAAxI,GAAuJ,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAvJ,GAA6L,YAA1M;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmDC,iBAAiB,CAACI,cAAlB,EAAnD,GAAwF,YAAxF,GAAuGH,kBAAkB,CAACG,cAAnB,EAAvG,GAA6I,YAA7I,GAA4JF,oBAAoB,CAACE,cAArB,EAA5J,GAAoM,YAAjN;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,6CAAX,GAA2DD,SAA3D,GAAuE,OAAvE,GAAiF/B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,2BAAvB,CAAD,CAAN,CAA4D+D,cAA5D,EAAjF,GAAgK,YAAhK,GAA+KrC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,6BAAvB,CAAD,CAAN,CAA8D+D,cAA9D,EAA/K,GAAgQ,YAA7Q;AACAT,MAAAA,SAAS,IAAI,UAAb;AACAD,MAAAA,QAAQ,GAAG,gPAAX;AACAA,MAAAA,QAAQ,IAAI,0CAAZ;AACAA,MAAAA,QAAQ,IAAI,4LAAZ;AACA;;AAEF,SAAK,CAAL;AACE;AACAF,MAAAA,QAAQ,GAAG,mEAAX;AACAC,MAAAA,OAAO,GAAG,mGAAV;AACAG,MAAAA,cAAc,GAAG,EAAjB;AACAD,MAAAA,SAAS,GAAG,SAAZ;AACAA,MAAAA,SAAS,IAAI,kLAAb;AACAA,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmD1B,YAAY,CAAC+B,cAAb,EAAnD,GAAmF,YAAnF,GAAkG,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAlG,GAAwI,YAAxI,GAAuJ,CAAC/B,YAAY,GAAG,CAAhB,EAAmB+B,cAAnB,EAAvJ,GAA6L,YAA1M;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,qCAAX,GAAmDC,iBAAiB,CAACI,cAAlB,EAAnD,GAAwF,YAAxF,GAAuGH,kBAAkB,CAACG,cAAnB,EAAvG,GAA6I,YAA7I,GAA4JF,oBAAoB,CAACE,cAArB,EAA5J,GAAoM,YAAjN;AACAT,MAAAA,SAAS,IAAII,QAAQ,GAAG,6CAAX,GAA2DD,SAA3D,GAAuE,OAAvE,GAAiF/B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,2BAAvB,CAAD,CAAN,CAA4D+D,cAA5D,EAAjF,GAAgK,YAAhK,GAA+KrC,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,6BAAvB,CAAD,CAAN,CAA8D+D,cAA9D,EAA/K,GAAgQ,YAA7Q;AACAT,MAAAA,SAAS,IAAI,UAAb;AACAD,MAAAA,QAAQ,GAAG,iMAAiM3B,MAAM,CAACtF,cAAc,CAAC4D,OAAf,CAAuB,cAAvB,CAAD,CAAN,CAA+C+D,cAA/C,EAAjM,GAAmQ,qCAAnQ,GAA2S3H,cAAc,CAAC4D,OAAf,CAAuB,YAAvB,CAA3S,GAAkV,OAA7V;AACAqD,MAAAA,QAAQ,IAAI,6SAAZ;AACAA,MAAAA,QAAQ,IAAI,0CAAZ;AACAA,MAAAA,QAAQ,IAAI,4LAAZ;AACA;AA9DJ;;AAiEA1H,EAAAA,QAAQ,CAAC+E,aAAT,CAAuB,iBAAvB,EAA0C3D,SAA1C,GAAsDoG,QAAtD;;AAEA,MAAIC,OAAO,CAACjH,MAAR,GAAiB,CAArB,EAAwB;AACtBR,IAAAA,QAAQ,CAAC+E,aAAT,CAAuB,gBAAvB,EAAyC3D,SAAzC,GAAqDqG,OAArD;AACD,GAFD,MAEO;AACLzH,IAAAA,QAAQ,CAAC+E,aAAT,CAAuB,iBAAvB,EAA0Cc,KAA1C,CAAgDyC,aAAhD,GAAgE,KAAhE;AACD;;AAEDtI,EAAAA,QAAQ,CAAC+E,aAAT,CAAuB,YAAvB,EAAqC3D,SAArC,GAAiDsG,QAAjD;AACA1H,EAAAA,QAAQ,CAAC+E,aAAT,CAAuB,aAAvB,EAAsC3D,SAAtC,GAAkDuG,SAAlD;AACA3H,EAAAA,QAAQ,CAAC+E,aAAT,CAAuB,mBAAvB,EAA4C3D,SAA5C,GAAwDwG,cAAxD;AACD;;AAED,SAAS/C,aAAT,CAAuB0D,QAAvB,EAAiC;AAC/BvI,EAAAA,QAAQ,CAAC+E,aAAT,CAAuBwD,QAAvB,EAAiCC,cAAjC,CAAgD;AAC9CC,IAAAA,QAAQ,EAAE;AADoC,GAAhD;AAGD;;AAED,SAAS5H,UAAT,GAAsB;AACpB,MAAI6H,OAAO,GAAG1I,QAAQ,CAAC2I,oBAAT,CAA8B,MAA9B,CAAd;;AAEA,OAAK,IAAIpI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmI,OAAO,CAAClI,MAA5B,EAAoCD,CAAC,EAArC,EAAyC;AACvCmI,IAAAA,OAAO,CAACnI,CAAD,CAAP,CAAWqI,KAAX;AACD;AACF;;AAED,SAASvD,kBAAT,CAA4B3B,KAA5B,EAAmC;AACjCA,EAAAA,KAAK,GAAGA,KAAK,CAACC,OAAN,CAAc,KAAd,EAAqB,EAArB,CAAR;AACA,SAAOV,QAAQ,CAACS,KAAD,EAAQ,EAAR,CAAf;AACD;;AAEDqC,MAAM,CAAC8C,SAAP,GAAmB9C,MAAM,CAAC8C,SAAP,IAAoB,UAAUnF,KAAV,EAAiB;AACtD,SAAO,OAAOA,KAAP,KAAiB,QAAjB,IAA6BoF,QAAQ,CAACpF,KAAD,CAArC,IAAgDqF,IAAI,CAACC,KAAL,CAAWtF,KAAX,MAAsBA,KAA7E;AACD,CAFD","sourcesContent":["\"use strict\";\n\nvar sessionVars = [\"yearOneWithoutBunching\", \"yearTwoWithoutBunching\", \"yearThreeWithoutBunching\", \"twoYearWithBunchYearOne\", \"twoYearWithBunchYearTwo\", \"twoYearWithBunchTotal\", \"bunchGoodTwoYears\", \"twoYearBunchAddlDeduction\", \"twoYearBunchAddlTaxSaving\", \"threeYearWithBunchYearOne\", \"threeYearWithBunchYearTwo\", \"threeYearWithBunchYearThree\", \"threeYearWithBunchTotal\", \"bunchGoodThreeYears\", \"threeYearBunchAddlDeduction\", \"threeYearBunchAddlTaxSaving\", \"taxSavingsOneYear\", \"totalDeduction\"];\nvar formVars = [\"donationAmount\", \"filingStatus\", \"taxBracket\", \"itemizedAmount\"];\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n updateYear();\n\n if (matchUrlString(\"results.html\")) {\n if (integrityTest()) {\n calculatorMath();\n buildResults();\n }\n } else {\n for (var i = 0; i < formVars.length; i++) {\n sessionStorage.removeItem(formVars[i]);\n }\n\n buildStatusRadio(\"radio-status\"); // buildBracketRadio(\"radio-bracket\");\n\n autoComma(\"text-input\");\n clearForms();\n }\n\n radioHighlight();\n formNavigation();\n calculatorPrep();\n calculatorGo();\n});\n\nfunction updateYear() {\n var placeholders = document.getElementsByClassName(\"currentTaxYear\");\n\n for (var i = 0; i < placeholders.length; i++) {\n placeholders[i].innerHTML = taxYear;\n }\n} // get query var or parameter from url\n\n\nfunction getQueryVariable(variable) {\n var query = window.location.search.substring(1);\n var vars = query.split(\"&\");\n\n for (var i = 0; i < vars.length; i++) {\n var pair = vars[i].split(\"=\");\n\n if (pair[0] == variable) {\n return pair[1];\n }\n }\n\n return false;\n}\n\nfunction matchUrlString(string) {\n var path = window.location.pathname;\n var vars = path.split(\"/\");\n\n for (var i = 0; i < vars.length; i++) {\n if (vars[i] == string) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction radioHighlight() {\n $(document).on('click change', '.radio-panel input[type=\"radio\"]', function (e) {\n $(this).closest('.radio-group').find('.radio-panel').removeClass('selected');\n $(this).closest('.radio-panel').addClass('selected');\n $(this).closest('.panel').find('.form-controls').children('.button-next').removeClass('disabled').attr(\"tabindex\", 0);\n var question = $(this).attr('name');\n var answer = $(this).attr('value');\n sessionStorage.setItem(question, answer);\n });\n}\n\nfunction formNavigation() {\n $('.button-next, .button-back').on('click', function (e) {\n if (!$(this).hasClass('disabled')) {\n var current = parseInt($(this).closest('.panel').data('panel'));\n\n if ($(this).hasClass('button-next')) {\n activatePanel(current + 1);\n } else {\n if (current > 1) {\n activatePanel(current - 1);\n }\n }\n }\n });\n}\n\nfunction autoComma(element) {\n $('input.' + element).keyup(function (event) {\n // skip for arrow keys\n if (event.which >= 37 && event.which <= 40) return; // format number\n\n $(this).val(function (index, value) {\n return value.replace(/\\D/g, \"\").replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\n });\n });\n}\n\nfunction buildStatusRadio(elementId) {\n var radioStart = '
';\n var radioEnd = '
';\n var output = '';\n\n for (var i = 0; i < taxData.status.length; i++) {\n output += radioStart;\n \n output += '';\n output += '';\n output += radioEnd;\n }\n\n document.getElementById(elementId).innerHTML = output;\n}\n\nfunction buildBracketRadio(elementId) {\n var filingStatus = sessionStorage.getItem(\"filingStatus\");\n var radioStart = '
';\n var radioEnd = '
';\n var output = '';\n\n for (var i = 0; i < taxData.status[filingStatus].bracket.length; i++) {\n output += radioStart;\n\n if (taxData.status[filingStatus].bracket[i][\"incomeMin\"] == 0) {\n output += '';\n } else if (!taxData.status[filingStatus].bracket[i][\"incomeMax\"]) {\n output += '';\n } else {\n output += '';\n }\n\n output += '';\n output += radioEnd;\n }\n\n document.getElementById(elementId).innerHTML = output;\n}\n\nfunction activatePanel(target) {\n var panelSelector = '[data-panel=\"' + target + '\"]';\n var nextPanel = $(panelSelector);\n $('.panel.active').removeClass('active').attr(\"aria-expanded\", \"false\").fadeOut();\n nextPanel.addClass('active').fadeIn().attr(\"aria-expanded\", \"true\").focus();\n\n if (target == 2) {\n buildBracketRadio(\"radio-bracket\");\n }\n\n scrollAnimate(panelSelector);\n}\n\nfunction calculatorPrep() {\n if (!isNull(document.getElementById(\"itemizedAmount\")) && !isNull(document.getElementById(\"itemizedAmount\"))) {\n document.querySelector('#donationAmount').addEventListener('keypress', function (e) {\n // console.log(e.which);\n if (e.which < 48 || e.which > 57) {\n if (e.which != 44) {\n e.preventDefault();\n }\n }\n });\n document.querySelector('#donationAmount').addEventListener('keypress', function (e) {\n // console.log(e.which);\n if (e.which < 48 || e.which > 57) {\n if (e.which != 44) {\n e.preventDefault();\n }\n }\n });\n document.querySelector('#itemizedAmount').addEventListener('keyup', function (e) {\n if (document.getElementById('itemizedAmount').value != \"\" && document.getElementById('donationAmount').value != \"\") {\n document.getElementById(\"button-calculate\").classList.remove('disabled');\n document.getElementById(\"button-calculate\").tabindex = \"0\";\n }\n });\n document.querySelector('#donationAmount').addEventListener('keyup', function (e) {\n if (document.getElementById('itemizedAmount').value != \"\" && document.getElementById('donationAmount').value != \"\") {\n document.getElementById(\"button-calculate\").classList.remove('disabled');\n document.getElementById(\"button-calculate\").tabindex = \"0\";\n }\n });\n }\n}\n\nfunction calculatorGo() {\n if (!isNull(document.getElementById(\"button-calculate\"))) {\n document.getElementById(\"button-calculate\").addEventListener('click', function (e) {\n var itemizedAmount = stripNumericCommas(document.getElementById('itemizedAmount').value);\n var donationAmount = stripNumericCommas(document.getElementById('donationAmount').value);\n\n if (!isNaN(itemizedAmount) && !isNaN(donationAmount)) {\n // console.log(\"good input\");\n sessionStorage.setItem(\"itemizedAmount\", itemizedAmount);\n sessionStorage.setItem(\"donationAmount\", donationAmount);\n window.location = \"./results.html\";\n } else {\n this.classList.add('disabled');\n this.tabindex = \"-1\";\n }\n });\n }\n}\n\nfunction integrityTest() {\n var a = sessionStorage.getItem(\"filingStatus\");\n var b = sessionStorage.getItem(\"taxBracket\");\n var c = sessionStorage.getItem(\"itemizedAmount\");\n var d = sessionStorage.getItem(\"donationAmount\");\n\n if (isNull(a) || isNull(b) || isNull(c) || isNull(d)) {\n document.getElementById(\"error-message\").innerHTML = '

An error has occurred. Please return to the calculator and try again.

';\n document.getElementById(\"error-message\").style.display = \"block\";\n document.querySelector(\".calc-header, .calc-cta\").style.display = \"none\";\n return false;\n }\n\n return true;\n}\n\nfunction isNull(value) {\n if (value === null || value == 'null') {\n return true;\n }\n\n return false;\n}\n\nfunction calculatorMath() {\n // figure out standard deduction\n var filingStatus = Number(sessionStorage.getItem(\"filingStatus\"));\n var stdDeduction = taxData.status[filingStatus][\"stdDeduction\"];\n var filingText = taxData.status[filingStatus][\"text\"];\n sessionStorage.setItem(\"stdDeduction\", stdDeduction);\n sessionStorage.setItem(\"filingText\", filingText); // figure out tax percentage\n\n var taxBracket = Number(sessionStorage.getItem(\"taxBracket\"));\n var taxDecimal = taxData.status[filingStatus].bracket[taxBracket][\"taxDecimal\"];\n sessionStorage.setItem(\"taxDecimal\", taxDecimal);\n var itemDeduction = Number(sessionStorage.getItem(\"itemizedAmount\"));\n var charDonation = Number(sessionStorage.getItem(\"donationAmount\")); // console.log(itemDeduction, charDonation);\n\n taxCalculator(stdDeduction, taxDecimal, itemDeduction, charDonation);\n}\n\nfunction taxCalculator(stdDeduction, taxBracket, itemDeduction, charDonation) {\n for (var i = 0; i < sessionVars.length; i++) {\n sessionStorage.removeItem(sessionVars[i]);\n }\n\n var taxSavings;\n var totalDeduction;\n totalDeduction = itemDeduction + charDonation;\n sessionStorage.setItem(\"totalDeduction\", totalDeduction); // without bunching\n\n var yearOne = itemDeduction + charDonation > stdDeduction ? itemDeduction + charDonation : stdDeduction; // assume we always take standard deduction if it is higher than combined deduction\n\n sessionStorage.setItem(\"yearOneWithoutBunching\", yearOne);\n var yearTwo = yearOne * 2;\n sessionStorage.setItem(\"yearTwoWithoutBunching\", yearTwo);\n var yearThree = yearOne * 3;\n sessionStorage.setItem(\"yearThreeWithoutBunching\", yearThree); // two years with bunching\n\n var yearOneBunTwo = itemDeduction + charDonation * 2;\n sessionStorage.setItem(\"twoYearWithBunchYearOne\", yearOneBunTwo);\n var yearTwoBunTwo = stdDeduction > itemDeduction ? stdDeduction : itemDeduction;\n sessionStorage.setItem(\"twoYearWithBunchYearTwo\", yearTwoBunTwo);\n var twoYearBunTotal = yearOneBunTwo + yearTwoBunTwo;\n sessionStorage.setItem(\"twoYearWithBunchTotal\", twoYearBunTotal);\n\n if (twoYearBunTotal > yearTwo) {\n var twoYearBunchAddlDeduction = twoYearBunTotal - yearTwo;\n var twoYearBunchAddlTaxSaving = twoYearBunchAddlDeduction * taxBracket;\n sessionStorage.setItem(\"bunchGoodTwoYears\", true);\n sessionStorage.setItem(\"twoYearBunchAddlDeduction\", twoYearBunchAddlDeduction);\n sessionStorage.setItem(\"twoYearBunchAddlTaxSaving\", twoYearBunchAddlTaxSaving);\n } else {\n sessionStorage.setItem(\"bunchGoodTwoYears\", false);\n } // three years with bunching\n\n\n var yearOneBunThree = itemDeduction + charDonation * 3;\n sessionStorage.setItem(\"threeYearWithBunchYearOne\", yearOneBunThree);\n var yearTwoBunThree = stdDeduction > itemDeduction ? stdDeduction : itemDeduction;\n sessionStorage.setItem(\"threeYearWithBunchYearTwo\", yearTwoBunThree);\n var yearThreeBunThree = stdDeduction > itemDeduction ? stdDeduction : itemDeduction;\n sessionStorage.setItem(\"threeYearWithBunchYearThree\", yearThreeBunThree);\n var threeYearBunTotal = yearOneBunThree + yearTwoBunThree + yearThreeBunThree;\n sessionStorage.setItem(\"threeYearWithBunchTotal\", threeYearBunTotal);\n\n if (threeYearBunTotal > yearThree) {\n var threeYearBunchAddlDeduction = threeYearBunTotal - yearThree;\n var threeYearBunchAddlTaxSaving = threeYearBunchAddlDeduction * taxBracket;\n sessionStorage.setItem(\"bunchGoodThreeYears\", true);\n sessionStorage.setItem(\"threeYearBunchAddlDeduction\", threeYearBunchAddlDeduction);\n sessionStorage.setItem(\"threeYearBunchAddlTaxSaving\", threeYearBunchAddlTaxSaving);\n } else {\n sessionStorage.setItem(\"bunchGoodThreeYears\", false);\n } // one year tax savings\n\n\n if (itemDeduction > stdDeduction) {\n taxSavings = charDonation * taxBracket;\n } else {\n taxSavings = (totalDeduction - stdDeduction) * taxBracket;\n }\n\n sessionStorage.setItem(\"taxSavingsOneYear\", taxSavings);\n var pageToBuild;\n\n if (twoYearBunTotal > yearTwo || threeYearBunTotal > yearThree) {\n if (totalDeduction > stdDeduction) {\n pageToBuild = 1;\n } else {\n pageToBuild = 2;\n }\n } else {\n if (totalDeduction > stdDeduction) {\n pageToBuild = 4;\n } else {\n pageToBuild = 3;\n }\n }\n\n sessionStorage.setItem(\"pageToBuild\", pageToBuild);\n}\n\nfunction buildResults() {\n var pageToBuild = Number(sessionStorage.getItem(\"pageToBuild\"));\n var headline;\n var subhead;\n var calcbody;\n var calctable;\n var calctableintro;\n var taxPercentage = Number(sessionStorage.getItem(\"taxDecimal\")) * 100;\n var charDonation = Number(sessionStorage.getItem(\"donationAmount\"));\n var emptyCell = 'NAnot applicable';\n var startRow = '';\n var taxSavingsOneYear = Number(sessionStorage.getItem(\"taxSavingsOneYear\")) > 0 ? Number(sessionStorage.getItem(\"taxSavingsOneYear\")) : 0;\n var taxSavingsTwoYears;\n var taxSavingsThreeYears;\n\n if (Number(sessionStorage.getItem(\"itemizedAmount\")) > Number(sessionStorage.getItem(\"stdDeduction\"))) {\n taxSavingsTwoYears = charDonation * 2 * Number(sessionStorage.getItem(\"taxDecimal\"));\n taxSavingsThreeYears = charDonation * 3 * Number(sessionStorage.getItem(\"taxDecimal\"));\n } else {\n taxSavingsTwoYears = (Number(sessionStorage.getItem(\"itemizedAmount\")) + charDonation * 2 - Number(sessionStorage.getItem(\"stdDeduction\"))) * Number(sessionStorage.getItem(\"taxDecimal\"));\n taxSavingsThreeYears = (Number(sessionStorage.getItem(\"itemizedAmount\")) + charDonation * 3 - Number(sessionStorage.getItem(\"stdDeduction\"))) * Number(sessionStorage.getItem(\"taxDecimal\"));\n }\n\n taxSavingsTwoYears = taxSavingsTwoYears > 0 ? taxSavingsTwoYears : 0;\n taxSavingsThreeYears = taxSavingsThreeYears > 0 ? taxSavingsThreeYears : 0;\n var bunchThreeOnly = sessionStorage.getItem(\"bunchGoodThreeYears\") == \"true\" && sessionStorage.getItem(\"bunchGoodTwoYears\") == \"false\" ? true : false;\n\n switch (pageToBuild) {\n case 1:\n // code here\n headline = 'It turns out that bunching contributions could increase your tax savings.';\n subhead = 'From our calculations, your charitable deductions could save you $' + Number(sessionStorage.getItem(\"taxSavingsOneYear\")).toLocaleString() + ' on taxes this year even before bunching.';\n calcbody = '

Itemizing your taxes only reduces your tax bill when your deductions (including charitable gifts) come out to more than the standard tax deduction. For you, a taxpayer filing as ' + sessionStorage.getItem(\"filingText\") + ', the standard deduction would be $' + Number(sessionStorage.getItem(\"stdDeduction\")).toLocaleString() + '.

In this scenario, it’s likely you will receive a tax benefit from your donations whether you bunch or not. However, if you bunch two or more years’ worth of giving into the current year, you could increase your overall tax benefit compared to giving that same amount each year. This could also provide additional tax benefits if your tax rate this year is higher than future years.

';\n calctableintro = '

But bunching could help save you even more money on taxes. Here’s how much:

';\n calctable = '';\n calctable += '';\n calctable += startRow + 'Total charitable donation';\n calctable += startRow + 'Tax savings from donation';\n calctable += startRow + 'Additional tax savings due to bunching' + emptyCell + '';\n calctable += '
 Without bunchingBunch 2 years of donationsBunch 3 years of donations
$' + charDonation.toLocaleString() + '$' + (charDonation * 2).toLocaleString() + '$' + (charDonation * 3).toLocaleString() + '
$' + Number(sessionStorage.getItem(\"taxSavingsOneYear\")).toLocaleString() + '$' + taxSavingsTwoYears.toLocaleString() + '$' + taxSavingsThreeYears.toLocaleString() + '
$' + Number(sessionStorage.getItem(\"twoYearBunchAddlTaxSaving\")).toLocaleString() + '$' + Number(sessionStorage.getItem(\"threeYearBunchAddlTaxSaving\")).toLocaleString() + '
';\n break;\n\n case 2:\n // code here\n var bunchYears = bunchThreeOnly ? \"three\" : \"two\";\n headline = 'From our calculations, itemizing won’t save you money on taxes this year—unless you bunch.';\n subhead = 'Bunching could help you save money on taxes. Here’s how much:';\n calcbody = '

Itemizing your taxes only reduces your tax bill when your deductions (including charitable gifts) add up to more than the standard tax deduction. For you, a taxpayer filing as ' + sessionStorage.getItem(\"filingText\") + ', the standard deduction would be $' + Number(sessionStorage.getItem(\"stdDeduction\")).toLocaleString() + '.

In this scenario, it’s likely you will receive a tax benefit from your donation if you bunch ' + bunchYears + ' or more years’ worth of giving into the current year. This could also provide additional tax benefits if your tax rate this year is higher than future years.

';\n calctableintro = '';\n calctable = '';\n calctable += '';\n calctable += startRow + 'Total charitable donation';\n calctable += startRow + 'Tax savings from donation';\n calctable += startRow + 'Additional tax savings due to bunching' + emptyCell + '';\n calctable += '
 Without bunchingBunch 2 years of donationsBunch 3 years of donations
$' + charDonation.toLocaleString() + '$' + (charDonation * 2).toLocaleString() + '$' + (charDonation * 3).toLocaleString() + '
$' + taxSavingsOneYear.toLocaleString() + '$' + taxSavingsTwoYears.toLocaleString() + '$' + taxSavingsThreeYears.toLocaleString() + '
$' + Number(sessionStorage.getItem(\"twoYearBunchAddlTaxSaving\")).toLocaleString() + '$' + Number(sessionStorage.getItem(\"threeYearBunchAddlTaxSaving\")).toLocaleString() + '
';\n break;\n\n case 3:\n // code here\n taxSavingsThreeYears = taxSavingsThreeYears > 0 ? taxSavingsThreeYears : 0;\n headline = \"From our calculations, itemizing wouldn’t save you money on taxes this year, even if you bunched.\";\n subhead = \"\";\n calctableintro = '

Bunching only reduces your tax bill when your itemized deductions are less than the standard tax deduction. In your case, the standard deduction is $' + Number(sessionStorage.getItem(\"stdDeduction\")).toLocaleString() + ' for a taxpayer filing as ' + sessionStorage.getItem(\"filingText\") + ', which is greater than your potential itemized deduction.

';\n calctable = '';\n calctable += '';\n calctable += startRow + 'Total charitable donation';\n calctable += startRow + 'Tax savings from donation';\n calctable += startRow + 'Additional tax savings due to bunching' + emptyCell + '';\n calctable += '
 Without bunchingBunch 2 years of donationsBunch 3 years of donations
$' + charDonation.toLocaleString() + '$' + (charDonation * 2).toLocaleString() + '$' + (charDonation * 3).toLocaleString() + '
$' + taxSavingsOneYear.toLocaleString() + '$' + taxSavingsTwoYears.toLocaleString() + '$' + taxSavingsThreeYears.toLocaleString() + '
$' + Number(sessionStorage.getItem(\"twoYearBunchAddlTaxSaving\")).toLocaleString() + '$' + Number(sessionStorage.getItem(\"threeYearBunchAddlTaxSaving\")).toLocaleString() + '
';\n calcbody = '

In this scenario, there are likely to be no additional tax benefits to a donation, so bunching may not be beneficial. But your donations still make a difference. Your community benefits when you give back. And that’s a great thing.

';\n calcbody += '

See how other scenarios add up.

';\n calcbody += '

Use the calculator to experiment with different giving amounts. You may find that a bunching strategy could result in additional tax benefits with a slight change of giving plans.

';\n break;\n\n case 4:\n // code here\n headline = \"It looks like bunching donations won’t increase your tax savings.\";\n subhead = \"From our calculations, itemizing wouldn’t save you money on taxes this year, even if you bunched.\";\n calctableintro = '';\n calctable = '';\n calctable += '';\n calctable += startRow + 'Total charitable donation';\n calctable += startRow + 'Tax savings from donation';\n calctable += startRow + 'Additional tax savings due to bunching' + emptyCell + '';\n calctable += '
 Without bunchingBunch 2 years of donationsBunch 3 years of donations
$' + charDonation.toLocaleString() + '$' + (charDonation * 2).toLocaleString() + '$' + (charDonation * 3).toLocaleString() + '
$' + taxSavingsOneYear.toLocaleString() + '$' + taxSavingsTwoYears.toLocaleString() + '$' + taxSavingsThreeYears.toLocaleString() + '
$' + Number(sessionStorage.getItem(\"twoYearBunchAddlTaxSaving\")).toLocaleString() + '$' + Number(sessionStorage.getItem(\"threeYearBunchAddlTaxSaving\")).toLocaleString() + '
';\n calcbody = '

Itemizing your taxes only reduces your tax bill when your deductions (including charitable gifts) come out to more than the standard tax deduction, which in your case would be $' + Number(sessionStorage.getItem(\"stdDeduction\")).toLocaleString() + ' for a taxpayer filing as ' + sessionStorage.getItem(\"filingText\") + '.

';\n calcbody += '

In this scenario, there are likely to be no additional tax benefits to a donation, so bunching may not be beneficial. However, if you bunch multiple years’ worth of giving into the current year, you could provide additional tax benefits if your tax rate this year is higher than future years.

';\n calcbody += '

See how other scenarios add up.

';\n calcbody += '

Use the calculator to experiment with different giving amounts. You may find that a bunching strategy could result in additional tax benefits with a slight change of giving plans.

';\n break;\n }\n\n document.querySelector('.calc-header h1').innerHTML = headline;\n\n if (subhead.length > 2) {\n document.querySelector('.calc-header p').innerHTML = subhead;\n } else {\n document.querySelector('.calc-header h1').style.paddingBottom = \"0px\";\n }\n\n document.querySelector('.calc-body').innerHTML = calcbody;\n document.querySelector('.calc-table').innerHTML = calctable;\n document.querySelector('.calc-table-intro').innerHTML = calctableintro;\n}\n\nfunction scrollAnimate(selector) {\n document.querySelector(selector).scrollIntoView({\n behavior: 'smooth'\n });\n}\n\nfunction clearForms() {\n var myForms = document.getElementsByTagName(\"form\");\n\n for (var i = 0; i < myForms.length; i++) {\n myForms[i].reset();\n }\n}\n\nfunction stripNumericCommas(value) {\n value = value.replace(/\\,/g, '');\n return parseInt(value, 10);\n}\n\nNumber.isInteger = Number.isInteger || function (value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n};\n//# sourceMappingURL=CC2733972.js.map\n"],"file":"CC3840755.js"}