{"mappings":"oYAAA,IAAAA,EAAAC,EAAA,SAEO,MAAMC,EAAgB,KAG3BC,EAAAH,GAAQI,sDCLV,IAAAC,EAAAJ,EAAA,SAEAK,EAAAC,QAAiB,CACfC,aAAcH,EACdD,cAAeC,EACfI,cAAeR,EAAA,gDCMf,SAAUS,GACV,GAAsB,oBAAXC,OAAX,CAEA,IAk5CkCC,EAl5C9BC,EAAQ,EACVC,GAAa,EACbC,GAAqB,EAErBC,EADY,UACaC,OACzBC,EAAQ,gBACRC,EAAWD,EAAMD,OACjBG,EAAe,KACfC,EAAwBV,OAAOU,sBAC/BC,EAAuBC,OAAOC,OAAO,CACnCC,IAAK,EACLC,OAAQ,EACRC,WAAY,EACZC,sBAAuB,IAEzBC,EAAW,GACXC,EAAQ,KACRC,EAAWR,OAAOC,OAAO,CACvBQ,YAAY,EACZC,eAAgB,KAChBC,WAAY,KACZC,aAAc,EACdC,YAAa,KACbC,aAAa,EACbC,aAAa,EACbC,qBAAqB,EACrBC,wBAAyB,aACzBC,GAAI,gBACJC,SAAU,GACVC,KAAK,EACLC,UAAWC,EAAAA,EACXC,SAAUD,EAAAA,EACVE,UAAW,EACXC,SAAU,EACVC,aAAa,EACbC,WAAY,SACZC,WAAW,EACXC,YAAY,EACZC,WAAW,EACXC,eAAgB,IAChBC,UAAW,EACXC,uBAAwB,SACxBC,QAAS,WACP,OAAO,GAETC,SAAU,aACVC,OAAQ,aACRC,UAAW,WACTC,EAAK,mCAEPC,aAAc,aACdC,aAAc,aACdC,UAAW,aACXC,SAAU,WACR,OAAO,KAiqCTC,EAAa,GAyMbvD,OAAOwD,SAAWzD,KAdYE,EAePD,OAAOwD,QAdzBC,GAEKxD,EAAEwD,GAAGC,eACfzD,EAAEwD,GAAGC,aAAe,SAAwBC,GAK1C,OAAOC,KAAKC,OAAO,UAAUC,MAJ7B,SAAcC,EAAOC,GACnBC,EAAYD,EAASL,MAGiBO,QAP1CC,EAAK,GAAI,sDAgBS,mBAAXC,QAAyBA,OAAOC,IACzCD,OAAO,GAAIE,GACsD,iBAAnB3E,EAAAC,UAE9CD,EAAAC,QAAiB0E,KAEnBtE,OAAO0D,aAAe1D,OAAO0D,cAAgBY,IAh3C7C,SAASC,IACP,OACEvE,OAAOwE,kBACPxE,OAAOyE,wBACPzE,OAAO0E,oBAIX,SAASC,EAAiBC,EAAIC,EAAKC,GACjCF,EAAGD,iBAAiBE,EAAKC,GAAM,GAGjC,SAASC,EAAoBH,EAAIC,EAAKC,GACpCF,EAAGG,oBAAoBF,EAAKC,GAAM,GAmCpC,SAASE,EAAgBC,GACvB,OAAO1E,EAAQ,IAdjB,SAAiB0E,GACf,IAAIC,EAAS,cAAgBD,EAS7B,OAPIjF,OAAOmF,MAAQnF,OAAOoF,OACxBF,EACElF,OAAOqF,cAAgBrF,OAAOqF,aAAaC,MACvCtF,OAAOqF,aAAaC,QAAU,KAAOL,EACrC,qBAAuBA,GAGxBC,EAIcK,CAAQN,GAAY,IAG3C,SAASO,EAAaP,GACpB,OAAO/D,EAAS+D,GAAY/D,EAAS+D,GAAUjD,IAAM7B,EAGvD,SAAS6B,EAAIiD,EAAUQ,GACrBC,EAAO,MAAOT,EAAUQ,EAAKD,EAAaP,IAG5C,SAASd,EAAKc,EAAUQ,GACtBC,EAAO,OAAQT,EAAUQ,EAAKD,EAAaP,IAG7C,SAAS/B,EAAK+B,EAAUQ,GACtBC,EAAO,OAAQT,EAAUQ,GAAK,GAGhC,SAASC,EAAOC,EAAMV,EAAUQ,EAAKG,IAC/B,IAASA,GAAW,iBAAoB5F,OAAO6F,SAEjDA,QAAQF,GAAMX,EAAgBC,GAAWQ,GAI7C,SAASK,EAAeC,GACtB,SAASC,IAOPC,EAAc,UACdA,EAAc,SAEdC,GATA,WACEC,EAAQC,GACRC,EAAgBC,GAChBC,EAAG,YAAaH,KAMCA,EAAa,QAkBlC,SAASI,EAAeC,GACtB,MAA4B,eAAxBA,EAAUC,UACL,GAECD,EAAUE,WAAaC,SAASH,EAAUE,WAAY,IAAM,IAC5DF,EAAUI,cAChBD,SAASH,EAAUI,cAAe,IAClC,GAIN,SAASC,EAAcL,GACrB,MAA4B,eAAxBA,EAAUC,UACL,GAECD,EAAUM,eAChBH,SAASH,EAAUM,eAAgB,IACnC,IACMN,EAAUO,kBAChBJ,SAASH,EAAUO,kBAAmB,IACtC,GAIN,SAASf,EAAcgB,GACrB,IAAInG,EAAMoG,OAAOhG,EAASoF,GAAU,MAAQW,IAC1CE,EAAMD,OAAOhG,EAASoF,GAAU,MAAQW,IACxCG,EAAYH,EAAUI,cACtBC,EAAOJ,OAAOd,EAAYgB,IAE5BpF,EAAIsE,EAAU,YAAcc,EAAY,gBAAkBD,EAAM,IAAMrG,GAElEwG,EAAOH,IACTG,EAAOH,EACPnF,EAAIsE,EAAU,OAASc,EAAY,kBAGjCE,EAAOxG,IACTwG,EAAOxG,EACPkB,EAAIsE,EAAU,OAASc,EAAY,kBAGrChB,EAAYgB,GAAa,GAAKE,EAsEhC,SAASC,EAAWC,GAClB,OAAO/B,EAAIgC,MAAMhC,EAAIiC,QAAQ,KAAOrH,EAAemH,GA+CrD,SAASG,EAAqBC,EAAQ3C,GAs5BxC,IAA6BxB,EAAIoE,EAAMC,EAAVrE,EAr5BzB,WA3BF,IACMsE,EACFC,EA0BAC,EAAQ,iBAAkB,aA3BxBF,EAAeG,SAASC,KAAKC,wBAC/BJ,EAAiB5B,EAAYwB,OAAOQ,wBAE/BC,KAAKC,UAAU,CACpBC,aAAcP,EAAeQ,OAC7BC,YAAaT,EAAeU,MAC5BC,aAAcC,KAAK9H,IACjBoH,SAASW,gBAAgBF,aACzB3I,OAAO8I,aAAe,GAExBC,YAAaH,KAAK9H,IAChBoH,SAASW,gBAAgBE,YACzB/I,OAAOgJ,YAAc,GAEvBC,UAAWrC,SAASoB,EAAe7C,IAAM4C,EAAa5C,IAAK,IAC3D+D,WAAYtC,SAASoB,EAAemB,KAAOpB,EAAaoB,KAAM,IAC9DC,UAAWpJ,OAAOqJ,YAClBC,WAAYtJ,OAAOuJ,YACnBC,eAAgBtB,SAASW,gBAAgBF,aACzCc,cAAevB,SAASW,gBAAgBE,YACxCW,aAAc1J,OAAO8I,YACrBa,YAAa3J,OAAOgJ,cAMmCpB,EAAQ3C,IAo5BpC4C,EAl5BS,GAm5BnCtE,EADgCuE,EAl5BO7C,KAo5B1C1B,EAAWuE,GAAW8B,YAAW,WAC/BrG,EAAWuE,GAAW,KACtBrE,MACCoE,IAl2BL,SAASgC,EAAmBC,GAC1B,IAAI9B,EAAiB8B,EAAO1B,wBAI5B,OAFA2B,EAAgBzD,GAET,CACL0D,EAAGpB,KAAKqB,MAAM/C,OAAOc,EAAemB,MAAQjC,OAAOzG,EAAauJ,IAChEE,EAAGtB,KAAKqB,MAAM/C,OAAOc,EAAe7C,KAAO+B,OAAOzG,EAAayJ,KAInE,SAASC,EAAuBC,GA6B9B,IAAI5C,EAAS4C,EACPP,EAAmBzD,EAAYwB,QAC/B,CAAEoC,EAAG,EAAGE,EAAG,GACfG,EAvBO,CACLL,EAAG9C,OAAOd,EAAYsC,OAASlB,EAAOwC,EACtCE,EAAGhD,OAAOd,EAAYoC,QAAUhB,EAAO0C,GAuB3ClI,EACEsE,EACA,8CACEkB,EAAOwC,EACP,MACAxC,EAAO0C,EACP,KAGAlK,OAAOmF,MAAQnF,OAAOoF,MAxCxB3E,EAAe4J,EACfC,IACAtI,EAAIsE,EAAU,OAWVtG,OAAOqF,aACTrF,OAAOqF,aAAa,YAAc+E,EAAY,SAAW,KACvDC,EAAYL,EACZK,EAAYH,GAGdhH,EACEoD,EACA,yEA0BR,SAASgE,KACH,IAAU/D,EAAG,WAAY9F,GAC3B8J,IAEAlE,EAAgBC,GAsDpB,SAASkE,EAAQC,GACf,IAAIC,EAAW,GAEf,GAAkC,IAA9BxD,OAAOd,EAAYsC,QAA+C,IAA/BxB,OAAOd,EAAYoC,QAAe,CACvE,IAAImC,EAAOpD,EAAW,GAAGqD,MAAM,KAC/BF,EAAW,CACTV,EAAGW,EAAK,GACRT,EAAGS,EAAK,SAGVD,EAAW,CACTV,EAAG5D,EAAYsC,MACfwB,EAAG9D,EAAYoC,QAInBjC,EAAGkE,EAAO,CACR7C,OAAQxB,EAAYwB,OACpBiD,QAAS3D,OAAOwD,EAASV,GACzBc,QAAS5D,OAAOwD,EAASR,GACzBvE,KAAMS,EAAYT,OAItB,SAASY,EAAGwE,EAAUC,GACpB,OAAOC,EAAS3E,EAAUyE,EAAUC,GA6HtC,IAnCqB/F,EACfiG,EA7VAC,EArHAR,EACAnC,EACAZ,EACAnB,EAifFhB,EAAMM,EAAM4E,KACdvE,EAAc,GACdE,EAAW,KAET,8BAAgCb,EAtBpC,WAEE,IAAK,IAAIR,KAAY/D,EACnB+G,EACE,wBACAmD,EAAkBnG,GAClB/D,EAAS+D,GAAU2C,OACnB3C,GAgBJoG,GA5YE9K,KAAW,GAAKkF,GAAKgC,MAAM,EAAGjH,IAC9BiF,EAAIgC,MAAMjH,GAAUoK,MAAM,KAAK,KAAM1J,GA9GnCyJ,EAAOlF,EAAIgC,MAAMjH,GAAUoK,MAAM,KACjCpC,EAASmC,EAAK,GAAK/D,SAAS+D,EAAK,GAAI,IAAM,EAC3C/C,EAAS1G,EAASyJ,EAAK,KAAOzJ,EAASyJ,EAAK,IAAI/C,OAChDnB,EAAY6E,iBAAiB1D,GAwfjCxB,EAtfO,CACLwB,OAAQA,EACR9F,GAAI6I,EAAK,GACTnC,OAAQA,EAAShC,EAAeC,GAAaK,EAAcL,GAC3DiC,MAAOiC,EAAK,GACZhF,KAAMgF,EAAK,IAkfbrE,EAAWF,EAAYtE,GACnBZ,EAASoF,KACXpF,EAASoF,GAAUiF,QAAS,IAzY1BJ,EAAU/E,EAAYT,OAAQ,CAAE6F,KAAM,EAAGC,MAAO,EAAG1L,UAAW,KAGhEiC,EAAIsE,EAAU,gDAGT6E,IAuVHD,GAAU,EAEThK,EAHc+D,EAgD2BqB,KA5C5C4E,GAAU,EACVhI,EACEkD,EAAYT,KACV,oBACAV,EACA,kBACAQ,IAICyF,KAmCLlJ,EAAIsE,EAAU,aAAeb,GArSjC,WACE,IAAIyF,GAAU,EAMd,OAJI,OAAS9E,EAAYwB,SACvB1E,EAAKoD,EAAU,WAAaF,EAAYtE,GAAK,eAC7CoJ,GAAU,GAELA,EAgSDQ,IAzcR,WA8BE,IARQC,EAQJC,EAAS7F,EAAM6F,OACjBlK,EAAcR,EAASoF,IAAapF,EAASoF,GAAU5E,YAEzD,GAAIA,GAAe,GAAKkK,GAAW,UAN1BlK,EAAYmK,cAAgBC,MAzBnC,WACE,IAAIC,EAAI,EACNZ,GAAU,EAQZ,IANAnJ,EACEsE,EACA,wDACE5E,GAGGqK,EAAIrK,EAAYpB,OAAQyL,IAC7B,GAAIrK,EAAYqK,KAAOH,EAAQ,CAC7BT,GAAU,EACV,MAGJ,OAAOA,EASkCa,IALrCL,EAAazK,EAASoF,IAAapF,EAASoF,GAAUqF,WAC1D3J,EAAIsE,EAAU,gCAAkCqF,GACzCC,IAAWD,IAUpB,MAAM,IAAIM,MACR,qCACEL,EACA,QACAxF,EAAYwB,OAAO9F,GACnB,kBACAiE,EAAM4E,KACN,sHAIN,OAAO,EA4ZsBuB,IA1I/B,WAGE,OAFIhL,EAASoF,IAAapF,EAASoF,GAAU6F,UAoHzCjL,EAASoF,KACXpF,EAASoF,GAAU6F,UAAW,GAnHxB/F,EAAYT,MAClB,IAAK,QACHyG,EAAYhG,EAAYwB,QACxB,MAGF,IAAK,UAjQqByE,EAkQH9E,EAAW,GAjQpCvF,EACEsE,EACA,8BACEF,EAAYwB,OAAO9F,GACnB,cACAuK,EACA,KAGJ9F,EAAG,YAAa,CACdqB,OAAQxB,EAAYwB,OACpB0E,QAASjE,KAAKkE,MAAMF,KAGtBrK,EAAIsE,EAAU,MAoPV,MAGF,IAAK,aACHkE,EAAQ,gBACR,MAGF,IAAK,aACHA,EAAQ,gBACR,MAGF,IAAK,aACHtJ,EAASoF,GAAUjF,WAAagH,KAAKkE,MAAMhF,EAAW,IACtD,MAGF,IAAK,WACH4C,GAAuB,GACvB,MAGF,IAAK,iBACHA,GAAuB,GACvB,MAGF,IAAK,WACHxC,EACEzG,EAASoF,IAAapF,EAASoF,GAAUsB,OACzCtB,GA/OR,WACE,SAASkG,EAAY7G,EAAMb,GACzB,SAAS2H,IACHvL,EAASY,GACX6F,EAAqBzG,EAASY,GAAI8F,OAAQ9F,GAE1C4K,IAIH,CAAC,SAAU,UAAUC,SAAQ,SAAU9H,GACtC7C,EAAIF,EAAI6D,EAAOd,EAAM,8BACrBC,EAAK9E,OAAQ6E,EAAK4H,MAItB,SAASC,IACPF,EAAY,UAAWzH,GAOzB,IAAIjD,EAAKwE,EAHPkG,EAAY,OAAQ7H,GAOlBzD,EAASY,KACXZ,EAASY,GAAI8K,aAAeF,GAoN1BG,GACA,MAGF,IAAK,eAnNH3L,EAASoF,IAAapF,EAASoF,GAAUsG,eAC3C1L,EAASoF,GAAUsG,sBACZ1L,EAASoF,GAAUsG,cAmNxB,MAGF,IAAK,aAhGHE,EAiGWvF,EAAW,GAjGNqD,MAAM,KAAK,IAAM,GACnCmC,EAAWC,mBAAmBF,IAC9BhD,EACE5B,SAAS+E,eAAeF,IACxB7E,SAASgF,kBAAkBH,GAAU,KArCnCI,EAAetD,EAAmBC,GAEtC9H,EACEsE,EACA,4BACEwG,EACA,WACAK,EAAanD,EACb,OACAmD,EAAajD,GAEjBzJ,EAAe,CACbuJ,EAAGmD,EAAanD,EAChBE,EAAGiD,EAAajD,GAGlBI,IACAtI,EAAIsE,EAAU,OAwBLtG,OAAOmF,MAAQnF,OAAOoF,KAC/BpD,EAAIsE,EAAU,iBAAmBwG,EAAO,cArBpC9M,OAAOqF,aACTrF,OAAOqF,aAAa+H,aAAaN,GAEjC9K,EACEsE,EACA,iBACEwG,EACA,gDAuGJ,MAGF,IAAK,QACHO,EAAYjH,GACZ,MAGF,IAAK,OACHJ,IACAO,EAAG,SAAUH,EAAYwB,QACzB,MAGF,QAEkC,IAA9BV,OAAOd,EAAYsC,QACY,IAA/BxB,OAAOd,EAAYoC,QAEnBtF,EACE,iCACEkD,EAAYT,KADd,yGAMFK,IA/JR,IAEQmH,EAiCFL,EACFC,EACAjD,EA/M0BuC,EAmYxBiB,KAIJnJ,EAAKmC,EAAU,YAAcb,GAIjC,SAASwF,EAAShG,EAAU8F,EAAUC,GACpC,IAAIlG,EAAO,KACTyI,EAAS,KAEX,GAAIrM,EAAS+D,GAAW,CAGtB,GAAI,mBAFJH,EAAO5D,EAAS+D,GAAU8F,IAKxB,MAAM,IAAIyC,UACRzC,EAAW,cAAgB9F,EAAW,uBAHxCsI,EAASzI,EAAKkG,GAQlB,OAAOuC,EAGT,SAASE,EAAsB7F,GAC7B,IAAI3C,EAAW2C,EAAO9F,UACfZ,EAAS+D,GAGlB,SAASmH,EAAYxE,GACnB,IAAI3C,EAAW2C,EAAO9F,GACtB,IAAgD,IAA5CmJ,EAAShG,EAAU,UAAWA,GAAlC,CAIAjD,EAAIiD,EAAU,oBAAsBA,GAEpC,IAEM2C,EAAO8F,YACT9F,EAAO8F,WAAWC,YAAY/F,GAEhC,MAAOgG,GACP1K,EAAK0K,GAGP3C,EAAShG,EAAU,WAAYA,GAC/BjD,EAAIiD,EAAU,MACdwI,EAAsB7F,QAhBpB5F,EAAIiD,EAAU,2CAmBlB,SAAS8E,EAAgB9E,GACnB,OAASxE,GAWXuB,EACEiD,EACA,uBAZFxE,EAAe,CACbuJ,EACEhK,OAAOuJ,cAAgBxJ,EACnBmI,SAASW,gBAAgBS,WACzBtJ,OAAOuJ,YACbW,EACElK,OAAOqJ,cAAgBtJ,EACnBmI,SAASW,gBAAgBO,UACzBpJ,OAAOqJ,cAIwBW,EAAI,IAAMvJ,EAAayJ,GAKlE,SAAS7D,EAAgBpB,GACnB,OAASxE,IACXT,OAAOsK,SAAS7J,EAAauJ,EAAGvJ,EAAayJ,GAC7ClI,EACEiD,EACA,sBAAwBxE,EAAauJ,EAAI,IAAMvJ,EAAayJ,GAE9DK,KAIJ,SAASA,IACP9J,EAAe,KAGjB,SAAS4M,EAAYjH,GAMnBpE,EACEoE,EAAYtE,GACZ,4BACG,SAAWsE,EAAYT,KAAO,YAAc,WAEjDoE,EAAgB3D,EAAYtE,IAC5BoE,GAXA,WACEC,EAAQC,GACR6B,EAAQ,QAAS,QAAS7B,EAAYwB,OAAQxB,EAAYtE,MAS1CsE,EAAa,SAGjC,SAASD,EAAQC,GAmBf,SAASyH,EAAQzG,GAMVhH,GAAsB,MAAQgG,EAAYgB,KAC7ChH,GAAqB,EACrB4B,EAAIiD,EAAU,wDAycpB,WACE,SAAS6I,IACP,SAASC,EAAYC,GACnB,SAASC,EAAa7G,GACpB,MACE,SACClG,EAAS8M,IAAc9M,EAAS8M,GAAWpG,OAAOsG,MAAM9G,IAI7D,SAAS+G,EAAUvJ,GACjB,OAAO,OAASA,EAAGwJ,aAInBlN,EAAS8M,IACTG,EAAUjN,EAAS8M,GAAWpG,UAC7BqG,EAAa,WAAaA,EAAa,WAExChG,EACE,oBACA,SACA/G,EAAS8M,GAAWpG,OACpBoG,GAKNpN,OAAOyN,KAAKnN,GAAUyL,SAAQ,SAAU2B,GACtCP,EAAYO,MAIhB,SAASC,EAAiBC,GACxBxM,EACE,SACA,sBAAwBwM,EAAU,GAAG1E,OAAS,IAAM0E,EAAU,GAAG7I,MAEnE8I,EAAQX,EAAc,IAGxB,SAASY,IACP,IAAI5E,EAAS5B,SAASyG,cAAc,QAClCC,EAAS,CACPC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,GAEA,IAAI1K,EAAiB+J,GAEzBY,QAAQrF,EAAQ8E,GAG3B,IAAIpK,EAAmBD,IACnBC,GACFkK,IAlgBEU,IAIJ,SAASC,EAAiBjI,IA/B1B,SAAsBA,GACfhB,EAAYtE,IAIjBsE,EAAYwB,OAAOsG,MAAM9G,GAAahB,EAAYgB,GAAa,KAC/DpF,EACEoE,EAAYtE,GACZ,WACEmD,EACA,KACAmC,EACA,WACAhB,EAAYgB,GACZ,OAZFpF,EAAI,YAAa,0BA8BnBsN,CAAalI,GACbyG,EAAQzG,GAGV,IAAInC,EAAWmB,EAAYwB,OAAO9F,GAE9BZ,EAAS+D,KACP/D,EAAS+D,GAAUxC,YACrB4M,EAAiB,UAEfnO,EAAS+D,GAAUvC,WACrB2M,EAAiB,UAKvB,SAASnJ,EAAWpB,EAAMsB,EAAamJ,GAGnCA,IAAcnJ,EAAYT,MAC1BjF,IAECV,OAAOwP,SAERxN,EAAIoE,EAAYtE,GAAI,8BACpBpB,EAAsBoE,IAEtBA,IAIJ,SAASmD,EAAQwH,EAAWhK,EAAKmC,EAAQ9F,EAAI4N,GA2D3C,IAzDM5F,EAyDF6F,GAAa,EAEjB7N,EAAKA,GAAM8F,EAAO9F,GAEdZ,EAASY,KAxCT8F,GACA,kBAAmBA,GACnB,OAASA,EAAO9H,eAvBdgK,EAAS5I,EAASY,IAAOZ,EAASY,GAAI8N,aAC1C5N,EACEF,EACA,IACE2N,EACA,2BACA3N,EACA,MACA2D,EACA,mBACAqE,GAEJlC,EAAO9H,cAAc+P,YAAYtP,EAAQkF,EAAKqE,IAI9C5G,EAAKpB,EAAI,IAAM2N,EAAY,YAAc3N,EAAK,eA8B1C4N,GACFxO,EAASY,IACPZ,EAASY,GAAIa,iBAEfzB,EAASY,GAAIgO,WAAalG,YAjB5B,YACM1I,EAASY,IAAQZ,EAASY,GAAIyJ,QAAWoE,IAC3CA,GAAa,EACbzM,EACEpB,EACA,mCACEZ,EAASY,GAAIa,eAAiB,IAC9B,mOAYJzB,EAASY,GAAIa,kBAerB,SAASyI,EAAkBnG,GACzB,OACEA,EACA,IACA/D,EAAS+D,GAAUzD,aACnB,IACAN,EAAS+D,GAAUvC,UACnB,IACAxB,EAAS+D,GAAUjD,IACnB,IACAd,EAAS+D,GAAUlD,SACnB,IACAb,EAAS+D,GAAUrD,oBACnB,IACAV,EAAS+D,GAAU5D,WACnB,IACAH,EAAS+D,GAAU1D,WACnB,IACAL,EAAS+D,GAAUpD,wBACnB,IACAX,EAAS+D,GAAU3D,eACnB,IACAJ,EAAS+D,GAAUxD,YACnB,IACAP,EAAS+D,GAAUrC,UACnB,IACA1B,EAAS+D,GAAUtD,YACnB,IACAT,EAAS+D,GAAU1C,WACnB,IACArB,EAAS+D,GAAUpC,uBACnB,IACA3B,EAAS+D,GAAU3C,YAQvB,SAAS2B,EAAY2D,EAAQmI,GAuO3B,SAASC,EAAU1B,GACjB,IAAI2B,EAAY3B,EAAI1D,MAAM,YAE1B,GAAyB,IAArBqF,EAAU3P,OAAc,CAC1B,IAAI4P,EACF,KAAOD,EAAU,GAAGE,OAAO,GAAGC,cAAgBH,EAAU,GAAGxI,MAAM,GACnE7D,KAAKsM,GAAQtM,KAAK0K,UACX1K,KAAK0K,GACZpL,EACEmN,EACA,gBACE/B,EACA,uBACA4B,EACA,iEA8BR,IA1GczK,EAMmBjB,EAoB3B8L,EAuDkB3M,EA1BCgI,EAmDrB0E,EAxOJ,SAAqBpL,GACnB,GAAwB,iBAAbA,EACT,MAAM,IAAIuI,UAAU,0CAVxB,IACM1L,EAsBJ,MAVI,KAAOmD,IAET2C,EAAO9F,IAdLA,EAAMiO,GAAWA,EAAQjO,IAAOV,EAASU,GAAK5B,IAC9C,OAASgI,SAAS+E,eAAenL,KACnCA,GAAM5B,KAYM+E,EAVPnD,GAWL3B,GAAc4P,GAAW,IAAI/N,IAC7BA,EACEiD,EACA,4BAA8BA,EAAW,KAAO2C,EAAO2I,IAAM,MAI1DtL,EAyNMuL,CAAY5I,EAAO9F,IAHzBuO,KAAYnP,GAAY,kBAAmB0G,EAMlD1E,EAAKmN,EAAU,mCA3Bf1M,GADsBA,EA8BPoM,IA7BM,GAErB7O,EAASmP,GAAYzP,OAAO6P,OAAO,MACnCvP,EAASmP,GAAUzI,OAASA,EAC5B1G,EAASmP,GAAUlE,UAAW,EAC9BjL,EAASmP,GAAU1E,WACjB/D,EAAO2I,KAAO3I,EAAO2I,IAAI3F,MAAM,KAAKnD,MAAM,EAAG,GAAGiJ,KAAK,KArDzD,SAAsB/M,GACpB,GAAI,iBAAoBA,EACtB,MAAM,IAAI6J,UAAU,4BAqDtBmD,CAAahN,GACb/C,OAAOyN,KAAK1K,GAASgJ,QAAQqD,EAAWrM,GAlD1C,SAAqBA,GAEnB,IAAK,IAAIiN,KAAUxP,EACbR,OAAOiQ,UAAUC,eAAeC,KAAK3P,EAAUwP,KACjD1P,EAASmP,GAAUO,GAAUhQ,OAAOiQ,UAAUC,eAAeC,KAC3DpN,EACAiN,GAEEjN,EAAQiN,GACRxP,EAASwP,IA0CjBI,CAAYrN,GAERzC,EAASmP,KACXnP,EAASmP,GAAUT,cACjB,IAAS1O,EAASmP,GAAU3O,YAxCzB,MADgBiK,EA0CCzK,EAASmP,GAAU1E,aAxCzC,OAASA,EAAWsF,MAAK,wCACvB,IACAtF,EAuCI,KA9MV,WAcE,OAbA3J,EACEqO,EACA,qBACGnP,EAASmP,IAAanP,EAASmP,GAAU7N,UACtC,UACA,YACJ,QACA6N,GAEJzI,EAAOsG,MAAMgD,UACX,KAAWhQ,EAASmP,IAAanP,EAASmP,GAAU7N,WAChD,SACA,OACEtB,EAASmP,IAAanP,EAASmP,GAAU7N,WAC/C,IAAK,OACH,MAGF,KAAK,EACHoF,EAAOpF,UAAY,MACnB,MAGF,KAAK,EACHoF,EAAOpF,UAAY,KACnB,MAGF,QACEoF,EAAOpF,UAAYtB,EAASmP,GACxBnP,EAASmP,GAAU7N,UACnB,MA4LR2O,GAxRF,WACE,SAASC,EAASlD,GAChB,IAAImD,EAAanQ,EAASmP,GAAUnC,GAChChM,EAAAA,IAAamP,GAAc,IAAMA,IACnCzJ,EAAOsG,MAAMA,GARK,iBAQamD,EAC3BA,EAAa,KACbA,EACJrP,EAAIqO,EAAU,OAASnC,EAAQ,MAAQtG,EAAOsG,MAAMA,KAIxD,SAASoD,EAAUlK,GACjB,GACElG,EAASmP,GAAU,MAAQjJ,GAC3BlG,EAASmP,GAAU,MAAQjJ,GAE3B,MAAM,IAAI6E,MACR,gBACE7E,EACA,+BACAA,GAKRkK,EAAU,UACVA,EAAU,SAEVF,EAAS,aACTA,EAAS,aACTA,EAAS,YACTA,EAAS,YA0PTG,GAnLE,iBACUrQ,EAASmP,IAAanP,EAASmP,GAAU9O,aACnD,OAASL,EAASmP,IAAanP,EAASmP,GAAU9O,cAElDL,EAASmP,GAAU7O,aAAeN,EAASmP,GAAU9O,WACrDL,EAASmP,GAAU9O,WACZL,EAASmP,GAAU9O,WAAa,MA4D7BkE,EAmHP2F,EAAkBiF,IAzFnBC,EAAmB/L,OApBQC,EAsBP8L,EArBjB1I,EAAO8F,YAIU,IAAIlJ,GAAiB,SAAUgK,GACnDA,EAAU7B,SAAQ,SAAU6E,GACP1F,MAAM+E,UAAUpJ,MAAMsJ,KAAKS,EAASC,cAC1C9E,SAAQ,SAAU+E,GACzBA,IAAgB9J,GAClBwE,EAAYxE,YAKJuH,QAAQvH,EAAO8F,WAAY,CACzCuB,WAAW,KASftK,EAAiBiD,EAAQ,QA9BzB,WAzDF,IAIMuE,EACFwF,EAqDA1J,EAAQ,gBAAiBxC,EAAKmC,EAAQ7H,GAAW,GAtD/CoM,EAAWjL,EAASmP,IAAanP,EAASmP,GAAUlE,SACtDwF,EACEzQ,EAASmP,IACTnP,EAASmP,GAAUxO,2BAA2BlB,GAE7CwL,GAAYwF,GACftE,EAAY,CAAEzF,OAAQA,EAAQY,OAAQ,EAAGE,MAAO,EAAG/C,KAAM,YA8E3DsC,EAAQ,OAAQxC,EAAKmC,EAAQ7H,GAAW,GAzEpCmB,EAASmP,KACXnP,EAASmP,GAAUzI,OAAOgK,cAAgB,CACxCC,MAAOzF,EAAY0F,KAAK,KAAM5Q,EAASmP,GAAUzI,QAEjDmK,gBAAiBtE,EAAsBqE,KACrC,KACA5Q,EAASmP,GAAUzI,QAGrBoK,OAAQ/J,EAAQ6J,KACd,KACA,gBACA,SACA5Q,EAASmP,GAAUzI,QAGrBwF,aAAc,SAAU6E,GACtBhK,EACE,iBACA,gBAAkBgK,EAClB/Q,EAASmP,GAAUzI,OACnByI,IAIJ6B,YAAa,SAAU5F,GAErBrE,EACE,eACA,YAHFqE,EAAUjE,KAAKC,UAAUgE,IAIvBpL,EAASmP,GAAUzI,OACnByI,OAkIZ,SAAS5B,EAAQhL,EAAIoE,GACf,OAAS1G,IACXA,EAAQyI,YAAW,WACjBzI,EAAQ,KACRsC,MACCoE,IA0FP,SAASsK,IAKH,WAAajK,SAASkK,kBACxBpQ,EAAI,WAAY,oCAChByM,GANF,WACE4D,EAAe,cAAe,YAKd,KAIpB,SAASA,EAAeC,EAAW7H,GAUjC7J,OAAOyN,KAAKnN,GAAUyL,SAAQ,SAAU1H,IATxC,SAA+BA,GAC7B,OACE/D,EAAS+D,IACT,WAAa/D,EAAS+D,GAAU1C,YAChCrB,EAAS+D,GAAU5D,aAClBH,EAAS+D,GAAUkH,UAKlBoG,CAAsBtN,IACxBgD,EAAQqK,EAAW7H,EAAOvJ,EAAS+D,GAAU2C,OAAQ3C,MAK3D,SAASuN,IACP7N,EAAiB3E,OAAQ,UAAW8F,GAEpCnB,EAAiB3E,OAAQ,UAAU,WA1CrC,IAAuByK,EAKrBzI,EAAI,SAAU,mBALOyI,EA2CL,WArChBgE,GALA,WACE4D,EAAe,UAAY5H,EAAO,YAIpB,OAwChB9F,EAAiBuD,SAAU,mBAAoBiK,GAE/CxN,EAAiBuD,SAAU,2BAA4BiK,GAGzD,SAAS7N,IACP,SAASmO,EAAK9O,EAASK,GAWjBA,KAVJ,WACE,IAAKA,EAAQ0O,QACX,MAAM,IAAIlF,UAAU,qCACf,GAAI,WAAaxJ,EAAQ0O,QAAQtC,cACtC,MAAM,IAAI5C,UACR,iCAAmCxJ,EAAQ0O,QAAU,KAMzDC,GACA1O,EAAYD,EAASL,GACrBiP,EAAQC,KAAK7O,IAYjB,IAAI4O,EAKJ,OA3yCF,WACE,IACI5I,EADA8I,EAAU,CAAC,MAAO,SAAU,IAAK,MAIrC,IAAK9I,EAAI,EAAGA,EAAI8I,EAAQxS,SAAWI,EAAuBsJ,GAAK,EAC7DtJ,EAAwBV,OAAO8S,EAAQ9I,GAAK,yBAG1CtJ,EAIFA,EAAwBA,EAAsBoR,KAAK9R,QAEnDgC,EAAI,QAAS,uCAyxCf+Q,GACAP,IAEO,SAAuB7O,EAASmG,GAKrC,OAJA8I,EAAU,GAdZ,SAA+BjP,GACzBA,GAAWA,EAAQ/B,qBACrBsB,EACE,sGAaJ8P,CAAsBrP,UAEPmG,GACb,IAAK,YACL,IAAK,SACHgC,MAAM+E,UAAUlE,QAAQoE,KACtB7I,SAAS+K,iBAAiBnJ,GAAU,UACpC2I,EAAKX,KAAK/R,EAAW4D,IAEvB,MAGF,IAAK,SACH8O,EAAK9O,EAASmG,GACd,MAGF,QACE,MAAM,IAAI0D,UAAU,gCAAkC1D,EAAS,KAInE,OAAO8I,IAj5CX,yCCAA,SAAU7S,GACV,GAAsB,oBAAXC,OAAX,CAEA,IAAIqB,GAAa,EAEfC,EAAiB,GACjBC,EAAa,EACb2R,EAAgB,GAChBC,EAAe,KACf1R,EAAc,GACd2R,GAAiB,EACjBC,EAAkB,CAAErB,OAAQ,EAAGsB,MAAO,GACtCC,EAAmB,IACnBpH,GAAW,EACXqH,EAAS,EACTC,EAAwB,aACxBC,EAAiBD,EACjBE,GAAW,EACXC,EAAU,GACVjS,EAAc,GACdI,EAAW,GACX8R,EAAgB,KAChBC,GAAU,EACVxR,GAAc,EACdyR,EAAQ,gBACRvT,EAAWuT,EAAMzT,OACjB0T,EAAO,GACPrT,EAAuB,CACrBG,IAAK,EACLqG,IAAK,EACLnG,WAAY,EACZC,sBAAuB,GAEzBsB,EAAa,QAEb0R,EAASjU,OAAOkU,OAChBC,EAAsB,IACtBvR,EAAY,EACZwR,GAAgB,EAChBC,EAAqB,KACrBC,EAAiB,GACjBC,EAAQ,EACRC,EAAuB,SACvBC,EAAgBD,EAChBE,EAAM1U,OACNiD,EAAY,WACVC,GAAK,mCAEPyR,EAAU,aACVC,EAAa,aACbC,EAAoB,CAClBrM,OAAQ,WAEN,OADAtF,GAAK,kDACEgF,SAASW,gBAAgBiM,cAElCpM,MAAO,WAEL,OADAxF,GAAK,iDACEgF,SAASC,KAAK4M,cAGzBC,EAAsB,GACtBC,GAAmB,EAIrB,IACE,IAAItR,EAAU/C,OAAO6P,OACnB,GACA,CACEyE,QAAS,CAEPC,IAAK,WACHF,GAAmB,MAK3BjV,OAAO2E,iBAAiB,OAAQyQ,GAAMzR,GACtC3D,OAAO+E,oBAAoB,OAAQqQ,GAAMzR,GACzC,MAAOiK,IAg1BT,IA/zBkB9I,EACZuQ,EACFC,EACAC,EACAC,EACAC,EACAC,EAyzBAC,EAAY,CACZC,WAAY,WACV,OACE1N,SAASC,KAAK2M,aACdxJ,GAAiB,aACjBA,GAAiB,iBAIrB9D,OAAQ,WACN,OAAOmO,EAAUC,cAGnB5U,WAAY,WACV,OAAOkH,SAASC,KAAK0N,cAGvBC,OAAQ,WACN,OAAOjB,EAAkBrM,UAG3BuN,sBAAuB,WACrB,OAAO7N,SAASW,gBAAgBiM,cAGlC7T,sBAAuB,WACrB,OAAOiH,SAASW,gBAAgBgN,cAGlC/U,IAAK,WACH,OAAO8H,KAAK9H,IAAIkV,MAAM,KAAMC,GAAmBN,KAGjDxO,IAAK,WACH,OAAOyB,KAAKzB,IAAI6O,MAAM,KAAMC,GAAmBN,KAGjDO,KAAM,WACJ,OAAOP,EAAU7U,OAGnBqV,cAAe,WACb,OAAOvN,KAAK9H,IACV6U,EAAUC,cAAgBD,EAAUI,wBACpCK,GAAc,SAAUC,QAI5BC,cAAe,WACb,OAAOC,GAAkB,SAAU,wBAGvCC,EAAW,CACTxV,WAAY,WACV,OAAOkH,SAASC,KAAK4M,aAGvBa,WAAY,WACV,OAAO1N,SAASC,KAAKsO,aAGvBX,OAAQ,WACN,OAAOjB,EAAkBnM,SAG3BzH,sBAAuB,WACrB,OAAOiH,SAASW,gBAAgBkM,aAGlCgB,sBAAuB,WACrB,OAAO7N,SAASW,gBAAgB4N,aAGlC1V,OAAQ,WACN,OAAO6H,KAAK9H,IAAI0V,EAASxV,aAAcwV,EAASvV,0BAGlDH,IAAK,WACH,OAAO8H,KAAK9H,IAAIkV,MAAM,KAAMC,GAAmBO,KAGjDrP,IAAK,WACH,OAAOyB,KAAKzB,IAAI6O,MAAM,KAAMC,GAAmBO,KAGjDE,iBAAkB,WAChB,OAAON,GAAc,QAASC,OAGhCC,cAAe,WACb,OAAOC,GAAkB,QAAS,uBAmEpCI,GA59Bc7R,EA49BiB8R,GAx9B/BpB,EAAU,KACVC,EAAW,EACXC,EAAQ,WACND,EAAWoB,KAAKC,MAChBtB,EAAU,KACVD,EAASzQ,EAAKkR,MAAMX,EAASC,GACxBE,IAEHH,EAAUC,EAAO,OAIhB,WACL,IAAIwB,EAAMD,KAAKC,MAEVrB,IACHA,EAAWqB,GAGb,IAAIC,EAAYzC,GAAkBwC,EAAMrB,GAsBxC,OApBAJ,EAAUzR,KACV0R,EAAO0B,UAEHD,GAAa,GAAKA,EAAYzC,GAC5BkB,IACFyB,aAAazB,GACbA,EAAU,MAGZC,EAAWqB,EACXvB,EAASzQ,EAAKkR,MAAMX,EAASC,GAExBE,IAEHH,EAAUC,EAAO,OAETE,IACVA,EAAU5L,WAAW8L,EAAOqB,IAGvBxB,IA2nCX5Q,GAAiB3E,OAAQ,WAlHzB,SAAkByK,GAChB,IAAIyM,EAA2B,CAC7BzE,KAAM,WACJmB,EAAUnJ,EAAME,KAChBsJ,EAASxJ,EAAM0M,OAEf1E,KACAtG,GAAW,EACXvC,YAAW,WACT+J,GAAW,IACVJ,IAGL6D,MAAO,WACDzD,EACF3R,GAAI,+BAEJA,GAAI,gCACJqV,GAAa,eAIjBrF,OAAQ,WACNsF,GAAS,eAAgB,uCAG3BlK,aAAc,WACZzL,EAAY4V,WAAWC,MAEzBC,WAAY,WACV7T,KAAKwJ,gBAGPsK,SAAU,WACR,IAAIrL,EAAUmL,IACdxV,GAAI,0CAA4CqK,GAChDuI,EAAWvM,KAAKkE,MAAMF,IACtBrK,GAAI,QAGNsK,QAAS,WACP,IAAID,EAAUmL,IAEdxV,GAAI,iCAAmCqK,GAEvCpJ,EAAUoF,KAAKkE,MAAMF,IACrBrK,GAAI,SAQR,SAAS2V,IACP,OAAOlN,EAAME,KAAKC,MAAM,KAAK,GAAGA,MAAM,KAAK,GAG7C,SAAS4M,IACP,OAAO/M,EAAME,KAAKlD,MAAMgD,EAAME,KAAKjD,QAAQ,KAAO,GAYpD,SAASkQ,IAGP,OAAOnN,EAAME,KAAKC,MAAM,KAAK,IAAM,CAAEY,KAAM,EAAGC,MAAO,GAGvD,SAASoM,IACP,IAAIC,EAAcH,IAEdG,KAAeZ,EACjBA,EAAyBY,MAjBWnY,EAAAC,SAClC,iBAAkBI,QACnBA,OAAOwD,SAAWzD,GACjB,iBAAkBC,OAAOwD,OAAOqN,WAeL+G,KAC7B1U,GAAK,uBAAyBuH,EAAME,KAAO,KAhCtCoJ,KAAW,GAAKtJ,EAAME,MAAMlD,MAAM,EAAGjH,MAqCxC,IAAU2L,EACZ0L,IACSD,IACTV,EAAyBzE,OAEzBzQ,GACE,4BACE2V,IACA,0CAmBVhT,GAAiB3E,OAAQ,mBAAoB+X,IAC7CA,KA3sCA,SAAS3C,MAoBT,SAASzQ,GAAiBC,EAAIC,EAAKC,EAAMnB,GACvCiB,EAAGD,iBAAiBE,EAAKC,IAAMmQ,IAAmBtR,GAAW,KAO/D,SAASqU,GAAsBC,GAC7B,OAAOA,EAAO9H,OAAO,GAAGC,cAAgB6H,EAAOxQ,MAAM,GAqDvD,SAASyQ,GAAazS,GACpB,OAAOsO,EAAQ,IAAMC,EAAO,KAAOvO,EAGrC,SAASzD,GAAIyD,GACPqO,GAAW,iBAAoB9T,OAAO6F,SAExCA,QAAQ7D,IAAIkW,GAAazS,IAI7B,SAASvC,GAAKuC,GACR,iBAAoBzF,OAAO6F,SAE7BA,QAAQ3C,KAAKgV,GAAazS,IAI9B,SAASgN,KAoVT,IACM0F,GAlUN,WACE,SAASC,EAAQC,GACf,MAAO,SAAWA,EAGpB,IAAI1N,EAAOiJ,EAAQnM,MAAMjH,GAAUoK,MAAM,KAEzCoJ,EAAOrJ,EAAK,GACZpJ,EAAaxB,IAAc4K,EAAK,GAAKpJ,EAAa2F,OAAOyD,EAAK,IAC9DyI,EAAiBrT,IAAc4K,EAAK,GAAKyI,EAAiBgF,EAAQzN,EAAK,IACvEmJ,EAAU/T,IAAc4K,EAAK,GAAKmJ,EAAUsE,EAAQzN,EAAK,IACzD5I,EAAWhC,IAAc4K,EAAK,GAAK5I,EAAWmF,OAAOyD,EAAK,IAC1DtJ,EAAatB,IAAc4K,EAAK,GAAKtJ,EAAa+W,EAAQzN,EAAK,IAC/DuI,EAAgBvI,EAAK,GACrB+I,EAAiB3T,IAAc4K,EAAK,GAAK+I,EAAiB/I,EAAK,GAC/DrJ,EAAiBqJ,EAAK,GACtBlJ,EAAckJ,EAAK,IACnB/H,EAAY7C,IAAc4K,EAAK,IAAM/H,EAAYsE,OAAOyD,EAAK,KAC7DhJ,EAAY2W,OAASvY,IAAc4K,EAAK,KAAcyN,EAAQzN,EAAK,KACnEpI,EAAaxC,IAAc4K,EAAK,IAAMpI,EAAaoI,EAAK,IACxD8J,EAAgB1U,IAAc4K,EAAK,IAAM8J,EAAgB9J,EAAK,IAC9DrI,EAAcvC,IAAc4K,EAAK,IAAMrI,EAAc8V,EAAQzN,EAAK,KAvClE4N,GACAvW,GAAI,wBAA0BhC,OAAOwY,SAASC,KAAO,KA2DvD,WACE,SAASC,IACP,IAAI/N,EAAO3K,OAAO4R,cAElB5P,GAAI,2BAA6BqG,KAAKC,UAAUqC,IAChD/J,OAAOyN,KAAK1D,GAAMgC,QAAQqD,GAAWrF,GAErC1H,EAAY,cAAe0H,EAAOA,EAAK1H,UAAYA,EACnD0R,EAAU,YAAahK,EAAOA,EAAKgK,QAAUA,EAC7CR,EACE,iBAAkBxJ,EAAOA,EAAKiF,aAAeuE,EAC/CT,EACE,4BAA6B/I,EACzBA,EAAK9I,wBACL6R,EACNe,EACE,2BAA4B9J,EACxBA,EAAK9H,uBACL4R,EAGR,SAASkE,EAAuBC,EAAUC,GAOxC,MANI,mBAAsBD,IACxB5W,GAAI,gBAAkB6W,EAAW,cACjChE,EAAkBgE,GAAYD,EAC9BA,EAAW,UAGNA,EAIP,kBAAmB5Y,QACnBY,SAAWZ,OAAO4R,cAAc/F,cAEhC6M,IACAhF,EAAiBiF,EAAuBjF,EAAgB,UACxDe,EAAgBkE,EAAuBlE,EAAe,UAGxDzS,GAAI,mCAAqCmS,GAlGzC2E,GAoHF,WAEM/Y,IAAcmT,IAChBA,EAAgB3R,EAAa,MAG/BwX,GAAa,SArBf,SAAgBC,EAAMC,IAChB,IAAOA,EAAMvR,QAAQ,OACvBxE,GAAK,kCAAoC8V,GACzCC,EAAQ,IAEV,OAAOA,EAgBgBC,CAAO,SAAUhG,IAzHxCiG,GACAJ,GAAa,aAAczX,GAC3ByX,GAAa,UAAWtX,IA+UpB0W,EAAWjQ,SAASkR,cAAc,QAC7BlL,MAAMmL,MAAQ,OAEvBlB,EAASjK,MAAMoL,QAAU,QACzBnB,EAASjK,MAAM1F,OAAS,IACxBN,SAASC,KAAKoR,YAAYpB,GAlV1BqB,KACAC,KAwHAvR,SAASW,gBAAgBqF,MAAM1F,OAAS,GACxCN,SAASC,KAAK+F,MAAM1F,OAAS,GAC7BxG,GAAI,oCAmWJA,GAAI,yBAEJ0S,EAAIrP,aAAe,CACjBhE,WAAY,SAAqB2Q,GAS/B,OARI,IAASA,IAAU,IAAU3Q,GAC/BA,GAAa,EACbqY,OACS,IAAU1H,IAAU,IAAS3Q,IACtCA,GAAa,EArKnBsY,GAAqB,UAPjB,OAASxG,GAEXA,EAAayG,aAOfC,cAAchG,IAsKViG,GAAQ,EAAG,EAAG,aAAczR,KAAKC,UAAUjH,IACpCA,GAGTwQ,MAAO,WACLiI,GAAQ,EAAG,EAAG,UAIhBxU,MAAO,WACL,OAAO0O,GAGT+F,YAAa,SAAsBC,GAC7B,mBAAsBA,GACxBpF,EAAaoF,EACbF,GAAQ,EAAG,EAAG,cAEdlF,EAAa,aACbkF,GAAQ,EAAG,EAAG,kBAIlB1M,aAAc,SAAuBN,GACnCnL,EAAY4V,WAAWzK,IAGzBsK,MAAO,WACL/J,GAAY,uBAGd/C,SAAU,SAAmBN,EAAGE,GAC9B4P,GAAQ5P,EAAGF,EAAG,aAGhBiQ,eAAgB,SAAmBjQ,EAAGE,GACpC4P,GAAQ5P,EAAGF,EAAG,mBAGhBkI,YAAa,SAAsBzM,EAAKmK,GACtCkK,GAAQ,EAAG,EAAG,UAAWzR,KAAKC,UAAU7C,GAAMmK,IAGhDsK,2BAA4B,SAC1BrY,GAEA6R,EAAiB7R,EACjB2X,MAGFW,0BAA2B,SACzBtX,GAEA4R,EAAgB5R,EAChB4W,MAGFW,gBAAiB,SAA0BxK,GACzC5N,GAAI,qBAAuB4N,GAC3BuE,EAAsBvE,GAGxBtI,KAAM,SAAe+S,EAAcC,GAGjChD,GACE,OACA,sBAHM+C,GAAgB,KAAOC,EAAc,IAAMA,EAAc,IAG5B,IACnCD,EACAC,KAjGR,WACE,IAAoB,IAAhBhY,EAAsB,OAE1B,SAASiY,EAAUC,GACjBV,GAAQ,EAAG,EAAGU,EAAE7U,KAAM6U,EAAE1P,QAAU,IAAM0P,EAAE3P,SAG5C,SAAS4P,EAAiB5V,EAAKqL,GAC7BlO,GAAI,uBAAyBkO,GAC7BvL,GAAiB3E,OAAOkI,SAAUrD,EAAK0V,GAGzCE,EAAiB,aAAc,eAC/BA,EAAiB,aAAc,eAtd/BC,GACAhB,KACA/X,EA+UF,WACE,SAASoI,IACP,MAAO,CACLC,EACEhK,OAAOuJ,cAAgBxJ,EACnBmI,SAASW,gBAAgBS,WACzBtJ,OAAOuJ,YACbW,EACElK,OAAOqJ,cAAgBtJ,EACnBmI,SAASW,gBAAgBO,UACzBpJ,OAAOqJ,aAIjB,SAASQ,EAAmBjF,GAC1B,IAAI+V,EAAa/V,EAAGwD,wBAClB3H,EAAesJ,IAEjB,MAAO,CACLC,EAAGpD,SAAS+T,EAAWxR,KAAM,IAAMvC,SAASnG,EAAauJ,EAAG,IAC5DE,EAAGtD,SAAS+T,EAAWxV,IAAK,IAAMyB,SAASnG,EAAayJ,EAAG,KAI/D,SAASqN,EAAWiB,GAClB,SAASoC,EAAa9Q,GACpB,IAAIqD,EAAetD,EAAmBC,GAEtC9H,GACE,4BACE8K,EACA,WACAK,EAAanD,EACb,OACAmD,EAAajD,GAEjB4P,GAAQ3M,EAAajD,EAAGiD,EAAanD,EAAG,kBAG1C,IAAI8C,EAAO0L,EAAS5N,MAAM,KAAK,IAAM4N,EACnCzL,EAAWC,mBAAmBF,GAC9B+N,EACE3S,SAAS+E,eAAeF,IACxB7E,SAASgF,kBAAkBH,GAAU,GAErChN,IAAc8a,GAChB7Y,GACE,kBACE8K,EACA,+CAEJgN,GAAQ,EAAG,EAAG,aAAc,IAAMhN,IAElC8N,EAAaC,GAIjB,SAASC,IACP,IAAIhO,EAAO9M,OAAOwY,SAAS1L,KACvB2L,EAAOzY,OAAOwY,SAASC,KAEvB,KAAO3L,GAAQ,MAAQA,GACzByK,EAAWkB,GAIf,SAASsC,IACP,SAASC,EAAUpW,GACjB,SAASqW,EAAYT,GACnBA,EAAEU,iBAGF3D,EAAW3T,KAAKuX,aAAa,SAG3B,MAAQvW,EAAGuW,aAAa,SAC1BxW,GAAiBC,EAAI,QAASqW,GAIlCnP,MAAM+E,UAAUlE,QAAQoE,KACtB7I,SAAS+K,iBAAiB,gBAC1B+H,GAIJ,SAASI,IACPzW,GAAiB3E,OAAQ,aAAc8a,GAGzC,SAASO,IAEPzR,WAAWkR,EAAmBvH,GAGhC,SAAS+H,IAEHxP,MAAM+E,UAAUlE,SAAWzE,SAAS+K,kBACtCjR,GAAI,qCACJ+Y,IACAK,IACAC,KAEAnY,GACE,2FAKFvB,EAAY2W,OACdgD,IAEAtZ,GAAI,+BAGN,MAAO,CACLuV,WAAYA,GAncAgE,GACdjE,GAAS,OAAQ,+BACjB3C,IA2BF,SAAS3E,GAAU1B,GACjB,IAAI2B,EAAY3B,EAAI1D,MAAM,YAE1B,GAAyB,IAArBqF,EAAU3P,OAAc,CAC1B,IAAI4P,EACF,KAAOD,EAAU,GAAGE,OAAO,GAAGC,cAAgBH,EAAU,GAAGxI,MAAM,GACnE7D,KAAKsM,GAAQtM,KAAK0K,UACX1K,KAAK0K,GACZpL,GACE,gBACEoL,EACA,uBACA4B,EACA,iEAwDR,SAAS6I,GAAaC,EAAMC,GACtBlZ,IAAckZ,GAAS,KAAOA,GAAS,SAAWA,IACpD/Q,SAASC,KAAK+F,MAAM8K,GAAQC,EAC5BjX,GAAI,QAAUgX,EAAO,YAAcC,EAAQ,MAmB/C,SAASuC,GAAmB7X,GAC1B,IAAI8X,EAAW,CACbC,IAAK,SAAUpJ,GACb,SAASqJ,IACPrE,GAAS3T,EAAQ2O,UAAW3O,EAAQiY,WAGtC5G,EAAoB1C,GAAaqJ,EAEjChX,GAAiB3E,OAAQsS,EAAWqJ,EAAa,CAAEzG,SAAS,KAE9D2G,OAAQ,SAAUvJ,GAChB,IA9NuB1N,EAAIC,EAAKC,EA8N5B6W,EAAc3G,EAAoB1C,UAC/B0C,EAAoB1C,GA/NJ1N,EAiOH5E,OAjOO6E,EAiOCyN,EAjOIxN,EAiOO6W,EAhO3C/W,EAAGG,oBAAoBF,EAAKC,GAAM,KAoO9BnB,EAAQmY,YAAchQ,MAAM+E,UAAUkL,KACxCpY,EAAQ2O,UAAY3O,EAAQmY,WAAW,GACvCnY,EAAQmY,WAAWC,IAAIN,EAAS9X,EAAQqY,UAExCP,EAAS9X,EAAQqY,QAAQrY,EAAQ2O,WAGnCtQ,GACEgW,GAAsBrU,EAAQqY,QAC5B,oBACArY,EAAQiY,WAId,SAASjC,GAAqBqC,GAC5BR,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,kBACXE,WAAY,CAAC,iBAAkB,0BAEjCN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,sBACXE,WAAY,CAAC,qBAAsB,8BAErCN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,gBACXE,WAAY,CAAC,eAAgB,wBAE/BN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,QACXtJ,UAAW,UAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,WACXtJ,UAAW,YAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,aACXtJ,UAAW,cAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,qBACXtJ,UAAW,sBAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,QACXE,WAAY,CAAC,aAAc,iBAE7BN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,qBACXtJ,UAAW,qBAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,cACXtJ,UAAW,eAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,YACXtJ,UAAW,aAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,eACXtJ,UAAW,gBAEbkJ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,mBACXE,WAAY,CACV,kBACA,wBACA,oBACA,mBACA,sBAGJN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,uBACXE,WAAY,CACV,sBACA,4BACA,wBACA,uBACA,0BAGJN,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,iBACXE,WAAY,CACV,gBACA,sBACA,kBACA,iBACA,oBAGA,UAAYvZ,GACdiZ,GAAmB,CACjBQ,OAAQA,EACRJ,UAAW,iBACXtJ,UAAW,WAKjB,SAAS2J,GAAcrD,EAAUsD,EAAiBC,EAAOxW,GAWvD,OAVIuW,IAAoBtD,IAChBA,KAAYuD,IAChBjZ,GACE0V,EAAW,8BAAgCjT,EAAO,sBAEpDiT,EAAWsD,GAEbla,GAAI2D,EAAO,+BAAiCiT,EAAW,MAGlDA,EAGT,SAASY,KACP9F,EAAiBuI,GACfvI,EACAD,EACAkC,EACA,UAIJ,SAAS8D,KACPhF,EAAgBwH,GACdxH,EACAD,EACAgC,EACA,SAIJ,SAASkD,KAmXT,IACM0C,GAnXA,IAAS/a,GACXsY,GAAqB,OAkXnByC,EAAqB,EAAIra,EAI3B/B,OAAOwE,kBACPxE,OAAOyE,uBAEH2X,EACFC,KAEAlJ,EArGN,WACE,SAASmJ,EAAqB9K,GAC5B,SAAS+K,EAAqBvY,IACxB,IAAUA,EAAQwY,WACpBxa,GAAI,uBAAyBgC,EAAQuM,KACrCvM,EAAQW,iBAAiB,OAAQ8X,GAAa,GAC9CzY,EAAQW,iBAAiB,QAAS+X,GAAY,GAC9CC,EAAS9J,KAAK7O,IAII,eAAlBwN,EAAS7L,MAAoD,QAA3B6L,EAASoL,cAC7CL,EAAqB/K,EAAS1H,QACH,cAAlB0H,EAAS7L,MAClBmG,MAAM+E,UAAUlE,QAAQoE,KACtBS,EAAS1H,OAAOmJ,iBAAiB,OACjCsJ,GAKN,SAASM,EAAgB7Y,GACvB2Y,EAASG,OAAOH,EAASjV,QAAQ1D,GAAU,GAG7C,SAAS+Y,EAAwB/Y,GAC/BhC,GAAI,yBAA2BgC,EAAQuM,KACvCvM,EAAQe,oBAAoB,OAAQ0X,GAAa,GACjDzY,EAAQe,oBAAoB,QAAS2X,GAAY,GACjDG,EAAgB7Y,GAGlB,SAASgZ,EAAoBvS,EAAO9E,EAAMsX,GACxCF,EAAwBtS,EAAMX,QAC9BwN,GAAS3R,EAAMsX,EAAW,KAAOxS,EAAMX,OAAOyG,KAGhD,SAASkM,EAAYhS,GACnBuS,EAAoBvS,EAAO,YAAa,gBAG1C,SAASiS,EAAWjS,GAClBuS,EAAoBvS,EAAO,kBAAmB,qBAGhD,SAAS8D,EAAiBC,GACxB8I,GACE,mBACA,qBAAuB9I,EAAU,GAAG1E,OAAS,IAAM0E,EAAU,GAAG7I,MAIlE6I,EAAU7B,QAAQ2P,GAGpB,SAAS5N,IACP,IAAI5E,EAAS5B,SAASyG,cAAc,QAClCC,EAAS,CACPC,YAAY,EACZC,mBAAmB,EACnBC,eAAe,EACfC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,GAQb,OALAgO,EAAW,IAAI1Y,EAAiB+J,GAEhCvM,GAAI,gCACJkb,EAAS/N,QAAQrF,EAAQ8E,GAElBsO,EAGT,IAAIP,EAAW,GACbnY,EACExE,OAAOwE,kBAAoBxE,OAAOyE,uBACpCyY,EAAWxO,IAEb,MAAO,CACLkL,WAAY,WACN,eAAgBsD,IAClBlb,GAAI,oCACJkb,EAAStD,aACT+C,EAAShQ,QAAQoQ,MAiBJI,IAGjBnb,GAAI,mDACJqa,OA7XAra,GAAI,wBAyQR,SAASqa,KACH,IAAMta,IACRC,GAAI,gBAAkBD,EAAW,MACjC8R,EAAgBuJ,aAAY,WAC1B9F,GAAS,WAAY,gBAAkBvV,KACtC6G,KAAKyU,IAAItb,KAqHhB,SAASuJ,GAAiBgS,EAAM1Y,GAC9B,IAAI2I,EAAS,EAMb,OALA3I,EAAKA,GAAMsD,SAASC,KAGpBoF,EAAS,QADTA,EAASrF,SAASqV,YAAYjS,iBAAiB1G,EAAI,OACxB,EAAI2I,EAAO+P,GAE/B1W,SAAS2G,EA51BT,IAu2BT,SAAS6I,GAAcoH,EAAMb,GAO3B,IANA,IAAIc,EAAiBd,EAASrc,OAC5Bod,EAAQ,EACRC,EAAS,EACTC,EAAO5F,GAAsBwF,GAC7Brc,EAAQ0V,KAAKC,MAEN/K,EAAI,EAAGA,EAAI0R,EAAgB1R,KAClC2R,EACEf,EAAS5Q,GAAG3D,wBAAwBoV,GACpClS,GAAiB,SAAWsS,EAAMjB,EAAS5Q,KACjC4R,IACVA,EAASD,GAWb,OAPAvc,EAAQ0V,KAAKC,MAAQ3V,EAErBa,GAAI,UAAYyb,EAAiB,kBACjCzb,GAAI,kCAAoCb,EAAQ,MA3BlD,SAAyBA,GACnBA,EAAQmT,EAAiB,GAE3BtS,GAAI,gCADJsS,EAAiB,EAAInT,GACiC,MA0BxD0c,CAAgB1c,GAETwc,EAGT,SAAS1H,GAAmB6H,GAC1B,MAAO,CACLA,EAAWlI,aACXkI,EAAW9c,aACX8c,EAAW/H,wBACX+H,EAAW7c,yBAIf,SAASsV,GAAkBiH,EAAMO,GAM/B,IAAIpB,EAAWzU,SAAS+K,iBAAiB,IAAM8K,EAAM,KAIrD,OAFwB,IAApBpB,EAASrc,SANX4C,GAAK,uBAAyB6a,EAAM,mBAC7B7V,SAAS+K,iBAAiB,WAO5BmD,GAAcoH,EAAMb,GAG7B,SAAStG,KACP,OAAOnO,SAAS+K,iBAAiB,UAiGnC,SAAS2D,GACPoH,EACAC,EACA5D,EACAC,GAiDA,IAAI4D,EAAeC,GAxCnB,WACE,SAASC,EAAeC,EAAGC,GAEzB,QADa1V,KAAKyU,IAAIgB,EAAIC,IAAM1b,GASlC,OALAsb,EACEne,IAAcsa,EAAe1E,EAAUjC,KAAoB2G,EAC7D8D,EACEpe,IAAcua,EAAc9D,EAAS/B,KAAmB6F,EAGxD8D,EAAe5K,EAAQ0K,IACtB9K,GAAkBgL,EAAe7J,EAAO4J,GA6BzCI,IAA0B,SAAWP,IAxB9BA,IAAgB,CAAEvL,KAAM,EAAG1Q,SAAU,EAAGuF,KAAM,MAKrDoM,KAAkB/S,GACjByS,GAAkBqB,KAAiB9T,GAUpC0M,GAAY4Q,GACDD,IAAgB,CAAEjc,SAAU,IANzCC,GAAI,+BAcJwc,KA9CA1E,GAHAtG,EAAS0K,EACT3J,EAAQ4J,EAEeH,IAuD3B,SAAS1G,GAAS0G,EAAcC,EAAkB5D,EAAcC,GAQrDlG,GAAiB4J,KAAgB3K,EAIxCrR,GAAI,4BAA8Bgc,IAV5BA,IAAgB,CAAE5G,MAAO,EAAGqH,UAAW,EAAGhM,KAAM,IACpDzQ,GAAI,kBAAoBic,GAYL,SAAjBD,EACFpH,GAAWoH,EAAcC,EAAkB5D,EAAcC,GAEzD3D,EACEqH,EACAC,EACA5D,EACAC,IAMR,SAASkE,KACFpK,IACHA,GAAgB,EAChBpS,GAAI,0BAENiV,aAAa5C,GACbA,EAAqBzK,YAAW,WAC9BwK,GAAgB,EAChBpS,GAAI,0BACJA,GAAI,QACHuR,GAGL,SAAS8D,GAAa2G,GACpBxK,EAASmC,EAAUjC,KACnBa,EAAQiC,EAAS/B,KAEjBqF,GAAQtG,EAAQe,EAAOyJ,GAGzB,SAAS3Q,GAAY4Q,GACnB,IAAIS,EAAMhL,EACVA,EAAiBD,EAEjBzR,GAAI,wBAA0Bic,GAC9BO,KACAnH,GAAa,SAEb3D,EAAiBgL,EAGnB,SAAS5E,GAAQtR,EAAQE,EAAOsV,EAAcvY,EAAKmK,GASjD,IAEItD,EATEvM,IAAc6P,EAChBA,EAAeuE,EAEfnS,GAAI,yBAA2B4N,GAcjC5N,GAAI,kCARFsK,EACE0H,EACA,IAHOxL,EAAS,IAAME,EAKtB,IACAsV,GACCje,IAAc0F,EAAM,GAAK,IAAMA,IAEa,KACjDwO,EAAOpE,YAAYkE,EAAQzH,EAASsD,GAqHxC,SAASmI,KACH,YAAc7P,SAASyW,YACzB3e,OAAOkU,OAAOrE,YAAY,4BAA6B,MApwC3D","sources":["scripts/src/iframe-resizer/index.ts","node_modules/iframe-resizer/index.js","node_modules/iframe-resizer/js/iframeResizer.js","node_modules/iframe-resizer/js/iframeResizer.contentWindow.js"],"sourcesContent":["import resizer from \"iframe-resizer\"\r\n\r\nexport const iframeResizer = (\r\n) => {\r\n \r\n resizer.iframeResizer(); \r\n};\r\n","const iframeResize = require('./js/iframeResizer')\n\nmodule.exports = {\n iframeResize: iframeResize,\n iframeResizer: iframeResize, // Backwards compatibility\n contentWindow: require('./js/iframeResizer.contentWindow')\n}\n","/*\n * File: iframeResizer.js\n * Desc: Force iframes to size to content.\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n * Contributor: Jure Mav - jure.mav@gmail.com\n * Contributor: Reed Dadoune - reed@dadoune.com\n */\n\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n;(function (undefined) {\n if (typeof window === 'undefined') return // don't run for server side render\n\n var count = 0,\n logEnabled = false,\n hiddenCheckEnabled = false,\n msgHeader = 'message',\n msgHeaderLen = msgHeader.length,\n msgId = '[iFrameSizer]', // Must match iframe msg ID\n msgIdLen = msgId.length,\n pagePosition = null,\n requestAnimationFrame = window.requestAnimationFrame,\n resetRequiredMethods = Object.freeze({\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n }),\n settings = {},\n timer = null,\n defaults = Object.freeze({\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyMarginV1: 8,\n bodyPadding: null,\n checkOrigin: true,\n inPageLinks: false,\n enablePublicMethods: true,\n heightCalculationMethod: 'bodyOffset',\n id: 'iFrameResizer',\n interval: 32,\n log: false,\n maxHeight: Infinity,\n maxWidth: Infinity,\n minHeight: 0,\n minWidth: 0,\n mouseEvents: true,\n resizeFrom: 'parent',\n scrolling: false,\n sizeHeight: true,\n sizeWidth: false,\n warningTimeout: 5000,\n tolerance: 0,\n widthCalculationMethod: 'scroll',\n onClose: function () {\n return true\n },\n onClosed: function () {},\n onInit: function () {},\n onMessage: function () {\n warn('onMessage function not defined')\n },\n onMouseEnter: function () {},\n onMouseLeave: function () {},\n onResized: function () {},\n onScroll: function () {\n return true\n }\n })\n\n function getMutationObserver() {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n )\n }\n\n function addEventListener(el, evt, func) {\n el.addEventListener(evt, func, false)\n }\n\n function removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false)\n }\n\n function setupRequestAnimationFrame() {\n var vendors = ['moz', 'webkit', 'o', 'ms']\n var x\n\n // Remove vendor prefixing if prefixed and break early if not\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n }\n\n if (requestAnimationFrame) {\n // Firefox extension content-scripts have a globalThis object that is not the same as window.\n // Binding `requestAnimationFrame` to window allows the function to work and prevents errors\n // being thrown when run in that context, and should be a no-op in every other context.\n requestAnimationFrame = requestAnimationFrame.bind(window)\n } else {\n log('setup', 'RequestAnimationFrame not supported')\n }\n }\n\n function getMyID(iframeId) {\n var retStr = 'Host page: ' + iframeId\n\n if (window.top !== window.self) {\n retStr =\n window.parentIFrame && window.parentIFrame.getId\n ? window.parentIFrame.getId() + ': ' + iframeId\n : 'Nested host page: ' + iframeId\n }\n\n return retStr\n }\n\n function formatLogHeader(iframeId) {\n return msgId + '[' + getMyID(iframeId) + ']'\n }\n\n function isLogEnabled(iframeId) {\n return settings[iframeId] ? settings[iframeId].log : logEnabled\n }\n\n function log(iframeId, msg) {\n output('log', iframeId, msg, isLogEnabled(iframeId))\n }\n\n function info(iframeId, msg) {\n output('info', iframeId, msg, isLogEnabled(iframeId))\n }\n\n function warn(iframeId, msg) {\n output('warn', iframeId, msg, true)\n }\n\n function output(type, iframeId, msg, enabled) {\n if (true === enabled && 'object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console[type](formatLogHeader(iframeId), msg)\n }\n }\n\n function iFrameListener(event) {\n function resizeIFrame() {\n function resize() {\n setSize(messageData)\n setPagePosition(iframeId)\n on('onResized', messageData)\n }\n\n ensureInRange('Height')\n ensureInRange('Width')\n\n syncResize(resize, messageData, 'init')\n }\n\n function processMsg() {\n var data = msg.slice(msgIdLen).split(':')\n var height = data[1] ? parseInt(data[1], 10) : 0\n var iframe = settings[data[0]] && settings[data[0]].iframe\n var compStyle = getComputedStyle(iframe)\n\n return {\n iframe: iframe,\n id: data[0],\n height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),\n width: data[2],\n type: data[3]\n }\n }\n\n function getPaddingEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0\n }\n var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0\n var bot = compStyle.paddingBottom\n ? parseInt(compStyle.paddingBottom, 10)\n : 0\n return top + bot\n }\n\n function getBorderEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0\n }\n var top = compStyle.borderTopWidth\n ? parseInt(compStyle.borderTopWidth, 10)\n : 0\n var bot = compStyle.borderBottomWidth\n ? parseInt(compStyle.borderBottomWidth, 10)\n : 0\n return top + bot\n }\n\n function ensureInRange(Dimension) {\n var max = Number(settings[iframeId]['max' + Dimension]),\n min = Number(settings[iframeId]['min' + Dimension]),\n dimension = Dimension.toLowerCase(),\n size = Number(messageData[dimension])\n\n log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max)\n\n if (size < min) {\n size = min\n log(iframeId, 'Set ' + dimension + ' to min value')\n }\n\n if (size > max) {\n size = max\n log(iframeId, 'Set ' + dimension + ' to max value')\n }\n\n messageData[dimension] = '' + size\n }\n\n function isMessageFromIFrame() {\n function checkAllowedOrigin() {\n function checkList() {\n var i = 0,\n retCode = false\n\n log(\n iframeId,\n 'Checking connection is from allowed list of origins: ' +\n checkOrigin\n )\n\n for (; i < checkOrigin.length; i++) {\n if (checkOrigin[i] === origin) {\n retCode = true\n break\n }\n }\n return retCode\n }\n\n function checkSingle() {\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost\n log(iframeId, 'Checking connection is from: ' + remoteHost)\n return origin === remoteHost\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle()\n }\n\n var origin = event.origin,\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin\n\n if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\n throw new Error(\n 'Unexpected message received from: ' +\n origin +\n ' for ' +\n messageData.iframe.id +\n '. Message was: ' +\n event.data +\n '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'\n )\n }\n\n return true\n }\n\n function isMessageForUs() {\n return (\n msgId === ('' + msg).slice(0, msgIdLen) &&\n msg.slice(msgIdLen).split(':')[0] in settings\n ) // ''+Protects against non-string msg\n }\n\n function isMessageFromMetaParent() {\n // Test if this message is from a parent above us. This is an ugly test, however, updating\n // the message format would break backwards compatibility.\n var retCode = messageData.type in { true: 1, false: 1, undefined: 1 }\n\n if (retCode) {\n log(iframeId, 'Ignoring init message from meta parent page')\n }\n\n return retCode\n }\n\n function getMsgBody(offset) {\n return msg.slice(msg.indexOf(':') + msgHeaderLen + offset)\n }\n\n function forwardMsgFromIFrame(msgBody) {\n log(\n iframeId,\n 'onMessage passed: {iframe: ' +\n messageData.iframe.id +\n ', message: ' +\n msgBody +\n '}'\n )\n\n on('onMessage', {\n iframe: messageData.iframe,\n message: JSON.parse(msgBody)\n })\n\n log(iframeId, '--')\n }\n\n function getPageInfo() {\n var bodyPosition = document.body.getBoundingClientRect(),\n iFramePosition = messageData.iframe.getBoundingClientRect()\n\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n ),\n clientWidth: Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n ),\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\n scrollTop: window.pageYOffset,\n scrollLeft: window.pageXOffset,\n documentHeight: document.documentElement.clientHeight,\n documentWidth: document.documentElement.clientWidth,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth\n })\n }\n\n function sendPageInfoToIframe(iframe, iframeId) {\n function debouncedTrigger() {\n trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId)\n }\n debounceFrameEvents(debouncedTrigger, 32, iframeId)\n }\n\n function startPageInfoMonitor() {\n function setListener(type, func) {\n function sendPageInfo() {\n if (settings[id]) {\n sendPageInfoToIframe(settings[id].iframe, id)\n } else {\n stop()\n }\n }\n\n ;['scroll', 'resize'].forEach(function (evt) {\n log(id, type + evt + ' listener for sendPageInfo')\n func(window, evt, sendPageInfo)\n })\n }\n\n function stop() {\n setListener('Remove ', removeEventListener)\n }\n\n function start() {\n setListener('Add ', addEventListener)\n }\n\n var id = iframeId // Create locally scoped copy of iFrame ID\n\n start()\n\n if (settings[id]) {\n settings[id].stopPageInfo = stop\n }\n }\n\n function stopPageInfoMonitor() {\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\n settings[iframeId].stopPageInfo()\n delete settings[iframeId].stopPageInfo\n }\n }\n\n function checkIFrameExists() {\n var retBool = true\n\n if (null === messageData.iframe) {\n warn(iframeId, 'IFrame (' + messageData.id + ') not found')\n retBool = false\n }\n return retBool\n }\n\n function getElementPosition(target) {\n var iFramePosition = target.getBoundingClientRect()\n\n getPagePosition(iframeId)\n\n return {\n x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\n y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))\n }\n }\n\n function scrollRequestFromChild(addOffset) {\n /* istanbul ignore next */ // Not testable in Karma\n function reposition() {\n pagePosition = newPosition\n scrollTo()\n log(iframeId, '--')\n }\n\n function calcOffset() {\n return {\n x: Number(messageData.width) + offset.x,\n y: Number(messageData.height) + offset.y\n }\n }\n\n function scrollParent() {\n if (window.parentIFrame) {\n window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](\n newPosition.x,\n newPosition.y\n )\n } else {\n warn(\n iframeId,\n 'Unable to scroll to requested position, window.parentIFrame not found'\n )\n }\n }\n\n var offset = addOffset\n ? getElementPosition(messageData.iframe)\n : { x: 0, y: 0 },\n newPosition = calcOffset()\n\n log(\n iframeId,\n 'Reposition requested from iFrame (offset x:' +\n offset.x +\n ' y:' +\n offset.y +\n ')'\n )\n\n if (window.top === window.self) {\n reposition()\n } else {\n scrollParent()\n }\n }\n\n function scrollTo() {\n if (false === on('onScroll', pagePosition)) {\n unsetPagePosition()\n } else {\n setPagePosition(iframeId)\n }\n }\n\n function findTarget(location) {\n function jumpToTarget() {\n var jumpPosition = getElementPosition(target)\n\n log(\n iframeId,\n 'Moving to in page link (#' +\n hash +\n ') at x: ' +\n jumpPosition.x +\n ' y: ' +\n jumpPosition.y\n )\n pagePosition = {\n x: jumpPosition.x,\n y: jumpPosition.y\n }\n\n scrollTo()\n log(iframeId, '--')\n }\n\n function jumpToParent() {\n if (window.parentIFrame) {\n window.parentIFrame.moveToAnchor(hash)\n } else {\n log(\n iframeId,\n 'In page link #' +\n hash +\n ' not found and window.parentIFrame not found'\n )\n }\n }\n\n var hash = location.split('#')[1] || '',\n hashData = decodeURIComponent(hash),\n target =\n document.getElementById(hashData) ||\n document.getElementsByName(hashData)[0]\n\n if (target) {\n jumpToTarget()\n } else if (window.top === window.self) {\n log(iframeId, 'In page link #' + hash + ' not found')\n } else {\n jumpToParent()\n }\n }\n\n function onMouse(event) {\n var mousePos = {}\n\n if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {\n var data = getMsgBody(9).split(':')\n mousePos = {\n x: data[1],\n y: data[0]\n }\n } else {\n mousePos = {\n x: messageData.width,\n y: messageData.height\n }\n }\n\n on(event, {\n iframe: messageData.iframe,\n screenX: Number(mousePos.x),\n screenY: Number(mousePos.y),\n type: messageData.type\n })\n }\n\n function on(funcName, val) {\n return chkEvent(iframeId, funcName, val)\n }\n\n function actionMsg() {\n if (settings[iframeId] && settings[iframeId].firstRun) firstRun()\n\n switch (messageData.type) {\n case 'close': {\n closeIFrame(messageData.iframe)\n break\n }\n\n case 'message': {\n forwardMsgFromIFrame(getMsgBody(6))\n break\n }\n\n case 'mouseenter': {\n onMouse('onMouseEnter')\n break\n }\n\n case 'mouseleave': {\n onMouse('onMouseLeave')\n break\n }\n\n case 'autoResize': {\n settings[iframeId].autoResize = JSON.parse(getMsgBody(9))\n break\n }\n\n case 'scrollTo': {\n scrollRequestFromChild(false)\n break\n }\n\n case 'scrollToOffset': {\n scrollRequestFromChild(true)\n break\n }\n\n case 'pageInfo': {\n sendPageInfoToIframe(\n settings[iframeId] && settings[iframeId].iframe,\n iframeId\n )\n startPageInfoMonitor()\n break\n }\n\n case 'pageInfoStop': {\n stopPageInfoMonitor()\n break\n }\n\n case 'inPageLink': {\n findTarget(getMsgBody(9))\n break\n }\n\n case 'reset': {\n resetIFrame(messageData)\n break\n }\n\n case 'init': {\n resizeIFrame()\n on('onInit', messageData.iframe)\n break\n }\n\n default: {\n if (\n Number(messageData.width) === 0 &&\n Number(messageData.height) === 0\n ) {\n warn(\n 'Unsupported message received (' +\n messageData.type +\n '), this is likely due to the iframe containing a later ' +\n 'version of iframe-resizer than the parent page'\n )\n } else {\n resizeIFrame()\n }\n }\n }\n }\n\n function hasSettings(iframeId) {\n var retBool = true\n\n if (!settings[iframeId]) {\n retBool = false\n warn(\n messageData.type +\n ' No settings for ' +\n iframeId +\n '. Message was: ' +\n msg\n )\n }\n\n return retBool\n }\n\n function iFrameReadyMsgReceived() {\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (var iframeId in settings) {\n trigger(\n 'iFrame requested init',\n createOutgoingMsg(iframeId),\n settings[iframeId].iframe,\n iframeId\n )\n }\n }\n\n function firstRun() {\n if (settings[iframeId]) {\n settings[iframeId].firstRun = false\n }\n }\n\n var msg = event.data,\n messageData = {},\n iframeId = null\n\n if ('[iFrameResizerChild]Ready' === msg) {\n iFrameReadyMsgReceived()\n } else if (isMessageForUs()) {\n messageData = processMsg()\n iframeId = messageData.id\n if (settings[iframeId]) {\n settings[iframeId].loaded = true\n }\n\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\n log(iframeId, 'Received: ' + msg)\n\n if (checkIFrameExists() && isMessageFromIFrame()) {\n actionMsg()\n }\n }\n } else {\n info(iframeId, 'Ignored: ' + msg)\n }\n }\n\n function chkEvent(iframeId, funcName, val) {\n var func = null,\n retVal = null\n\n if (settings[iframeId]) {\n func = settings[iframeId][funcName]\n\n if ('function' === typeof func) {\n retVal = func(val)\n } else {\n throw new TypeError(\n funcName + ' on iFrame[' + iframeId + '] is not a function'\n )\n }\n }\n\n return retVal\n }\n\n function removeIframeListeners(iframe) {\n var iframeId = iframe.id\n delete settings[iframeId]\n }\n\n function closeIFrame(iframe) {\n var iframeId = iframe.id\n if (chkEvent(iframeId, 'onClose', iframeId) === false) {\n log(iframeId, 'Close iframe cancelled by onClose event')\n return\n }\n log(iframeId, 'Removing iFrame: ' + iframeId)\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.parentNode.removeChild(iframe)\n }\n } catch (error) {\n warn(error)\n }\n\n chkEvent(iframeId, 'onClosed', iframeId)\n log(iframeId, '--')\n removeIframeListeners(iframe)\n }\n\n function getPagePosition(iframeId) {\n if (null === pagePosition) {\n pagePosition = {\n x:\n window.pageXOffset === undefined\n ? document.documentElement.scrollLeft\n : window.pageXOffset,\n y:\n window.pageYOffset === undefined\n ? document.documentElement.scrollTop\n : window.pageYOffset\n }\n log(\n iframeId,\n 'Get page position: ' + pagePosition.x + ',' + pagePosition.y\n )\n }\n }\n\n function setPagePosition(iframeId) {\n if (null !== pagePosition) {\n window.scrollTo(pagePosition.x, pagePosition.y)\n log(\n iframeId,\n 'Set page position: ' + pagePosition.x + ',' + pagePosition.y\n )\n unsetPagePosition()\n }\n }\n\n function unsetPagePosition() {\n pagePosition = null\n }\n\n function resetIFrame(messageData) {\n function reset() {\n setSize(messageData)\n trigger('reset', 'reset', messageData.iframe, messageData.id)\n }\n\n log(\n messageData.id,\n 'Size reset requested by ' +\n ('init' === messageData.type ? 'host page' : 'iFrame')\n )\n getPagePosition(messageData.id)\n syncResize(reset, messageData, 'reset')\n }\n\n function setSize(messageData) {\n function setDimension(dimension) {\n if (!messageData.id) {\n log('undefined', 'messageData id not set')\n return\n }\n messageData.iframe.style[dimension] = messageData[dimension] + 'px'\n log(\n messageData.id,\n 'IFrame (' +\n iframeId +\n ') ' +\n dimension +\n ' set to ' +\n messageData[dimension] +\n 'px'\n )\n }\n\n function chkZero(dimension) {\n // FireFox sets dimension of hidden iFrames to zero.\n // So if we detect that set up an event to check for\n // when iFrame becomes visible.\n\n /* istanbul ignore next */ // Not testable in PhantomJS\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\n hiddenCheckEnabled = true\n log(iframeId, 'Hidden iFrame detected, creating visibility listener')\n fixHiddenIFrames()\n }\n }\n\n function processDimension(dimension) {\n setDimension(dimension)\n chkZero(dimension)\n }\n\n var iframeId = messageData.iframe.id\n\n if (settings[iframeId]) {\n if (settings[iframeId].sizeHeight) {\n processDimension('height')\n }\n if (settings[iframeId].sizeWidth) {\n processDimension('width')\n }\n }\n }\n\n function syncResize(func, messageData, doNotSync) {\n /* istanbul ignore if */ // Not testable in PhantomJS\n if (\n doNotSync !== messageData.type &&\n requestAnimationFrame &&\n // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame\n !window.jasmine\n ) {\n log(messageData.id, 'Requesting animation frame')\n requestAnimationFrame(func)\n } else {\n func()\n }\n }\n\n function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {\n function postMessageToIFrame() {\n var target = settings[id] && settings[id].targetOrigin\n log(\n id,\n '[' +\n calleeMsg +\n '] Sending msg to iframe[' +\n id +\n '] (' +\n msg +\n ') targetOrigin: ' +\n target\n )\n iframe.contentWindow.postMessage(msgId + msg, target)\n }\n\n function iFrameNotFound() {\n warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found')\n }\n\n function chkAndSend() {\n if (\n iframe &&\n 'contentWindow' in iframe &&\n null !== iframe.contentWindow\n ) {\n // Null test for PhantomJS\n postMessageToIFrame()\n } else {\n iFrameNotFound()\n }\n }\n\n function warnOnNoResponse() {\n function warning() {\n if (settings[id] && !settings[id].loaded && !errorShown) {\n errorShown = true\n warn(\n id,\n 'IFrame has not responded within ' +\n settings[id].warningTimeout / 1000 +\n ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.'\n )\n }\n }\n\n if (\n !!noResponseWarning &&\n settings[id] &&\n !!settings[id].warningTimeout\n ) {\n settings[id].msgTimeout = setTimeout(\n warning,\n settings[id].warningTimeout\n )\n }\n }\n\n var errorShown = false\n\n id = id || iframe.id\n\n if (settings[id]) {\n chkAndSend()\n warnOnNoResponse()\n }\n }\n\n function createOutgoingMsg(iframeId) {\n return (\n iframeId +\n ':' +\n settings[iframeId].bodyMarginV1 +\n ':' +\n settings[iframeId].sizeWidth +\n ':' +\n settings[iframeId].log +\n ':' +\n settings[iframeId].interval +\n ':' +\n settings[iframeId].enablePublicMethods +\n ':' +\n settings[iframeId].autoResize +\n ':' +\n settings[iframeId].bodyMargin +\n ':' +\n settings[iframeId].heightCalculationMethod +\n ':' +\n settings[iframeId].bodyBackground +\n ':' +\n settings[iframeId].bodyPadding +\n ':' +\n settings[iframeId].tolerance +\n ':' +\n settings[iframeId].inPageLinks +\n ':' +\n settings[iframeId].resizeFrom +\n ':' +\n settings[iframeId].widthCalculationMethod +\n ':' +\n settings[iframeId].mouseEvents\n )\n }\n\n function isNumber(value) {\n return typeof value === 'number'\n }\n\n function setupIFrame(iframe, options) {\n function setLimits() {\n function addStyle(style) {\n var styleValue = settings[iframeId][style]\n if (Infinity !== styleValue && 0 !== styleValue) {\n iframe.style[style] = isNumber(styleValue)\n ? styleValue + 'px'\n : styleValue\n log(iframeId, 'Set ' + style + ' = ' + iframe.style[style])\n }\n }\n\n function chkMinMax(dimension) {\n if (\n settings[iframeId]['min' + dimension] >\n settings[iframeId]['max' + dimension]\n ) {\n throw new Error(\n 'Value for min' +\n dimension +\n ' can not be greater than max' +\n dimension\n )\n }\n }\n\n chkMinMax('Height')\n chkMinMax('Width')\n\n addStyle('maxHeight')\n addStyle('minHeight')\n addStyle('maxWidth')\n addStyle('minWidth')\n }\n\n function newId() {\n var id = (options && options.id) || defaults.id + count++\n if (null !== document.getElementById(id)) {\n id += count++\n }\n return id\n }\n\n function ensureHasId(iframeId) {\n if (typeof iframeId !== 'string') {\n throw new TypeError('Invaild id for iFrame. Expected String')\n }\n\n if ('' === iframeId) {\n // eslint-disable-next-line no-multi-assign\n iframe.id = iframeId = newId()\n logEnabled = (options || {}).log\n log(\n iframeId,\n 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')'\n )\n }\n\n return iframeId\n }\n\n function setScrolling() {\n log(\n iframeId,\n 'IFrame scrolling ' +\n (settings[iframeId] && settings[iframeId].scrolling\n ? 'enabled'\n : 'disabled') +\n ' for ' +\n iframeId\n )\n iframe.style.overflow =\n false === (settings[iframeId] && settings[iframeId].scrolling)\n ? 'hidden'\n : 'auto'\n switch (settings[iframeId] && settings[iframeId].scrolling) {\n case 'omit': {\n break\n }\n\n case true: {\n iframe.scrolling = 'yes'\n break\n }\n\n case false: {\n iframe.scrolling = 'no'\n break\n }\n\n default: {\n iframe.scrolling = settings[iframeId]\n ? settings[iframeId].scrolling\n : 'no'\n }\n }\n }\n\n // The V1 iFrame script expects an int, where as in V2 expects a CSS\n // string value such as '1px 3em', so if we have an int for V2, set V1=V2\n // and then convert V2 to a string PX value.\n function setupBodyMarginValues() {\n if (\n 'number' ===\n typeof (settings[iframeId] && settings[iframeId].bodyMargin) ||\n '0' === (settings[iframeId] && settings[iframeId].bodyMargin)\n ) {\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin\n settings[iframeId].bodyMargin =\n '' + settings[iframeId].bodyMargin + 'px'\n }\n }\n\n function checkReset() {\n // Reduce scope of firstRun to function, because IE8's JS execution\n // context stack is borked and this value gets externally\n // changed midway through running this function!!!\n var firstRun = settings[iframeId] && settings[iframeId].firstRun,\n resetRequertMethod =\n settings[iframeId] &&\n settings[iframeId].heightCalculationMethod in resetRequiredMethods\n\n if (!firstRun && resetRequertMethod) {\n resetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' })\n }\n }\n\n function setupIFrameObject() {\n if (settings[iframeId]) {\n settings[iframeId].iframe.iFrameResizer = {\n close: closeIFrame.bind(null, settings[iframeId].iframe),\n\n removeListeners: removeIframeListeners.bind(\n null,\n settings[iframeId].iframe\n ),\n\n resize: trigger.bind(\n null,\n 'Window resize',\n 'resize',\n settings[iframeId].iframe\n ),\n\n moveToAnchor: function (anchor) {\n trigger(\n 'Move to anchor',\n 'moveToAnchor:' + anchor,\n settings[iframeId].iframe,\n iframeId\n )\n },\n\n sendMessage: function (message) {\n message = JSON.stringify(message)\n trigger(\n 'Send Message',\n 'message:' + message,\n settings[iframeId].iframe,\n iframeId\n )\n }\n }\n }\n }\n\n // We have to call trigger twice, as we can not be sure if all\n // iframes have completed loading when this code runs. The\n // event listener also catches the page changing in the iFrame.\n function init(msg) {\n function iFrameLoaded() {\n trigger('iFrame.onload', msg, iframe, undefined, true)\n checkReset()\n }\n\n function createDestroyObserver(MutationObserver) {\n if (!iframe.parentNode) {\n return\n }\n\n var destroyObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n var removedNodes = Array.prototype.slice.call(mutation.removedNodes) // Transform NodeList into an Array\n removedNodes.forEach(function (removedNode) {\n if (removedNode === iframe) {\n closeIFrame(iframe)\n }\n })\n })\n })\n destroyObserver.observe(iframe.parentNode, {\n childList: true\n })\n }\n\n var MutationObserver = getMutationObserver()\n if (MutationObserver) {\n createDestroyObserver(MutationObserver)\n }\n\n addEventListener(iframe, 'load', iFrameLoaded)\n trigger('init', msg, iframe, undefined, true)\n }\n\n function checkOptions(options) {\n if ('object' !== typeof options) {\n throw new TypeError('Options is not an object')\n }\n }\n\n function copyOptions(options) {\n // eslint-disable-next-line no-restricted-syntax\n for (var option in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, option)) {\n settings[iframeId][option] = Object.prototype.hasOwnProperty.call(\n options,\n option\n )\n ? options[option]\n : defaults[option]\n }\n }\n }\n\n function getTargetOrigin(remoteHost) {\n return '' === remoteHost ||\n null !== remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/)\n ? '*'\n : remoteHost\n }\n\n function depricate(key) {\n var splitName = key.split('Callback')\n\n if (splitName.length === 2) {\n var name =\n 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1)\n this[name] = this[key]\n delete this[key]\n warn(\n iframeId,\n \"Deprecated: '\" +\n key +\n \"' has been renamed '\" +\n name +\n \"'. The old method will be removed in the next major version.\"\n )\n }\n }\n\n function processOptions(options) {\n options = options || {}\n\n settings[iframeId] = Object.create(null) // Protect against prototype attacks\n settings[iframeId].iframe = iframe\n settings[iframeId].firstRun = true\n settings[iframeId].remoteHost =\n iframe.src && iframe.src.split('/').slice(0, 3).join('/')\n\n checkOptions(options)\n Object.keys(options).forEach(depricate, options)\n copyOptions(options)\n\n if (settings[iframeId]) {\n settings[iframeId].targetOrigin =\n true === settings[iframeId].checkOrigin\n ? getTargetOrigin(settings[iframeId].remoteHost)\n : '*'\n }\n }\n\n function beenHere() {\n return iframeId in settings && 'iFrameResizer' in iframe\n }\n\n var iframeId = ensureHasId(iframe.id)\n\n if (beenHere()) {\n warn(iframeId, 'Ignored iFrame, already setup.')\n } else {\n processOptions(options)\n setScrolling()\n setLimits()\n setupBodyMarginValues()\n init(createOutgoingMsg(iframeId))\n setupIFrameObject()\n }\n }\n\n function debouce(fn, time) {\n if (null === timer) {\n timer = setTimeout(function () {\n timer = null\n fn()\n }, time)\n }\n }\n\n var frameTimer = {}\n function debounceFrameEvents(fn, time, frameId) {\n if (!frameTimer[frameId]) {\n frameTimer[frameId] = setTimeout(function () {\n frameTimer[frameId] = null\n fn()\n }, time)\n }\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n\n function fixHiddenIFrames() {\n function checkIFrames() {\n function checkIFrame(settingId) {\n function chkDimension(dimension) {\n return (\n '0px' ===\n (settings[settingId] && settings[settingId].iframe.style[dimension])\n )\n }\n\n function isVisible(el) {\n return null !== el.offsetParent\n }\n\n if (\n settings[settingId] &&\n isVisible(settings[settingId].iframe) &&\n (chkDimension('height') || chkDimension('width'))\n ) {\n trigger(\n 'Visibility change',\n 'resize',\n settings[settingId].iframe,\n settingId\n )\n }\n }\n\n Object.keys(settings).forEach(function (key) {\n checkIFrame(key)\n })\n }\n\n function mutationObserved(mutations) {\n log(\n 'window',\n 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type\n )\n debouce(checkIFrames, 16)\n }\n\n function createMutationObserver() {\n var target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n },\n observer = new MutationObserver(mutationObserved)\n\n observer.observe(target, config)\n }\n\n var MutationObserver = getMutationObserver()\n if (MutationObserver) {\n createMutationObserver()\n }\n }\n\n function resizeIFrames(event) {\n function resize() {\n sendTriggerMsg('Window ' + event, 'resize')\n }\n\n log('window', 'Trigger event: ' + event)\n debouce(resize, 16)\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n function tabVisible() {\n function resize() {\n sendTriggerMsg('Tab Visible', 'resize')\n }\n\n if ('hidden' !== document.visibilityState) {\n log('document', 'Trigger event: Visibility change')\n debouce(resize, 16)\n }\n }\n\n function sendTriggerMsg(eventName, event) {\n function isIFrameResizeEnabled(iframeId) {\n return (\n settings[iframeId] &&\n 'parent' === settings[iframeId].resizeFrom &&\n settings[iframeId].autoResize &&\n !settings[iframeId].firstRun\n )\n }\n\n Object.keys(settings).forEach(function (iframeId) {\n if (isIFrameResizeEnabled(iframeId)) {\n trigger(eventName, event, settings[iframeId].iframe, iframeId)\n }\n })\n }\n\n function setupEventListeners() {\n addEventListener(window, 'message', iFrameListener)\n\n addEventListener(window, 'resize', function () {\n resizeIFrames('resize')\n })\n\n addEventListener(document, 'visibilitychange', tabVisible)\n\n addEventListener(document, '-webkit-visibilitychange', tabVisible)\n }\n\n function factory() {\n function init(options, element) {\n function chkType() {\n if (!element.tagName) {\n throw new TypeError('Object is not a valid DOM element')\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\n throw new TypeError(\n 'Expected